diff --git a/Kconfig b/Kconfig index f5aab0db9f..098cdb73aa 100644 --- a/Kconfig +++ b/Kconfig @@ -1,4 +1,4 @@ -# Kconfig file for LVGL v9.0.0 +# Kconfig file for LVGL v9.1.0 menu "LVGL configuration" diff --git a/env_support/cmsis-pack/LVGL.lvgl.9.0.1-dev2.pack b/env_support/cmsis-pack/LVGL.lvgl.9.1.0.pack similarity index 72% rename from env_support/cmsis-pack/LVGL.lvgl.9.0.1-dev2.pack rename to env_support/cmsis-pack/LVGL.lvgl.9.1.0.pack index 4436155316..ff287e059c 100644 Binary files a/env_support/cmsis-pack/LVGL.lvgl.9.0.1-dev2.pack and b/env_support/cmsis-pack/LVGL.lvgl.9.1.0.pack differ diff --git a/env_support/cmsis-pack/LVGL.lvgl.pdsc b/env_support/cmsis-pack/LVGL.lvgl.pdsc index e69ba16d8b..6f42e55068 100644 --- a/env_support/cmsis-pack/LVGL.lvgl.pdsc +++ b/env_support/cmsis-pack/LVGL.lvgl.pdsc @@ -2,7 +2,7 @@ - + LVGL lvgl LVGL (Light and Versatile Graphics Library) is a free and open-source graphics library providing everything you need to create an embedded GUI with easy-to-use graphical elements, beautiful visual effects and a low memory footprint. @@ -36,12 +36,15 @@ https://github.com/lvgl/lvgl.git - - - LVGL 9.0.1-dev - - Improves benchmark statistics. - - Some fixes + + - LVGL 9.1.0 + - See Change Log - + + - LVGL 8.4.0 + - Some minor fixes + + - LVGL 9.0.0 - Implements a New Render Architecture that enables parallel processing - Accelerates SW-Render with NEON and Helium technology for Cortex architectures. @@ -236,7 +239,7 @@ - Support All Cortex-M based processors + Support NEON based processors @@ -251,20 +254,23 @@ - - - - - - Support All Cortex-M based processors - + + + + + + + + + + Require LVGL Essential Service @@ -392,7 +398,7 @@ --> - + LVGL (Light and Versatile Graphics Library) is a free and open-source graphics library providing everything you need to create an embedded GUI with easy-to-use graphical elements, beautiful visual effects and a low memory footprint. @@ -430,6 +436,7 @@ + @@ -438,6 +445,9 @@ + + + @@ -454,7 +464,6 @@ - @@ -478,7 +487,8 @@ - + + @@ -631,7 +641,7 @@ - + @@ -907,15 +917,33 @@ - - Porting Templates + + Porting Templates for display devices. - + + + + + Porting Templates for STM32 devices. + + + + + + + + Porting Templates for input devices. + - + + + + + Porting Templates for the file system. + @@ -1011,6 +1039,8 @@ + + @@ -1250,6 +1280,21 @@ + + Add API for file access via LittleFs + + + + + + + +/*! \brief enable LittleFs file access */ +#define LV_USE_FS_LITTLEFS 1 + + + + - + @@ -1762,7 +1807,6 @@ - @@ -1780,7 +1824,7 @@ - + @@ -1871,7 +1915,7 @@ - + diff --git a/env_support/cmsis-pack/LVGL.pidx b/env_support/cmsis-pack/LVGL.pidx index 4f836d7f79..efc91bbfea 100644 --- a/env_support/cmsis-pack/LVGL.pidx +++ b/env_support/cmsis-pack/LVGL.pidx @@ -2,8 +2,8 @@ LVGL https://raw.githubusercontent.com/lvgl/lvgl/master/env_support/cmsis-pack/ - 2024-02-06 + 2024-03-19 - + diff --git a/env_support/cmsis-pack/README.md b/env_support/cmsis-pack/README.md index 10b2b2c321..3e17307c3f 100644 --- a/env_support/cmsis-pack/README.md +++ b/env_support/cmsis-pack/README.md @@ -117,7 +117,7 @@ remove the misleading guide above this code segment. #define LV_DRAW_BUF_STRIDE_ALIGN 4 #define LV_ATTRIBUTE_MEM_ALIGN __attribute__((aligned(4))) ``` -Make sure `LV_MEM_SIZE` is no less than `(96*1024U)`. +Make sure `LV_MEM_SIZE` is no less than `(128*1024U)`. 8. Remove following macro definitions in the `3rd party libraries` section: @@ -125,6 +125,7 @@ Make sure `LV_MEM_SIZE` is no less than `(96*1024U)`. - \#define LV_USE_FS_POSIX 0 - \#define LV_USE_FS_WIN32 0 - \#define LV_USE_FS_FATFS 0 + - #define LV_USE_FS_LITTLEFS 0 - #define LV_USE_FS_MEMFS 0 - \#define LV_USE_LODEPNG 0 - #define LV_USE_LIBPNG 0 diff --git a/env_support/cmsis-pack/lv_conf_cmsis.h b/env_support/cmsis-pack/lv_conf_cmsis.h index b481aa4a19..244bcfe8e6 100644 --- a/env_support/cmsis-pack/lv_conf_cmsis.h +++ b/env_support/cmsis-pack/lv_conf_cmsis.h @@ -1,6 +1,6 @@ /** * @file lv_conf.h - * Configuration file for v9.0.1-dev + * Configuration file for v9.1.0 */ /* clang-format off */ @@ -9,7 +9,14 @@ #ifndef LV_CONF_H #define LV_CONF_H -#include "RTE_Components.h" +#if defined(_RTE_) + #include "RTE_Components.h" +#endif + +/*If you need to include anything here, do it inside the `__ASSEMBLY__` guard */ +#if 0 && defined(__ASSEMBLY__) +#include "my_include.h" +#endif /*==================== COLOR SETTINGS @@ -36,7 +43,7 @@ #if LV_USE_STDLIB_MALLOC == LV_STDLIB_BUILTIN /*Size of the memory available for `lv_malloc()` in bytes (>= 2kB)*/ - #define LV_MEM_SIZE (96 * 1024U) /*[bytes]*/ + #define LV_MEM_SIZE (128 * 1024U) /*[bytes]*/ /*Size of the memory expand for `lv_malloc()` in bytes*/ #define LV_MEM_POOL_EXPAND_SIZE 0 @@ -87,7 +94,15 @@ #define LV_DRAW_BUF_STRIDE_ALIGN 1 /*Align the start address of draw_buf addresses to this bytes*/ -#define LV_DRAW_BUF_ALIGN 1 +#define LV_DRAW_BUF_ALIGN 4 + +/* If a widget has `style_opa < 255` (not `bg_opa`, `text_opa` etc) or not NORMAL blend mode + * it is buffered into a "simple" layer before rendering. The widget can be buffered in smaller chunks. + * "Transformed layers" (if `transform_angle/zoom` are set) use larger buffers + * and can't be drawn in chunks. */ + +/*The target buffer size for simple layer chunks.*/ +#define LV_DRAW_LAYER_SIMPLE_BUF_SIZE (24 * 1024) /*[bytes]*/ #define LV_USE_DRAW_SW 1 #if LV_USE_DRAW_SW == 1 @@ -96,13 +111,8 @@ * > 1 means multiply threads will render the screen in parallel */ #define LV_DRAW_SW_DRAW_UNIT_CNT 1 - /* If a widget has `style_opa < 255` (not `bg_opa`, `text_opa` etc) or not NORMAL blend mode - * it is buffered into a "simple" layer before rendering. The widget can be buffered in smaller chunks. - * "Transformed layers" (if `transform_angle/zoom` are set) use larger buffers - * and can't be drawn in chunks. */ - - /*The target buffer size for simple layer chunks.*/ - #define LV_DRAW_SW_LAYER_SIMPLE_BUF_SIZE (24 * 1024) /*[bytes]*/ + /* Enable native helium assembly to be compiled */ + #define LV_USE_NATIVE_HELIUM_ASM 0 /* 0: use a simple renderer capable of drawing only simple rectangles with gradient, images, texts, and straight lines only * 1: use a complex renderer capable of drawing rounded corners, shadow, skew lines, and arcs too */ @@ -174,6 +184,11 @@ * but does not guarantee the same rendering quality as the software. */ #define LV_VG_LITE_USE_BOX_SHADOW 0 +/* VG-Lite gradient image maximum cache number. + * NOTE: The memory usage of a single gradient image is 4K bytes. + */ +#define LV_VG_LITE_GRAD_CACHE_SIZE 32 + #endif /*======================= @@ -623,6 +638,10 @@ #define LV_FS_MEMFS_LETTER '\0' /*Set an upper cased letter on which the drive will accessible (e.g. 'A')*/ #endif +/*API for LittleFs. */ +#if LV_USE_FS_LITTLEFS + #define LV_FS_LITTLEFS_LETTER '\0' /*Set an upper cased letter on which the drive will accessible (e.g. 'A')*/ +#endif /*GIF decoder library*/ #if LV_USE_GIF @@ -771,11 +790,12 @@ /*Use SDL to open window on PC and handle mouse and keyboard*/ #define LV_USE_SDL 0 #if LV_USE_SDL - #define LV_SDL_INCLUDE_PATH - #define LV_SDL_RENDER_MODE LV_DISPLAY_RENDER_MODE_DIRECT /*LV_DISPLAY_RENDER_MODE_DIRECT is recommended for best performance*/ - #define LV_SDL_BUF_COUNT 1 /*1 or 2*/ - #define LV_SDL_FULLSCREEN 0 /*1: Make the window full screen by default*/ - #define LV_SDL_DIRECT_EXIT 1 /*1: Exit the application when all SDL windows are closed*/ + #define LV_SDL_INCLUDE_PATH + #define LV_SDL_RENDER_MODE LV_DISPLAY_RENDER_MODE_DIRECT /*LV_DISPLAY_RENDER_MODE_DIRECT is recommended for best performance*/ + #define LV_SDL_BUF_COUNT 1 /*1 or 2*/ + #define LV_SDL_FULLSCREEN 0 /*1: Make the window full screen by default*/ + #define LV_SDL_DIRECT_EXIT 1 /*1: Exit the application when all SDL windows are closed*/ + #define LV_SDL_MOUSEWHEEL_MODE LV_SDL_MOUSEWHEEL_MODE_ENCODER /*LV_SDL_MOUSEWHEEL_MODE_ENCODER/CROWN*/ #endif /*Use X11 to open window on Linux desktop and handle mouse and keyboard*/ @@ -822,6 +842,20 @@ /*Driver for evdev input devices*/ #define LV_USE_EVDEV 0 +/*Driver for libinput input devices*/ +#define LV_USE_LIBINPUT 0 + +#if LV_USE_LIBINPUT + #define LV_LIBINPUT_BSD 0 + + /*Full keyboard support*/ + #define LV_LIBINPUT_XKB 0 + #if LV_LIBINPUT_XKB + /*"setxkbmap -query" can help find the right values for your keyboard*/ + #define LV_LIBINPUT_XKB_KEY_MAP { .rules = NULL, .model = "pc101", .layout = "us", .variant = NULL, .options = NULL } + #endif +#endif + #define LV_USE_GENERIC_MIPI (LV_USE_ST7735 | LV_USE_ST7789 | LV_USE_ST7796 | LV_USE_ILI9341) /*================== diff --git a/library.json b/library.json index 1100de2854..53b4d63db0 100644 --- a/library.json +++ b/library.json @@ -1,6 +1,6 @@ { "name": "lvgl", - "version": "9.0.1-dev", + "version": "9.1.0", "keywords": "graphics, gui, embedded, tft, lvgl", "description": "Graphics library to create embedded GUI with easy-to-use graphical elements, beautiful visual effects and low memory footprint. It offers anti-aliasing, opacity, and animations using only one frame buffer.", "repository": { diff --git a/library.properties b/library.properties index e9c73ba036..d80cdf7910 100644 --- a/library.properties +++ b/library.properties @@ -1,5 +1,5 @@ name=lvgl -version=9.0.1-dev +version=9.1.0 author=kisvegabor maintainer=kisvegabor,embeddedt,pete-pjb sentence=Full-featured Graphics Library for Embedded Systems diff --git a/lv_conf_template.h b/lv_conf_template.h index 4ab3155da3..64dcc9eafb 100644 --- a/lv_conf_template.h +++ b/lv_conf_template.h @@ -1,6 +1,6 @@ /** * @file lv_conf.h - * Configuration file for v9.0.1-dev + * Configuration file for v9.1.0 */ /* @@ -118,8 +118,8 @@ #define LV_USE_DRAW_ARM2D_SYNC 0 /* Enable native helium assembly to be compiled */ - #define LV_USE_NATIVE_HELIUM_ASM 1 - + #define LV_USE_NATIVE_HELIUM_ASM 0 + /* 0: use a simple renderer capable of drawing only simple rectangles with gradient, images, texts, and straight lines only * 1: use a complex renderer capable of drawing rounded corners, shadow, skew lines, and arcs too */ #define LV_DRAW_SW_COMPLEX 1 diff --git a/lvgl.h b/lvgl.h index 512730897f..ba10357da9 100644 --- a/lvgl.h +++ b/lvgl.h @@ -14,9 +14,9 @@ extern "C" { * CURRENT VERSION OF LVGL ***************************/ #define LVGL_VERSION_MAJOR 9 -#define LVGL_VERSION_MINOR 0 -#define LVGL_VERSION_PATCH 1 -#define LVGL_VERSION_INFO "dev" +#define LVGL_VERSION_MINOR 1 +#define LVGL_VERSION_PATCH 0 +#define LVGL_VERSION_INFO "" /********************* * INCLUDES diff --git a/lvgl.pc.in b/lvgl.pc.in index db7af1a182..09b3d2b5f2 100644 --- a/lvgl.pc.in +++ b/lvgl.pc.in @@ -5,6 +5,6 @@ libdir=${prefix}/lib Name: lvgl Description: Light and Versatile Graphics Library URL: https://lvgl.io/ -Version: 9.0.1-dev +Version: 9.1.0 Cflags: -I${includedir} Libs: -L${libdir} -llvgl diff --git a/src/draw/sw/blend/helium/lv_blend_helium.h b/src/draw/sw/blend/helium/lv_blend_helium.h index c124070e95..f8964e9d96 100644 --- a/src/draw/sw/blend/helium/lv_blend_helium.h +++ b/src/draw/sw/blend/helium/lv_blend_helium.h @@ -14,6 +14,11 @@ extern "C" { * INCLUDES *********************/ +#if defined(_RTE_) +#include "Pre_Include_Global.h" +#include "lv_conf_cmsis.h" +#endif + #include "../../../../lv_conf_internal.h" /* detect whether helium is available based on arm compilers' standard */ diff --git a/src/lv_conf_internal.h b/src/lv_conf_internal.h index 672d3a77ab..d6d7fd0d89 100644 --- a/src/lv_conf_internal.h +++ b/src/lv_conf_internal.h @@ -301,17 +301,13 @@ /* Enable native helium assembly to be compiled */ #ifndef LV_USE_NATIVE_HELIUM_ASM - #ifdef _LV_KCONFIG_PRESENT - #ifdef CONFIG_LV_USE_NATIVE_HELIUM_ASM - #define LV_USE_NATIVE_HELIUM_ASM CONFIG_LV_USE_NATIVE_HELIUM_ASM - #else - #define LV_USE_NATIVE_HELIUM_ASM 0 - #endif + #ifdef CONFIG_LV_USE_NATIVE_HELIUM_ASM + #define LV_USE_NATIVE_HELIUM_ASM CONFIG_LV_USE_NATIVE_HELIUM_ASM #else - #define LV_USE_NATIVE_HELIUM_ASM 1 + #define LV_USE_NATIVE_HELIUM_ASM 0 #endif #endif - + /* 0: use a simple renderer capable of drawing only simple rectangles with gradient, images, texts, and straight lines only * 1: use a complex renderer capable of drawing rounded corners, shadow, skew lines, and arcs too */ #ifndef LV_DRAW_SW_COMPLEX