[QP] Add support for OLED, variable framebuffer bpp (#19997)
Co-authored-by: Pablo Martínez <58857054+elpekenin@users.noreply.github.com> Co-authored-by: Dasky <32983009+daskygit@users.noreply.github.com> Fixup delta frame coordinates after #20296.
This commit is contained in:
parent
48d9140cfc
commit
8e614250b4
51 changed files with 1610 additions and 497 deletions
|
@ -115,6 +115,7 @@ typedef struct qgf_frame_info_t {
|
|||
painter_compression_t compression_scheme;
|
||||
uint8_t bpp;
|
||||
bool has_palette;
|
||||
bool is_panel_native;
|
||||
bool is_delta;
|
||||
uint16_t left;
|
||||
uint16_t top;
|
||||
|
@ -143,7 +144,7 @@ static bool qp_drawimage_prepare_frame_for_stream_read(painter_device_t device,
|
|||
}
|
||||
|
||||
// Parse out the frame info
|
||||
if (!qgf_parse_frame_descriptor(&frame_descriptor, &info->bpp, &info->has_palette, &info->is_delta, &info->compression_scheme, &info->delay)) {
|
||||
if (!qgf_parse_frame_descriptor(&frame_descriptor, &info->bpp, &info->has_palette, &info->is_panel_native, &info->is_delta, &info->compression_scheme, &info->delay)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -236,8 +237,8 @@ static bool qp_drawimage_recolor_impl(painter_device_t device, uint16_t x, uint1
|
|||
if (frame_info->is_delta) {
|
||||
l = x + frame_info->left;
|
||||
t = y + frame_info->top;
|
||||
r = x + frame_info->right - 1;
|
||||
b = y + frame_info->bottom - 1;
|
||||
r = x + frame_info->right;
|
||||
b = y + frame_info->bottom;
|
||||
} else {
|
||||
l = x;
|
||||
t = y;
|
||||
|
@ -263,7 +264,7 @@ static bool qp_drawimage_recolor_impl(painter_device_t device, uint16_t x, uint1
|
|||
}
|
||||
|
||||
bool ret = false;
|
||||
if (frame_info->bpp <= 8) {
|
||||
if (!frame_info->is_panel_native) {
|
||||
// Set up the output state
|
||||
qp_internal_pixel_output_state_t output_state = {.device = device, .pixel_write_pos = 0, .max_pixels = qp_internal_num_pixels_in_buffer(device)};
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue