Skip to content

Commit

Permalink
QP: Correct rotation and offset when using LVGL (qmk#19713)
Browse files Browse the repository at this point in the history
Co-authored-by: Nick Brassel <[email protected]>
Co-authored-by: Joel Challis <[email protected]>
  • Loading branch information
3 people authored Feb 2, 2023
1 parent 7717630 commit 49c912f
Showing 1 changed file with 13 additions and 7 deletions.
20 changes: 13 additions & 7 deletions quantum/painter/lvgl/qp_lvgl.c
Original file line number Diff line number Diff line change
Expand Up @@ -109,14 +109,20 @@ bool qp_lvgl_attach(painter_device_t 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
static lv_disp_drv_t disp_drv; /*Descriptor of a display driver*/
lv_disp_drv_init(&disp_drv); /*Basic initialization*/
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.hor_res = driver->panel_width; /*Set the horizontal resolution of the display*/
disp_drv.ver_res = driver->panel_height; /*Set the vertical resolution of the display*/
lv_disp_drv_register(&disp_drv); /*Finally register the driver*/
static lv_disp_drv_t disp_drv; /*Descriptor of a display driver*/
lv_disp_drv_init(&disp_drv); /*Basic initialization*/
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.hor_res = panel_width; /*Set the horizontal 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*/

return true;
}
Expand Down

0 comments on commit 49c912f

Please sign in to comment.