~ruther/qmk_firmware

147e57fd5930a1c18596a2401c9ee6f30730b86f — Stefan Kerkmann 3 years ago 5841c75
[QP] Check BPP capabilities before loading the palette (#16863)

1 files changed, 6 insertions(+), 6 deletions(-)

M quantum/painter/qp_draw_image.c
M quantum/painter/qp_draw_image.c => quantum/painter/qp_draw_image.c +6 -6
@@ 131,6 131,12 @@ static bool qp_drawimage_prepare_frame_for_stream_read(painter_device_t device, 
    // Ensure we aren't reusing any palette
    qp_internal_invalidate_palette();

    if (!qp_internal_bpp_capable(info->bpp)) {
        qp_dprintf("qp_drawimage_recolor: fail (image bpp too high (%d), check QUANTUM_PAINTER_SUPPORTS_256_PALETTE)\n", (int)info->bpp);
        qp_comms_stop(device);
        return false;
    }

    // Handle palette if needed
    const uint16_t palette_entries  = 1u << info->bpp;
    bool           needs_pixconvert = false;


@@ 146,12 152,6 @@ static bool qp_drawimage_prepare_frame_for_stream_read(painter_device_t device, 
        needs_pixconvert = qp_internal_interpolate_palette(fg_hsv888, bg_hsv888, palette_entries);
    }

    if (!qp_internal_bpp_capable(info->bpp)) {
        qp_dprintf("qp_drawimage_recolor: fail (image bpp too high (%d), check QUANTUM_PAINTER_SUPPORTS_256_PALETTE)\n", (int)info->bpp);
        qp_comms_stop(device);
        return false;
    }

    if (needs_pixconvert) {
        // Convert the palette to native format
        if (!driver->driver_vtable->palette_convert(device, palette_entries, qp_internal_global_pixel_lookup_table)) {