Sfoglia il codice sorgente

[QP] Check BPP capabilities before loading the palette (#16863)

Stefan Kerkmann 3 anni fa
parent
commit
147e57fd59
1 ha cambiato i file con 6 aggiunte e 6 eliminazioni
  1. 6 6
      quantum/painter/qp_draw_image.c

+ 6 - 6
quantum/painter/qp_draw_image.c

@@ -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)) {