diff --git a/Kconfig b/Kconfig index 0d81fa7e4..5790e7094 100644 --- a/Kconfig +++ b/Kconfig @@ -1,4 +1,4 @@ -# Kconfig file for LVGL v9.2.0 +# Kconfig file for LVGL v9.3.0-dev menu "LVGL configuration" diff --git a/demos/benchmark/lv_demo_benchmark.c b/demos/benchmark/lv_demo_benchmark.c index 953dfbecb..f38e80718 100644 --- a/demos/benchmark/lv_demo_benchmark.c +++ b/demos/benchmark/lv_demo_benchmark.c @@ -14,10 +14,18 @@ #error "LV_FONT_MONTSERRAT_14 is required for lv_demo_benchmark. Enable it in lv_conf.h." #endif +#if LV_FONT_MONTSERRAT_20 == 0 + #error "LV_FONT_MONTSERRAT_20 is required for lv_demo_benchmark. Enable it in lv_conf.h." +#endif + #if LV_FONT_MONTSERRAT_24 == 0 #error "LV_FONT_MONTSERRAT_24 is required for lv_demo_benchmark. Enable it in lv_conf.h." #endif +#if LV_FONT_MONTSERRAT_26 == 0 + #error "LV_FONT_MONTSERRAT_26 is required for lv_demo_benchmark. Enable it in lv_conf.h." +#endif + #if LV_USE_DEMO_WIDGETS == 0 #error "LV_USE_DEMO_WIDGETS needs to be enabled" #endif diff --git a/env_support/cmsis-pack/LVGL.lvgl.9.2.0.pack b/env_support/cmsis-pack/LVGL.lvgl.9.3.0-dev1.pack similarity index 74% rename from env_support/cmsis-pack/LVGL.lvgl.9.2.0.pack rename to env_support/cmsis-pack/LVGL.lvgl.9.3.0-dev1.pack index 5113115d2..1dd5921e0 100644 Binary files a/env_support/cmsis-pack/LVGL.lvgl.9.2.0.pack and b/env_support/cmsis-pack/LVGL.lvgl.9.3.0-dev1.pack differ diff --git a/env_support/cmsis-pack/LVGL.lvgl.pdsc b/env_support/cmsis-pack/LVGL.lvgl.pdsc index a99c7e8a8..ab3f5c0ef 100644 --- a/env_support/cmsis-pack/LVGL.lvgl.pdsc +++ b/env_support/cmsis-pack/LVGL.lvgl.pdsc @@ -36,7 +36,15 @@ https://github.com/lvgl/lvgl.git - + + - LVGL 9.2.1 + - See Change Log + + + - LVGL 9.2.1 + - See Change Log + + - LVGL 9.2.0 - See Change Log @@ -86,7 +94,7 @@ - LVGL 8.3.6 release - Various fixes - + - LVGL 8.3.5 release - Use LVGL version as the cmsis-pack version - Fix GPU support for NXP PXP and NXP VGLite @@ -182,6 +190,7 @@ + Support NEON based processors @@ -197,6 +206,27 @@ + + + + + + + + + + + + + + + + + + + + + Support Helium based processors @@ -217,6 +247,7 @@ + Require LVGL Essential Service @@ -250,6 +281,7 @@ + @@ -262,6 +294,7 @@ + @@ -274,6 +307,7 @@ + @@ -286,6 +320,7 @@ + @@ -298,6 +333,7 @@ + @@ -310,11 +346,25 @@ + + + + + Condition for TSi's aka (Think Silicon) NemaGFX + + + + + + + + + - + 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. @@ -340,7 +390,6 @@ - @@ -419,6 +468,9 @@ + + + @@ -489,6 +541,10 @@ + + + + @@ -586,7 +642,7 @@ - + @@ -735,6 +791,19 @@ + + Add the display driver for ST LTDC + + + + + +/* use display driver for ST LTDC */ +#define LV_USE_ST_LTDC 1 + + + + Add the support for pthreads @@ -906,7 +975,7 @@ /*! \brief enable NXP PXP */ -#define LV_USE_DRAW_PXP 1 +#define LV_USE_PXP 1 @@ -985,6 +1054,136 @@ + + + An hardware acceleration from STM32-DMA2D + + + + + + + + +/*! \brief enable STM32 DMA2D */ +#define LV_USE_DRAW_DMA2D 1 + + + + + + TSi's aka (Think Silicon) NemaGFX + + + + + + + + + + + + + + + + + + + + +/*! \brief Use TSi's aka (Think Silicon) NemaGFX */ +#define LV_USE_NEMA_GFX 1 + + + + + + + TSi's aka (Think Silicon) NemaGFX + + + + + + + + + + + + + + + + + + + + +/*! \brief Use TSi's aka (Think Silicon) NemaGFX */ +#define LV_USE_NEMA_GFX 1 + + + + + + TSi's aka (Think Silicon) NemaGFX + + + + + + + + + + + + + + + + + + + + +/*! \brief Use TSi's aka (Think Silicon) NemaGFX */ +#define LV_USE_NEMA_GFX 1 + + + + + + + TSi's aka (Think Silicon) NemaGFX + + + + + + + + + + + + + + + + + + + + +/*! \brief Use TSi's aka (Think Silicon) NemaGFX */ +#define LV_USE_NEMA_GFX 1 + + + + + + Add the SVG library + + + + + + + + + + +/*! \brief enable SVG library */ +#define LV_USE_SVG 1 + + + Add the Barcode code library @@ -1469,7 +1674,6 @@ - Add a file explorer @@ -1484,7 +1688,7 @@ - + Add the Fragment service @@ -1546,6 +1750,24 @@ + + + Add the support for freetype font manager + + + + + + + + + +/*! \brief Enable freetype font manager */ +#define LV_USE_FONT_MANAGER 1 + + + + Add the Monkey test service @@ -1580,10 +1802,8 @@ Add the official benchmark. - - - - + + @@ -1700,6 +1920,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1880,6 +2128,26 @@ + + + E-bike demo with Lottie animations + + + + + + + + + + + +/*! \brief E-bike demo with Lottie animations*/ +#define LV_USE_DEMO_EBIKE 1 + + + + diff --git a/env_support/cmsis-pack/LVGL.pidx b/env_support/cmsis-pack/LVGL.pidx index dc660f2a7..254bbfbc4 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-08-26 + 2024-10-16 - + diff --git a/env_support/cmsis-pack/README.md b/env_support/cmsis-pack/README.md index 5f7ef584c..72d065605 100644 --- a/env_support/cmsis-pack/README.md +++ b/env_support/cmsis-pack/README.md @@ -55,28 +55,36 @@ remove the misleading guide above this code segment. - LV_USE_DEMO_TRANSFORM - LV_USE_DEMO_SCROLL - LV_USE_DEMO_VECTOR_GRAPHIC + - LV_USE_DEMO_EBIKE - LV_USE_DRAW_VGLITE - LV_USE_DRAW_VG_LITE - - LV_USE_DRAW_PXP + - LV_USE_PXP - LV_USE_DRAW_SDL - - LV_USE_DRAW_ARM2D + - LV_USE_DRAW_ARM2D_SYNC + - LV_USE_DRAW_ARM2D_ASYNC + - LV_USE_DRAW_DAVE2D + - LV_USE_DRAW_DMA2D - LV_USE_SNAPSHOT - LV_USE_MONKEY - LV_USE_GRIDNAV - LV_USE_FRAGMENT - LV_USE_IMGFONT - LV_USE_LINUX_DRM + - LV_USE_LINUX_FBDEV + - LV_USE_WINDOWS - LV_USE_TFT_ESPI - LV_USE_ST7735 - LV_USE_ST7789 - LV_USE_ST7796 + - LV_USE_ST_LTDC - LV_USE_ILI9341 - LV_USE_RENESAS_GLCDC - + - LV_USE_NEMA_GFX + - LV_USE_SVG 5. Update `LV_LOG_PRINTF` to `1` and `LV_LOG_LEVEL` to `LV_LOG_LEVEL_USER` -6. Set `LV_FONT_MONTSERRAT_12`, `LV_FONT_MONTSERRAT_24` and `LV_FONT_MONTSERRAT_16` to `1` (So Widgets and Benchmark can be compiled correctly, this is for improving the out of box experience.) +6. Set `LV_FONT_MONTSERRAT_12`, ``LV_FONT_MONTSERRAT_20`, `LV_FONT_MONTSERRAT_24`, `LV_FONT_MONTSERRAT_26` and `LV_FONT_MONTSERRAT_16` to `1` (So Widgets and Benchmark can be compiled correctly, this is for improving the out of box experience.) 7. Update macro `LV_ATTRIBUTE_MEM_ALIGN` and `LV_ATTRIBUTE_MEM_ALIGN_SIZE` to force a WORD alignment. @@ -85,7 +93,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 `(72*1024U)`. +Make sure `LV_MEM_SIZE` is no less than `(128*1024U)`. 8. Remove following macro definitions in the `3rd party libraries` section: @@ -110,6 +118,7 @@ Make sure `LV_MEM_SIZE` is no less than `(72*1024U)`. - \#define LV_USE_TINY_TTF 0 - \#define LV_USE_RLOTTIE 0 - \#define LV_USE_FFMPEG 0 + - #define LV_USE_FONT_MANAGER 0 9. update the definition of following macros: `LV_USE_VECTOR_GRAPHIC`, `LV_USE_THORVE_INTERNAL` and `LV_USE_THORVE_EXTERNAL` as @@ -171,7 +180,7 @@ with: /*turn-on helium acceleration when Arm-2D and the Helium-powered device are detected */ #if defined(__ARM_FEATURE_MVE) && __ARM_FEATURE_MVE #define LV_USE_DRAW_SW_ASM LV_DRAW_SW_ASM_HELIUM - #define LV_USE_DRAW_ARM2D 1 + #define LV_USE_DRAW_ARM2D_SYNC 1 #endif #endif @@ -191,6 +200,7 @@ with: 14. Add the following macro definition to **COLOR SETTINGS** section: ```c +/** Swap the high and low bytes for RGB565 */ #define LV_COLOR_16_SWAP 0 ``` diff --git a/env_support/cmsis-pack/gen_pack.sh b/env_support/cmsis-pack/gen_pack.sh index 3c9890ea6..e62438703 100755 --- a/env_support/cmsis-pack/gen_pack.sh +++ b/env_support/cmsis-pack/gen_pack.sh @@ -44,6 +44,7 @@ PACK_BUILD=build/ # alternative: specify directory names to be added to pack base directory PACK_DIRS=" ../../src + ../../libs ../../demos ../../env_support/pikascript " diff --git a/env_support/cmsis-pack/lv_conf_cmsis.h b/env_support/cmsis-pack/lv_conf_cmsis.h index eedd5439b..b86619fb1 100644 --- a/env_support/cmsis-pack/lv_conf_cmsis.h +++ b/env_support/cmsis-pack/lv_conf_cmsis.h @@ -1,17 +1,17 @@ /** - * @file lv_conf_cmsis.h - * Configuration file for v9.2.0 + * @file lv_conf.h + * Configuration file for v9.3.0-dev */ /* clang-format off */ -#if 1 /*Set it to "1" to enable content*/ +#if 1 /* Set this to "1" to enable content */ #ifndef LV_CONF_H #define LV_CONF_H #include "RTE_Components.h" -/*If you need to include anything here, do it inside the `__ASSEMBLY__` guard */ +/* If you need to include anything here, do it inside the `__ASSEMBLY__` guard */ #if 0 && defined(__ASSEMBLY__) #include "my_include.h" #endif @@ -20,16 +20,17 @@ COLOR SETTINGS *====================*/ -/*Color depth: 1 (I1), 8 (L8), 16 (RGB565), 24 (RGB888), 32 (XRGB8888)*/ +/** Color depth: 1 (I1), 8 (L8), 16 (RGB565), 24 (RGB888), 32 (XRGB8888) */ #define LV_COLOR_DEPTH 16 +/** Swap the high and low bytes for RGB565 */ #define LV_COLOR_16_SWAP 0 /*========================= STDLIB WRAPPER SETTINGS *=========================*/ -/* Possible values +/** Possible values * - LV_STDLIB_BUILTIN: LVGL's built in implementation * - LV_STDLIB_CLIB: Standard C functions, like malloc, strlen, etc * - LV_STDLIB_MICROPYTHON: MicroPython implementation @@ -37,7 +38,23 @@ * - LV_STDLIB_CUSTOM: Implement the functions externally */ #define LV_USE_STDLIB_MALLOC LV_STDLIB_BUILTIN + +/** Possible values + * - LV_STDLIB_BUILTIN: LVGL's built in implementation + * - LV_STDLIB_CLIB: Standard C functions, like malloc, strlen, etc + * - LV_STDLIB_MICROPYTHON: MicroPython implementation + * - LV_STDLIB_RTTHREAD: RT-Thread implementation + * - LV_STDLIB_CUSTOM: Implement the functions externally + */ #define LV_USE_STDLIB_STRING LV_STDLIB_BUILTIN + +/** Possible values + * - LV_STDLIB_BUILTIN: LVGL's built in implementation + * - LV_STDLIB_CLIB: Standard C functions, like malloc, strlen, etc + * - LV_STDLIB_MICROPYTHON: MicroPython implementation + * - LV_STDLIB_RTTHREAD: RT-Thread implementation + * - LV_STDLIB_CUSTOM: Implement the functions externally + */ #define LV_USE_STDLIB_SPRINTF LV_STDLIB_BUILTIN #define LV_STDINT_INCLUDE @@ -48,15 +65,15 @@ #define LV_STDARG_INCLUDE #if LV_USE_STDLIB_MALLOC == LV_STDLIB_BUILTIN - /*Size of the memory available for `lv_malloc()` in bytes (>= 2kB)*/ - #define LV_MEM_SIZE (128 * 1024U) /*[bytes]*/ + /** Size of memory available for `lv_malloc()` in bytes (>= 2kB) */ + #define LV_MEM_SIZE (128 * 1024U) /**< [bytes] */ - /*Size of the memory expand for `lv_malloc()` in bytes*/ + /** Size of the memory expand for `lv_malloc()` in bytes */ #define LV_MEM_POOL_EXPAND_SIZE 0 - /*Set an address for the memory pool instead of allocating it as a normal array. Can be in external SRAM too.*/ - #define LV_MEM_ADR 0 /*0: unused*/ - /*Instead of an address give a memory allocator that will be called to get a memory pool for LVGL. E.g. my_malloc*/ + /** Set an address for the memory pool instead of allocating it as a normal array. Can be in external SRAM too. */ + #define LV_MEM_ADR 0 /**< 0: unused*/ + /* Instead of an address give a memory allocator that will be called to get a memory pool for LVGL. E.g. my_malloc */ #if LV_MEM_ADR == 0 #undef LV_MEM_POOL_INCLUDE #undef LV_MEM_POOL_ALLOC @@ -67,12 +84,12 @@ HAL SETTINGS *====================*/ -/*Default display refresh, input device read and animation step period.*/ -#define LV_DEF_REFR_PERIOD 33 /*[ms]*/ +/** Default display refresh, input device read and animation step period. */ +#define LV_DEF_REFR_PERIOD 33 /**< [ms] */ -/*Default Dot Per Inch. Used to initialize default sizes such as widgets sized, style paddings. - *(Not so important, you can adjust it to modify default sizes and spaces)*/ -#define LV_DPI_DEF 130 /*[px/inch]*/ +/** Default Dots Per Inch. Used to initialize default sizes such as widgets sized, style paddings. + * (Not so important, you can adjust it to modify default sizes and spaces.) */ +#define LV_DPI_DEF 130 /**< [px/inch] */ /*customize tick-get */ #if defined(__PERF_COUNTER__) && __PERF_COUNTER__ @@ -87,7 +104,7 @@ /*================= * OPERATING SYSTEM *=================*/ -/*Select an operating system to use. Possible options: +/** Select operating system to use. Possible options: * - LV_OS_NONE * - LV_OS_PTHREAD * - LV_OS_FREERTOS @@ -100,21 +117,29 @@ #if LV_USE_OS == LV_OS_CUSTOM #define LV_OS_CUSTOM_INCLUDE #endif +#if LV_USE_OS == LV_OS_FREERTOS + /* + * Unblocking an RTOS task with a direct notification is 45% faster and uses less RAM + * than unblocking a task using an intermediary object such as a binary semaphore. + * RTOS task notifications can only be used when there is only one task that can be the recipient of the event. + */ + #define LV_USE_FREERTOS_TASK_NOTIFY 1 +#endif /*======================== * RENDERING CONFIGURATION *========================*/ -/*Align the stride of all layers and images to this bytes*/ -#define LV_DRAW_BUF_STRIDE_ALIGN 1 +/** Align stride of all layers and images to this bytes */ +#define LV_DRAW_BUF_STRIDE_ALIGN 4 -/*Align the start address of draw_buf addresses to this bytes*/ +/** Align start address of draw_buf addresses to this bytes*/ #define LV_DRAW_BUF_ALIGN 4 -/*Using matrix for transformations. - *Requirements: - `LV_USE_MATRIX = 1`. - The rendering engine needs to support 3x3 matrix transformations.*/ +/** Using matrix for transformations. + * Requirements: + * - `LV_USE_MATRIX = 1`. + * - Rendering engine needs to support 3x3 matrix transformations. */ #define LV_DRAW_TRANSFORM_USE_MATRIX 0 /* If a widget has `style_opa < 255` (not `bg_opa`, `text_opa` etc) or not NORMAL blend mode @@ -122,64 +147,63 @@ * "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]*/ +/** The target buffer size for simple layer chunks. */ +#define LV_DRAW_LAYER_SIMPLE_BUF_SIZE (24 * 1024) /**< [bytes]*/ -/* The stack size of the drawing thread. +/** Stack size of drawing thread. * NOTE: If FreeType or ThorVG is enabled, it is recommended to set it to 32KB or more. */ -#define LV_DRAW_THREAD_STACK_SIZE (8 * 1024) /*[bytes]*/ +#define LV_DRAW_THREAD_STACK_SIZE (8 * 1024) /**< [bytes]*/ #define LV_USE_DRAW_SW 1 #if LV_USE_DRAW_SW == 1 + /* + * Selectively disable color format support in order to reduce code size. + * NOTE: some features use certain color formats internally, e.g. + * - gradients use RGB888 + * - bitmaps with transparency may use ARGB8888 + */ + #define LV_DRAW_SW_SUPPORT_RGB565 1 + #define LV_DRAW_SW_SUPPORT_RGB565A8 1 + #define LV_DRAW_SW_SUPPORT_RGB888 1 + #define LV_DRAW_SW_SUPPORT_XRGB8888 1 + #define LV_DRAW_SW_SUPPORT_ARGB8888 1 + #define LV_DRAW_SW_SUPPORT_L8 1 + #define LV_DRAW_SW_SUPPORT_AL88 1 + #define LV_DRAW_SW_SUPPORT_A8 1 + #define LV_DRAW_SW_SUPPORT_I1 1 - /* - * Selectively disable color format support in order to reduce code size. - * NOTE: some features use certain color formats internally, e.g. - * - gradients use RGB888 - * - bitmaps with transparency may use ARGB8888 - */ - - #define LV_DRAW_SW_SUPPORT_RGB565 1 - #define LV_DRAW_SW_SUPPORT_RGB565A8 1 - #define LV_DRAW_SW_SUPPORT_RGB888 1 - #define LV_DRAW_SW_SUPPORT_XRGB8888 1 - #define LV_DRAW_SW_SUPPORT_ARGB8888 1 - #define LV_DRAW_SW_SUPPORT_L8 1 - #define LV_DRAW_SW_SUPPORT_AL88 1 - #define LV_DRAW_SW_SUPPORT_A8 1 - #define LV_DRAW_SW_SUPPORT_I1 1 - - /* Set the number of draw unit. - * > 1 requires an operating system enabled in `LV_USE_OS` - * > 1 means multiple threads will render the screen in parallel */ + /** Set number of draw units. + * - > 1 requires operating system to be enabled in `LV_USE_OS`. + * - > 1 means multiple threads will render the screen in parallel. */ #define LV_DRAW_SW_DRAW_UNIT_CNT 1 - /* Enable native helium assembly to be compiled */ + /** 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 */ + /** + * - 0: Use a simple renderer capable of drawing only simple rectangles with gradient, images, text, 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 #if LV_DRAW_SW_COMPLEX == 1 - /*Allow buffering some shadow calculation. - *LV_DRAW_SW_SHADOW_CACHE_SIZE is the max. shadow size to buffer, where shadow size is `shadow_width + radius` - *Caching has LV_DRAW_SW_SHADOW_CACHE_SIZE^2 RAM cost*/ + /** Allow buffering some shadow calculation. + * LV_DRAW_SW_SHADOW_CACHE_SIZE is the maximum shadow size to buffer, where shadow size is + * `shadow_width + radius`. Caching has LV_DRAW_SW_SHADOW_CACHE_SIZE^2 RAM cost. */ #define LV_DRAW_SW_SHADOW_CACHE_SIZE 0 - /* Set number of maximally cached circle data. - * The circumference of 1/4 circle are saved for anti-aliasing - * radius * 4 bytes are used per circle (the most often used radiuses are saved) - * 0: to disable caching */ + /** Set number of maximally-cached circle data. + * The circumference of 1/4 circle are saved for anti-aliasing. + * `radius * 4` bytes are used per circle (the most often used radiuses are saved). + * - 0: disables caching */ #define LV_DRAW_SW_CIRCLE_CACHE_SIZE 4 #endif #if !defined(LV_USE_DRAW_SW_ASM) && defined(RTE_Acceleration_Arm_2D) /*turn-on helium acceleration when Arm-2D and the Helium-powered device are detected */ #if defined(__ARM_FEATURE_MVE) && __ARM_FEATURE_MVE - #define LV_USE_DRAW_SW_ASM LV_DRAW_SW_ASM_HELIUM - #define LV_USE_DRAW_ARM2D_SYNC 1 + #define LV_USE_DRAW_SW_ASM LV_DRAW_SW_ASM_HELIUM + #define LV_USE_DRAW_ARM2D_SYNC 1 #endif #endif @@ -191,60 +215,87 @@ #define LV_DRAW_SW_ASM_CUSTOM_INCLUDE "" #endif - /* Enable drawing complex gradients in software: linear at an angle, radial or conical */ + /** Enable drawing complex gradients in software: linear at an angle, radial or conical */ #define LV_USE_DRAW_SW_COMPLEX_GRADIENTS 0 #endif -/* Use NXP's VG-Lite GPU on iMX RTxxx platforms. */ +/*Use TSi's aka (Think Silicon) NemaGFX */ +#if LV_USE_NEMA_GFX + #define LV_NEMA_GFX_HAL_INCLUDE + + /*Enable Vector Graphics Operations. Available only if NemaVG library is present*/ + #define LV_USE_NEMA_VG 0 + + #if LV_USE_NEMA_VG + /*Define application's resolution used for VG related buffer allocation */ + #define LV_NEMA_GFX_MAX_RESX 800 + #define LV_NEMA_GFX_MAX_RESY 600 + #endif +#endif + +/** Use NXP's VG-Lite GPU on iMX RTxxx platforms. */ #if LV_USE_DRAW_VGLITE - /* Enable blit quality degradation workaround recommended for screen's dimension > 352 pixels. */ + /** Enable blit quality degradation workaround recommended for screen's dimension > 352 pixels. */ #define LV_USE_VGLITE_BLIT_SPLIT 0 #if LV_USE_OS - /* Enable VGLite draw async. Queue multiple tasks and flash them once to the GPU. */ - #define LV_USE_VGLITE_DRAW_ASYNC 1 + /** Use additional draw thread for VG-Lite processing. */ + #define LV_USE_VGLITE_DRAW_THREAD 1 + + #if LV_USE_VGLITE_DRAW_THREAD + /** Enable VGLite draw async. Queue multiple tasks and flash them once to the GPU. */ + #define LV_USE_VGLITE_DRAW_ASYNC 1 + #endif #endif - /* Enable VGLite asserts. */ + /** Enable VGLite asserts. */ #define LV_USE_VGLITE_ASSERT 0 #endif -/* Use NXP's PXP on iMX RTxxx platforms. */ -#if LV_USE_DRAW_PXP - /* Enable PXP asserts. */ +/** Use NXP's PXP on iMX RTxxx platforms. */ +#define LV_USE_PXP 0 + +#if LV_USE_PXP + /** Use PXP for drawing.*/ + #define LV_USE_DRAW_PXP 1 + + /** Use PXP to rotate display.*/ + #define LV_USE_ROTATE_PXP 0 + + #if LV_USE_DRAW_PXP && LV_USE_OS + /** Use additional draw thread for PXP processing.*/ + #define LV_USE_PXP_DRAW_THREAD 1 + #endif + + /** Enable PXP asserts. */ #define LV_USE_PXP_ASSERT 0 #endif -/* Use VG-Lite GPU. */ +/** Use VG-Lite GPU. */ #if LV_USE_DRAW_VG_LITE - /* Enable VG-Lite custom external 'gpu_init()' function */ + /** Enable VG-Lite custom external 'gpu_init()' function */ #define LV_VG_LITE_USE_GPU_INIT 0 - /* Enable VG-Lite assert. */ + /** Enable VG-Lite assert. */ #define LV_VG_LITE_USE_ASSERT 0 - /* VG-Lite flush commit trigger threshold. GPU will try to batch these many draw tasks. */ + /** VG-Lite flush commit trigger threshold. GPU will try to batch these many draw tasks. */ #define LV_VG_LITE_FLUSH_MAX_COUNT 8 - /* Enable border to simulate shadow - * NOTE: which usually improves performance, - * but does not guarantee the same rendering quality as the software. */ + /** Enable border to simulate shadow. + * NOTE: which usually improves performance, + * but does not guarantee the same rendering quality as the software. */ #define LV_VG_LITE_USE_BOX_SHADOW 0 - /* VG-Lite gradient maximum cache number. - * NOTE: The memory usage of a single gradient image is 4K bytes. - */ + /** VG-Lite gradient maximum cache number. + * @note The memory usage of a single gradient image is 4K bytes. */ #define LV_VG_LITE_GRAD_CACHE_CNT 32 - /* VG-Lite stroke maximum cache number. - */ + /** VG-Lite stroke maximum cache number. */ #define LV_VG_LITE_STROKE_CACHE_CNT 32 - #endif -/* Accelerate blends, fills, etc. with STM32 DMA2D */ -#define LV_USE_DRAW_DMA2D 0 - +/** Accelerate blends, fills, etc. with STM32 DMA2D */ #if LV_USE_DRAW_DMA2D #define LV_DRAW_DMA2D_HAL_INCLUDE "stm32h7xx_hal.h" @@ -254,6 +305,9 @@ #define LV_USE_DRAW_DMA2D_INTERRUPT 0 #endif +/** Draw using cached OpenGLES textures */ +#define LV_USE_DRAW_OPENGLES 0 + /*======================= * FEATURE CONFIGURATION *=======================*/ @@ -262,79 +316,77 @@ * Logging *-----------*/ -/*Enable the log module*/ +/** Enable log module */ #define LV_USE_LOG 0 #if LV_USE_LOG + /** Set value to one of the following levels of logging detail: + * - LV_LOG_LEVEL_TRACE Log detailed information. + * - LV_LOG_LEVEL_INFO Log important events. + * - LV_LOG_LEVEL_WARN Log if something unwanted happened but didn't cause a problem. + * - LV_LOG_LEVEL_ERROR Log only critical issues, when system may fail. + * - LV_LOG_LEVEL_USER Log only custom log messages added by the user. + * - LV_LOG_LEVEL_NONE Do not log anything. */ + #define LV_LOG_LEVEL LV_LOG_LEVEL_USER - /*How important log should be added: - *LV_LOG_LEVEL_TRACE A lot of logs to give detailed information - *LV_LOG_LEVEL_INFO Log important events - *LV_LOG_LEVEL_WARN Log if something unwanted happened but didn't cause a problem - *LV_LOG_LEVEL_ERROR Only critical issue, when the system may fail - *LV_LOG_LEVEL_USER Only logs added by the user - *LV_LOG_LEVEL_NONE Do not log anything*/ - #define LV_LOG_LEVEL LV_LOG_LEVEL_WARN - - /*1: Print the log with 'printf'; - *0: User need to register a callback with `lv_log_register_print_cb()`*/ + /** - 1: Print log with 'printf'; + * - 0: User needs to register a callback with `lv_log_register_print_cb()`. */ #define LV_LOG_PRINTF 1 - /*Set callback to print the logs. - *E.g `my_print`. The prototype should be `void my_print(lv_log_level_t level, const char * buf)` - *Can be overwritten by `lv_log_register_print_cb`*/ + /** Set callback to print logs. + * E.g `my_print`. The prototype should be `void my_print(lv_log_level_t level, const char * buf)`. + * Can be overwritten by `lv_log_register_print_cb`. */ //#define LV_LOG_PRINT_CB - /*1: Enable print timestamp; - *0: Disable print timestamp*/ + /** - 1: Enable printing timestamp; + * - 0: Disable printing timestamp. */ #define LV_LOG_USE_TIMESTAMP 1 - /*1: Print file and line number of the log; - *0: Do not print file and line number of the log*/ + /** - 1: Print file and line number of the log; + * - 0: Do not print file and line number of the log. */ #define LV_LOG_USE_FILE_LINE 1 - - /*Enable/disable LV_LOG_TRACE in modules that produces a huge number of logs*/ - #define LV_LOG_TRACE_MEM 1 - #define LV_LOG_TRACE_TIMER 1 - #define LV_LOG_TRACE_INDEV 1 - #define LV_LOG_TRACE_DISP_REFR 1 - #define LV_LOG_TRACE_EVENT 1 - #define LV_LOG_TRACE_OBJ_CREATE 1 - #define LV_LOG_TRACE_LAYOUT 1 - #define LV_LOG_TRACE_ANIM 1 - #define LV_LOG_TRACE_CACHE 1 - + /* Enable/disable LV_LOG_TRACE in modules that produces a huge number of logs. */ + #define LV_LOG_TRACE_MEM 1 /**< Enable/disable trace logs in memory operations. */ + #define LV_LOG_TRACE_TIMER 1 /**< Enable/disable trace logs in timer operations. */ + #define LV_LOG_TRACE_INDEV 1 /**< Enable/disable trace logs in input device operations. */ + #define LV_LOG_TRACE_DISP_REFR 1 /**< Enable/disable trace logs in display re-draw operations. */ + #define LV_LOG_TRACE_EVENT 1 /**< Enable/disable trace logs in event dispatch logic. */ + #define LV_LOG_TRACE_OBJ_CREATE 1 /**< Enable/disable trace logs in object creation (core `obj` creation plus every widget). */ + #define LV_LOG_TRACE_LAYOUT 1 /**< Enable/disable trace logs in flex- and grid-layout operations. */ + #define LV_LOG_TRACE_ANIM 1 /**< Enable/disable trace logs in animation logic. */ + #define LV_LOG_TRACE_CACHE 1 /**< Enable/disable trace logs in cache operations. */ #endif /*LV_USE_LOG*/ /*------------- * Asserts *-----------*/ -/*Enable asserts if an operation is failed or an invalid data is found. - *If LV_USE_LOG is enabled an error message will be printed on failure*/ -#define LV_USE_ASSERT_NULL 1 /*Check if the parameter is NULL. (Very fast, recommended)*/ -#define LV_USE_ASSERT_MALLOC 1 /*Checks is the memory is successfully allocated or no. (Very fast, recommended)*/ -#define LV_USE_ASSERT_STYLE 0 /*Check if the styles are properly initialized. (Very fast, recommended)*/ -#define LV_USE_ASSERT_MEM_INTEGRITY 0 /*Check the integrity of `lv_mem` after critical operations. (Slow)*/ -#define LV_USE_ASSERT_OBJ 0 /*Check the object's type and existence (e.g. not deleted). (Slow)*/ +/* Enable assertion failures if an operation fails or invalid data is found. + * If LV_USE_LOG is enabled, an error message will be printed on failure. */ +#define LV_USE_ASSERT_NULL 1 /**< Check if the parameter is NULL. (Very fast, recommended) */ +#define LV_USE_ASSERT_MALLOC 1 /**< Checks is the memory is successfully allocated or no. (Very fast, recommended) */ +#define LV_USE_ASSERT_STYLE 0 /**< Check if the styles are properly initialized. (Very fast, recommended) */ +#define LV_USE_ASSERT_MEM_INTEGRITY 0 /**< Check the integrity of `lv_mem` after critical operations. (Slow) */ +#define LV_USE_ASSERT_OBJ 0 /**< Check the object's type and existence (e.g. not deleted). (Slow) */ -/*Add a custom handler when assert happens e.g. to restart the MCU*/ +/** Add a custom handler when assert happens e.g. to restart MCU. */ #define LV_ASSERT_HANDLER_INCLUDE -#define LV_ASSERT_HANDLER while(1); /*Halt by default*/ +#define LV_ASSERT_HANDLER while(1); /**< Halt by default */ /*------------- * Debug *-----------*/ -/*1: Draw random colored rectangles over the redrawn areas*/ +/** 1: Draw random colored rectangles over the redrawn areas. */ #define LV_USE_REFR_DEBUG 0 -/*1: Draw a red overlay for ARGB layers and a green overlay for RGB layers*/ +/** 1: Draw a red overlay for ARGB layers and a green overlay for RGB layers*/ #define LV_USE_LAYER_DEBUG 0 -/*1: Draw overlays with different colors for each draw_unit's tasks. - *Also add the index number of the draw unit on white background. - *For layers add the index number of the draw unit on black background.*/ +/** 1: Adds the following behaviors for debugging: + * - Draw overlays with different colors for each draw_unit's tasks. + * - Draw index number of draw unit on white background. + * - For layers, draws index number of draw unit on black background. */ #define LV_USE_PARALLEL_DRAW_DEBUG 0 /*------------- @@ -343,142 +395,146 @@ #define LV_ENABLE_GLOBAL_CUSTOM 0 #if LV_ENABLE_GLOBAL_CUSTOM - /*Header to include for the custom 'lv_global' function"*/ + /** Header to include for custom 'lv_global' function" */ #define LV_GLOBAL_CUSTOM_INCLUDE #endif -/*Default cache size in bytes. - *Used by image decoders such as `lv_lodepng` to keep the decoded image in the memory. - *If size is not set to 0, the decoder will fail to decode when the cache is full. - *If size is 0, the cache function is not enabled and the decoded mem will be released immediately after use.*/ +/** Default cache size in bytes. + * Used by image decoders such as `lv_lodepng` to keep the decoded image in memory. + * If size is not set to 0, the decoder will fail to decode when the cache is full. + * If size is 0, the cache function is not enabled and the decoded memory will be + * released immediately after use. */ #define LV_CACHE_DEF_SIZE 0 -/*Default number of image header cache entries. The cache is used to store the headers of images - *The main logic is like `LV_CACHE_DEF_SIZE` but for image headers.*/ +/** Default number of image header cache entries. The cache is used to store the headers of images + * The main logic is like `LV_CACHE_DEF_SIZE` but for image headers. */ #define LV_IMAGE_HEADER_CACHE_DEF_CNT 0 -/*Number of stops allowed per gradient. Increase this to allow more stops. - *This adds (sizeof(lv_color_t) + 1) bytes per additional stop*/ +/** Number of stops allowed per gradient. Increase this to allow more stops. + * This adds (sizeof(lv_color_t) + 1) bytes per additional stop. */ #define LV_GRADIENT_MAX_STOPS 2 -/* Adjust color mix functions rounding. GPUs might calculate color mix (blending) differently. - * 0: round down, 64: round up from x.75, 128: round up from half, 192: round up from x.25, 254: round up */ +/** Adjust color mix functions rounding. GPUs might calculate color mix (blending) differently. + * - 0: round down, + * - 64: round up from x.75, + * - 128: round up from half, + * - 192: round up from x.25, + * - 254: round up */ #define LV_COLOR_MIX_ROUND_OFS 0 -/* Add 2 x 32 bit variables to each lv_obj_t to speed up getting style properties */ +/** Add 2 x 32-bit variables to each `lv_obj_t` to speed up getting style properties */ #define LV_OBJ_STYLE_CACHE 0 -/* Add `id` field to `lv_obj_t` */ +/** Add `id` field to `lv_obj_t` */ #define LV_USE_OBJ_ID 0 -/* Automatically assign an ID when obj is created */ +/** Automatically assign an ID when obj is created */ #define LV_OBJ_ID_AUTO_ASSIGN LV_USE_OBJ_ID -/*Use the builtin obj ID handler functions: +/** Use builtin obj ID handler functions: * - lv_obj_assign_id: Called when a widget is created. Use a separate counter for each widget class as an ID. * - lv_obj_id_compare: Compare the ID to decide if it matches with a requested value. -* - lv_obj_stringify_id: Return e.g. "button3" -* - lv_obj_free_id: Does nothing, as there is no memory allocation for the ID. +* - lv_obj_stringify_id: Return string-ified identifier, e.g. "button3". +* - lv_obj_free_id: Does nothing, as there is no memory allocation for the ID. * When disabled these functions needs to be implemented by the user.*/ #define LV_USE_OBJ_ID_BUILTIN 1 -/*Use obj property set/get API*/ +/** Use obj property set/get API. */ #define LV_USE_OBJ_PROPERTY 0 -/*Enable property name support*/ +/** Enable property name support. */ #define LV_USE_OBJ_PROPERTY_NAME 1 -/* VG-Lite Simulator */ -/*Requires: LV_USE_THORVG_INTERNAL or LV_USE_THORVG_EXTERNAL */ +/* Use VG-Lite Simulator. + * - Requires: LV_USE_THORVG_INTERNAL or LV_USE_THORVG_EXTERNAL */ #define LV_USE_VG_LITE_THORVG 0 #if LV_USE_VG_LITE_THORVG - - /*Enable LVGL's blend mode support*/ + /** Enable LVGL's blend mode support */ #define LV_VG_LITE_THORVG_LVGL_BLEND_SUPPORT 0 - /*Enable YUV color format support*/ + /** Enable YUV color format support */ #define LV_VG_LITE_THORVG_YUV_SUPPORT 0 - /*Enable Linear gradient extension support*/ + /** Enable Linear gradient extension support */ #define LV_VG_LITE_THORVG_LINEAR_GRADIENT_EXT_SUPPORT 0 - /*Enable 16 pixels alignment*/ + /** Enable alignment on 16 pixels */ #define LV_VG_LITE_THORVG_16PIXELS_ALIGN 1 - /*Buffer address alignment*/ + /** Buffer address alignment */ #define LV_VG_LITE_THORVG_BUF_ADDR_ALIGN 64 - /*Enable multi-thread render*/ + /** Enable multi-thread render */ #define LV_VG_LITE_THORVG_THREAD_RENDER 0 - #endif /*===================== * COMPILER SETTINGS *====================*/ -/*For big endian systems set to 1*/ +/** For big endian systems set to 1 */ #define LV_BIG_ENDIAN_SYSTEM 0 -/*Define a custom attribute to `lv_tick_inc` function*/ +/** Define a custom attribute for `lv_tick_inc` function */ #define LV_ATTRIBUTE_TICK_INC -/*Define a custom attribute to `lv_timer_handler` function*/ +/** Define a custom attribute for `lv_timer_handler` function */ #define LV_ATTRIBUTE_TIMER_HANDLER -/*Define a custom attribute to `lv_display_flush_ready` function*/ +/** Define a custom attribute for `lv_display_flush_ready` function */ #define LV_ATTRIBUTE_FLUSH_READY -/*Required alignment size for buffers*/ +/** Align VG_LITE buffers on this number of bytes. + * @note vglite_src_buf_aligned() uses this value to validate alignment of passed buffer pointers. */ #define LV_ATTRIBUTE_MEM_ALIGN_SIZE 1 -/*Will be added where memories needs to be aligned (with -Os data might not be aligned to boundary by default). - * E.g. __attribute__((aligned(4)))*/ +/** Will be added where memory needs to be aligned (with -Os data might not be aligned to boundary by default). + * E.g. __attribute__((aligned(4)))*/ #define LV_ATTRIBUTE_MEM_ALIGN __attribute__((aligned(4))) -/*Attribute to mark large constant arrays for example font's bitmaps*/ +/** Attribute to mark large constant arrays, for example for font bitmaps */ #define LV_ATTRIBUTE_LARGE_CONST -/*Compiler prefix for a big array declaration in RAM*/ +/** Compiler prefix for a large array declaration in RAM */ #define LV_ATTRIBUTE_LARGE_RAM_ARRAY -/*Place performance critical functions into a faster memory (e.g RAM)*/ +/** Place performance critical functions into a faster memory (e.g RAM) */ #define LV_ATTRIBUTE_FAST_MEM -/*Export integer constant to binding. This macro is used with constants in the form of LV_ that - *should also appear on LVGL binding API such as MicroPython.*/ -#define LV_EXPORT_CONST_INT(int_value) struct _silence_gcc_warning /*The default value just prevents GCC warning*/ +/** Export integer constant to binding. This macro is used with constants in the form of LV_ that + * should also appear on LVGL binding API such as MicroPython. */ +#define LV_EXPORT_CONST_INT(int_value) struct _silence_gcc_warning /**< The default value just prevents GCC warning */ -/*Prefix all global extern data with this*/ +/** Prefix all global extern data with this */ #define LV_ATTRIBUTE_EXTERN_DATA -/* Use `float` as `lv_value_precise_t` */ +/** Use `float` as `lv_value_precise_t` */ #define LV_USE_FLOAT 0 -/*Enable matrix support - *Requires `LV_USE_FLOAT = 1`*/ +/** Enable matrix support + * - Requires `LV_USE_FLOAT = 1` */ #define LV_USE_MATRIX 0 -/*Include `lvgl_private.h` in `lvgl.h` to access internal data and functions by default*/ +/** Include `lvgl_private.h` in `lvgl.h` to access internal data and functions by default */ #define LV_USE_PRIVATE_API 0 /*================== * FONT USAGE *===================*/ -/*Montserrat fonts with ASCII range and some symbols using bpp = 4 - *https://fonts.google.com/specimen/Montserrat*/ +/* Montserrat fonts with ASCII range and some symbols using bpp = 4 + * https://fonts.google.com/specimen/Montserrat */ #define LV_FONT_MONTSERRAT_8 0 #define LV_FONT_MONTSERRAT_10 0 #define LV_FONT_MONTSERRAT_12 1 #define LV_FONT_MONTSERRAT_14 1 #define LV_FONT_MONTSERRAT_16 1 #define LV_FONT_MONTSERRAT_18 0 -#define LV_FONT_MONTSERRAT_20 0 +#define LV_FONT_MONTSERRAT_20 1 #define LV_FONT_MONTSERRAT_22 0 #define LV_FONT_MONTSERRAT_24 1 -#define LV_FONT_MONTSERRAT_26 0 +#define LV_FONT_MONTSERRAT_26 1 #define LV_FONT_MONTSERRAT_28 0 #define LV_FONT_MONTSERRAT_30 0 #define LV_FONT_MONTSERRAT_32 0 @@ -491,33 +547,39 @@ #define LV_FONT_MONTSERRAT_46 0 #define LV_FONT_MONTSERRAT_48 0 -/*Demonstrate special features*/ -#define LV_FONT_MONTSERRAT_28_COMPRESSED 0 /*bpp = 3*/ -#define LV_FONT_DEJAVU_16_PERSIAN_HEBREW 0 /*Hebrew, Arabic, Persian letters and all their forms*/ -#define LV_FONT_SIMSUN_14_CJK 0 /*1000 most common CJK radicals*/ -#define LV_FONT_SIMSUN_16_CJK 0 /*1000 most common CJK radicals*/ +/* Demonstrate special features */ +#define LV_FONT_MONTSERRAT_28_COMPRESSED 0 /**< bpp = 3 */ +#define LV_FONT_DEJAVU_16_PERSIAN_HEBREW 0 /**< Hebrew, Arabic, Persian letters and all their forms */ +#define LV_FONT_SIMSUN_14_CJK 0 /**< 1000 most common CJK radicals */ +#define LV_FONT_SIMSUN_16_CJK 0 /**< 1000 most common CJK radicals */ -/*Pixel perfect monospace fonts*/ +/** Pixel perfect monospaced fonts */ #define LV_FONT_UNSCII_8 0 #define LV_FONT_UNSCII_16 0 -/*Optionally declare custom fonts here. - *You can use these fonts as default font too and they will be available globally. - *E.g. #define LV_FONT_CUSTOM_DECLARE LV_FONT_DECLARE(my_font_1) LV_FONT_DECLARE(my_font_2)*/ +/** Optionally declare custom fonts here. + * + * You can use any of these fonts as the default font too and they will be available + * globally. Example: + * + * @code + * #define LV_FONT_CUSTOM_DECLARE LV_FONT_DECLARE(my_font_1) LV_FONT_DECLARE(my_font_2) + * @endcode + */ #define LV_FONT_CUSTOM_DECLARE -/*Always set a default font*/ +/** Always set a default font */ #define LV_FONT_DEFAULT &lv_font_montserrat_14 -/*Enable handling large font and/or fonts with a lot of characters. - *The limit depends on the font size, font face and bpp. - *Compiler error will be triggered if a font needs it.*/ +/** Enable handling large font and/or fonts with a lot of characters. + * The limit depends on the font size, font face and bpp. + * A compiler error will be triggered if a font needs it. */ #define LV_FONT_FMT_TXT_LARGE 0 -/*Enables/disables support for compressed fonts.*/ +/** Enables/disables support for compressed fonts. */ #define LV_USE_FONT_COMPRESSED 0 -/*Enable drawing placeholders when glyph dsc is not found*/ +/** Enable drawing placeholders when glyph dsc is not found. */ #define LV_USE_FONT_PLACEHOLDER 1 /*================= @@ -526,49 +588,58 @@ /** * Select a character encoding for strings. - * Your IDE or editor should have the same character encoding + * Your IDE or editor should have the same character encoding. * - LV_TXT_ENC_UTF8 * - LV_TXT_ENC_ASCII */ #define LV_TXT_ENC LV_TXT_ENC_UTF8 -/*Can break (wrap) texts on these chars*/ +/** While rendering text strings, break (wrap) text on these chars. */ #define LV_TXT_BREAK_CHARS " ,.;:-_)]}" -/*If a word is at least this long, will break wherever "prettiest" - *To disable, set to a value <= 0*/ +/** If a word is at least this long, will break wherever "prettiest". + * To disable, set to a value <= 0. */ #define LV_TXT_LINE_BREAK_LONG_LEN 0 -/*Minimum number of characters in a long word to put on a line before a break. - *Depends on LV_TXT_LINE_BREAK_LONG_LEN.*/ +/** Minimum number of characters in a long word to put on a line before a break. + * Depends on LV_TXT_LINE_BREAK_LONG_LEN. */ #define LV_TXT_LINE_BREAK_LONG_PRE_MIN_LEN 3 -/*Minimum number of characters in a long word to put on a line after a break. - *Depends on LV_TXT_LINE_BREAK_LONG_LEN.*/ +/** Minimum number of characters in a long word to put on a line after a break. + * Depends on LV_TXT_LINE_BREAK_LONG_LEN. */ #define LV_TXT_LINE_BREAK_LONG_POST_MIN_LEN 3 -/*Support bidirectional texts. Allows mixing Left-to-Right and Right-to-Left texts. - *The direction will be processed according to the Unicode Bidirectional Algorithm: - *https://www.w3.org/International/articles/inline-bidi-markup/uba-basics*/ +/** Support bidirectional text. Allows mixing Left-to-Right and Right-to-Left text. + * The direction will be processed according to the Unicode Bidirectional Algorithm: + * https://www.w3.org/International/articles/inline-bidi-markup/uba-basics */ #define LV_USE_BIDI 0 #if LV_USE_BIDI /*Set the default direction. Supported values: *`LV_BASE_DIR_LTR` Left-to-Right *`LV_BASE_DIR_RTL` Right-to-Left - *`LV_BASE_DIR_AUTO` detect texts base direction*/ + *`LV_BASE_DIR_AUTO` detect text base direction*/ #define LV_BIDI_BASE_DIR_DEF LV_BASE_DIR_AUTO #endif -/*Enable Arabic/Persian processing - *In these languages characters should be replaced with another form based on their position in the text*/ +/** Enable Arabic/Persian processing + * In these languages characters should be replaced with another form based on their position in the text */ #define LV_USE_ARABIC_PERSIAN_CHARS 0 +/*The control character to use for signaling text recoloring*/ +#define LV_TXT_COLOR_CMD "#" + /*================== * WIDGETS *================*/ +/* Documentation for widgets can be found here: https://docs.lvgl.io/latest/en/html/widgets/index.html . */ -/*Documentation of the widgets: https://docs.lvgl.io/latest/en/html/widgets/index.html*/ - +/** 1: Causes these widgets to be given default values at creation time. + * - lv_buttonmatrix_t: Get default maps: {"Btn1", "Btn2", "Btn3", "\n", "Btn4", "Btn5", ""}, else map not set. + * - lv_checkbox_t : String label set to "Check box", else set to empty string. + * - lv_dropdown_t : Options set to "Option 1", "Option 2", "Option 3", else no values are set. + * - lv_roller_t : Options set to "Option 1", "Option 2", "Option 3", "Option 4", "Option 5", else no values are set. + * - lv_label_t : Text set to "Text", else empty string. + * */ #define LV_WIDGETS_HAS_DEFAULT_VALUE 1 #define LV_USE_ANIMIMG 1 @@ -602,9 +673,9 @@ #define LV_USE_CHECKBOX 1 -#define LV_USE_DROPDOWN 1 /*Requires: lv_label*/ +#define LV_USE_DROPDOWN 1 /**< Requires: lv_label */ -#define LV_USE_IMAGE 1 /*Requires: lv_label*/ +#define LV_USE_IMAGE 1 /**< Requires: lv_label */ #define LV_USE_IMAGEBUTTON 1 @@ -612,9 +683,9 @@ #define LV_USE_LABEL 1 #if LV_USE_LABEL - #define LV_LABEL_TEXT_SELECTION 1 /*Enable selecting text of the label*/ - #define LV_LABEL_LONG_TXT_HINT 1 /*Store some extra info in labels to speed up drawing of very long texts*/ - #define LV_LABEL_WAIT_CHAR_COUNT 3 /*The count of wait chart*/ + #define LV_LABEL_TEXT_SELECTION 1 /**< Enable selecting text of the label */ + #define LV_LABEL_LONG_TXT_HINT 1 /**< Store some extra info in labels to speed up drawing of very long text */ + #define LV_LABEL_WAIT_CHAR_COUNT 3 /**< The count of wait chart */ #endif #define LV_USE_LED 1 @@ -623,21 +694,21 @@ #define LV_USE_LIST 1 -#define LV_USE_LOTTIE 0 /*Requires: lv_canvas, thorvg */ +#define LV_USE_LOTTIE 0 /**< Requires: lv_canvas, thorvg */ #define LV_USE_MENU 1 #define LV_USE_MSGBOX 1 -#define LV_USE_ROLLER 1 /*Requires: lv_label*/ +#define LV_USE_ROLLER 1 /**< Requires: lv_label */ #define LV_USE_SCALE 1 -#define LV_USE_SLIDER 1 /*Requires: lv_bar*/ +#define LV_USE_SLIDER 1 /**< Requires: lv_bar */ #define LV_USE_SPAN 1 #if LV_USE_SPAN - /*A line text can contain maximum num of span descriptor */ + /** A line of text can contain this maximum number of span descriptors. */ #define LV_SPAN_SNIPPET_STACK_SIZE 64 #endif @@ -647,15 +718,15 @@ #define LV_USE_SWITCH 1 -#define LV_USE_TEXTAREA 1 /*Requires: lv_label*/ -#if LV_USE_TEXTAREA != 0 - #define LV_TEXTAREA_DEF_PWD_SHOW_TIME 1500 /*ms*/ -#endif - #define LV_USE_TABLE 1 #define LV_USE_TABVIEW 1 +#define LV_USE_TEXTAREA 1 /**< Requires: lv_label */ +#if LV_USE_TEXTAREA != 0 + #define LV_TEXTAREA_DEF_PWD_SHOW_TIME 1500 /**< [ms] */ +#endif + #define LV_USE_TILEVIEW 1 #define LV_USE_WIN 1 @@ -663,119 +734,123 @@ /*================== * THEMES *==================*/ +/* Documentation for themes can be found here: https://docs.lvgl.io/master/overview/style.html#themes . */ -/*A simple, impressive and very complete theme*/ +/** A simple, impressive and very complete theme */ #define LV_USE_THEME_DEFAULT 1 #if LV_USE_THEME_DEFAULT - - /*0: Light mode; 1: Dark mode*/ + /** 0: Light mode; 1: Dark mode */ #define LV_THEME_DEFAULT_DARK 0 - /*1: Enable grow on press*/ + /** 1: Enable grow on press */ #define LV_THEME_DEFAULT_GROW 1 - /*Default transition time in [ms]*/ + /** Default transition time in ms. */ #define LV_THEME_DEFAULT_TRANSITION_TIME 80 #endif /*LV_USE_THEME_DEFAULT*/ -/*A very simple theme that is a good starting point for a custom theme*/ +/** A very simple theme that is a good starting point for a custom theme */ #define LV_USE_THEME_SIMPLE 1 -/*A theme designed for monochrome displays*/ +/** A theme designed for monochrome displays */ #define LV_USE_THEME_MONO 1 /*================== * LAYOUTS *==================*/ +/* Documentation for layouts can be found here: https://docs.lvgl.io/master/layouts/index.html . */ -/*A layout similar to Flexbox in CSS.*/ +/** A layout similar to Flexbox in CSS. */ #define LV_USE_FLEX 1 -/*A layout similar to Grid in CSS.*/ +/** A layout similar to Grid in CSS. */ #define LV_USE_GRID 1 /*==================== * 3RD PARTS LIBRARIES *====================*/ +/* Documentation for libraries can be found here: https://docs.lvgl.io/master/libs/index.html . */ -/*File system interfaces for common APIs */ +/* File system interfaces for common APIs */ -/*Setting a default driver letter allows skipping the driver prefix in filepaths*/ +/** Setting a default driver letter allows skipping the driver prefix in filepaths. */ #define LV_FS_DEFAULT_DRIVE_LETTER '\0' -/*API for fopen, fread, etc*/ +/** API for fopen, fread, etc. */ #if LV_USE_FS_STDIO - #define LV_FS_STDIO_LETTER '\0' /*Set an upper cased letter on which the drive will accessible (e.g. 'A')*/ - #define LV_FS_STDIO_PATH "" /*Set the working directory. File/directory paths will be appended to it.*/ - #define LV_FS_STDIO_CACHE_SIZE 0 /*>0 to cache this number of bytes in lv_fs_read()*/ + #define LV_FS_STDIO_LETTER '\0' /**< Set an upper cased letter on which the drive will accessible (e.g. 'A') */ + #define LV_FS_STDIO_PATH "" /**< Set the working directory. File/directory paths will be appended to it. */ + #define LV_FS_STDIO_CACHE_SIZE 0 /**< >0 to cache this number of bytes in lv_fs_read() */ #endif -/*API for open, read, etc*/ +/** API for open, read, etc. */ #if LV_USE_FS_POSIX - #define LV_FS_POSIX_LETTER '\0' /*Set an upper cased letter on which the drive will accessible (e.g. 'A')*/ - #define LV_FS_POSIX_PATH "" /*Set the working directory. File/directory paths will be appended to it.*/ - #define LV_FS_POSIX_CACHE_SIZE 0 /*>0 to cache this number of bytes in lv_fs_read()*/ + #define LV_FS_POSIX_LETTER '\0' /**< Set an upper cased letter on which the drive will accessible (e.g. 'A') */ + #define LV_FS_POSIX_PATH "" /**< Set the working directory. File/directory paths will be appended to it. */ + #define LV_FS_POSIX_CACHE_SIZE 0 /**< >0 to cache this number of bytes in lv_fs_read() */ #endif -/*API for CreateFile, ReadFile, etc*/ +/** API for CreateFile, ReadFile, etc. */ #if LV_USE_FS_WIN32 - #define LV_FS_WIN32_LETTER '\0' /*Set an upper cased letter on which the drive will accessible (e.g. 'A')*/ - #define LV_FS_WIN32_PATH "" /*Set the working directory. File/directory paths will be appended to it.*/ - #define LV_FS_WIN32_CACHE_SIZE 0 /*>0 to cache this number of bytes in lv_fs_read()*/ + #define LV_FS_WIN32_LETTER '\0' /**< Set an upper cased letter on which the drive will accessible (e.g. 'A') */ + #define LV_FS_WIN32_PATH "" /**< Set the working directory. File/directory paths will be appended to it. */ + #define LV_FS_WIN32_CACHE_SIZE 0 /**< >0 to cache this number of bytes in lv_fs_read() */ #endif -/*API for FATFS (needs to be added separately). Uses f_open, f_read, etc*/ +/** API for FATFS (needs to be added separately). Uses f_open, f_read, etc. */ #if LV_USE_FS_FATFS - #define LV_FS_FATFS_LETTER '\0' /*Set an upper cased letter on which the drive will accessible (e.g. 'A')*/ - #define LV_FS_FATFS_CACHE_SIZE 0 /*>0 to cache this number of bytes in lv_fs_read()*/ + #define LV_FS_FATFS_LETTER '\0' /**< Set an upper cased letter on which the drive will accessible (e.g. 'A') */ + #define LV_FS_FATFS_CACHE_SIZE 0 /**< >0 to cache this number of bytes in lv_fs_read() */ #endif -/*API for memory-mapped file access. */ +/** API for memory-mapped file access. */ #if LV_USE_FS_MEMFS - #define LV_FS_MEMFS_LETTER '\0' /*Set an upper cased letter on which the drive will accessible (e.g. 'A')*/ + #define LV_FS_MEMFS_LETTER '\0' /**< Set an upper cased letter on which the drive will accessible (e.g. 'A') */ #endif -/*API for LittleFs. */ +/** 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')*/ + #define LV_FS_LITTLEFS_LETTER '\0' /**< Set an upper cased letter on which the drive will accessible (e.g. 'A') */ #endif -/*API for Arduino LittleFs. */ +/** API for Arduino LittleFs. */ #if LV_USE_FS_ARDUINO_ESP_LITTLEFS - #define LV_FS_ARDUINO_ESP_LITTLEFS_LETTER '\0' /*Set an upper cased letter on which the drive will accessible (e.g. 'A')*/ + #define LV_FS_ARDUINO_ESP_LITTLEFS_LETTER '\0' /**< Set an upper cased letter on which the drive will accessible (e.g. 'A') */ #endif -/*API for Arduino Sd. */ +/** API for Arduino Sd. */ #if LV_USE_FS_ARDUINO_SD - #define LV_FS_ARDUINO_SD_LETTER '\0' /*Set an upper cased letter on which the drive will accessible (e.g. 'A')*/ + #define LV_FS_ARDUINO_SD_LETTER '\0' /**< Set an upper cased letter on which the drive will accessible (e.g. 'A') */ #endif -/*GIF decoder library*/ +/** GIF decoder library */ #if LV_USE_GIF - /*GIF decoder accelerate*/ + /** GIF decoder accelerate */ #define LV_GIF_CACHE_DECODE_DATA 0 #endif -/*Decode bin images to RAM*/ +/** Decode bin images to RAM */ #define LV_BIN_DECODER_RAM_LOAD 0 -/*FreeType library*/ +/** FreeType library */ #if LV_USE_FREETYPE - /*Let FreeType to use LVGL memory and file porting*/ + /** Let FreeType use LVGL memory and file porting */ #define LV_FREETYPE_USE_LVGL_PORT 0 - /*Cache count of the glyphs in FreeType. It means the number of glyphs that can be cached. - *The higher the value, the more memory will be used.*/ + /** Cache count of glyphs in FreeType, i.e. number of glyphs that can be cached. + * The higher the value, the more memory will be used. */ #define LV_FREETYPE_CACHE_FT_GLYPH_CNT 256 #endif -/* Built-in TTF decoder */ +/** Built-in TTF decoder */ #if LV_USE_TINY_TTF /* Enable loading TTF data from files */ #define LV_TINY_TTF_FILE_SUPPORT 0 #define LV_TINY_TTF_CACHE_GLYPH_CNT 256 #endif +/** Enable Vector Graphic APIs + * - Requires `LV_USE_MATRIX = 1` */ /*Enable Vector Graphic APIs*/ #ifndef LV_USE_VECTOR_GRAPHIC # define LV_USE_VECTOR_GRAPHIC 0 @@ -798,134 +873,180 @@ # define LV_USE_LZ4_EXTERNAL 0 #endif -/*FFmpeg library for image decoding and playing videos - *Supports all major image formats so do not enable other image decoder with it*/ +/*SVG library*/ +#define LV_USE_SVG_ANIMATION 0 +#define LV_USE_SVG_DEBUG 0 + +/** FFmpeg library for image decoding and playing videos. + * Supports all major image formats so do not enable other image decoder with it. */ #if LV_USE_FFMPEG - /*Dump input information to stderr*/ + /** Dump input information to stderr */ #define LV_FFMPEG_DUMP_FORMAT 0 #endif /*================== * OTHERS *==================*/ +/* Documentation for several of the below items can be found here: https://docs.lvgl.io/master/others/index.html . */ -/*1: Enable system monitor component*/ +/** 1: Enable API to take snapshot for object */ +#define LV_USE_SNAPSHOT 0 + +/** 1: Enable system monitor component */ #define LV_USE_SYSMON 0 #if LV_USE_SYSMON - /*Get the idle percentage. E.g. uint32_t my_get_idle(void);*/ + /** Get the idle percentage. E.g. uint32_t my_get_idle(void); */ #define LV_SYSMON_GET_IDLE lv_timer_get_idle - /*1: Show CPU usage and FPS count - * Requires `LV_USE_SYSMON = 1`*/ + /** 1: Show CPU usage and FPS count. + * - Requires `LV_USE_SYSMON = 1` */ #define LV_USE_PERF_MONITOR 0 #if LV_USE_PERF_MONITOR #define LV_USE_PERF_MONITOR_POS LV_ALIGN_BOTTOM_RIGHT - /*0: Displays performance data on the screen, 1: Prints performance data using log.*/ + /** 0: Displays performance data on the screen; 1: Prints performance data using log. */ #define LV_USE_PERF_MONITOR_LOG_MODE 0 #endif - /*1: Show the used memory and the memory fragmentation - * Requires `LV_USE_STDLIB_MALLOC = LV_STDLIB_BUILTIN` - * Requires `LV_USE_SYSMON = 1`*/ + /** 1: Show used memory and memory fragmentation. + * - Requires `LV_USE_STDLIB_MALLOC = LV_STDLIB_BUILTIN` + * - Requires `LV_USE_SYSMON = 1`*/ #define LV_USE_MEM_MONITOR 0 #if LV_USE_MEM_MONITOR #define LV_USE_MEM_MONITOR_POS LV_ALIGN_BOTTOM_LEFT #endif - #endif /*LV_USE_SYSMON*/ -/*1: Enable the runtime performance profiler*/ +/** 1: Enable runtime performance profiler */ #define LV_USE_PROFILER 0 #if LV_USE_PROFILER - /*1: Enable the built-in profiler*/ + /** 1: Enable the built-in profiler */ #define LV_USE_PROFILER_BUILTIN 1 #if LV_USE_PROFILER_BUILTIN - /*Default profiler trace buffer size*/ - #define LV_PROFILER_BUILTIN_BUF_SIZE (16 * 1024) /*[bytes]*/ + /** Default profiler trace buffer size */ + #define LV_PROFILER_BUILTIN_BUF_SIZE (16 * 1024) /**< [bytes] */ #endif - /*Header to include for the profiler*/ + /** Header to include for profiler */ #define LV_PROFILER_INCLUDE "src/misc/lv_profiler_builtin.h" - /*Profiler start point function*/ + /** Profiler start point function */ #define LV_PROFILER_BEGIN LV_PROFILER_BUILTIN_BEGIN - /*Profiler end point function*/ + /** Profiler end point function */ #define LV_PROFILER_END LV_PROFILER_BUILTIN_END - /*Profiler start point function with custom tag*/ + /** Profiler start point function with custom tag */ #define LV_PROFILER_BEGIN_TAG LV_PROFILER_BUILTIN_BEGIN_TAG - /*Profiler end point function with custom tag*/ + /** Profiler end point function with custom tag */ #define LV_PROFILER_END_TAG LV_PROFILER_BUILTIN_END_TAG + + /*Enable layout profiler*/ + #define LV_PROFILER_LAYOUT 1 + + /*Enable disp refr profiler*/ + #define LV_PROFILER_REFR 1 + + /*Enable draw profiler*/ + #define LV_PROFILER_DRAW 1 + + /*Enable indev profiler*/ + #define LV_PROFILER_INDEV 1 + + /*Enable decoder profiler*/ + #define LV_PROFILER_DECODER 1 + + /*Enable font profiler*/ + #define LV_PROFILER_FONT 1 + + /*Enable fs profiler*/ + #define LV_PROFILER_FS 1 + + /*Enable style profiler*/ + #define LV_PROFILER_STYLE 0 + + /*Enable timer profiler*/ + #define LV_PROFILER_TIMER 1 + + /*Enable cache profiler*/ + #define LV_PROFILER_CACHE 1 #endif - -/*1: Enable an observer pattern implementation*/ +/** 1: Enable an observer pattern implementation */ #define LV_USE_OBSERVER 1 -/*1: Enable Pinyin input method*/ -/*Requires: lv_keyboard*/ +/** 1: Enable Pinyin input method + * - Requires: lv_keyboard */ #if LV_USE_IME_PINYIN - /*1: Use default thesaurus*/ - /*If you do not use the default thesaurus, be sure to use `lv_ime_pinyin` after setting the thesaurus*/ + /** 1: Use default thesaurus. + * @note If you do not use the default thesaurus, be sure to use `lv_ime_pinyin` after setting the thesaurus. */ #define LV_IME_PINYIN_USE_DEFAULT_DICT 1 - /*Set the maximum number of candidate panels that can be displayed*/ - /*This needs to be adjusted according to the size of the screen*/ + /** Set maximum number of candidate panels that can be displayed. + * @note This needs to be adjusted according to size of screen. */ #define LV_IME_PINYIN_CAND_TEXT_NUM 6 - /*Use 9 key input(k9)*/ + /** Use 9-key input (k9). */ #define LV_IME_PINYIN_USE_K9_MODE 1 #if LV_IME_PINYIN_USE_K9_MODE == 1 #define LV_IME_PINYIN_K9_CAND_TEXT_NUM 3 #endif /*LV_IME_PINYIN_USE_K9_MODE*/ #endif -/*1: Enable file explorer*/ -/*Requires: lv_table*/ +/** 1: Enable file explorer. + * - Requires: lv_table */ #if LV_USE_FILE_EXPLORER - /*Maximum length of path*/ + /** Maximum length of path */ #define LV_FILE_EXPLORER_PATH_MAX_LEN (128) - /*Quick access bar, 1:use, 0:not use*/ - /*Requires: lv_list*/ + /** Quick access bar, 1:use, 0:do not use. + * - Requires: lv_list */ #define LV_FILE_EXPLORER_QUICK_ACCESS 1 #endif +/** 1: Enable freetype font manager + * - Requires: LV_USE_FREETYPE */ +#if LV_USE_FONT_MANAGER + +/*Font manager name max length*/ +#define LV_FONT_MANAGER_NAME_MAX_LEN 32 + +#endif + /*================== * DEVICES *==================*/ -/*Use SDL to open window on PC and handle mouse and keyboard*/ +/** 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_ACCELERATED 1 /*1: Use hardware acceleration*/ - #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_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_ACCELERATED 1 /**< 1: Use hardware acceleration*/ + #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*/ +/** Use X11 to open window on Linux desktop and handle mouse and keyboard */ #define LV_USE_X11 0 #if LV_USE_X11 - #define LV_X11_DIRECT_EXIT 1 /*Exit the application when all X11 windows have been closed*/ - #define LV_X11_DOUBLE_BUFFER 1 /*Use double buffers for rendering*/ - /*select only 1 of the following render modes (LV_X11_RENDER_MODE_PARTIAL preferred!)*/ - #define LV_X11_RENDER_MODE_PARTIAL 1 /*Partial render mode (preferred)*/ - #define LV_X11_RENDER_MODE_DIRECT 0 /*direct render mode*/ - #define LV_X11_RENDER_MODE_FULL 0 /*Full render mode*/ + #define LV_X11_DIRECT_EXIT 1 /**< Exit application when all X11 windows have been closed */ + #define LV_X11_DOUBLE_BUFFER 1 /**< Use double buffers for rendering */ + /* Select only 1 of the following render modes (LV_X11_RENDER_MODE_PARTIAL preferred!). */ + #define LV_X11_RENDER_MODE_PARTIAL 1 /**< Partial render mode (preferred) */ + #define LV_X11_RENDER_MODE_DIRECT 0 /**< Direct render mode */ + #define LV_X11_RENDER_MODE_FULL 0 /**< Full render mode */ #endif -/*Use Wayland to open a window and handle input on Linux or BSD desktops */ +/** Use Wayland to open a window and handle input on Linux or BSD desktops */ #define LV_USE_WAYLAND 0 #if LV_USE_WAYLAND - #define LV_WAYLAND_WINDOW_DECORATIONS 0 /*Draw client side window decorations only necessary on Mutter/GNOME*/ - #define LV_WAYLAND_WL_SHELL 0 /*Use the legacy wl_shell protocol instead of the default XDG shell*/ + #define LV_WAYLAND_WINDOW_DECORATIONS 0 /**< Draw client side window decorations only necessary on Mutter/GNOME */ + #define LV_WAYLAND_WL_SHELL 0 /**< Use the legacy wl_shell protocol instead of the default XDG shell */ #endif -/*Driver for /dev/fb*/ +/** Driver for /dev/fb */ #if LV_USE_LINUX_FBDEV #define LV_LINUX_FBDEV_BSD 0 #define LV_LINUX_FBDEV_RENDER_MODE LV_DISPLAY_RENDER_MODE_PARTIAL @@ -933,75 +1054,79 @@ #define LV_LINUX_FBDEV_BUFFER_SIZE 60 #endif -/*Use Nuttx to open window and handle touchscreen*/ +/** Use Nuttx to open window and handle touchscreen */ #define LV_USE_NUTTX 0 #if LV_USE_NUTTX + #define LV_USE_NUTTX_INDEPENDENT_IMAGE_HEAP 0 + #define LV_USE_NUTTX_LIBUV 0 - /*Use Nuttx custom init API to open window and handle touchscreen*/ + /** Use Nuttx custom init API to open window and handle touchscreen */ #define LV_USE_NUTTX_CUSTOM_INIT 0 - /*Driver for /dev/lcd*/ + /** Driver for /dev/lcd */ #define LV_USE_NUTTX_LCD 0 #if LV_USE_NUTTX_LCD #define LV_NUTTX_LCD_BUFFER_COUNT 0 #define LV_NUTTX_LCD_BUFFER_SIZE 60 #endif - /*Driver for /dev/input*/ + /** Driver for /dev/input */ #define LV_USE_NUTTX_TOUCHSCREEN 0 - #endif - -/*Driver for evdev input devices*/ +/** Driver for evdev input devices */ #define LV_USE_EVDEV 0 -/*Driver for libinput input devices*/ +/** Driver for libinput input devices */ #define LV_USE_LIBINPUT 0 #if LV_USE_LIBINPUT #define LV_LIBINPUT_BSD 0 - /*Full keyboard support*/ + /** Full keyboard support */ #define LV_LIBINPUT_XKB 0 #if LV_LIBINPUT_XKB - /*"setxkbmap -query" can help find the right values for your keyboard*/ + /** "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 +/* Drivers for LCD devices connected via SPI/parallel port */ #define LV_USE_GENERIC_MIPI (LV_USE_ST7735 | LV_USE_ST7789 | LV_USE_ST7796 | LV_USE_ILI9341) -/* LVGL Windows backend */ -#define LV_USE_WINDOWS 0 - -/* Use OpenGL to open window on PC and handle mouse and keyboard */ -#define LV_USE_OPENGLES 0 -#if LV_USE_OPENGLES - #define LV_USE_OPENGLES_DEBUG 1 /* Enable or disable debug for opengles */ +/** Driver for ST LTDC */ +#if LV_USE_ST_LTDC + /* Only used for partial. */ + #define LV_ST_LTDC_USE_DMA2D_FLUSH 0 #endif -/* QNX Screen display and input drivers */ +/** Use OpenGL to open window on PC and handle mouse and keyboard */ +#define LV_USE_OPENGLES 0 +#if LV_USE_OPENGLES + #define LV_USE_OPENGLES_DEBUG 1 /**< Enable or disable debug for opengles */ +#endif + +/** QNX Screen display and input drivers */ #define LV_USE_QNX 0 #if LV_USE_QNX - #define LV_QNX_BUF_COUNT 1 /*1 or 2*/ + #define LV_QNX_BUF_COUNT 1 /**< 1 or 2 */ #endif /*================== * EXAMPLES *==================*/ -/*Enable the examples to be built with the library*/ +/** Enable examples to be built with the library. */ #define LV_BUILD_EXAMPLES 1 /*=================== * DEMO USAGE ====================*/ -/*Music player demo*/ +/** Music player demo */ #if LV_USE_DEMO_MUSIC #define LV_DEMO_MUSIC_SQUARE 0 #define LV_DEMO_MUSIC_LANDSCAPE 0 @@ -1010,6 +1135,12 @@ #define LV_DEMO_MUSIC_AUTO_PLAY 0 #endif +/*E-bike demo with Lottie animations (if LV_USE_LOTTIE is enabled)*/ +#define LV_USE_DEMO_EBIKE 0 +#if LV_USE_DEMO_EBIKE + #define LV_DEMO_EBIKE_PORTRAIT 0 /*0: for 480x270..480x320, 1: for 480x800..720x1280*/ +#endif + /*--END OF LV_CONF_H--*/ #endif /*LV_CONF_H*/ diff --git a/library.json b/library.json index 37e104aea..729961857 100644 --- a/library.json +++ b/library.json @@ -1,6 +1,6 @@ { "name": "lvgl", - "version": "9.2.0", + "version": "9.3.0-dev", "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 7dbe2228e..e57fd71db 100644 --- a/library.properties +++ b/library.properties @@ -1,5 +1,5 @@ name=lvgl -version=9.2.0 +version=9.3.0-dev 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 1acf79073..914189fcd 100644 --- a/lv_conf_template.h +++ b/lv_conf_template.h @@ -851,7 +851,7 @@ /** GIF decoder library */ #define LV_USE_GIF 0 - #if LV_USE_GIF +#if LV_USE_GIF /** GIF decoder accelerate */ #define LV_GIF_CACHE_DECODE_DATA 0 #endif diff --git a/src/lv_conf_internal.h b/src/lv_conf_internal.h index 3c2d347df..7c66634d1 100644 --- a/src/lv_conf_internal.h +++ b/src/lv_conf_internal.h @@ -2742,7 +2742,7 @@ #define LV_USE_GIF 0 #endif #endif - #if LV_USE_GIF +#if LV_USE_GIF /** GIF decoder accelerate */ #ifndef LV_GIF_CACHE_DECODE_DATA #ifdef CONFIG_LV_GIF_CACHE_DECODE_DATA