mirror of
https://github.com/qmk/qmk_firmware.git
synced 2025-12-08 10:23:52 +08:00
Add RGB565 and RGB888 color support to Quantum Painter (#19382)
This commit is contained in:
@@ -30,9 +30,11 @@ bool qp_internal_fillrect_helper_impl(painter_device_t device, uint16_t l, uint1
|
||||
// Convert from input pixel data + palette to equivalent pixels
|
||||
typedef int16_t (*qp_internal_byte_input_callback)(void* cb_arg);
|
||||
typedef bool (*qp_internal_pixel_output_callback)(qp_pixel_t* palette, uint8_t index, void* cb_arg);
|
||||
typedef bool (*qp_internal_byte_output_callback)(uint8_t byte, void* cb_arg);
|
||||
bool qp_internal_decode_palette(painter_device_t device, uint32_t pixel_count, uint8_t bits_per_pixel, qp_internal_byte_input_callback input_callback, void* input_arg, qp_pixel_t* palette, qp_internal_pixel_output_callback output_callback, void* output_arg);
|
||||
bool qp_internal_decode_grayscale(painter_device_t device, uint32_t pixel_count, uint8_t bits_per_pixel, qp_internal_byte_input_callback input_callback, void* input_arg, qp_internal_pixel_output_callback output_callback, void* output_arg);
|
||||
bool qp_internal_decode_recolor(painter_device_t device, uint32_t pixel_count, uint8_t bits_per_pixel, qp_internal_byte_input_callback input_callback, void* input_arg, qp_pixel_t fg_hsv888, qp_pixel_t bg_hsv888, qp_internal_pixel_output_callback output_callback, void* output_arg);
|
||||
bool qp_internal_send_bytes(painter_device_t device, uint32_t byte_count, qp_internal_byte_input_callback input_callback, void* input_arg, qp_internal_byte_output_callback output_callback, void* output_arg);
|
||||
|
||||
// Global variable used for interpolated pixel lookup table.
|
||||
#if QUANTUM_PAINTER_SUPPORTS_256_PALETTE
|
||||
@@ -82,4 +84,12 @@ struct qp_internal_pixel_output_state {
|
||||
|
||||
bool qp_internal_pixel_appender(qp_pixel_t* palette, uint8_t index, void* cb_arg);
|
||||
|
||||
struct qp_internal_byte_output_state {
|
||||
painter_device_t device;
|
||||
uint32_t byte_write_pos;
|
||||
uint32_t max_bytes;
|
||||
};
|
||||
|
||||
bool qp_internal_byte_appender(uint8_t byteval, void* cb_arg);
|
||||
|
||||
qp_internal_byte_input_callback qp_internal_prepare_input_state(struct qp_internal_byte_input_state* input_state, painter_compression_t compression);
|
||||
|
||||
Reference in New Issue
Block a user