Skip to content

Commit

Permalink
docs: update to master
Browse files Browse the repository at this point in the history
  lvgl commit: 8c2289f87feee210e354c8d5311a36e85e63891c
  • Loading branch information
YobeZhou committed Nov 27, 2024
1 parent dd39aa3 commit 8a4091b
Show file tree
Hide file tree
Showing 1,730 changed files with 76,355 additions and 16,764 deletions.
176 changes: 169 additions & 7 deletions Kconfig
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Kconfig file for LVGL v9.2.0
# Kconfig file for LVGL v9.3.0-dev

menu "LVGL configuration"

Expand Down Expand Up @@ -162,6 +162,15 @@ menu "LVGL configuration"
string "Custom OS include header"
default "stdint.h"
depends on LV_OS_CUSTOM

config LV_USE_FREERTOS_TASK_NOTIFY
bool "Use RTOS task with a direct notification for synchronization"
default y
depends on LV_OS_FREERTOS
help
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.
endmenu

menu "Rendering Configuration"
Expand Down Expand Up @@ -363,8 +372,18 @@ menu "LVGL configuration"
depends on LV_USE_DRAW_VGLITE
default n

config LV_USE_PXP
bool "Use NXP's PXP on iMX RTxxx platforms"
default n

config LV_USE_DRAW_PXP
bool "Use NXP's PXP on iMX RTxxx platforms"
bool "Use PXP for drawing"
depends on LV_USE_PXP
default y

config LV_USE_ROTATE_PXP
bool "Use PXP to rotate display"
depends on LV_USE_PXP
default n

config LV_USE_PXP_DRAW_THREAD
Expand Down Expand Up @@ -437,6 +456,31 @@ menu "LVGL configuration"
select LV_USE_MATRIX
help
Enable drawing support vector graphic APIs.

config LV_USE_DRAW_DMA2D
bool "Use DMA2D on the supporting STM32 platforms"
default n
help
Accelerate blends, fills, image decoding, etc. with STM32 DMA2D.

config LV_DRAW_DMA2D_HAL_INCLUDE
string "the header file for LVGL to include for DMA2D"
default "stm32h7xx_hal.h"
depends on LV_USE_DRAW_DMA2D

config LV_USE_DRAW_DMA2D_INTERRUPT
bool "use the DMA2D transfer complete interrupt"
default n
depends on LV_USE_DRAW_DMA2D
help
if enabled, the user is required to call
`lv_draw_dma2d_transfer_complete_interrupt_handler`
upon receiving the DMA2D global interrupt

config LV_USE_DRAW_OPENGLES
bool "Draw using cached OpenGLES textures"
default n
depends on LV_USE_OPENGLES
endmenu

menu "Feature Configuration"
Expand Down Expand Up @@ -933,6 +977,10 @@ menu "LVGL configuration"
help
Minimum number of characters in a long word to put on a line after a break

config LV_TXT_COLOR_CMD
string "The control character to use for signalling text recoloring"
default "#"

config LV_USE_BIDI
bool "Support bidirectional texts"
help
Expand Down Expand Up @@ -1192,6 +1240,9 @@ menu "LVGL configuration"
int "Set an upper cased letter on which the drive will accessible (e.g. 65 for 'A')"
default 0
depends on LV_USE_FS_FATFS
config LV_FS_FATFS_PATH
string "Set the working directory"
depends on LV_USE_FS_FATFS
config LV_FS_FATFS_CACHE_SIZE
int ">0 to cache this number of bytes in lv_fs_read()"
default 0
Expand All @@ -1210,20 +1261,29 @@ menu "LVGL configuration"
int "Set an upper cased letter on which the drive will accessible (e.g. 65 for 'A')"
default 0
depends on LV_USE_FS_LITTLEFS
config LV_FS_LITTLEFS_PATH
string "Set the working directory"
depends on LV_USE_FS_LITTLEFS

config LV_USE_FS_ARDUINO_ESP_LITTLEFS
bool "File system on top of Arduino ESP littlefs API"
config LV_FS_ARDUINO_ESP_LITTLEFS_LETTER
int "Set an upper cased letter on which the drive will accessible (e.g. 65 for 'A')"
default 0
depends on LV_USE_FS_ARDUINO_ESP_LITTLEFS
config LV_FS_ARDUINO_ESP_LITTLEFS_PATH
string "Set the working directory"
depends on LV_USE_FS_ARDUINO_ESP_LITTLEFS

config LV_USE_FS_ARDUINO_SD
bool "File system on top of Arduino SD API"
config LV_FS_ARDUINO_SD_LETTER
int "Set an upper cased letter on which the drive will accessible (e.g. 65 for 'A')"
default 0
depends on LV_USE_FS_ARDUINO_SD
config LV_FS_ARDUINO_SD_PATH
string "Set the working directory"
depends on LV_USE_FS_ARDUINO_SD

config LV_USE_LODEPNG
bool "PNG decoder library"
Expand Down Expand Up @@ -1251,6 +1311,14 @@ menu "LVGL configuration"
bool "Decode whole image to RAM for bin decoder"
default n

config LV_USE_SVG
bool "SVG library"
depends on LV_USE_VECTOR_GRAPHIC

config LV_USE_SVG_ANIMATION
bool "SVG animation"
depends on LV_USE_SVG

config LV_USE_RLE
bool "LVGL's version of RLE compression method"

Expand Down Expand Up @@ -1316,6 +1384,13 @@ menu "LVGL configuration"
bool "Dump format"
depends on LV_USE_FFMPEG
default n
config LV_FFMPEG_PLAYER_USE_LV_FS
bool "Use lvgl file path in FFmpeg Player widget"
depends on LV_USE_FFMPEG
default n
help
You won't be able to open URLs after enabling this feature.
Note that FFmpeg image decoder will always use lvgl file system.
endmenu

menu "Others"
Expand Down Expand Up @@ -1364,7 +1439,7 @@ menu "LVGL configuration"
config LV_USE_MEM_MONITOR
bool "Show the used memory and the memory fragmentation"
default n
depends on LV_STDLIB_BUILTIN && LV_USE_SYSMON
depends on LV_USE_BUILTIN_MALLOC && LV_USE_SYSMON

choice
prompt "Memory monitor position"
Expand All @@ -1391,21 +1466,64 @@ menu "LVGL configuration"
bool "Center"
endchoice

config LV_USE_PROFILER
menuconfig LV_USE_PROFILER
bool "Runtime performance profiler"

if LV_USE_PROFILER

config LV_USE_PROFILER_BUILTIN
bool "Enable the built-in profiler"
depends on LV_USE_PROFILER
default y
config LV_PROFILER_BUILTIN_BUF_SIZE
int "Default profiler trace buffer size in bytes"
depends on LV_USE_PROFILER_BUILTIN
default 16384
config LV_PROFILER_INCLUDE
string "Header to include for the profiler"
depends on LV_USE_PROFILER
default "lvgl/src/misc/lv_profiler_builtin.h"

config LV_PROFILER_LAYOUT
bool "Enable layout profiler"
default y

config LV_PROFILER_REFR
bool "Enable disp refr profiler"
default y

config LV_PROFILER_DRAW
bool "Enable draw profiler"
default y

config LV_PROFILER_INDEV
bool "Enable indev profiler"
default y

config LV_PROFILER_DECODER
bool "Enable decoder profiler"
default y

config LV_PROFILER_FONT
bool "Enable font profiler"
default y

config LV_PROFILER_FS
bool "Enable fs profiler"
default y

config LV_PROFILER_STYLE
bool "Enable style profiler"
default n

config LV_PROFILER_TIMER
bool "Enable timer profiler"
default y

config LV_PROFILER_CACHE
bool "Enable cache profiler"
default y

endif # LV_USE_PROFILER

config LV_USE_MONKEY
bool "Enable Monkey test"
default n
Expand Down Expand Up @@ -1464,6 +1582,25 @@ menu "LVGL configuration"
default y
help
This can save some memory, but not much. After the quick access bar is created, it can be hidden by clicking the button at the top left corner of the browsing area, which is very useful for small screen devices.

config LV_USE_FONT_MANAGER
bool "Enable freetype font manager"
depends on LV_USE_FREETYPE
default n
config LV_FONT_MANAGER_NAME_MAX_LEN
int "Font manager name max length"
depends on LV_USE_FONT_MANAGER
default 32

config LVGL_VERSION_MAJOR
int
default 9 # LVGL_VERSION_MAJOR
config LVGL_VERSION_MINOR
int
default 3 # LVGL_VERSION_MINOR
config LVGL_VERSION_PATCH
int
default 0 # LVGL_VERSION_PATCH
endmenu

menu "Devices"
Expand Down Expand Up @@ -1658,6 +1795,11 @@ menu "LVGL configuration"
bool "Use Nuttx to open window and handle touchscreen"
default n

config LV_USE_NUTTX_INDEPENDENT_IMAGE_HEAP
bool "Use independent image heap"
depends on LV_USE_NUTTX
default n

config LV_USE_NUTTX_LIBUV
bool "Use uv loop to replace default timer loop and other fb/indev timers"
depends on LV_USE_NUTTX
Expand Down Expand Up @@ -1706,6 +1848,13 @@ menu "LVGL configuration"
depends on LV_USE_NUTTX
default n

config LV_NUTTX_TOUCHSCREEN_CURSOR_SIZE
int "Touchscreen cursor size in pixels"
depends on LV_USE_NUTTX_TOUCHSCREEN
default 0
help
Set to 0 to disable cursor, or set to a value greater than 0 to set the cursor size in pixels.

config LV_USE_LINUX_DRM
bool "Use Linux DRM device"
default n
Expand Down Expand Up @@ -1756,6 +1905,15 @@ menu "LVGL configuration"
bool "Use Renesas GLCDC driver"
default n

config LV_USE_ST_LTDC
bool "Driver for ST LTDC"
default n

config LV_ST_LTDC_USE_DMA2D_FLUSH
bool "Only used for created partial mode LTDC displays"
default n
depends on LV_USE_ST_LTDC && !LV_USE_DRAW_DMA2D

config LV_USE_WINDOWS
bool "Use LVGL Windows backend"
depends on LV_OS_WINDOWS
Expand Down Expand Up @@ -1798,7 +1956,11 @@ menu "LVGL configuration"
config LV_USE_DEMO_BENCHMARK
bool "Benchmark your system"
default n
depends on LV_FONT_MONTSERRAT_14 && LV_FONT_MONTSERRAT_24 && LV_USE_DEMO_WIDGETS
select LV_FONT_MONTSERRAT_14
select LV_FONT_MONTSERRAT_20
select LV_FONT_MONTSERRAT_24
select LV_FONT_MONTSERRAT_26
select LV_USE_DEMO_WIDGETS
config LV_USE_DEMO_RENDER
bool "Render test for each primitives. Requires at least 480x272 display"
default n
Expand Down
42 changes: 21 additions & 21 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,31 +44,31 @@ Our team is ready to help you with graphics design, UI implementation and consul
**Free and Portable**
- A fully portable C (C++ compatible) library with no external dependencies.
- Can be compiled to any MCU or MPU, with any (RT)OS.
- Supports monochrome, ePaper, OLED or TFT displays, or even monitors. [Porting Guide](https://docs.lvgl.io/master/porting/project.html)
- Supports monochrome, ePaper, OLED or TFT displays, or even monitors. [Displays](https://docs.lvgl.io/master/details/main-components/display.html)
- Distributed under the MIT license, so you can easily use it in commercial projects too.
- Needs only 32kB RAM and 128 kB Flash, a frame buffer, and at least an 1/10 screen sized buffer for rendering.
- OS, External memory and GPU are supported but not required.

**Widgets, Styles, Layouts and more**
- 30+ built-in [Widgets](https://docs.lvgl.io/master/widgets/index.html):  Button, Label, Slider, Chart, Keyboard, Meter, Arc, Table and many more.
- Flexible [Style system](https://docs.lvgl.io/master/overview/style.html) with  ~100 style properties to customize any part of the widgets in any state.
- [Flexbox](https://docs.lvgl.io/master/layouts/flex.html) and [Grid](https://docs.lvgl.io/master/layouts/grid.html)-like layouts engines to automatically size and position the widgets in a responsive way.
- 30+ built-in [Widgets](https://docs.lvgl.io/master/details/widgets/index.html):  Button, Label, Slider, Chart, Keyboard, Meter, Arc, Table and many more.
- Flexible [Style system](https://docs.lvgl.io/master/details/base-widget/styles/style.html) with  ~100 style properties to customize any part of the widgets in any state.
- [Flexbox](https://docs.lvgl.io/master/details/base-widget/layouts/flex.html) and [Grid](https://docs.lvgl.io/master/details/base-widget/layouts/grid.html)-like layouts engines to automatically size and position the widgets in a responsive way.
- Texts are rendered with UTF-8 encoding supporting CJK, Thai, Hindi, Arabic, Persian writing systems.
- Word wrapping, kerning, text scrolling, sub-pixel rendering, Pinyin-IME Chinese input, Emojis in texts.
- Rendering engine supporting animations, anti-aliasing, opacity, smooth scrolling, shadows, image transformation, etc  
- Supports Mouse, Touchpad, Keypad, Keyboard, External buttons, Encoder [Input devices](https://docs.lvgl.io/master/porting/indev.html).
- [Multiple display](https://docs.lvgl.io/master/overview/display.html#multiple-display-support) support.
- Supports Mouse, Touchpad, Keypad, Keyboard, External buttons, Encoder [Input devices](https://docs.lvgl.io/master/details/main-components/indev.html).
- [Multiple display](https://docs.lvgl.io/master/details/main-components/display.html#how-many-displays-can-lvgl-use) support.

**Binding and Build Support**
- [MicroPython Binding](https://blog.lvgl.io/2019-02-20/micropython-bindings) exposes LVGL API
- [PikaScript Binding](https://blog.lvgl.io/2022-08-24/pikascript-and-lvgl) python on MCU lighter and easier.
- No custom build system is used. You can build LVGL as you build the other files of your project.
- Support for Make and [CMake](https://docs.lvgl.io/master/integration/building/cmake.html) is included out of the box.
- [Develop on PC](https://docs.lvgl.io/master/integration/ide/pc-simulator.html) and use the same UI code on embedded hardware.
- Support for Make and [CMake](https://docs.lvgl.io/master/details/integration/building/cmake.html) is included out of the box.
- [Develop on PC](https://docs.lvgl.io/master/details/integration/ide/pc-simulator.html) and use the same UI code on embedded hardware.
- Convert the C UI code to HTML file with our [Emscripten port](https://github.com/lvgl/lv_web_emscripten).

**Docs, Tools, and Services**
- Detailed [Documentation](https://docs.lvgl.io/) with [100+ simple examples](https://docs.lvgl.io/master/index.html)
- Detailed [Documentation](https://docs.lvgl.io/) with [100+ simple examples](https://docs.lvgl.io/master/examples.html)
- [Services](https://lvgl.io/services) such as User interface design, Implementation and Consulting to make UI development simpler and faster.

## :heart: Sponsor
Expand All @@ -92,13 +92,13 @@ If someone implements or fixes an issue labeled as [Sponsored](https://github.co

## :package: Packages
LVGL is available as:
- [Arduino library](https://docs.lvgl.io/master/integration/framework/arduino.html)
- [Arduino library](https://docs.lvgl.io/master/details/integration/framework/arduino.html)
- [PlatformIO package](https://registry.platformio.org/libraries/lvgl/lvgl)
- [Zephyr library](https://docs.lvgl.io/master/integration/os/zephyr.html)
- [Zephyr library](https://docs.lvgl.io/master/details/integration/os/zephyr.html)
- [ESP-IDF(ESP32) component](https://components.espressif.com/components/lvgl/lvgl)
- [NXP MCUXpresso component](https://www.nxp.com/design/software/embedded-software/lvgl-open-source-graphics-library:LITTLEVGL-OPEN-SOURCE-GRAPHICS-LIBRARY)
- [NuttX library](https://docs.lvgl.io/master/integration/os/nuttx.html)
- [RT-Thread RTOS](https://docs.lvgl.io/master/integration/os/rt-thread.html)
- [NuttX library](https://docs.lvgl.io/master/details/integration/os/nuttx.html)
- [RT-Thread RTOS](https://docs.lvgl.io/master/details/integration/os/rt-thread.html)
- CMSIS-Pack
- [RIOT OS package](https://doc.riot-os.org/group__pkg__lvgl.html#details)

Expand Down Expand Up @@ -419,20 +419,20 @@ This list will guide you to get started with LVGL step-by-step.

**Get Familiar with LVGL**

1. Check the [Online demos](https://lvgl.io/demos) to see LVGL in action (3 minutes)
2. Read the [Introduction](https://docs.lvgl.io/master/intro/index.html) page of the documentation (5 minutes)
3. Get familiar with the basics on the [Quick overview](https://docs.lvgl.io/master/get-started/quick-overview.html) page (15 minutes)
1. Check the [Online demos](https://lvgl.io/demos) to see LVGL in action (3 minutes).
2. Read the [Introduction](https://docs.lvgl.io/master/intro/index.html) page of the documentation (5 minutes).
3. Get familiar with the basics on the [Quick overview](https://docs.lvgl.io/master/intro/basics.html) page (15 minutes).

**Start to Use LVGL**

4. Set up a [Simulator](https://docs.lvgl.io/master/integration/ide/pc-simulator.html#simulator) (10 minutes)
5. Try out some [Examples](https://github.com/lvgl/lvgl/tree/master/examples)
6. Port LVGL to a board. See the [Porting](https://docs.lvgl.io/master/porting/index.html) guide or check the ready to use [Projects](https://github.com/lvgl?q=lv_port_)
4. Set up a [Simulator](https://docs.lvgl.io/master/details/integration/ide/pc-simulator.html#simulator) (10 minutes).
5. Try out some [Examples](https://github.com/lvgl/lvgl/tree/master/examples).
6. Port LVGL to a board. See the [Porting](https://docs.lvgl.io/master/intro/add-lvgl-to-your-project/index.html) guide or check out the ready-to-use [Projects](https://github.com/lvgl?q=lv_port_).

**Become a Pro**

7. Read the [Overview](https://docs.lvgl.io/master/overview/index.html) page to get a better understanding of the library (2-3 hours)
8. Check the documentation of the [Widgets](https://docs.lvgl.io/master/widgets/index.html) to see their features and usage
7. Read the [Main-Components](https://docs.lvgl.io/master/details/main-components/index.html) page to get a better understanding of the library (2-3 hours)
8. Check the documentation of the [Widgets](https://docs.lvgl.io/master/details/widgets/index.html) to see their features and usage

**Get Help and Help Others**

Expand Down
Loading

0 comments on commit 8a4091b

Please sign in to comment.