static void disp_flush(lv_display_t * disp_drv, const lv_area_t * area, uint8_t * px_map)
{
if(disp_flush_enabled) {
/*The most simple case (but also the slowest) to put all pixels to the screen one-by-one*/
#if 0
int32_t x;
int32_t y;
uint8_t pval1;
for(y = area->y1; y <= area->y2; y++) {
for(x = area->x1; x <= area->x2; x++) {
/*Put a pixel to the display. For example:*/
/*put_px(x, y, *px_map)*/
// uint16_t* pcolval=(uint16_t*)px_map;
// uint16_t colval=* pcolval;
pval1 = *px_map;
px_map++;
uint16_t colval= ((*px_map)<<8)|pval1;
}
// LCD_Color_Fill(area->x1, area->y1, area->x2, area->y2, (uint16_t *)px_map);
/*IMPORTANT!!!
*Inform the graphics library that you are ready with the flushing*/
lv_display_flush_ready(disp_drv);
}
/*
* Copy this file as `lv_conf.h`
* 1. simply next to `lvgl` folder
* 2. or to any other place and
* - define `LV_CONF_INCLUDE_SIMPLE`;
* - add the path as an include path.
*/
/* clang-format off */
#if 1 /* Set this to "1" to enable content */
#ifndef LV_CONF_H
#define LV_CONF_H
/* If you need to include anything here, do it inside the `__ASSEMBLY__` guard */
#if 0 && defined(__ASSEMBLY__)
#include "my_include.h"
#endif
/*====================
COLOR SETTINGS
*====================*/
#if LV_USE_STDLIB_MALLOC == LV_STDLIB_BUILTIN
/** Size of memory available for `lv_malloc()` in bytes (>= 2kB) */
#define LV_MEM_SIZE (64 * 1024U) /**< [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 */
#if LV_MEM_ADR == 0
#undef LV_MEM_POOL_INCLUDE
#undef LV_MEM_POOL_ALLOC
#endif
#endif /*LV_USE_STDLIB_MALLOC == LV_STDLIB_BUILTIN*/
/*====================
HAL SETTINGS
*====================*/
/** 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] */
#if LV_USE_OS == LV_OS_CUSTOM
#define LV_OS_CUSTOM_INCLUDE <stdint.h>
#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
/** Align stride of all layers and images to this bytes */
#define LV_DRAW_BUF_STRIDE_ALIGN 1
/** 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`.
* - 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
* it is buffered into a "simple" layer before rendering. The widget can be buffered in smaller chunks.
* "Transformed layers" (if `transform_angle/zoom` are set) use larger buffers
* and can't be drawn in chunks. */
/** The target buffer size for simple layer chunks. */
#define LV_DRAW_LAYER_SIMPLE_BUF_SIZE (24 * 1024) /**< [bytes] (24 * 1024)*/
/* Limit the max allocated memory for simple and transformed layers.
* It should be at least `LV_DRAW_LAYER_SIMPLE_BUF_SIZE` sized but if transformed layers are also used
* it should be enough to store the largest widget too (width x height x 4 area).
* Set it to 0 to have no limit. */
#define LV_DRAW_LAYER_MAX_MEMORY 0 /**< No limit by default [bytes]*/
/** 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]*/
/** Thread priority of the drawing task.
* Higher values mean higher priority.
* Can use values from lv_thread_prio_t enum in lv_os.h: LV_THREAD_PRIO_LOWEST,
* LV_THREAD_PRIO_LOW, LV_THREAD_PRIO_MID, LV_THREAD_PRIO_HIGH, LV_THREAD_PRIO_HIGHEST
* Make sure the priority value aligns with the OS-specific priority levels.
* On systems with limited priority levels (e.g., FreeRTOS), a higher value can improve
* rendering performance but might cause other tasks to starve. */
#define LV_DRAW_THREAD_PRIO LV_THREAD_PRIO_HIGH
#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_RGB565_SWAPPED 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_ARGB8888_PREMULTIPLIED 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
/* The threshold of the luminance to consider a pixel as
* active in indexed color format */
#define LV_DRAW_SW_I1_LUM_THRESHOLD 127 //
/** 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
/** Use Arm-2D to accelerate software (sw) rendering. */
#define LV_USE_DRAW_ARM2D_SYNC 0
/** 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, 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 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: disables caching */
#define LV_DRAW_SW_CIRCLE_CACHE_SIZE 4
#endif
#if LV_USE_NEMA_GFX
/** Select which NemaGFX HAL to use. Possible options:
* - LV_NEMA_HAL_CUSTOM
* - LV_NEMA_HAL_STM32 */
#define LV_USE_NEMA_HAL LV_NEMA_HAL_CUSTOM
#if LV_USE_NEMA_HAL == LV_NEMA_HAL_STM32
#define LV_NEMA_STM32_HAL_INCLUDE <stm32u5xx_hal.h>
#endif
/*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. */
#define LV_USE_DRAW_VGLITE 0
#if LV_USE_OS
/** 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
/** Use NXP's G2D on MPU platforms. */
#define LV_USE_DRAW_G2D 0
#if LV_USE_DRAW_G2D
/** Maximum number of buffers that can be stored for G2D draw unit.
* Includes the frame buffers and assets. */
#define LV_G2D_HASH_TABLE_SIZE 50
#if LV_USE_OS
/** Use additional draw thread for G2D processing.*/
#define LV_USE_G2D_DRAW_THREAD 1
#endif
/** 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. */
#define LV_VG_LITE_USE_BOX_SHADOW 1
/** 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
/* if enabled, the user is required to call `lv_draw_dma2d_transfer_complete_interrupt_handler`
* upon receiving the DMA2D global interrupt
*/
#define LV_USE_DRAW_DMA2D_INTERRUPT 0
#endif
/** Draw using cached OpenGLES textures */
#define LV_USE_DRAW_OPENGLES 0
/** 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_WARN
/** - 1: Print log with 'printf';
* - 0: User needs to register a callback with `lv_log_register_print_cb()`. */
#define LV_LOG_PRINTF 0
/** 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: 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 /**< 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 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 MCU. */
#define LV_ASSERT_HANDLER_INCLUDE <stdint.h>
#define LV_ASSERT_HANDLER while(1); /**< Halt by default */
/*-------------
* Debug
*-----------*/
/** 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*/
#define LV_USE_LAYER_DEBUG 0
/** 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
/*-------------
* Others
*-----------*/
#define LV_ENABLE_GLOBAL_CUSTOM 0
#if LV_ENABLE_GLOBAL_CUSTOM
/** Header to include for custom 'lv_global' function" */
#define LV_GLOBAL_CUSTOM_INCLUDE <stdint.h>
#endif
/** 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. */
#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. */
#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 */
#define LV_COLOR_MIX_ROUND_OFS 0
/** 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` */
#define LV_USE_OBJ_ID 0
/** Enable support widget names*/
#define LV_USE_OBJ_NAME 0
/** Automatically assign an ID when obj is created */
#define LV_OBJ_ID_AUTO_ASSIGN LV_USE_OBJ_ID
/** 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 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. */
#define LV_USE_OBJ_PROPERTY 0
/** Enable property name support. */
#define LV_USE_OBJ_PROPERTY_NAME 1
/* Use VG-Lite Simulator.
* - Requires: LV_USE_THORVG_INTERNAL or LV_USE_THORVG_EXTERNAL */
#define LV_USE_VG_LITE_THORVG 0
/** For big endian systems set to 1 */
#define LV_BIG_ENDIAN_SYSTEM 0
/** Define a custom attribute for `lv_tick_inc` function */
#define LV_ATTRIBUTE_TICK_INC
/** Define a custom attribute for `lv_timer_handler` function */
#define LV_ATTRIBUTE_TIMER_HANDLER
/** Define a custom attribute for `lv_display_flush_ready` function */
#define LV_ATTRIBUTE_FLUSH_READY
/** 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 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 to mark large constant arrays, for example for font bitmaps */
#define LV_ATTRIBUTE_LARGE_CONST
/** 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) */
#define LV_ATTRIBUTE_FAST_MEM
/** Export integer constant to binding. This macro is used with constants in the form of LV_<CONST> 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 */
#define LV_ATTRIBUTE_EXTERN_DATA
/** Use `float` as `lv_value_precise_t` */
#define LV_USE_FLOAT 0
/** Include `lvgl_private.h` in `lvgl.h` to access internal data and functions by default */
#ifndef LV_USE_PRIVATE_API
#define LV_USE_PRIVATE_API 0
#endif
/*==================
* FONT USAGE
*===================*/
/* 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 */
#define LV_FONT_SOURCE_HAN_SANS_SC_14_CJK 0 /**< 1338 most common CJK radicals */
#define LV_FONT_SOURCE_HAN_SANS_SC_16_CJK 0 /**< 1338 most common CJK radicals */
/** 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 */
#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.
* A compiler error will be triggered if a font needs it. */
#define LV_FONT_FMT_TXT_LARGE 0
/** Enables/disables support for compressed fonts. */
#define LV_USE_FONT_COMPRESSED 0
/** Enable drawing placeholders when glyph dsc is not found. */
#define LV_USE_FONT_PLACEHOLDER 1
/*=================
* TEXT SETTINGS
*=================*/
/**
* Select a character encoding for strings.
* 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
/** 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. */
#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. */
#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. */
#define LV_TXT_LINE_BREAK_LONG_POST_MIN_LEN 3
/** 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 ... i-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 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 */
#define LV_USE_ARABIC_PERSIAN_CHARS 0
/*The control character to use for signaling text recoloring*/
#define LV_TXT_COLOR_CMD "#"
/** 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.
* - lv_arclabel_t : Text set to "Arced Text", else empty string.
* */
#define LV_WIDGETS_HAS_DEFAULT_VALUE 1
#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 text */
#define LV_LABEL_WAIT_CHAR_COUNT 3 /**< The count of wait chart */
#endif
#define LV_USE_SPAN 1
#if LV_USE_SPAN
/** A line of text can contain this maximum number of span descriptors. */
#define LV_SPAN_SNIPPET_STACK_SIZE 64
#endif
/** Setting a default driver letter allows skipping the driver prefix in filepaths.
* Documentation about how to use the below driver-identifier letters can be found at
* https://docs.lvgl.io/master/deta ... -identifier-letters . */
#define LV_FS_DEFAULT_DRIVER_LETTER '\0'
/** API for fopen, fread, etc. */
#define LV_USE_FS_STDIO 0
#if LV_USE_FS_STDIO
#define LV_FS_STDIO_LETTER '\0' /**< Set an upper-case driver-identifier letter for this driver (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. */
#define LV_USE_FS_POSIX 0
#if LV_USE_FS_POSIX
#define LV_FS_POSIX_LETTER '\0' /**< Set an upper-case driver-identifier letter for this driver (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. */
#define LV_USE_FS_WIN32 0
#if LV_USE_FS_WIN32
#define LV_FS_WIN32_LETTER '\0' /**< Set an upper-case driver-identifier letter for this driver (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. */
#define LV_USE_FS_FATFS 0
#if LV_USE_FS_FATFS
#define LV_FS_FATFS_LETTER '\0' /**< Set an upper-case driver-identifier letter for this driver (e.g. 'A'). */
#define LV_FS_FATFS_PATH "" /**< Set the working directory. File/directory paths will be appended to it. */
#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. */
#define LV_USE_FS_MEMFS 0
#if LV_USE_FS_MEMFS
#define LV_FS_MEMFS_LETTER '\0' /**< Set an upper-case driver-identifier letter for this driver (e.g. 'A'). */
#endif
/** API for LittleFs. */
#define LV_USE_FS_LITTLEFS 0
#if LV_USE_FS_LITTLEFS
#define LV_FS_LITTLEFS_LETTER '\0' /**< Set an upper-case driver-identifier letter for this driver (e.g. 'A'). */
#define LV_FS_LITTLEFS_PATH "" /**< Set the working directory. File/directory paths will be appended to it. */
#endif
/** API for Arduino LittleFs. */
#define LV_USE_FS_ARDUINO_ESP_LITTLEFS 0
#if LV_USE_FS_ARDUINO_ESP_LITTLEFS
#define LV_FS_ARDUINO_ESP_LITTLEFS_LETTER '\0' /**< Set an upper-case driver-identifier letter for this driver (e.g. 'A'). */
#define LV_FS_ARDUINO_ESP_LITTLEFS_PATH "" /**< Set the working directory. File/directory paths will be appended to it. */
#endif
/** API for Arduino Sd. */
#define LV_USE_FS_ARDUINO_SD 0
#if LV_USE_FS_ARDUINO_SD
#define LV_FS_ARDUINO_SD_LETTER '\0' /**< Set an upper-case driver-identifier letter for this driver (e.g. 'A'). */
#define LV_FS_ARDUINO_SD_PATH "" /**< Set the working directory. File/directory paths will be appended to it. */
#endif
/** API for UEFI */
#define LV_USE_FS_UEFI 0
#if LV_USE_FS_UEFI
#define LV_FS_UEFI_LETTER '\0' /**< Set an upper-case driver-identifier letter for this driver (e.g. 'A'). */
#endif
/** FreeType library */
#define LV_USE_FREETYPE 0
#if LV_USE_FREETYPE
/** Let FreeType use LVGL memory and file porting */
#define LV_FREETYPE_USE_LVGL_PORT 0
/** 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
/** FFmpeg library for image decoding and playing videos.
* Supports all major image formats so do not enable other image decoder with it. */
#define LV_USE_FFMPEG 0
#if LV_USE_FFMPEG
/** Dump input information to stderr */
#define LV_FFMPEG_DUMP_FORMAT 0
/** Use lvgl file path in FFmpeg Player widget
* You won't be able to open URLs after enabling this feature.
* Note that FFmpeg image decoder will always use lvgl file system. */
#define LV_FFMPEG_PLAYER_USE_LV_FS 0
#endif
/** 1: Enable Pinyin input method
* - Requires: lv_keyboard */
#define LV_USE_IME_PINYIN 0
#if LV_USE_IME_PINYIN
/** 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 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
/**Font manager name max length*/
#define LV_FONT_MANAGER_NAME_MAX_LEN 32
#endif
/** Enable emulated input devices, time emulation, and screenshot compares. */
#define LV_USE_TEST 0
#if LV_USE_TEST
/** Enable `lv_test_screenshot_compare`.
* Requires libpng and a few MB of extra RAM. */
#define LV_USE_TEST_SCREENSHOT_COMPARE 0
#endif /*LV_USE_TEST*/
/** Enable loading XML UIs runtime */
#define LV_USE_XML 0
/** 1: Enable text translation support */
#define LV_USE_TRANSLATION 0
/*1: Enable color filter style*/
#define LV_USE_COLOR_FILTER 0
/** 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 <SDL2/SDL.h>
#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 */
#define LV_USE_X11 0
#if LV_USE_X11
#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 */
#define LV_USE_WAYLAND 0
#if LV_USE_WAYLAND
#define LV_WAYLAND_BUF_COUNT 1 /**< Use 1 for single buffer with partial render mode or 2 for double buffer with full render mode*/
#define LV_WAYLAND_USE_DMABUF 0 /**< Use DMA buffers for frame buffers. Requires LV_DRAW_USE_G2D */
#define LV_WAYLAND_RENDER_MODE LV_DISPLAY_RENDER_MODE_PARTIAL /**< DMABUF supports LV_DISPLAY_RENDER_MODE_FULL and LV_DISPLAY_RENDER_MODE_DIRECT*/
/**< When LV_WAYLAND_USE_DMABUF is disabled, only LV_DISPLAY_RENDER_MODE_PARTIAL is supported*/
#define LV_WAYLAND_WINDOW_DECORATIONS 0 /**< Draw client side window decorations only necessary on Mutter/GNOME. Not supported using DMABUF*/
#define LV_WAYLAND_WL_SHELL 0 /**< Use the legacy wl_shell protocol instead of the default XDG shell*/
#endif
/** Driver for /dev/dri/card */
#define LV_USE_LINUX_DRM 0
#if LV_USE_LINUX_DRM
/* Use the MESA GBM library to allocate DMA buffers that can be
* shared across sub-systems and libraries using the Linux DMA-BUF API.
* The GBM library aims to provide a platform independent memory management system
* it supports the major GPU vendors - This option requires linking with libgbm */
#define LV_USE_LINUX_DRM_GBM_BUFFERS 0
#endif
/** Interface for TFT_eSPI */
#define LV_USE_TFT_ESPI 0
/** Driver for evdev input devices */
#define LV_USE_EVDEV 0
/** Driver for libinput input devices */
#define LV_USE_LIBINPUT 0
#if LV_USE_LIBINPUT
#define LV_LIBINPUT_BSD 0
/** Full keyboard support */
#define LV_LIBINPUT_XKB 0
#if LV_LIBINPUT_XKB
/** "setxkbmap -query" can help find the right values for your keyboard */
#define LV_LIBINPUT_XKB_KEY_MAP { .rules = NULL, .model = "pc101", .layout = "us", .variant = NULL, .options = NULL }
#endif
#endif
/* Drivers for LCD devices connected via SPI/parallel port */
#define LV_USE_ST7735 0
#define LV_USE_ST7789 0
#define LV_USE_ST7796 0
#define LV_USE_ILI9341 0
#define LV_USE_FT81X 0
/** Driver for Renesas GLCD */
#define LV_USE_RENESAS_GLCDC 0
/** Driver for ST LTDC */
#define LV_USE_ST_LTDC 0
#if LV_USE_ST_LTDC
/* Only used for partial. */
#define LV_ST_LTDC_USE_DMA2D_FLUSH 0
#endif
/** Driver for NXP ELCDIF */
#define LV_USE_NXP_ELCDIF 0
/** LVGL Windows backend */
#define LV_USE_WINDOWS 0
/** LVGL UEFI backend */
#define LV_USE_UEFI 0
#if LV_USE_UEFI
#define LV_USE_UEFI_INCLUDE "myefi.h" /**< Header that hides the actual framework (EDK2, gnu-efi, ...) */
#define LV_UEFI_USE_MEMORY_SERVICES 0 /**< Use the memory functions from the boot services table */
#endif
/** 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