QP: Correct rotation and offset when using LVGL (#19713)
Co-authored-by: Nick Brassel <nick@tzarc.org> Co-authored-by: Joel Challis <git@zvecr.com>
This commit is contained in:
parent
7717630390
commit
49c912f9b4
1 changed files with 13 additions and 7 deletions
|
@ -109,13 +109,19 @@ bool qp_lvgl_attach(painter_device_t device) {
|
||||||
|
|
||||||
selected_display = device;
|
selected_display = device;
|
||||||
|
|
||||||
|
uint16_t panel_width, panel_height, offset_x, offset_y;
|
||||||
|
qp_get_geometry(selected_display, &panel_width, &panel_height, NULL, &offset_x, &offset_y);
|
||||||
|
|
||||||
|
panel_width -= offset_x;
|
||||||
|
panel_height -= offset_y;
|
||||||
|
|
||||||
// Setting up display driver
|
// Setting up display driver
|
||||||
static lv_disp_drv_t disp_drv; /*Descriptor of a display driver*/
|
static lv_disp_drv_t disp_drv; /*Descriptor of a display driver*/
|
||||||
lv_disp_drv_init(&disp_drv); /*Basic initialization*/
|
lv_disp_drv_init(&disp_drv); /*Basic initialization*/
|
||||||
disp_drv.flush_cb = qp_lvgl_flush; /*Set your driver function*/
|
disp_drv.flush_cb = qp_lvgl_flush; /*Set your driver function*/
|
||||||
disp_drv.draw_buf = &draw_buf; /*Assign the buffer to the display*/
|
disp_drv.draw_buf = &draw_buf; /*Assign the buffer to the display*/
|
||||||
disp_drv.hor_res = driver->panel_width; /*Set the horizontal resolution of the display*/
|
disp_drv.hor_res = panel_width; /*Set the horizontal resolution of the display*/
|
||||||
disp_drv.ver_res = driver->panel_height; /*Set the vertical resolution of the display*/
|
disp_drv.ver_res = panel_height; /*Set the vertical resolution of the display*/
|
||||||
lv_disp_drv_register(&disp_drv); /*Finally register the driver*/
|
lv_disp_drv_register(&disp_drv); /*Finally register the driver*/
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
Loading…
Reference in a new issue