feat(st7789.c): Initial support for display rotation control using LVGL
This commit is contained in:
parent
ffae578a39
commit
0e29128b3b
|
@ -122,6 +122,22 @@ void st7789_enable_backlight(lv_disp_drv_t *drv, bool backlight)
|
||||||
* account that gap, this is not necessary in all orientations. */
|
* account that gap, this is not necessary in all orientations. */
|
||||||
void st7789_flush(lv_disp_drv_t * drv, const lv_area_t * area, lv_color_t * color_map)
|
void st7789_flush(lv_disp_drv_t * drv, const lv_area_t * area, lv_color_t * color_map)
|
||||||
{
|
{
|
||||||
|
static lv_disp_rot_t prev_rotation = LV_DISP_ROT_NONE;
|
||||||
|
|
||||||
|
lv_disp_t *display = (lv_disp_t *) drv;
|
||||||
|
lv_disp_rot_t rotation = lv_disp_get_rotation(display);
|
||||||
|
|
||||||
|
if (rotation != prev_rotation) {
|
||||||
|
/* Update rotation */
|
||||||
|
|
||||||
|
/* TODO Handle all other rotations */
|
||||||
|
if (LV_DISP_ROT_180 == rotation) {
|
||||||
|
st7789_set_orientation(drv, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
prev_rotation = rotation;
|
||||||
|
}
|
||||||
|
|
||||||
uint8_t data[4] = {0};
|
uint8_t data[4] = {0};
|
||||||
|
|
||||||
uint16_t offsetx1 = area->x1;
|
uint16_t offsetx1 = area->x1;
|
||||||
|
@ -138,8 +154,13 @@ void st7789_flush(lv_disp_drv_t * drv, const lv_area_t * area, lv_color_t * colo
|
||||||
|
|
||||||
#elif (LV_HOR_RES_MAX == 240) && (LV_VER_RES_MAX == 240)
|
#elif (LV_HOR_RES_MAX == 240) && (LV_VER_RES_MAX == 240)
|
||||||
#if (CONFIG_LV_DISPLAY_ORIENTATION_PORTRAIT)
|
#if (CONFIG_LV_DISPLAY_ORIENTATION_PORTRAIT)
|
||||||
offsetx1 += 80;
|
if (LV_DISP_ROT_NONE == rotation) {
|
||||||
offsetx2 += 80;
|
offsetx1 += 80;
|
||||||
|
offsetx2 += 80;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
|
||||||
|
}
|
||||||
#elif (CONFIG_LV_DISPLAY_ORIENTATION_LANDSCAPE_INVERTED)
|
#elif (CONFIG_LV_DISPLAY_ORIENTATION_LANDSCAPE_INVERTED)
|
||||||
offsety1 += 80;
|
offsety1 += 80;
|
||||||
offsety2 += 80;
|
offsety2 += 80;
|
||||||
|
|
Loading…
Reference in a new issue