diff options
author | Marek Vasut <marex@denx.de> | 2024-03-13 05:40:11 +0100 |
---|---|---|
committer | Khem Raj <raj.khem@gmail.com> | 2024-03-12 22:28:39 -0700 |
commit | 0f2a49910011b9d9857f24cb70b795f187fab776 (patch) | |
tree | 85d11dc785e024ddc1c5f87b979e57a6ad309259 /meta-oe/recipes-graphics | |
parent | 2054fda6d1dea9a0310f817492dfd743357372ad (diff) | |
download | meta-openembedded-0f2a49910011b9d9857f24cb70b795f187fab776.tar.gz |
lvgl: Replace sed patching with real patches
Replace the current awful sed hacking with real patches bound for upstream.
The sed hacking was simply not maintainable anymore.
Signed-off-by: Marek Vasut <marex@denx.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Diffstat (limited to 'meta-oe/recipes-graphics')
8 files changed, 337 insertions, 22 deletions
diff --git a/meta-oe/recipes-graphics/lvgl/files/0001-fix-drm-Default-to-XRGB8888-framebuffer.patch b/meta-oe/recipes-graphics/lvgl/files/0001-fix-drm-Default-to-XRGB8888-framebuffer.patch new file mode 100644 index 000000000..9d758cb08 --- /dev/null +++ b/meta-oe/recipes-graphics/lvgl/files/0001-fix-drm-Default-to-XRGB8888-framebuffer.patch | |||
@@ -0,0 +1,36 @@ | |||
1 | From 7b89e18c2f21e4b91b461007368df724198ac904 Mon Sep 17 00:00:00 2001 | ||
2 | From: Marek Vasut <marex@denx.de> | ||
3 | Date: Tue, 12 Mar 2024 03:13:33 +0100 | ||
4 | Subject: [PATCH 1/2] fix(drm): Default to XRGB8888 framebuffer | ||
5 | |||
6 | The ARGB8888 framebuffer format for base canvas makes little sense | ||
7 | as the base canvas is unlikely to be transparent and require alpha. | ||
8 | Use XRGB8888 framebuffer format which is more widely supported by | ||
9 | DRM drivers as base plane pixel format. | ||
10 | |||
11 | This makes e.g. i.MX8M Nano work by default. | ||
12 | |||
13 | Upstream-Status: Submitted [https://github.com/lvgl/lvgl/pull/5851] | ||
14 | Signed-off-by: Marek Vasut <marex@denx.de> | ||
15 | --- | ||
16 | This is identical fix to lv_drivers https://github.com/lvgl/lv_drivers/pull/282 | ||
17 | --- | ||
18 | src/drivers/display/drm/lv_linux_drm.c | 2 +- | ||
19 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
20 | |||
21 | diff --git a/src/drivers/display/drm/lv_linux_drm.c b/src/drivers/display/drm/lv_linux_drm.c | ||
22 | index c706f9cb2..faa2212bf 100644 | ||
23 | --- a/src/drivers/display/drm/lv_linux_drm.c | ||
24 | +++ b/src/drivers/display/drm/lv_linux_drm.c | ||
25 | @@ -24,7 +24,7 @@ | ||
26 | * DEFINES | ||
27 | *********************/ | ||
28 | #if LV_COLOR_DEPTH == 32 | ||
29 | - #define DRM_FOURCC DRM_FORMAT_ARGB8888 | ||
30 | + #define DRM_FOURCC DRM_FORMAT_XRGB8888 | ||
31 | #elif LV_COLOR_DEPTH == 16 | ||
32 | #define DRM_FOURCC DRM_FORMAT_RGB565 | ||
33 | #else | ||
34 | -- | ||
35 | 2.43.0 | ||
36 | |||
diff --git a/meta-oe/recipes-graphics/lvgl/files/0002-fix-sdl-handle-both-LV_IMAGE_SRC_FILE-and-LV_IMAGE_S.patch b/meta-oe/recipes-graphics/lvgl/files/0002-fix-sdl-handle-both-LV_IMAGE_SRC_FILE-and-LV_IMAGE_S.patch new file mode 100644 index 000000000..bd619b157 --- /dev/null +++ b/meta-oe/recipes-graphics/lvgl/files/0002-fix-sdl-handle-both-LV_IMAGE_SRC_FILE-and-LV_IMAGE_S.patch | |||
@@ -0,0 +1,63 @@ | |||
1 | From 5b7f657e8ad656e0854f2252b3bd482b966d650c Mon Sep 17 00:00:00 2001 | ||
2 | From: Marek Vasut <marex@denx.de> | ||
3 | Date: Wed, 13 Mar 2024 02:12:30 +0100 | ||
4 | Subject: [PATCH 2/2] fix(sdl): handle both LV_IMAGE_SRC_FILE and | ||
5 | LV_IMAGE_SRC_VARIABLE | ||
6 | |||
7 | The SDL image draw code currently assumes that the image source is a | ||
8 | filename and attempts to open that filename. This is not necessarily | ||
9 | the case, e.g. the lv_demo_fb uses encoded images which are of type | ||
10 | LV_IMAGE_SRC_VARIABLE and instead of filename, come with a buffer of | ||
11 | pixels. Handle the later using SDL_CreateRGBSurfaceFrom(). | ||
12 | |||
13 | Upstream-Status: Submitted [https://github.com/lvgl/lvgl/pull/5852] | ||
14 | Signed-off-by: Marek Vasut <marex@denx.de> | ||
15 | --- | ||
16 | src/draw/sdl/lv_draw_sdl.c | 30 +++++++++++++++++++++++++++--- | ||
17 | 1 file changed, 27 insertions(+), 3 deletions(-) | ||
18 | |||
19 | diff --git a/src/draw/sdl/lv_draw_sdl.c b/src/draw/sdl/lv_draw_sdl.c | ||
20 | index cbb555d94..5eee5b725 100644 | ||
21 | --- a/src/draw/sdl/lv_draw_sdl.c | ||
22 | +++ b/src/draw/sdl/lv_draw_sdl.c | ||
23 | @@ -224,10 +224,34 @@ static bool draw_to_texture(lv_draw_sdl_unit_t * u, cache_data_t * data) | ||
24 | break; | ||
25 | case LV_DRAW_TASK_TYPE_IMAGE: { | ||
26 | lv_draw_image_dsc_t * image_dsc = task->draw_dsc; | ||
27 | - const char * path = image_dsc->src; | ||
28 | - SDL_Surface * surface = IMG_Load(&path[2]); | ||
29 | + lv_image_src_t type = lv_image_src_get_type(image_dsc->src); | ||
30 | + SDL_Surface * surface = NULL; | ||
31 | + if(type == LV_IMAGE_SRC_FILE) { | ||
32 | + const char * path = image_dsc->src; | ||
33 | + surface = IMG_Load(&path[2]); | ||
34 | + } | ||
35 | + else if(type == LV_IMAGE_SRC_VARIABLE) { | ||
36 | + lv_image_dsc_t * lvd = image_dsc->src; | ||
37 | + surface = SDL_CreateRGBSurfaceFrom(lvd->data, | ||
38 | + lvd->header.w, lvd->header.h, | ||
39 | + LV_COLOR_FORMAT_GET_BPP(lvd->header.cf), | ||
40 | + lvd->header.stride, | ||
41 | +#if SDL_BYTEORDER == SDL_LIL_ENDIAN | ||
42 | + 0x00FF0000, | ||
43 | + 0x0000FF00, | ||
44 | + 0x000000FF, | ||
45 | + 0xFF000000 | ||
46 | +#else | ||
47 | + 0x0000FF00, | ||
48 | + 0x00FF0000, | ||
49 | + 0xFF000000, | ||
50 | + 0x000000FF | ||
51 | +#endif | ||
52 | + ); | ||
53 | + } | ||
54 | + | ||
55 | if(surface == NULL) { | ||
56 | - fprintf(stderr, "could not load image: %s\n", IMG_GetError()); | ||
57 | + fprintf(stderr, "could not load image\n"); | ||
58 | return false; | ||
59 | } | ||
60 | |||
61 | -- | ||
62 | 2.43.0 | ||
63 | |||
diff --git a/meta-oe/recipes-graphics/lvgl/files/0003-Make-fbdev-device-node-runtime-configurable-via-envi.patch b/meta-oe/recipes-graphics/lvgl/files/0003-Make-fbdev-device-node-runtime-configurable-via-envi.patch new file mode 100644 index 000000000..73c01cb59 --- /dev/null +++ b/meta-oe/recipes-graphics/lvgl/files/0003-Make-fbdev-device-node-runtime-configurable-via-envi.patch | |||
@@ -0,0 +1,45 @@ | |||
1 | From 85d90749a10b5f91741d37b75825935bf7cc4fb3 Mon Sep 17 00:00:00 2001 | ||
2 | From: Marek Vasut <marex@denx.de> | ||
3 | Date: Tue, 12 Mar 2024 03:00:37 +0100 | ||
4 | Subject: [PATCH 3/6] Make fbdev device node runtime configurable via | ||
5 | environment variable | ||
6 | |||
7 | Test whether $LV_VIDEO_CARD environment variable is non-NULL and in | ||
8 | case it is, use it as the video card file in lv_linux_fbdev_set_file(). | ||
9 | Otherwise fall back to /dev/fb0, i.e. the current behavior. This way, | ||
10 | it is possible to test LVGL on systems with multiple fbdev devices. | ||
11 | |||
12 | Upstream-Status: Submitted [https://github.com/lvgl/lv_port_linux_frame_buffer/pull/47] | ||
13 | Signed-off-by: Marek Vasut <marex@denx.de> | ||
14 | --- | ||
15 | main.c | 8 +++++++- | ||
16 | 1 file changed, 7 insertions(+), 1 deletion(-) | ||
17 | |||
18 | diff --git a/main.c b/main.c | ||
19 | index 9775b9c..b64a098 100644 | ||
20 | --- a/main.c | ||
21 | +++ b/main.c | ||
22 | @@ -4,13 +4,19 @@ | ||
23 | #include <pthread.h> | ||
24 | #include <time.h> | ||
25 | |||
26 | +static const char *lv_linux_get_video_card_node(const char *videocard_default) | ||
27 | +{ | ||
28 | + return getenv("LV_VIDEO_CARD") ? : videocard_default; | ||
29 | +} | ||
30 | + | ||
31 | int main(void) | ||
32 | { | ||
33 | + const char *videocard = lv_linux_get_video_card_node("/dev/fb0"); | ||
34 | lv_init(); | ||
35 | |||
36 | /*Linux frame buffer device init*/ | ||
37 | lv_display_t * disp = lv_linux_fbdev_create(); | ||
38 | - lv_linux_fbdev_set_file(disp, "/dev/fb0"); | ||
39 | + lv_linux_fbdev_set_file(disp, videocard); | ||
40 | |||
41 | /*Create a Demo*/ | ||
42 | lv_demo_widgets(); | ||
43 | -- | ||
44 | 2.43.0 | ||
45 | |||
diff --git a/meta-oe/recipes-graphics/lvgl/files/0004-Factor-out-fbdev-initialization-code.patch b/meta-oe/recipes-graphics/lvgl/files/0004-Factor-out-fbdev-initialization-code.patch new file mode 100644 index 000000000..d24d150c0 --- /dev/null +++ b/meta-oe/recipes-graphics/lvgl/files/0004-Factor-out-fbdev-initialization-code.patch | |||
@@ -0,0 +1,52 @@ | |||
1 | From 593da8e11cc5029773ad330b5d7633ee9f2fba95 Mon Sep 17 00:00:00 2001 | ||
2 | From: Marek Vasut <marex@denx.de> | ||
3 | Date: Tue, 12 Mar 2024 18:09:42 +0100 | ||
4 | Subject: [PATCH 4/6] Factor out fbdev initialization code | ||
5 | |||
6 | Pull fbdev initialization code into separate function and add ifdef | ||
7 | around it, so it can be conditionally compiled in. This is done in | ||
8 | preparation for addition of other backend initialization example | ||
9 | code. | ||
10 | |||
11 | Upstream-Status: Submitted [https://github.com/lvgl/lv_port_linux_frame_buffer/pull/47] | ||
12 | Signed-off-by: Marek Vasut <marex@denx.de> | ||
13 | --- | ||
14 | main.c | 18 ++++++++++++++---- | ||
15 | 1 file changed, 14 insertions(+), 4 deletions(-) | ||
16 | |||
17 | diff --git a/main.c b/main.c | ||
18 | index b64a098..288519c 100644 | ||
19 | --- a/main.c | ||
20 | +++ b/main.c | ||
21 | @@ -9,14 +9,24 @@ static const char *lv_linux_get_video_card_node(const char *videocard_default) | ||
22 | return getenv("LV_VIDEO_CARD") ? : videocard_default; | ||
23 | } | ||
24 | |||
25 | -int main(void) | ||
26 | +#if LV_USE_LINUX_FBDEV | ||
27 | +static void lv_linux_disp_init(void) | ||
28 | { | ||
29 | const char *videocard = lv_linux_get_video_card_node("/dev/fb0"); | ||
30 | - lv_init(); | ||
31 | - | ||
32 | - /*Linux frame buffer device init*/ | ||
33 | lv_display_t * disp = lv_linux_fbdev_create(); | ||
34 | + | ||
35 | lv_linux_fbdev_set_file(disp, videocard); | ||
36 | +} | ||
37 | +#else | ||
38 | +#error Unsupported configuration | ||
39 | +#endif | ||
40 | + | ||
41 | +int main(void) | ||
42 | +{ | ||
43 | + lv_init(); | ||
44 | + | ||
45 | + /*Linux display device init*/ | ||
46 | + lv_linux_disp_init(); | ||
47 | |||
48 | /*Create a Demo*/ | ||
49 | lv_demo_widgets(); | ||
50 | -- | ||
51 | 2.43.0 | ||
52 | |||
diff --git a/meta-oe/recipes-graphics/lvgl/files/0005-Add-DRM-KMS-example-support.patch b/meta-oe/recipes-graphics/lvgl/files/0005-Add-DRM-KMS-example-support.patch new file mode 100644 index 000000000..9ee7a7f19 --- /dev/null +++ b/meta-oe/recipes-graphics/lvgl/files/0005-Add-DRM-KMS-example-support.patch | |||
@@ -0,0 +1,59 @@ | |||
1 | From dabf40559428733413432afa29598bc145aa6636 Mon Sep 17 00:00:00 2001 | ||
2 | From: Marek Vasut <marex@denx.de> | ||
3 | Date: Tue, 12 Mar 2024 03:08:13 +0100 | ||
4 | Subject: [PATCH 5/6] Add DRM/KMS example support | ||
5 | |||
6 | Extend the main.c to support both legacy fbdev and DRM/KMS initialization. | ||
7 | |||
8 | To use legacy fbdev support, adjust lv_conf.h as follows: | ||
9 | LV_USE_LINUX_FBDEV=1 | ||
10 | LV_USE_LINUX_DRM=0 | ||
11 | |||
12 | To use DRM/KMS support, adjust lv_conf.h as follows: | ||
13 | LV_USE_LINUX_FBDEV=0 | ||
14 | LV_USE_LINUX_DRM=1 | ||
15 | |||
16 | Upstream-Status: Submitted [https://github.com/lvgl/lv_port_linux_frame_buffer/pull/47] | ||
17 | Signed-off-by: Marek Vasut <marex@denx.de> | ||
18 | --- | ||
19 | CMakeLists.txt | 5 ++++- | ||
20 | main.c | 8 ++++++++ | ||
21 | 2 files changed, 12 insertions(+), 1 deletion(-) | ||
22 | |||
23 | diff --git a/CMakeLists.txt b/CMakeLists.txt | ||
24 | index d91b196..c1cfb7f 100644 | ||
25 | --- a/CMakeLists.txt | ||
26 | +++ b/CMakeLists.txt | ||
27 | @@ -12,6 +12,9 @@ target_include_directories(lvgl PUBLIC ${PROJECT_SOURCE_DIR}) | ||
28 | |||
29 | add_executable(main main.c mouse_cursor_icon.c) | ||
30 | |||
31 | -target_link_libraries(main lvgl lvgl::examples lvgl::demos lvgl::thorvg ${SDL2_LIBRARIES} m pthread) | ||
32 | +include(${CMAKE_CURRENT_LIST_DIR}/lvgl/tests/FindLibDRM.cmake) | ||
33 | +include_directories(${Libdrm_INCLUDE_DIRS}) | ||
34 | + | ||
35 | +target_link_libraries(main lvgl lvgl::examples lvgl::demos lvgl::thorvg ${SDL2_LIBRARIES} ${Libdrm_LIBRARIES} m pthread) | ||
36 | add_custom_target (run COMMAND ${EXECUTABLE_OUTPUT_PATH}/main DEPENDS main) | ||
37 | |||
38 | diff --git a/main.c b/main.c | ||
39 | index 288519c..ab4e936 100644 | ||
40 | --- a/main.c | ||
41 | +++ b/main.c | ||
42 | @@ -17,6 +17,14 @@ static void lv_linux_disp_init(void) | ||
43 | |||
44 | lv_linux_fbdev_set_file(disp, videocard); | ||
45 | } | ||
46 | +#elif LV_USE_LINUX_DRM | ||
47 | +static void lv_linux_disp_init(void) | ||
48 | +{ | ||
49 | + const char *videocard = lv_linux_get_video_card_node("/dev/dri/card0"); | ||
50 | + lv_display_t * disp = lv_linux_drm_create(); | ||
51 | + | ||
52 | + lv_linux_drm_set_file(disp, videocard, -1); | ||
53 | +} | ||
54 | #else | ||
55 | #error Unsupported configuration | ||
56 | #endif | ||
57 | -- | ||
58 | 2.43.0 | ||
59 | |||
diff --git a/meta-oe/recipes-graphics/lvgl/files/0006-Add-SDL2-example-support.patch b/meta-oe/recipes-graphics/lvgl/files/0006-Add-SDL2-example-support.patch new file mode 100644 index 000000000..691ee80b5 --- /dev/null +++ b/meta-oe/recipes-graphics/lvgl/files/0006-Add-SDL2-example-support.patch | |||
@@ -0,0 +1,69 @@ | |||
1 | From b202ce51f7b68c460fcd1b6d9c3ffa8aaf2baaf6 Mon Sep 17 00:00:00 2001 | ||
2 | From: Marek Vasut <marex@denx.de> | ||
3 | Date: Tue, 12 Mar 2024 19:05:38 +0100 | ||
4 | Subject: [PATCH 6/6] Add SDL2 example support | ||
5 | |||
6 | Extend the main.c to support both legacy fbdev, DRM/KMS, SDL2 initialization. | ||
7 | The SDL2 window resolution can be configured using environment variables | ||
8 | LV_VIDEO_WIDTH and LV_VIDEO_HEIGHT and defaults to 800 x 480 . | ||
9 | |||
10 | To use legacy fbdev support, adjust lv_conf.h as follows: | ||
11 | LV_USE_LINUX_FBDEV=1 | ||
12 | LV_USE_LINUX_DRM=0 | ||
13 | LV_USE_SDL=0 | ||
14 | |||
15 | To use DRM/KMS support, adjust lv_conf.h as follows: | ||
16 | LV_USE_LINUX_FBDEV=0 | ||
17 | LV_USE_LINUX_DRM=1 | ||
18 | LV_USE_SDL=0 | ||
19 | |||
20 | To use SDL2 support, adjust lv_conf.h as follows: | ||
21 | LV_USE_LINUX_FBDEV=0 | ||
22 | LV_USE_LINUX_DRM=0 | ||
23 | LV_USE_SDL=1 | ||
24 | |||
25 | Upstream-Status: Submitted [https://github.com/lvgl/lv_port_linux_frame_buffer/pull/47] | ||
26 | Signed-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 | |||
32 | diff --git a/CMakeLists.txt b/CMakeLists.txt | ||
33 | index 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 | |||
48 | diff --git a/main.c b/main.c | ||
49 | index 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 | -- | ||
68 | 2.43.0 | ||
69 | |||
diff --git a/meta-oe/recipes-graphics/lvgl/lvgl-demo-fb_9.0.0.bb b/meta-oe/recipes-graphics/lvgl/lvgl-demo-fb_9.0.0.bb index ee3d5ab20..70df822cc 100644 --- a/meta-oe/recipes-graphics/lvgl/lvgl-demo-fb_9.0.0.bb +++ b/meta-oe/recipes-graphics/lvgl/lvgl-demo-fb_9.0.0.bb | |||
@@ -7,6 +7,12 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=802d3d83ae80ef5f343050bf96cce3a4 \ | |||
7 | SRC_URI = "\ | 7 | SRC_URI = "\ |
8 | git://github.com/lvgl/lv_port_linux_frame_buffer.git;protocol=https;branch=master;name=demo \ | 8 | git://github.com/lvgl/lv_port_linux_frame_buffer.git;protocol=https;branch=master;name=demo \ |
9 | git://github.com/lvgl/lvgl;protocol=https;branch=master;name=lvgl;subdir=git/lvgl \ | 9 | git://github.com/lvgl/lvgl;protocol=https;branch=master;name=lvgl;subdir=git/lvgl \ |
10 | file://0001-fix-drm-Default-to-XRGB8888-framebuffer.patch;patchdir=lvgl \ | ||
11 | file://0002-fix-sdl-handle-both-LV_IMAGE_SRC_FILE-and-LV_IMAGE_S.patch;patchdir=lvgl \ | ||
12 | file://0003-Make-fbdev-device-node-runtime-configurable-via-envi.patch \ | ||
13 | file://0004-Factor-out-fbdev-initialization-code.patch \ | ||
14 | file://0005-Add-DRM-KMS-example-support.patch \ | ||
15 | file://0006-Add-SDL2-example-support.patch \ | ||
10 | " | 16 | " |
11 | SRCREV_demo = "dccc6a1ca48372aa993dbea7a8e17dec6f42df6a" | 17 | SRCREV_demo = "dccc6a1ca48372aa993dbea7a8e17dec6f42df6a" |
12 | SRCREV_lvgl = "e29d35b43c509b6d7189f5dac87139441669ae66" | 18 | SRCREV_lvgl = "e29d35b43c509b6d7189f5dac87139441669ae66" |
@@ -26,23 +32,9 @@ S = "${WORKDIR}/git" | |||
26 | TARGET_CFLAGS += "-I${STAGING_INCDIR}/libdrm" | 32 | TARGET_CFLAGS += "-I${STAGING_INCDIR}/libdrm" |
27 | 33 | ||
28 | do_configure:prepend() { | 34 | do_configure:prepend() { |
29 | # Fix ARGB8888 base plane format misuse again | ||
30 | sed -i 's@ARGB8888@XRGB8888@g' "${S}/lvgl/src/drivers/display/drm/lv_linux_drm.c" | ||
31 | |||
32 | if [ "${LVGL_CONFIG_USE_DRM}" -eq 1 ] ; then | ||
33 | # Add libdrm build dependency | ||
34 | sed -i '/^target_link_libraries/ s@pthread@& drm@' "${S}/CMakeLists.txt" | ||
35 | # Switch from fbdev to drm usage | ||
36 | sed -i "s@lv_linux_fbdev_set_file.*@lv_linux_drm_set_file(disp, \"${LVGL_CONFIG_DRM_CARD}\", -1);@g" "${S}/main.c" | ||
37 | sed -i 's@fbdev@drm@g' "${S}/main.c" | ||
38 | fi | ||
39 | |||
40 | if [ "${LVGL_CONFIG_USE_SDL}" -eq 1 ] ; then | 35 | if [ "${LVGL_CONFIG_USE_SDL}" -eq 1 ] ; then |
41 | # Add libsdl build dependency | 36 | # Add libsdl build dependency, SDL2_image has no cmake file |
42 | sed -i '/^target_link_libraries/ s@pthread@& SDL2 SDL2_image@' "${S}/CMakeLists.txt" | 37 | sed -i '/^target_link_libraries/ s@pthread@& SDL2_image@' "${S}/CMakeLists.txt" |
43 | # Switch from fbdev to sdl usage | ||
44 | sed -i 's@lv_linux_fbdev_create()@lv_sdl_window_create(atoi(getenv("LV_VIDEO_WIDTH") ? : "800"), atoi(getenv("LV_VIDEO_HEIGHT") ? : "480"))@g' "${S}/main.c" | ||
45 | sed -i '/lv_linux_fbdev_set_file/ d' "${S}/main.c" | ||
46 | fi | 38 | fi |
47 | } | 39 | } |
48 | 40 | ||
diff --git a/meta-oe/recipes-graphics/lvgl/lvgl_9.0.0.bb b/meta-oe/recipes-graphics/lvgl/lvgl_9.0.0.bb index d147e8920..7f1f57a2b 100644 --- a/meta-oe/recipes-graphics/lvgl/lvgl_9.0.0.bb +++ b/meta-oe/recipes-graphics/lvgl/lvgl_9.0.0.bb | |||
@@ -8,7 +8,11 @@ SUMMARY = "Light and Versatile Graphics Library" | |||
8 | LICENSE = "MIT" | 8 | LICENSE = "MIT" |
9 | LIC_FILES_CHKSUM = "file://LICENCE.txt;md5=bf1198c89ae87f043108cea62460b03a" | 9 | LIC_FILES_CHKSUM = "file://LICENCE.txt;md5=bf1198c89ae87f043108cea62460b03a" |
10 | 10 | ||
11 | SRC_URI = "git://github.com/lvgl/lvgl;protocol=https;branch=master" | 11 | SRC_URI = "\ |
12 | git://github.com/lvgl/lvgl;protocol=https;branch=master \ | ||
13 | file://0001-fix-drm-Default-to-XRGB8888-framebuffer.patch \ | ||
14 | file://0002-fix-sdl-handle-both-LV_IMAGE_SRC_FILE-and-LV_IMAGE_S.patch \ | ||
15 | " | ||
12 | SRCREV = "e29d35b43c509b6d7189f5dac87139441669ae66" | 16 | SRCREV = "e29d35b43c509b6d7189f5dac87139441669ae66" |
13 | PV .= "+git${SRCPV}" | 17 | PV .= "+git${SRCPV}" |
14 | 18 | ||
@@ -22,11 +26,6 @@ ALLOW_EMPTY:${PN} = "1" | |||
22 | PACKAGECONFIG ??= "drm" | 26 | PACKAGECONFIG ??= "drm" |
23 | require lv-conf.inc | 27 | require lv-conf.inc |
24 | 28 | ||
25 | do_configure:prepend() { | ||
26 | # Fix ARGB8888 base plane format misuse again | ||
27 | sed -i 's@ARGB8888@XRGB8888@g' "${S}/src/drivers/display/drm/lv_linux_drm.c" | ||
28 | } | ||
29 | |||
30 | FILES:${PN}-dev += "\ | 29 | FILES:${PN}-dev += "\ |
31 | ${includedir}/${PN}/ \ | 30 | ${includedir}/${PN}/ \ |
32 | ${includedir}/${PN}/lvgl/ \ | 31 | ${includedir}/${PN}/lvgl/ \ |