Add RGB565 and RGB888 color support to Quantum Painter (#19382)
This commit is contained in:
parent
5873fbe569
commit
45851a10f6
21 changed files with 226 additions and 43 deletions
|
@ -104,6 +104,7 @@ const struct tft_panel_dc_reset_painter_driver_vtable_t gc9a01_driver_vtable = {
|
|||
.viewport = qp_tft_panel_viewport,
|
||||
.palette_convert = qp_tft_panel_palette_convert_rgb565_swapped,
|
||||
.append_pixels = qp_tft_panel_append_pixels_rgb565,
|
||||
.append_pixdata = qp_tft_panel_append_pixdata,
|
||||
},
|
||||
.num_window_bytes = 2,
|
||||
.swap_window_coords = false,
|
||||
|
|
|
@ -164,6 +164,12 @@ static bool qp_rgb565_surface_append_pixels_rgb565(painter_device_t device, uint
|
|||
return true;
|
||||
}
|
||||
|
||||
// Append data to the target location
|
||||
static bool qp_rgb565_surface_append_pixdata(painter_device_t device, uint8_t *target_buffer, uint32_t pixdata_offset, uint8_t pixdata_byte) {
|
||||
target_buffer[pixdata_offset] = pixdata_byte;
|
||||
return true;
|
||||
}
|
||||
|
||||
const struct painter_driver_vtable_t rgb565_surface_driver_vtable = {
|
||||
.init = qp_rgb565_surface_init,
|
||||
.power = qp_rgb565_surface_power,
|
||||
|
@ -173,6 +179,7 @@ const struct painter_driver_vtable_t rgb565_surface_driver_vtable = {
|
|||
.viewport = qp_rgb565_surface_viewport,
|
||||
.palette_convert = qp_rgb565_surface_palette_convert_rgb565_swapped,
|
||||
.append_pixels = qp_rgb565_surface_append_pixels_rgb565,
|
||||
.append_pixdata = qp_rgb565_surface_append_pixdata,
|
||||
};
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
|
|
@ -69,6 +69,7 @@ const struct tft_panel_dc_reset_painter_driver_vtable_t ili9163_driver_vtable =
|
|||
.viewport = qp_tft_panel_viewport,
|
||||
.palette_convert = qp_tft_panel_palette_convert_rgb565_swapped,
|
||||
.append_pixels = qp_tft_panel_append_pixels_rgb565,
|
||||
.append_pixdata = qp_tft_panel_append_pixdata,
|
||||
},
|
||||
.num_window_bytes = 2,
|
||||
.swap_window_coords = false,
|
||||
|
|
|
@ -76,6 +76,7 @@ const struct tft_panel_dc_reset_painter_driver_vtable_t ili9341_driver_vtable =
|
|||
.viewport = qp_tft_panel_viewport,
|
||||
.palette_convert = qp_tft_panel_palette_convert_rgb565_swapped,
|
||||
.append_pixels = qp_tft_panel_append_pixels_rgb565,
|
||||
.append_pixdata = qp_tft_panel_append_pixdata,
|
||||
},
|
||||
.num_window_bytes = 2,
|
||||
.swap_window_coords = false,
|
||||
|
|
|
@ -69,6 +69,7 @@ const struct tft_panel_dc_reset_painter_driver_vtable_t ili9488_driver_vtable =
|
|||
.viewport = qp_tft_panel_viewport,
|
||||
.palette_convert = qp_tft_panel_palette_convert_rgb888,
|
||||
.append_pixels = qp_tft_panel_append_pixels_rgb888,
|
||||
.append_pixdata = qp_tft_panel_append_pixdata,
|
||||
},
|
||||
.num_window_bytes = 2,
|
||||
.swap_window_coords = false,
|
||||
|
|
|
@ -73,6 +73,7 @@ const struct tft_panel_dc_reset_painter_driver_vtable_t ssd1351_driver_vtable =
|
|||
.viewport = qp_tft_panel_viewport,
|
||||
.palette_convert = qp_tft_panel_palette_convert_rgb565_swapped,
|
||||
.append_pixels = qp_tft_panel_append_pixels_rgb565,
|
||||
.append_pixdata = qp_tft_panel_append_pixdata,
|
||||
},
|
||||
.num_window_bytes = 1,
|
||||
.swap_window_coords = true,
|
||||
|
|
|
@ -93,6 +93,7 @@ const struct tft_panel_dc_reset_painter_driver_vtable_t st7735_driver_vtable = {
|
|||
.viewport = qp_tft_panel_viewport,
|
||||
.palette_convert = qp_tft_panel_palette_convert_rgb565_swapped,
|
||||
.append_pixels = qp_tft_panel_append_pixels_rgb565,
|
||||
.append_pixdata = qp_tft_panel_append_pixdata,
|
||||
},
|
||||
.num_window_bytes = 2,
|
||||
.swap_window_coords = false,
|
||||
|
|
|
@ -92,6 +92,7 @@ const struct tft_panel_dc_reset_painter_driver_vtable_t st7789_driver_vtable = {
|
|||
.viewport = qp_tft_panel_viewport,
|
||||
.palette_convert = qp_tft_panel_palette_convert_rgb565_swapped,
|
||||
.append_pixels = qp_tft_panel_append_pixels_rgb565,
|
||||
.append_pixdata = qp_tft_panel_append_pixdata,
|
||||
},
|
||||
.num_window_bytes = 2,
|
||||
.swap_window_coords = false,
|
||||
|
|
|
@ -126,3 +126,8 @@ bool qp_tft_panel_append_pixels_rgb888(painter_device_t device, uint8_t *target_
|
|||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool qp_tft_panel_append_pixdata(painter_device_t device, uint8_t *target_buffer, uint32_t pixdata_offset, uint8_t pixdata_byte) {
|
||||
target_buffer[pixdata_offset] = pixdata_byte;
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -59,3 +59,5 @@ bool qp_tft_panel_palette_convert_rgb888(painter_device_t device, int16_t palett
|
|||
|
||||
bool qp_tft_panel_append_pixels_rgb565(painter_device_t device, uint8_t *target_buffer, qp_pixel_t *palette, uint32_t pixel_offset, uint32_t pixel_count, uint8_t *palette_indices);
|
||||
bool qp_tft_panel_append_pixels_rgb888(painter_device_t device, uint8_t *target_buffer, qp_pixel_t *palette, uint32_t pixel_offset, uint32_t pixel_count, uint8_t *palette_indices);
|
||||
|
||||
bool qp_tft_panel_append_pixdata(painter_device_t device, uint8_t *target_buffer, uint32_t pixdata_offset, uint8_t pixdata_byte);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue