1From b202ce51f7b68c460fcd1b6d9c3ffa8aaf2baaf6 Mon Sep 17 00:00:00 2001 2From: Marek Vasut <marex@denx.de> 3Date: Tue, 12 Mar 2024 19:05:38 +0100 4Subject: [PATCH 6/6] Add SDL2 example support 5 6Extend the main.c to support both legacy fbdev, DRM/KMS, SDL2 initialization. 7The SDL2 window resolution can be configured using environment variables 8LV_VIDEO_WIDTH and LV_VIDEO_HEIGHT and defaults to 800 x 480 . 9 10To use legacy fbdev support, adjust lv_conf.h as follows: 11LV_USE_LINUX_FBDEV=1 12LV_USE_LINUX_DRM=0 13LV_USE_SDL=0 14 15To use DRM/KMS support, adjust lv_conf.h as follows: 16LV_USE_LINUX_FBDEV=0 17LV_USE_LINUX_DRM=1 18LV_USE_SDL=0 19 20To use SDL2 support, adjust lv_conf.h as follows: 21LV_USE_LINUX_FBDEV=0 22LV_USE_LINUX_DRM=0 23LV_USE_SDL=1 24 25Upstream-Status: Submitted [https://github.com/lvgl/lv_port_linux_frame_buffer/pull/47] 26Signed-off-by: Marek Vasut <marex@denx.de> 27--- 28 CMakeLists.txt | 6 +++++- 29 main.c | 8 ++++++++ 30 2 files changed, 13 insertions(+), 1 deletion(-) 31 32diff --git a/CMakeLists.txt b/CMakeLists.txt 33index c1cfb7f..658193f 100644 34--- a/CMakeLists.txt 35+++ b/CMakeLists.txt 36@@ -15,6 +15,10 @@ add_executable(main main.c mouse_cursor_icon.c) 37 include(${CMAKE_CURRENT_LIST_DIR}/lvgl/tests/FindLibDRM.cmake) 38 include_directories(${Libdrm_INCLUDE_DIRS}) 39 40-target_link_libraries(main lvgl lvgl::examples lvgl::demos lvgl::thorvg ${SDL2_LIBRARIES} ${Libdrm_LIBRARIES} m pthread) 41+find_package(SDL2) 42+find_package(SDL2_image) 43+include_directories(${SDL2_INCLUDE_DIRS} ${SDL2_IMAGE_INCLUDE_DIRS}) 44+ 45+target_link_libraries(main lvgl lvgl::examples lvgl::demos lvgl::thorvg ${SDL2_LIBRARIES} ${SDL2_IMAGE_LIBRARIES} ${Libdrm_LIBRARIES} m pthread) 46 add_custom_target (run COMMAND ${EXECUTABLE_OUTPUT_PATH}/main DEPENDS main) 47 48diff --git a/main.c b/main.c 49index ab4e936..4b66ebc 100644 50--- a/main.c 51+++ b/main.c 52@@ -25,6 +25,14 @@ static void lv_linux_disp_init(void) 53 54 lv_linux_drm_set_file(disp, videocard, -1); 55 } 56+#elif LV_USE_SDL 57+static void lv_linux_disp_init(void) 58+{ 59+ const int width = atoi(getenv("LV_VIDEO_WIDTH") ? : "800"); 60+ const int height = atoi(getenv("LV_VIDEO_HEIGHT") ? : "480"); 61+ 62+ lv_sdl_window_create(width, height); 63+} 64 #else 65 #error Unsupported configuration 66 #endif 67-- 682.43.0 69 70