1 /** 2 * @file lv_conf.h 3 * Configuration file for v9.3.0-dev 4 */ 5 6 /* clang-format off */ 7 #if 1 /* Set this to "1" to enable content */ 8 9 #ifndef LV_CONF_H 10 #define LV_CONF_H 11 12 #include "RTE_Components.h" 13 14 /* If you need to include anything here, do it inside the `__ASSEMBLY__` guard */ 15 #if 0 && defined(__ASSEMBLY__) 16 #include "my_include.h" 17 #endif 18 19 /*==================== 20 COLOR SETTINGS 21 *====================*/ 22 23 /** Color depth: 1 (I1), 8 (L8), 16 (RGB565), 24 (RGB888), 32 (XRGB8888) */ 24 #define LV_COLOR_DEPTH 16 25 26 /** Swap the high and low bytes for RGB565 */ 27 #define LV_COLOR_16_SWAP 0 28 29 /*========================= 30 STDLIB WRAPPER SETTINGS 31 *=========================*/ 32 33 /** Possible values 34 * - LV_STDLIB_BUILTIN: LVGL's built in implementation 35 * - LV_STDLIB_CLIB: Standard C functions, like malloc, strlen, etc 36 * - LV_STDLIB_MICROPYTHON: MicroPython implementation 37 * - LV_STDLIB_RTTHREAD: RT-Thread implementation 38 * - LV_STDLIB_CUSTOM: Implement the functions externally 39 */ 40 #define LV_USE_STDLIB_MALLOC LV_STDLIB_BUILTIN 41 42 /** Possible values 43 * - LV_STDLIB_BUILTIN: LVGL's built in implementation 44 * - LV_STDLIB_CLIB: Standard C functions, like malloc, strlen, etc 45 * - LV_STDLIB_MICROPYTHON: MicroPython implementation 46 * - LV_STDLIB_RTTHREAD: RT-Thread implementation 47 * - LV_STDLIB_CUSTOM: Implement the functions externally 48 */ 49 #define LV_USE_STDLIB_STRING LV_STDLIB_BUILTIN 50 51 /** Possible values 52 * - LV_STDLIB_BUILTIN: LVGL's built in implementation 53 * - LV_STDLIB_CLIB: Standard C functions, like malloc, strlen, etc 54 * - LV_STDLIB_MICROPYTHON: MicroPython implementation 55 * - LV_STDLIB_RTTHREAD: RT-Thread implementation 56 * - LV_STDLIB_CUSTOM: Implement the functions externally 57 */ 58 #define LV_USE_STDLIB_SPRINTF LV_STDLIB_BUILTIN 59 60 #define LV_STDINT_INCLUDE <stdint.h> 61 #define LV_STDDEF_INCLUDE <stddef.h> 62 #define LV_STDBOOL_INCLUDE <stdbool.h> 63 #define LV_INTTYPES_INCLUDE <inttypes.h> 64 #define LV_LIMITS_INCLUDE <limits.h> 65 #define LV_STDARG_INCLUDE <stdarg.h> 66 67 #if LV_USE_STDLIB_MALLOC == LV_STDLIB_BUILTIN 68 /** Size of memory available for `lv_malloc()` in bytes (>= 2kB) */ 69 #define LV_MEM_SIZE (128 * 1024U) /**< [bytes] */ 70 71 /** Size of the memory expand for `lv_malloc()` in bytes */ 72 #define LV_MEM_POOL_EXPAND_SIZE 0 73 74 /** Set an address for the memory pool instead of allocating it as a normal array. Can be in external SRAM too. */ 75 #define LV_MEM_ADR 0 /**< 0: unused*/ 76 /* Instead of an address give a memory allocator that will be called to get a memory pool for LVGL. E.g. my_malloc */ 77 #if LV_MEM_ADR == 0 78 #undef LV_MEM_POOL_INCLUDE 79 #undef LV_MEM_POOL_ALLOC 80 #endif 81 #endif /*LV_USE_STDLIB_MALLOC == LV_STDLIB_BUILTIN*/ 82 83 /*==================== 84 HAL SETTINGS 85 *====================*/ 86 87 /** Default display refresh, input device read and animation step period. */ 88 #define LV_DEF_REFR_PERIOD 33 /**< [ms] */ 89 90 /** Default Dots Per Inch. Used to initialize default sizes such as widgets sized, style paddings. 91 * (Not so important, you can adjust it to modify default sizes and spaces.) */ 92 #define LV_DPI_DEF 130 /**< [px/inch] */ 93 94 /*customize tick-get */ 95 #if defined(__PERF_COUNTER__) && __PERF_COUNTER__ 96 #define LV_GLOBAL_INIT(__GLOBAL_PTR) \ 97 do { \ 98 lv_global_init((lv_global_t *)(__GLOBAL_PTR)); \ 99 extern uint32_t perfc_tick_get(void); \ 100 (__GLOBAL_PTR)->tick_state.tick_get_cb = perfc_tick_get; \ 101 } while(0) 102 #endif 103 104 /*================= 105 * OPERATING SYSTEM 106 *=================*/ 107 /** Select operating system to use. Possible options: 108 * - LV_OS_NONE 109 * - LV_OS_PTHREAD 110 * - LV_OS_FREERTOS 111 * - LV_OS_CMSIS_RTOS2 112 * - LV_OS_RTTHREAD 113 * - LV_OS_WINDOWS 114 * - LV_OS_MQX 115 * - LV_OS_CUSTOM */ 116 117 #if LV_USE_OS == LV_OS_CUSTOM 118 #define LV_OS_CUSTOM_INCLUDE <stdint.h> 119 #endif 120 #if LV_USE_OS == LV_OS_FREERTOS 121 /* 122 * Unblocking an RTOS task with a direct notification is 45% faster and uses less RAM 123 * than unblocking a task using an intermediary object such as a binary semaphore. 124 * RTOS task notifications can only be used when there is only one task that can be the recipient of the event. 125 */ 126 #define LV_USE_FREERTOS_TASK_NOTIFY 1 127 #endif 128 129 /*======================== 130 * RENDERING CONFIGURATION 131 *========================*/ 132 133 /** Align stride of all layers and images to this bytes */ 134 #define LV_DRAW_BUF_STRIDE_ALIGN 4 135 136 /** Align start address of draw_buf addresses to this bytes*/ 137 #define LV_DRAW_BUF_ALIGN 4 138 139 /** Using matrix for transformations. 140 * Requirements: 141 * - `LV_USE_MATRIX = 1`. 142 * - Rendering engine needs to support 3x3 matrix transformations. */ 143 #define LV_DRAW_TRANSFORM_USE_MATRIX 0 144 145 /* If a widget has `style_opa < 255` (not `bg_opa`, `text_opa` etc) or not NORMAL blend mode 146 * it is buffered into a "simple" layer before rendering. The widget can be buffered in smaller chunks. 147 * "Transformed layers" (if `transform_angle/zoom` are set) use larger buffers 148 * and can't be drawn in chunks. */ 149 150 /** The target buffer size for simple layer chunks. */ 151 #define LV_DRAW_LAYER_SIMPLE_BUF_SIZE (24 * 1024) /**< [bytes]*/ 152 153 /** Stack size of drawing thread. 154 * NOTE: If FreeType or ThorVG is enabled, it is recommended to set it to 32KB or more. 155 */ 156 #define LV_DRAW_THREAD_STACK_SIZE (8 * 1024) /**< [bytes]*/ 157 158 #define LV_USE_DRAW_SW 1 159 #if LV_USE_DRAW_SW == 1 160 /* 161 * Selectively disable color format support in order to reduce code size. 162 * NOTE: some features use certain color formats internally, e.g. 163 * - gradients use RGB888 164 * - bitmaps with transparency may use ARGB8888 165 */ 166 #define LV_DRAW_SW_SUPPORT_RGB565 1 167 #define LV_DRAW_SW_SUPPORT_RGB565A8 1 168 #define LV_DRAW_SW_SUPPORT_RGB888 1 169 #define LV_DRAW_SW_SUPPORT_XRGB8888 1 170 #define LV_DRAW_SW_SUPPORT_ARGB8888 1 171 #define LV_DRAW_SW_SUPPORT_L8 1 172 #define LV_DRAW_SW_SUPPORT_AL88 1 173 #define LV_DRAW_SW_SUPPORT_A8 1 174 #define LV_DRAW_SW_SUPPORT_I1 1 175 176 /** Set number of draw units. 177 * - > 1 requires operating system to be enabled in `LV_USE_OS`. 178 * - > 1 means multiple threads will render the screen in parallel. */ 179 #define LV_DRAW_SW_DRAW_UNIT_CNT 1 180 181 /** Enable native helium assembly to be compiled. */ 182 #define LV_USE_NATIVE_HELIUM_ASM 0 183 184 /** 185 * - 0: Use a simple renderer capable of drawing only simple rectangles with gradient, images, text, and straight lines only. 186 * - 1: Use a complex renderer capable of drawing rounded corners, shadow, skew lines, and arcs too. */ 187 #define LV_DRAW_SW_COMPLEX 1 188 189 #if LV_DRAW_SW_COMPLEX == 1 190 /** Allow buffering some shadow calculation. 191 * LV_DRAW_SW_SHADOW_CACHE_SIZE is the maximum shadow size to buffer, where shadow size is 192 * `shadow_width + radius`. Caching has LV_DRAW_SW_SHADOW_CACHE_SIZE^2 RAM cost. */ 193 #define LV_DRAW_SW_SHADOW_CACHE_SIZE 0 194 195 /** Set number of maximally-cached circle data. 196 * The circumference of 1/4 circle are saved for anti-aliasing. 197 * `radius * 4` bytes are used per circle (the most often used radiuses are saved). 198 * - 0: disables caching */ 199 #define LV_DRAW_SW_CIRCLE_CACHE_SIZE 4 200 #endif 201 202 #if !defined(LV_USE_DRAW_SW_ASM) && defined(RTE_Acceleration_Arm_2D) 203 /*turn-on helium acceleration when Arm-2D and the Helium-powered device are detected */ 204 #if defined(__ARM_FEATURE_MVE) && __ARM_FEATURE_MVE 205 #define LV_USE_DRAW_SW_ASM LV_DRAW_SW_ASM_HELIUM 206 #define LV_USE_DRAW_ARM2D_SYNC 1 207 #endif 208 #endif 209 210 #ifndef LV_USE_DRAW_SW_ASM 211 #define LV_USE_DRAW_SW_ASM LV_DRAW_SW_ASM_NONE 212 #endif 213 214 #if LV_USE_DRAW_SW_ASM == LV_DRAW_SW_ASM_CUSTOM 215 #define LV_DRAW_SW_ASM_CUSTOM_INCLUDE "" 216 #endif 217 218 /** Enable drawing complex gradients in software: linear at an angle, radial or conical */ 219 #define LV_USE_DRAW_SW_COMPLEX_GRADIENTS 0 220 #endif 221 222 /*Use TSi's aka (Think Silicon) NemaGFX */ 223 #if LV_USE_NEMA_GFX 224 #define LV_NEMA_GFX_HAL_INCLUDE <stm32u5xx_hal.h> 225 226 /*Enable Vector Graphics Operations. Available only if NemaVG library is present*/ 227 #define LV_USE_NEMA_VG 0 228 229 #if LV_USE_NEMA_VG 230 /*Define application's resolution used for VG related buffer allocation */ 231 #define LV_NEMA_GFX_MAX_RESX 800 232 #define LV_NEMA_GFX_MAX_RESY 600 233 #endif 234 #endif 235 236 /** Use NXP's VG-Lite GPU on iMX RTxxx platforms. */ 237 #if LV_USE_DRAW_VGLITE 238 /** Enable blit quality degradation workaround recommended for screen's dimension > 352 pixels. */ 239 #define LV_USE_VGLITE_BLIT_SPLIT 0 240 241 #if LV_USE_OS 242 /** Use additional draw thread for VG-Lite processing. */ 243 #define LV_USE_VGLITE_DRAW_THREAD 1 244 245 #if LV_USE_VGLITE_DRAW_THREAD 246 /** Enable VGLite draw async. Queue multiple tasks and flash them once to the GPU. */ 247 #define LV_USE_VGLITE_DRAW_ASYNC 1 248 #endif 249 #endif 250 251 /** Enable VGLite asserts. */ 252 #define LV_USE_VGLITE_ASSERT 0 253 #endif 254 255 /** Use NXP's PXP on iMX RTxxx platforms. */ 256 #define LV_USE_PXP 0 257 258 #if LV_USE_PXP 259 /** Use PXP for drawing.*/ 260 #define LV_USE_DRAW_PXP 1 261 262 /** Use PXP to rotate display.*/ 263 #define LV_USE_ROTATE_PXP 0 264 265 #if LV_USE_DRAW_PXP && LV_USE_OS 266 /** Use additional draw thread for PXP processing.*/ 267 #define LV_USE_PXP_DRAW_THREAD 1 268 #endif 269 270 /** Enable PXP asserts. */ 271 #define LV_USE_PXP_ASSERT 0 272 #endif 273 274 /** Use VG-Lite GPU. */ 275 #if LV_USE_DRAW_VG_LITE 276 /** Enable VG-Lite custom external 'gpu_init()' function */ 277 #define LV_VG_LITE_USE_GPU_INIT 0 278 279 /** Enable VG-Lite assert. */ 280 #define LV_VG_LITE_USE_ASSERT 0 281 282 /** VG-Lite flush commit trigger threshold. GPU will try to batch these many draw tasks. */ 283 #define LV_VG_LITE_FLUSH_MAX_COUNT 8 284 285 /** Enable border to simulate shadow. 286 * NOTE: which usually improves performance, 287 * but does not guarantee the same rendering quality as the software. */ 288 #define LV_VG_LITE_USE_BOX_SHADOW 0 289 290 /** VG-Lite gradient maximum cache number. 291 * @note The memory usage of a single gradient image is 4K bytes. */ 292 #define LV_VG_LITE_GRAD_CACHE_CNT 32 293 294 /** VG-Lite stroke maximum cache number. */ 295 #define LV_VG_LITE_STROKE_CACHE_CNT 32 296 #endif 297 298 /** Accelerate blends, fills, etc. with STM32 DMA2D */ 299 #if LV_USE_DRAW_DMA2D 300 #define LV_DRAW_DMA2D_HAL_INCLUDE "stm32h7xx_hal.h" 301 302 /* if enabled, the user is required to call `lv_draw_dma2d_transfer_complete_interrupt_handler` 303 * upon receiving the DMA2D global interrupt 304 */ 305 #define LV_USE_DRAW_DMA2D_INTERRUPT 0 306 #endif 307 308 /** Draw using cached OpenGLES textures */ 309 #define LV_USE_DRAW_OPENGLES 0 310 311 /*======================= 312 * FEATURE CONFIGURATION 313 *=======================*/ 314 315 /*------------- 316 * Logging 317 *-----------*/ 318 319 /** Enable log module */ 320 #define LV_USE_LOG 0 321 #if LV_USE_LOG 322 /** Set value to one of the following levels of logging detail: 323 * - LV_LOG_LEVEL_TRACE Log detailed information. 324 * - LV_LOG_LEVEL_INFO Log important events. 325 * - LV_LOG_LEVEL_WARN Log if something unwanted happened but didn't cause a problem. 326 * - LV_LOG_LEVEL_ERROR Log only critical issues, when system may fail. 327 * - LV_LOG_LEVEL_USER Log only custom log messages added by the user. 328 * - LV_LOG_LEVEL_NONE Do not log anything. */ 329 #define LV_LOG_LEVEL LV_LOG_LEVEL_USER 330 331 /** - 1: Print log with 'printf'; 332 * - 0: User needs to register a callback with `lv_log_register_print_cb()`. */ 333 #define LV_LOG_PRINTF 1 334 335 /** Set callback to print logs. 336 * E.g `my_print`. The prototype should be `void my_print(lv_log_level_t level, const char * buf)`. 337 * Can be overwritten by `lv_log_register_print_cb`. */ 338 //#define LV_LOG_PRINT_CB 339 340 /** - 1: Enable printing timestamp; 341 * - 0: Disable printing timestamp. */ 342 #define LV_LOG_USE_TIMESTAMP 1 343 344 /** - 1: Print file and line number of the log; 345 * - 0: Do not print file and line number of the log. */ 346 #define LV_LOG_USE_FILE_LINE 1 347 348 /* Enable/disable LV_LOG_TRACE in modules that produces a huge number of logs. */ 349 #define LV_LOG_TRACE_MEM 1 /**< Enable/disable trace logs in memory operations. */ 350 #define LV_LOG_TRACE_TIMER 1 /**< Enable/disable trace logs in timer operations. */ 351 #define LV_LOG_TRACE_INDEV 1 /**< Enable/disable trace logs in input device operations. */ 352 #define LV_LOG_TRACE_DISP_REFR 1 /**< Enable/disable trace logs in display re-draw operations. */ 353 #define LV_LOG_TRACE_EVENT 1 /**< Enable/disable trace logs in event dispatch logic. */ 354 #define LV_LOG_TRACE_OBJ_CREATE 1 /**< Enable/disable trace logs in object creation (core `obj` creation plus every widget). */ 355 #define LV_LOG_TRACE_LAYOUT 1 /**< Enable/disable trace logs in flex- and grid-layout operations. */ 356 #define LV_LOG_TRACE_ANIM 1 /**< Enable/disable trace logs in animation logic. */ 357 #define LV_LOG_TRACE_CACHE 1 /**< Enable/disable trace logs in cache operations. */ 358 #endif /*LV_USE_LOG*/ 359 360 /*------------- 361 * Asserts 362 *-----------*/ 363 364 /* Enable assertion failures if an operation fails or invalid data is found. 365 * If LV_USE_LOG is enabled, an error message will be printed on failure. */ 366 #define LV_USE_ASSERT_NULL 1 /**< Check if the parameter is NULL. (Very fast, recommended) */ 367 #define LV_USE_ASSERT_MALLOC 1 /**< Checks is the memory is successfully allocated or no. (Very fast, recommended) */ 368 #define LV_USE_ASSERT_STYLE 0 /**< Check if the styles are properly initialized. (Very fast, recommended) */ 369 #define LV_USE_ASSERT_MEM_INTEGRITY 0 /**< Check the integrity of `lv_mem` after critical operations. (Slow) */ 370 #define LV_USE_ASSERT_OBJ 0 /**< Check the object's type and existence (e.g. not deleted). (Slow) */ 371 372 /** Add a custom handler when assert happens e.g. to restart MCU. */ 373 #define LV_ASSERT_HANDLER_INCLUDE <stdint.h> 374 #define LV_ASSERT_HANDLER while(1); /**< Halt by default */ 375 376 /*------------- 377 * Debug 378 *-----------*/ 379 380 /** 1: Draw random colored rectangles over the redrawn areas. */ 381 #define LV_USE_REFR_DEBUG 0 382 383 /** 1: Draw a red overlay for ARGB layers and a green overlay for RGB layers*/ 384 #define LV_USE_LAYER_DEBUG 0 385 386 /** 1: Adds the following behaviors for debugging: 387 * - Draw overlays with different colors for each draw_unit's tasks. 388 * - Draw index number of draw unit on white background. 389 * - For layers, draws index number of draw unit on black background. */ 390 #define LV_USE_PARALLEL_DRAW_DEBUG 0 391 392 /*------------- 393 * Others 394 *-----------*/ 395 396 #define LV_ENABLE_GLOBAL_CUSTOM 0 397 #if LV_ENABLE_GLOBAL_CUSTOM 398 /** Header to include for custom 'lv_global' function" */ 399 #define LV_GLOBAL_CUSTOM_INCLUDE <stdint.h> 400 #endif 401 402 /** Default cache size in bytes. 403 * Used by image decoders such as `lv_lodepng` to keep the decoded image in memory. 404 * If size is not set to 0, the decoder will fail to decode when the cache is full. 405 * If size is 0, the cache function is not enabled and the decoded memory will be 406 * released immediately after use. */ 407 #define LV_CACHE_DEF_SIZE 0 408 409 /** Default number of image header cache entries. The cache is used to store the headers of images 410 * The main logic is like `LV_CACHE_DEF_SIZE` but for image headers. */ 411 #define LV_IMAGE_HEADER_CACHE_DEF_CNT 0 412 413 /** Number of stops allowed per gradient. Increase this to allow more stops. 414 * This adds (sizeof(lv_color_t) + 1) bytes per additional stop. */ 415 #define LV_GRADIENT_MAX_STOPS 2 416 417 /** Adjust color mix functions rounding. GPUs might calculate color mix (blending) differently. 418 * - 0: round down, 419 * - 64: round up from x.75, 420 * - 128: round up from half, 421 * - 192: round up from x.25, 422 * - 254: round up */ 423 #define LV_COLOR_MIX_ROUND_OFS 0 424 425 /** Add 2 x 32-bit variables to each `lv_obj_t` to speed up getting style properties */ 426 #define LV_OBJ_STYLE_CACHE 0 427 428 /** Add `id` field to `lv_obj_t` */ 429 #define LV_USE_OBJ_ID 0 430 431 /** Automatically assign an ID when obj is created */ 432 #define LV_OBJ_ID_AUTO_ASSIGN LV_USE_OBJ_ID 433 434 /** Use builtin obj ID handler functions: 435 * - lv_obj_assign_id: Called when a widget is created. Use a separate counter for each widget class as an ID. 436 * - lv_obj_id_compare: Compare the ID to decide if it matches with a requested value. 437 * - lv_obj_stringify_id: Return string-ified identifier, e.g. "button3". 438 * - lv_obj_free_id: Does nothing, as there is no memory allocation for the ID. 439 * When disabled these functions needs to be implemented by the user.*/ 440 #define LV_USE_OBJ_ID_BUILTIN 1 441 442 /** Use obj property set/get API. */ 443 #define LV_USE_OBJ_PROPERTY 0 444 445 /** Enable property name support. */ 446 #define LV_USE_OBJ_PROPERTY_NAME 1 447 448 /* Use VG-Lite Simulator. 449 * - Requires: LV_USE_THORVG_INTERNAL or LV_USE_THORVG_EXTERNAL */ 450 #define LV_USE_VG_LITE_THORVG 0 451 452 #if LV_USE_VG_LITE_THORVG 453 /** Enable LVGL's blend mode support */ 454 #define LV_VG_LITE_THORVG_LVGL_BLEND_SUPPORT 0 455 456 /** Enable YUV color format support */ 457 #define LV_VG_LITE_THORVG_YUV_SUPPORT 0 458 459 /** Enable Linear gradient extension support */ 460 #define LV_VG_LITE_THORVG_LINEAR_GRADIENT_EXT_SUPPORT 0 461 462 /** Enable alignment on 16 pixels */ 463 #define LV_VG_LITE_THORVG_16PIXELS_ALIGN 1 464 465 /** Buffer address alignment */ 466 #define LV_VG_LITE_THORVG_BUF_ADDR_ALIGN 64 467 468 /** Enable multi-thread render */ 469 #define LV_VG_LITE_THORVG_THREAD_RENDER 0 470 #endif 471 472 /*===================== 473 * COMPILER SETTINGS 474 *====================*/ 475 476 /** For big endian systems set to 1 */ 477 #define LV_BIG_ENDIAN_SYSTEM 0 478 479 /** Define a custom attribute for `lv_tick_inc` function */ 480 #define LV_ATTRIBUTE_TICK_INC 481 482 /** Define a custom attribute for `lv_timer_handler` function */ 483 #define LV_ATTRIBUTE_TIMER_HANDLER 484 485 /** Define a custom attribute for `lv_display_flush_ready` function */ 486 #define LV_ATTRIBUTE_FLUSH_READY 487 488 /** Align VG_LITE buffers on this number of bytes. 489 * @note vglite_src_buf_aligned() uses this value to validate alignment of passed buffer pointers. */ 490 #define LV_ATTRIBUTE_MEM_ALIGN_SIZE 1 491 492 /** Will be added where memory needs to be aligned (with -Os data might not be aligned to boundary by default). 493 * E.g. __attribute__((aligned(4)))*/ 494 #define LV_ATTRIBUTE_MEM_ALIGN __attribute__((aligned(4))) 495 496 /** Attribute to mark large constant arrays, for example for font bitmaps */ 497 #define LV_ATTRIBUTE_LARGE_CONST 498 499 /** Compiler prefix for a large array declaration in RAM */ 500 #define LV_ATTRIBUTE_LARGE_RAM_ARRAY 501 502 /** Place performance critical functions into a faster memory (e.g RAM) */ 503 #define LV_ATTRIBUTE_FAST_MEM 504 505 /** Export integer constant to binding. This macro is used with constants in the form of LV_<CONST> that 506 * should also appear on LVGL binding API such as MicroPython. */ 507 #define LV_EXPORT_CONST_INT(int_value) struct _silence_gcc_warning /**< The default value just prevents GCC warning */ 508 509 /** Prefix all global extern data with this */ 510 #define LV_ATTRIBUTE_EXTERN_DATA 511 512 /** Use `float` as `lv_value_precise_t` */ 513 #define LV_USE_FLOAT 0 514 515 /** Enable matrix support 516 * - Requires `LV_USE_FLOAT = 1` */ 517 #define LV_USE_MATRIX 0 518 519 /** Include `lvgl_private.h` in `lvgl.h` to access internal data and functions by default */ 520 #define LV_USE_PRIVATE_API 0 521 522 /*================== 523 * FONT USAGE 524 *===================*/ 525 526 /* Montserrat fonts with ASCII range and some symbols using bpp = 4 527 * https://fonts.google.com/specimen/Montserrat */ 528 #define LV_FONT_MONTSERRAT_8 0 529 #define LV_FONT_MONTSERRAT_10 0 530 #define LV_FONT_MONTSERRAT_12 1 531 #define LV_FONT_MONTSERRAT_14 1 532 #define LV_FONT_MONTSERRAT_16 1 533 #define LV_FONT_MONTSERRAT_18 0 534 #define LV_FONT_MONTSERRAT_20 1 535 #define LV_FONT_MONTSERRAT_22 0 536 #define LV_FONT_MONTSERRAT_24 1 537 #define LV_FONT_MONTSERRAT_26 1 538 #define LV_FONT_MONTSERRAT_28 0 539 #define LV_FONT_MONTSERRAT_30 0 540 #define LV_FONT_MONTSERRAT_32 0 541 #define LV_FONT_MONTSERRAT_34 0 542 #define LV_FONT_MONTSERRAT_36 0 543 #define LV_FONT_MONTSERRAT_38 0 544 #define LV_FONT_MONTSERRAT_40 0 545 #define LV_FONT_MONTSERRAT_42 0 546 #define LV_FONT_MONTSERRAT_44 0 547 #define LV_FONT_MONTSERRAT_46 0 548 #define LV_FONT_MONTSERRAT_48 0 549 550 /* Demonstrate special features */ 551 #define LV_FONT_MONTSERRAT_28_COMPRESSED 0 /**< bpp = 3 */ 552 #define LV_FONT_DEJAVU_16_PERSIAN_HEBREW 0 /**< Hebrew, Arabic, Persian letters and all their forms */ 553 #define LV_FONT_SIMSUN_14_CJK 0 /**< 1000 most common CJK radicals */ 554 #define LV_FONT_SIMSUN_16_CJK 0 /**< 1000 most common CJK radicals */ 555 556 /** Pixel perfect monospaced fonts */ 557 #define LV_FONT_UNSCII_8 0 558 #define LV_FONT_UNSCII_16 0 559 560 /** Optionally declare custom fonts here. 561 * 562 * You can use any of these fonts as the default font too and they will be available 563 * globally. Example: 564 * 565 * @code 566 * #define LV_FONT_CUSTOM_DECLARE LV_FONT_DECLARE(my_font_1) LV_FONT_DECLARE(my_font_2) 567 * @endcode 568 */ 569 #define LV_FONT_CUSTOM_DECLARE 570 571 /** Always set a default font */ 572 #define LV_FONT_DEFAULT &lv_font_montserrat_14 573 574 /** Enable handling large font and/or fonts with a lot of characters. 575 * The limit depends on the font size, font face and bpp. 576 * A compiler error will be triggered if a font needs it. */ 577 #define LV_FONT_FMT_TXT_LARGE 0 578 579 /** Enables/disables support for compressed fonts. */ 580 #define LV_USE_FONT_COMPRESSED 0 581 582 /** Enable drawing placeholders when glyph dsc is not found. */ 583 #define LV_USE_FONT_PLACEHOLDER 1 584 585 /*================= 586 * TEXT SETTINGS 587 *=================*/ 588 589 /** 590 * Select a character encoding for strings. 591 * Your IDE or editor should have the same character encoding. 592 * - LV_TXT_ENC_UTF8 593 * - LV_TXT_ENC_ASCII 594 */ 595 #define LV_TXT_ENC LV_TXT_ENC_UTF8 596 597 /** While rendering text strings, break (wrap) text on these chars. */ 598 #define LV_TXT_BREAK_CHARS " ,.;:-_)]}" 599 600 /** If a word is at least this long, will break wherever "prettiest". 601 * To disable, set to a value <= 0. */ 602 #define LV_TXT_LINE_BREAK_LONG_LEN 0 603 604 /** Minimum number of characters in a long word to put on a line before a break. 605 * Depends on LV_TXT_LINE_BREAK_LONG_LEN. */ 606 #define LV_TXT_LINE_BREAK_LONG_PRE_MIN_LEN 3 607 608 /** Minimum number of characters in a long word to put on a line after a break. 609 * Depends on LV_TXT_LINE_BREAK_LONG_LEN. */ 610 #define LV_TXT_LINE_BREAK_LONG_POST_MIN_LEN 3 611 612 /** Support bidirectional text. Allows mixing Left-to-Right and Right-to-Left text. 613 * The direction will be processed according to the Unicode Bidirectional Algorithm: 614 * https://www.w3.org/International/articles/inline-bidi-markup/uba-basics */ 615 #define LV_USE_BIDI 0 616 #if LV_USE_BIDI 617 /*Set the default direction. Supported values: 618 *`LV_BASE_DIR_LTR` Left-to-Right 619 *`LV_BASE_DIR_RTL` Right-to-Left 620 *`LV_BASE_DIR_AUTO` detect text base direction*/ 621 #define LV_BIDI_BASE_DIR_DEF LV_BASE_DIR_AUTO 622 #endif 623 624 /** Enable Arabic/Persian processing 625 * In these languages characters should be replaced with another form based on their position in the text */ 626 #define LV_USE_ARABIC_PERSIAN_CHARS 0 627 628 /*The control character to use for signaling text recoloring*/ 629 #define LV_TXT_COLOR_CMD "#" 630 631 /*================== 632 * WIDGETS 633 *================*/ 634 /* Documentation for widgets can be found here: https://docs.lvgl.io/latest/en/html/widgets/index.html . */ 635 636 /** 1: Causes these widgets to be given default values at creation time. 637 * - lv_buttonmatrix_t: Get default maps: {"Btn1", "Btn2", "Btn3", "\n", "Btn4", "Btn5", ""}, else map not set. 638 * - lv_checkbox_t : String label set to "Check box", else set to empty string. 639 * - lv_dropdown_t : Options set to "Option 1", "Option 2", "Option 3", else no values are set. 640 * - lv_roller_t : Options set to "Option 1", "Option 2", "Option 3", "Option 4", "Option 5", else no values are set. 641 * - lv_label_t : Text set to "Text", else empty string. 642 * */ 643 #define LV_WIDGETS_HAS_DEFAULT_VALUE 1 644 645 #define LV_USE_ANIMIMG 1 646 647 #define LV_USE_ARC 1 648 649 #define LV_USE_BAR 1 650 651 #define LV_USE_BUTTON 1 652 653 #define LV_USE_BUTTONMATRIX 1 654 655 #define LV_USE_CALENDAR 1 656 #if LV_USE_CALENDAR 657 #define LV_CALENDAR_WEEK_STARTS_MONDAY 0 658 #if LV_CALENDAR_WEEK_STARTS_MONDAY 659 #define LV_CALENDAR_DEFAULT_DAY_NAMES {"Mo", "Tu", "We", "Th", "Fr", "Sa", "Su"} 660 #else 661 #define LV_CALENDAR_DEFAULT_DAY_NAMES {"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"} 662 #endif 663 664 #define LV_CALENDAR_DEFAULT_MONTH_NAMES {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"} 665 #define LV_USE_CALENDAR_HEADER_ARROW 1 666 #define LV_USE_CALENDAR_HEADER_DROPDOWN 1 667 #define LV_USE_CALENDAR_CHINESE 0 668 #endif /*LV_USE_CALENDAR*/ 669 670 #define LV_USE_CANVAS 1 671 672 #define LV_USE_CHART 1 673 674 #define LV_USE_CHECKBOX 1 675 676 #define LV_USE_DROPDOWN 1 /**< Requires: lv_label */ 677 678 #define LV_USE_IMAGE 1 /**< Requires: lv_label */ 679 680 #define LV_USE_IMAGEBUTTON 1 681 682 #define LV_USE_KEYBOARD 1 683 684 #define LV_USE_LABEL 1 685 #if LV_USE_LABEL 686 #define LV_LABEL_TEXT_SELECTION 1 /**< Enable selecting text of the label */ 687 #define LV_LABEL_LONG_TXT_HINT 1 /**< Store some extra info in labels to speed up drawing of very long text */ 688 #define LV_LABEL_WAIT_CHAR_COUNT 3 /**< The count of wait chart */ 689 #endif 690 691 #define LV_USE_LED 1 692 693 #define LV_USE_LINE 1 694 695 #define LV_USE_LIST 1 696 697 #define LV_USE_LOTTIE 0 /**< Requires: lv_canvas, thorvg */ 698 699 #define LV_USE_MENU 1 700 701 #define LV_USE_MSGBOX 1 702 703 #define LV_USE_ROLLER 1 /**< Requires: lv_label */ 704 705 #define LV_USE_SCALE 1 706 707 #define LV_USE_SLIDER 1 /**< Requires: lv_bar */ 708 709 #define LV_USE_SPAN 1 710 #if LV_USE_SPAN 711 /** A line of text can contain this maximum number of span descriptors. */ 712 #define LV_SPAN_SNIPPET_STACK_SIZE 64 713 #endif 714 715 #define LV_USE_SPINBOX 1 716 717 #define LV_USE_SPINNER 1 718 719 #define LV_USE_SWITCH 1 720 721 #define LV_USE_TABLE 1 722 723 #define LV_USE_TABVIEW 1 724 725 #define LV_USE_TEXTAREA 1 /**< Requires: lv_label */ 726 #if LV_USE_TEXTAREA != 0 727 #define LV_TEXTAREA_DEF_PWD_SHOW_TIME 1500 /**< [ms] */ 728 #endif 729 730 #define LV_USE_TILEVIEW 1 731 732 #define LV_USE_WIN 1 733 734 /*================== 735 * THEMES 736 *==================*/ 737 /* Documentation for themes can be found here: https://docs.lvgl.io/master/overview/style.html#themes . */ 738 739 /** A simple, impressive and very complete theme */ 740 #define LV_USE_THEME_DEFAULT 1 741 #if LV_USE_THEME_DEFAULT 742 /** 0: Light mode; 1: Dark mode */ 743 #define LV_THEME_DEFAULT_DARK 0 744 745 /** 1: Enable grow on press */ 746 #define LV_THEME_DEFAULT_GROW 1 747 748 /** Default transition time in ms. */ 749 #define LV_THEME_DEFAULT_TRANSITION_TIME 80 750 #endif /*LV_USE_THEME_DEFAULT*/ 751 752 /** A very simple theme that is a good starting point for a custom theme */ 753 #define LV_USE_THEME_SIMPLE 1 754 755 /** A theme designed for monochrome displays */ 756 #define LV_USE_THEME_MONO 1 757 758 /*================== 759 * LAYOUTS 760 *==================*/ 761 /* Documentation for layouts can be found here: https://docs.lvgl.io/master/layouts/index.html . */ 762 763 /** A layout similar to Flexbox in CSS. */ 764 #define LV_USE_FLEX 1 765 766 /** A layout similar to Grid in CSS. */ 767 #define LV_USE_GRID 1 768 769 /*==================== 770 * 3RD PARTS LIBRARIES 771 *====================*/ 772 /* Documentation for libraries can be found here: https://docs.lvgl.io/master/libs/index.html . */ 773 774 /* File system interfaces for common APIs */ 775 776 /** Setting a default driver letter allows skipping the driver prefix in filepaths. */ 777 #define LV_FS_DEFAULT_DRIVER_LETTER '\0' 778 779 /** API for fopen, fread, etc. */ 780 #if LV_USE_FS_STDIO 781 #define LV_FS_STDIO_LETTER '\0' /**< Set an upper cased letter on which the drive will accessible (e.g. 'A') */ 782 #define LV_FS_STDIO_PATH "" /**< Set the working directory. File/directory paths will be appended to it. */ 783 #define LV_FS_STDIO_CACHE_SIZE 0 /**< >0 to cache this number of bytes in lv_fs_read() */ 784 #endif 785 786 /** API for open, read, etc. */ 787 #if LV_USE_FS_POSIX 788 #define LV_FS_POSIX_LETTER '\0' /**< Set an upper cased letter on which the drive will accessible (e.g. 'A') */ 789 #define LV_FS_POSIX_PATH "" /**< Set the working directory. File/directory paths will be appended to it. */ 790 #define LV_FS_POSIX_CACHE_SIZE 0 /**< >0 to cache this number of bytes in lv_fs_read() */ 791 #endif 792 793 /** API for CreateFile, ReadFile, etc. */ 794 #if LV_USE_FS_WIN32 795 #define LV_FS_WIN32_LETTER '\0' /**< Set an upper cased letter on which the drive will accessible (e.g. 'A') */ 796 #define LV_FS_WIN32_PATH "" /**< Set the working directory. File/directory paths will be appended to it. */ 797 #define LV_FS_WIN32_CACHE_SIZE 0 /**< >0 to cache this number of bytes in lv_fs_read() */ 798 #endif 799 800 /** API for FATFS (needs to be added separately). Uses f_open, f_read, etc. */ 801 #if LV_USE_FS_FATFS 802 #define LV_FS_FATFS_LETTER '\0' /**< Set an upper cased letter on which the drive will accessible (e.g. 'A') */ 803 #define LV_FS_FATFS_CACHE_SIZE 0 /**< >0 to cache this number of bytes in lv_fs_read() */ 804 #endif 805 806 /** API for memory-mapped file access. */ 807 #if LV_USE_FS_MEMFS 808 #define LV_FS_MEMFS_LETTER '\0' /**< Set an upper cased letter on which the drive will accessible (e.g. 'A') */ 809 #endif 810 811 /** API for LittleFs. */ 812 #if LV_USE_FS_LITTLEFS 813 #define LV_FS_LITTLEFS_LETTER '\0' /**< Set an upper cased letter on which the drive will accessible (e.g. 'A') */ 814 #endif 815 816 /** API for Arduino LittleFs. */ 817 #if LV_USE_FS_ARDUINO_ESP_LITTLEFS 818 #define LV_FS_ARDUINO_ESP_LITTLEFS_LETTER '\0' /**< Set an upper cased letter on which the drive will accessible (e.g. 'A') */ 819 #endif 820 821 /** API for Arduino Sd. */ 822 #if LV_USE_FS_ARDUINO_SD 823 #define LV_FS_ARDUINO_SD_LETTER '\0' /**< Set an upper cased letter on which the drive will accessible (e.g. 'A') */ 824 #endif 825 826 /** GIF decoder library */ 827 #if LV_USE_GIF 828 /** GIF decoder accelerate */ 829 #define LV_GIF_CACHE_DECODE_DATA 0 830 #endif 831 832 /** Decode bin images to RAM */ 833 #define LV_BIN_DECODER_RAM_LOAD 0 834 835 /** FreeType library */ 836 #if LV_USE_FREETYPE 837 /** Let FreeType use LVGL memory and file porting */ 838 #define LV_FREETYPE_USE_LVGL_PORT 0 839 840 /** Cache count of glyphs in FreeType, i.e. number of glyphs that can be cached. 841 * The higher the value, the more memory will be used. */ 842 #define LV_FREETYPE_CACHE_FT_GLYPH_CNT 256 843 #endif 844 845 /** Built-in TTF decoder */ 846 #if LV_USE_TINY_TTF 847 /* Enable loading TTF data from files */ 848 #define LV_TINY_TTF_FILE_SUPPORT 0 849 #define LV_TINY_TTF_CACHE_GLYPH_CNT 256 850 #endif 851 852 /** Enable Vector Graphic APIs 853 * - Requires `LV_USE_MATRIX = 1` */ 854 /*Enable Vector Graphic APIs*/ 855 #ifndef LV_USE_VECTOR_GRAPHIC 856 # define LV_USE_VECTOR_GRAPHIC 0 857 858 /* Enable ThorVG (vector graphics library) from the src/libs folder */ 859 # define LV_USE_THORVG_INTERNAL 0 860 861 /* Enable ThorVG by assuming that its installed and linked to the project */ 862 # define LV_USE_THORVG_EXTERNAL 0 863 #endif 864 865 /*Enable LZ4 compress/decompress lib*/ 866 #ifndef LV_USE_LZ4 867 # define LV_USE_LZ4 0 868 869 /*Use lvgl built-in LZ4 lib*/ 870 # define LV_USE_LZ4_INTERNAL 0 871 872 /*Use external LZ4 library*/ 873 # define LV_USE_LZ4_EXTERNAL 0 874 #endif 875 876 /*SVG library 877 * - Requires `LV_USE_VECTOR_GRAPHIC = 1` */ 878 #define LV_USE_SVG_ANIMATION 0 879 #define LV_USE_SVG_DEBUG 0 880 881 /** FFmpeg library for image decoding and playing videos. 882 * Supports all major image formats so do not enable other image decoder with it. */ 883 #if LV_USE_FFMPEG 884 /** Dump input information to stderr */ 885 #define LV_FFMPEG_DUMP_FORMAT 0 886 #endif 887 888 /*================== 889 * OTHERS 890 *==================*/ 891 /* Documentation for several of the below items can be found here: https://docs.lvgl.io/master/others/index.html . */ 892 893 /** 1: Enable API to take snapshot for object */ 894 #define LV_USE_SNAPSHOT 0 895 896 /** 1: Enable system monitor component */ 897 #define LV_USE_SYSMON 0 898 #if LV_USE_SYSMON 899 /** Get the idle percentage. E.g. uint32_t my_get_idle(void); */ 900 #define LV_SYSMON_GET_IDLE lv_timer_get_idle 901 902 /** 1: Show CPU usage and FPS count. 903 * - Requires `LV_USE_SYSMON = 1` */ 904 #define LV_USE_PERF_MONITOR 0 905 #if LV_USE_PERF_MONITOR 906 #define LV_USE_PERF_MONITOR_POS LV_ALIGN_BOTTOM_RIGHT 907 908 /** 0: Displays performance data on the screen; 1: Prints performance data using log. */ 909 #define LV_USE_PERF_MONITOR_LOG_MODE 0 910 #endif 911 912 /** 1: Show used memory and memory fragmentation. 913 * - Requires `LV_USE_STDLIB_MALLOC = LV_STDLIB_BUILTIN` 914 * - Requires `LV_USE_SYSMON = 1`*/ 915 #define LV_USE_MEM_MONITOR 0 916 #if LV_USE_MEM_MONITOR 917 #define LV_USE_MEM_MONITOR_POS LV_ALIGN_BOTTOM_LEFT 918 #endif 919 #endif /*LV_USE_SYSMON*/ 920 921 /** 1: Enable runtime performance profiler */ 922 #define LV_USE_PROFILER 0 923 #if LV_USE_PROFILER 924 /** 1: Enable the built-in profiler */ 925 #define LV_USE_PROFILER_BUILTIN 1 926 #if LV_USE_PROFILER_BUILTIN 927 /** Default profiler trace buffer size */ 928 #define LV_PROFILER_BUILTIN_BUF_SIZE (16 * 1024) /**< [bytes] */ 929 #endif 930 931 /** Header to include for profiler */ 932 #define LV_PROFILER_INCLUDE "src/misc/lv_profiler_builtin.h" 933 934 /** Profiler start point function */ 935 #define LV_PROFILER_BEGIN LV_PROFILER_BUILTIN_BEGIN 936 937 /** Profiler end point function */ 938 #define LV_PROFILER_END LV_PROFILER_BUILTIN_END 939 940 /** Profiler start point function with custom tag */ 941 #define LV_PROFILER_BEGIN_TAG LV_PROFILER_BUILTIN_BEGIN_TAG 942 943 /** Profiler end point function with custom tag */ 944 #define LV_PROFILER_END_TAG LV_PROFILER_BUILTIN_END_TAG 945 946 /*Enable layout profiler*/ 947 #define LV_PROFILER_LAYOUT 1 948 949 /*Enable disp refr profiler*/ 950 #define LV_PROFILER_REFR 1 951 952 /*Enable draw profiler*/ 953 #define LV_PROFILER_DRAW 1 954 955 /*Enable indev profiler*/ 956 #define LV_PROFILER_INDEV 1 957 958 /*Enable decoder profiler*/ 959 #define LV_PROFILER_DECODER 1 960 961 /*Enable font profiler*/ 962 #define LV_PROFILER_FONT 1 963 964 /*Enable fs profiler*/ 965 #define LV_PROFILER_FS 1 966 967 /*Enable style profiler*/ 968 #define LV_PROFILER_STYLE 0 969 970 /*Enable timer profiler*/ 971 #define LV_PROFILER_TIMER 1 972 973 /*Enable cache profiler*/ 974 #define LV_PROFILER_CACHE 1 975 #endif 976 977 /** 1: Enable an observer pattern implementation */ 978 #define LV_USE_OBSERVER 1 979 980 /** 1: Enable Pinyin input method 981 * - Requires: lv_keyboard */ 982 #if LV_USE_IME_PINYIN 983 /** 1: Use default thesaurus. 984 * @note If you do not use the default thesaurus, be sure to use `lv_ime_pinyin` after setting the thesaurus. */ 985 #define LV_IME_PINYIN_USE_DEFAULT_DICT 1 986 /** Set maximum number of candidate panels that can be displayed. 987 * @note This needs to be adjusted according to size of screen. */ 988 #define LV_IME_PINYIN_CAND_TEXT_NUM 6 989 990 /** Use 9-key input (k9). */ 991 #define LV_IME_PINYIN_USE_K9_MODE 1 992 #if LV_IME_PINYIN_USE_K9_MODE == 1 993 #define LV_IME_PINYIN_K9_CAND_TEXT_NUM 3 994 #endif /*LV_IME_PINYIN_USE_K9_MODE*/ 995 #endif 996 997 /** 1: Enable file explorer. 998 * - Requires: lv_table */ 999 #if LV_USE_FILE_EXPLORER 1000 /** Maximum length of path */ 1001 #define LV_FILE_EXPLORER_PATH_MAX_LEN (128) 1002 /** Quick access bar, 1:use, 0:do not use. 1003 * - Requires: lv_list */ 1004 #define LV_FILE_EXPLORER_QUICK_ACCESS 1 1005 #endif 1006 1007 /** 1: Enable freetype font manager 1008 * - Requires: LV_USE_FREETYPE */ 1009 #if LV_USE_FONT_MANAGER 1010 1011 /*Font manager name max length*/ 1012 #define LV_FONT_MANAGER_NAME_MAX_LEN 32 1013 1014 #endif 1015 1016 /*================== 1017 * DEVICES 1018 *==================*/ 1019 1020 /** Use SDL to open window on PC and handle mouse and keyboard. */ 1021 #define LV_USE_SDL 0 1022 #if LV_USE_SDL 1023 #define LV_SDL_INCLUDE_PATH <SDL2/SDL.h> 1024 #define LV_SDL_RENDER_MODE LV_DISPLAY_RENDER_MODE_DIRECT /**< LV_DISPLAY_RENDER_MODE_DIRECT is recommended for best performance */ 1025 #define LV_SDL_BUF_COUNT 1 /**< 1 or 2 */ 1026 #define LV_SDL_ACCELERATED 1 /**< 1: Use hardware acceleration*/ 1027 #define LV_SDL_FULLSCREEN 0 /**< 1: Make the window full screen by default */ 1028 #define LV_SDL_DIRECT_EXIT 1 /**< 1: Exit the application when all SDL windows are closed */ 1029 #define LV_SDL_MOUSEWHEEL_MODE LV_SDL_MOUSEWHEEL_MODE_ENCODER /*LV_SDL_MOUSEWHEEL_MODE_ENCODER/CROWN*/ 1030 #endif 1031 1032 /** Use X11 to open window on Linux desktop and handle mouse and keyboard */ 1033 #define LV_USE_X11 0 1034 #if LV_USE_X11 1035 #define LV_X11_DIRECT_EXIT 1 /**< Exit application when all X11 windows have been closed */ 1036 #define LV_X11_DOUBLE_BUFFER 1 /**< Use double buffers for rendering */ 1037 /* Select only 1 of the following render modes (LV_X11_RENDER_MODE_PARTIAL preferred!). */ 1038 #define LV_X11_RENDER_MODE_PARTIAL 1 /**< Partial render mode (preferred) */ 1039 #define LV_X11_RENDER_MODE_DIRECT 0 /**< Direct render mode */ 1040 #define LV_X11_RENDER_MODE_FULL 0 /**< Full render mode */ 1041 #endif 1042 1043 /** Use Wayland to open a window and handle input on Linux or BSD desktops */ 1044 #define LV_USE_WAYLAND 0 1045 #if LV_USE_WAYLAND 1046 #define LV_WAYLAND_WINDOW_DECORATIONS 0 /**< Draw client side window decorations only necessary on Mutter/GNOME */ 1047 #define LV_WAYLAND_WL_SHELL 0 /**< Use the legacy wl_shell protocol instead of the default XDG shell */ 1048 #endif 1049 1050 /** Driver for /dev/fb */ 1051 #if LV_USE_LINUX_FBDEV 1052 #define LV_LINUX_FBDEV_BSD 0 1053 #define LV_LINUX_FBDEV_RENDER_MODE LV_DISPLAY_RENDER_MODE_PARTIAL 1054 #define LV_LINUX_FBDEV_BUFFER_COUNT 0 1055 #define LV_LINUX_FBDEV_BUFFER_SIZE 60 1056 #endif 1057 1058 /** Use Nuttx to open window and handle touchscreen */ 1059 #define LV_USE_NUTTX 0 1060 1061 #if LV_USE_NUTTX 1062 #define LV_USE_NUTTX_INDEPENDENT_IMAGE_HEAP 0 1063 1064 #define LV_USE_NUTTX_LIBUV 0 1065 1066 /** Use Nuttx custom init API to open window and handle touchscreen */ 1067 #define LV_USE_NUTTX_CUSTOM_INIT 0 1068 1069 /** Driver for /dev/lcd */ 1070 #define LV_USE_NUTTX_LCD 0 1071 #if LV_USE_NUTTX_LCD 1072 #define LV_NUTTX_LCD_BUFFER_COUNT 0 1073 #define LV_NUTTX_LCD_BUFFER_SIZE 60 1074 #endif 1075 1076 /** Driver for /dev/input */ 1077 #define LV_USE_NUTTX_TOUCHSCREEN 0 1078 #endif 1079 1080 /** Driver for evdev input devices */ 1081 #define LV_USE_EVDEV 0 1082 1083 /** Driver for libinput input devices */ 1084 #define LV_USE_LIBINPUT 0 1085 1086 #if LV_USE_LIBINPUT 1087 #define LV_LIBINPUT_BSD 0 1088 1089 /** Full keyboard support */ 1090 #define LV_LIBINPUT_XKB 0 1091 #if LV_LIBINPUT_XKB 1092 /** "setxkbmap -query" can help find the right values for your keyboard */ 1093 #define LV_LIBINPUT_XKB_KEY_MAP { .rules = NULL, .model = "pc101", .layout = "us", .variant = NULL, .options = NULL } 1094 #endif 1095 #endif 1096 1097 /* Drivers for LCD devices connected via SPI/parallel port */ 1098 #define LV_USE_GENERIC_MIPI (LV_USE_ST7735 | LV_USE_ST7789 | LV_USE_ST7796 | LV_USE_ILI9341) 1099 1100 1101 /** Driver for ST LTDC */ 1102 #if LV_USE_ST_LTDC 1103 /* Only used for partial. */ 1104 #define LV_ST_LTDC_USE_DMA2D_FLUSH 0 1105 #endif 1106 1107 /** Use OpenGL to open window on PC and handle mouse and keyboard */ 1108 #define LV_USE_OPENGLES 0 1109 #if LV_USE_OPENGLES 1110 #define LV_USE_OPENGLES_DEBUG 1 /**< Enable or disable debug for opengles */ 1111 #endif 1112 1113 /** QNX Screen display and input drivers */ 1114 #define LV_USE_QNX 0 1115 #if LV_USE_QNX 1116 #define LV_QNX_BUF_COUNT 1 /**< 1 or 2 */ 1117 #endif 1118 1119 /*================== 1120 * EXAMPLES 1121 *==================*/ 1122 1123 /** Enable examples to be built with the library. */ 1124 #define LV_BUILD_EXAMPLES 1 1125 1126 /*=================== 1127 * DEMO USAGE 1128 ====================*/ 1129 1130 /** Music player demo */ 1131 #if LV_USE_DEMO_MUSIC 1132 #define LV_DEMO_MUSIC_SQUARE 0 1133 #define LV_DEMO_MUSIC_LANDSCAPE 0 1134 #define LV_DEMO_MUSIC_ROUND 0 1135 #define LV_DEMO_MUSIC_LARGE 0 1136 #define LV_DEMO_MUSIC_AUTO_PLAY 0 1137 #endif 1138 1139 /*E-bike demo with Lottie animations (if LV_USE_LOTTIE is enabled)*/ 1140 #define LV_USE_DEMO_EBIKE 0 1141 #if LV_USE_DEMO_EBIKE 1142 #define LV_DEMO_EBIKE_PORTRAIT 0 /*0: for 480x270..480x320, 1: for 480x800..720x1280*/ 1143 #endif 1144 1145 /*--END OF LV_CONF_H--*/ 1146 1147 #endif /*LV_CONF_H*/ 1148 1149 #endif /*End of "Content enable"*/ 1150