meta-digi/meta-digi-dey/recipes-graphics/lvgl/lvgl-demo/0002-Miscellaneous-improvem...

88 lines
2.8 KiB
Diff

From: Gabriel Valcazar <gabriel.valcazar@digi.com>
Date: Wed, 8 Nov 2023 13:25:25 +0100
Subject: [PATCH] Miscellaneous improvements:
* Change LV_COLOR_DEPTH from 32 to 16 to fix output on fbdev backend
* Increase DISP_BUF_SIZE to 8 MiB to improve performance on fbdev and drm
backends
* Create common macros for app dimensions
Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
---
lv_conf.h | 2 +-
lv_drv_conf.h | 6 ++++--
main.c | 9 +++++----
3 files changed, 10 insertions(+), 7 deletions(-)
diff --git a/lv_conf.h b/lv_conf.h
index 3137b1a..3f36997 100644
--- a/lv_conf.h
+++ b/lv_conf.h
@@ -30,7 +30,7 @@ extern uint32_t custom_tick_get(void);
*====================*/
/*Color depth: 1 (1 byte per pixel), 8 (RGB332), 16 (RGB565), 32 (ARGB8888)*/
-#define LV_COLOR_DEPTH 32
+#define LV_COLOR_DEPTH 16
/*Swap the 2 bytes of RGB565 color. Useful if the display has an 8-bit interface (e.g. SPI)*/
#define LV_COLOR_16_SWAP 0
diff --git a/lv_drv_conf.h b/lv_drv_conf.h
index d40e703..554eba9 100644
--- a/lv_drv_conf.h
+++ b/lv_drv_conf.h
@@ -32,6 +32,8 @@
#define LV_DRV_DISP_INCLUDE <stdint.h> /*Dummy include by default*/
#define LV_DRV_DISP_CMD_DATA(val) /*pin_x_set(val)*/ /*Set the command/data pin to 'val'*/
#define LV_DRV_DISP_RST(val) /*pin_x_set(val)*/ /*Set the reset pin to 'val'*/
+#define LV_DRV_DISP_HOR_RES 800
+#define LV_DRV_DISP_VER_RES 480
/*---------
* SPI
@@ -95,8 +97,8 @@
#endif
#if USE_SDL || USE_SDL_GPU
-# define SDL_HOR_RES 480
-# define SDL_VER_RES 320
+# define SDL_HOR_RES LV_DRV_DISP_HOR_RES
+# define SDL_VER_RES LV_DRV_DISP_VER_RES
/* Scale window by this factor (useful when simulating small screens) */
# define SDL_ZOOM 1
diff --git a/main.c b/main.c
index bb0248a..f3fb69e 100644
--- a/main.c
+++ b/main.c
@@ -18,7 +18,8 @@
static void backend_init(void);
-#define DISP_BUF_SIZE (128 * 1024)
+/* Originally 128 KiB, increase to 8 MiB to improve performance */
+#define DISP_BUF_SIZE (8 * 1024 * 1024)
int main(void)
{
@@ -45,7 +46,7 @@ static void backend_init(void)
lv_wayland_init();
/* Create a display */
- lv_disp_t * disp = lv_wayland_create_window(800, 480, "lvgl wayland demo", NULL /*close_cb*/);
+ lv_disp_t * disp = lv_wayland_create_window(LV_DRV_DISP_HOR_RES, LV_DRV_DISP_VER_RES, "lvgl wayland demo", NULL /*close_cb*/);
#elif USE_SDL
sdl_init();
@@ -151,8 +152,8 @@ static void backend_init(void)
lv_disp_drv_init(&disp_drv);
disp_drv.draw_buf = &disp_buf;
disp_drv.flush_cb = fbdev_flush;
- disp_drv.hor_res = 800;
- disp_drv.ver_res = 480;
+ disp_drv.hor_res = LV_DRV_DISP_HOR_RES;
+ disp_drv.ver_res = LV_DRV_DISP_VER_RES;
lv_disp_drv_register(&disp_drv);
evdev_init();