GUI Optimization Solutions

[中文]

LVGL Tearing Prevention and Frame Rate Optimization

  • Supports tearing prevention mechanism based on full_fresh, direct_mode, and partial_mode

  • Supports full screen rotation optimization for RGB interface and MIPI-DSI interface

Applicable Scenarios:

  • Need to balance tearing prevention and frame rate optimization

  • Scenarios requiring full screen rotation in LVGL

Related Examples:

LVGL Image Decoder Component

  • Supports LVGL v8 and v9 versions

  • Supports PNG, JPG, QOI, PJPG, SJPG, SPNG format decoding with optimized decoding speed

  • Supports JPEG hardware decoding for ESP32-P4

  • Supports JPEG decoding acceleration for ESP32-S3

Description of special formats:

  • PJPG format: Based on PNG format conversion, supports transparency and hardware JPEG decoding

  • SJPG format, SPNG format: Segmented decoding, suitable for ESP32-C series with small RAM and no PSRAM

  • QOI format: Compared to software JPEG, QOI decoding is faster but with lower compression ratio

Component Link: https://github.com/espressif/esp-iot-solution/tree/master/components/display/tools/esp_lv_decoder

Related Example: https://github.com/espressif/esp-iot-solution/tree/master/examples/hmi/perf_benchmark

MMAP File System and Script Tool

  • Automatically packages user files

  • Script automatically converts formats, supporting SJPG, SPNG, QOI, PJPG formats, etc.

  • Reads materials through file system using mmap method

Applicable Scenarios:

  • When SPIFFS and other file systems do not meet reading speed requirements, mmap can be used to read materials.

  • Need image materials in SJPG, SPNG, QOI, PJPG and other formats

Component Link: https://components.espressif.com/components/espressif/esp_mmap_assets

Related Example: https://github.com/espressif/esp-iot-solution/tree/master/examples/hmi/perf_benchmark

Thorvg Component

Supports Lottie animation and TVG vector graphics parsing and rendering, noglic version supported

Component Link: https://components.espressif.com/components/espressif/thorvg

Related Example:

freetype_label Component

User component based on freetype, supports font size management, rendering, coloring, supports Chinese and English, supports swap16

Applicable Scenarios:

  • Supports direct rendering of images and files

Component Link: https://github.com/espressif/idf-extra-components/tree/master/freetype

Related Example: https://github.com/espressif/esp-iot-solution/tree/master/examples/hmi/lvgl_freetype

tinyGL 3D Graphics Library

  • tinyGL is a lightweight 3D graphics library that supports a subset of OpenGL ES 1.1, suitable for ESP32-P4 platform.

Applicable Scenarios:

  • Need to implement 3D graphics rendering.

Component Link: https://github.com/espressif2022/TinyGL

SDL3 Development Library

SDL is a cross-platform development library designed to provide low-level access to audio, keyboard, mouse, joystick, and graphics hardware via OpenGL/Direct3D/Metal/Vulkan. It is used by video playback software, emulators, and many popular games including Valve’s award-winning games and Humble Bundle games.

Applicable Scenarios:

  • Users with emulator development, game porting, and cross-platform application development requirements.

Component Link: https://components.espressif.com/components/georgik/sdl/versions/3.1.2~9

Related Example: https://github.com/georgik/esp32-sdl3-test/tree/main

Lottie Player Component

lottie_player is a lightweight and efficient Lottie animation player designed specifically for LVGL v8. It can seamlessly integrate vector-based animations into LVGL projects. By leveraging ThorVG as the rendering engine, this module ensures high performance and flexibility for modern embedded GUI applications.

Applicable Scenarios:

  • Users using LVGL v8 who need to play Lottie animations

Component Link: https://components.espressif.com/components/espressif2022/lottie_player

esp_emote_gfx

esp_emote_gfx is a lightweight animation rendering library for resource-constrained platforms, supporting conversion of GIF to custom EAF animation format for playback, with advantages of fast decoding, small memory footprint, and flexible display, suitable for efficient dynamic graphics playback needs in HMI scenarios.

Features:

  • Supports text scrolling effects

  • Supports simultaneous playback of multiple animations with independent frame rate control

  • Adapts to multiple screen sizes

Applicable Scenarios:

  • Guide animations, boot animations, emoticons and text rendering on various screens

  • Dynamic UI component display on resource-constrained platforms (ESP32-C2/C3, etc.)

Component Link: https://components.espressif.com/components/espressif2022/esp_emote_gfx/