|
| 1 | +GUI Optimization Solutions |
| 2 | +======================================== |
| 3 | + |
| 4 | +:link_to_translation:`zh:[中文]` |
| 5 | + |
| 6 | +.. _lvgl-tearing-prevention-and-frame-rate-optimization: |
| 7 | + |
| 8 | +LVGL Tearing Prevention and Frame Rate Optimization |
| 9 | +--------------------------------------------------- |
| 10 | + |
| 11 | +- Supports tearing prevention mechanism based on full_fresh, direct_mode, and partial_mode |
| 12 | +- Supports full screen rotation optimization for RGB interface and MIPI-DSI interface |
| 13 | + |
| 14 | +Applicable Scenarios: |
| 15 | + |
| 16 | +- Need to balance tearing prevention and frame rate optimization |
| 17 | + |
| 18 | +- Scenarios requiring full screen rotation in LVGL |
| 19 | + |
| 20 | +Related Examples: |
| 21 | + |
| 22 | +- https://github.com/espressif/esp-iot-solution/tree/master/examples/display/lcd/mipi_dsi_avoid_tearing |
| 23 | +- https://github.com/espressif/esp-iot-solution/tree/master/examples/display/lcd/rgb_avoid_tearing |
| 24 | + |
| 25 | +.. _lvgl-decoder-component: |
| 26 | + |
| 27 | +LVGL Image Decoder Component |
| 28 | +---------------------------- |
| 29 | + |
| 30 | +- Supports LVGL v8 and v9 versions |
| 31 | +- Supports PNG, JPG, QOI, PJPG, SJPG, SPNG format decoding with optimized decoding speed |
| 32 | +- Supports JPEG hardware decoding for ESP32-P4 |
| 33 | +- Supports JPEG decoding acceleration for ESP32-S3 |
| 34 | + |
| 35 | +Description of special formats: |
| 36 | + |
| 37 | +- PJPG format: Based on PNG format conversion, supports transparency and hardware JPEG decoding |
| 38 | +- SJPG format, SPNG format: Segmented decoding, suitable for ESP32-C series with small RAM and no PSRAM |
| 39 | +- QOI format: Compared to software JPEG, QOI decoding is faster but with lower compression ratio |
| 40 | + |
| 41 | +Component Link: https://github.com/espressif/esp-iot-solution/tree/master/components/display/tools/esp_lv_decoder |
| 42 | + |
| 43 | +Related Example: https://github.com/espressif/esp-iot-solution/tree/master/examples/hmi/perf_benchmark |
| 44 | + |
| 45 | +.. _mmap-file-system-and-script-tool: |
| 46 | + |
| 47 | +MMAP File System and Script Tool |
| 48 | +-------------------------------- |
| 49 | + |
| 50 | +- Automatically packages user files |
| 51 | +- Script automatically converts formats, supporting SJPG, SPNG, QOI, PJPG formats, etc. |
| 52 | +- Reads materials through file system using mmap method |
| 53 | + |
| 54 | +Applicable Scenarios: |
| 55 | + |
| 56 | +- When SPIFFS and other file systems do not meet reading speed requirements, mmap can be used to read materials. |
| 57 | +- Need image materials in SJPG, SPNG, QOI, PJPG and other formats |
| 58 | + |
| 59 | +Component Link: https://components.espressif.com/components/espressif/esp_mmap_assets |
| 60 | + |
| 61 | +Related Example: https://github.com/espressif/esp-iot-solution/tree/master/examples/hmi/perf_benchmark |
| 62 | + |
| 63 | +.. _Thorvg component: |
| 64 | + |
| 65 | +Thorvg Component |
| 66 | +---------------- |
| 67 | + |
| 68 | +Supports Lottie animation and TVG vector graphics parsing and rendering, noglic version supported |
| 69 | + |
| 70 | +Component Link: https://components.espressif.com/components/espressif/thorvg |
| 71 | + |
| 72 | +Related Example: |
| 73 | + |
| 74 | +- Lottie: https://components.espressif.com/components/espressif/thorvg/versions/0.13.8/examples/thorvg-example |
| 75 | + |
| 76 | +.. _freetype-label-component: |
| 77 | + |
| 78 | +freetype_label Component |
| 79 | +------------------------ |
| 80 | + |
| 81 | +User component based on freetype, supports font size management, rendering, coloring, supports Chinese and English, supports swap16 |
| 82 | + |
| 83 | +Applicable Scenarios: |
| 84 | + |
| 85 | +- Supports direct rendering of images and files |
| 86 | + |
| 87 | +Component Link: https://github.com/espressif/idf-extra-components/tree/master/freetype |
| 88 | + |
| 89 | +Related Example: https://github.com/espressif/esp-iot-solution/tree/master/examples/hmi/lvgl_freetype |
| 90 | + |
| 91 | +.. _tinyGL 3D graphics library: |
| 92 | + |
| 93 | +tinyGL 3D Graphics Library |
| 94 | +-------------------------- |
| 95 | + |
| 96 | +- tinyGL is a lightweight 3D graphics library that supports a subset of OpenGL ES 1.1, suitable for ESP32-P4 platform. |
| 97 | + |
| 98 | +Applicable Scenarios: |
| 99 | + |
| 100 | +- Need to implement 3D graphics rendering. |
| 101 | + |
| 102 | +Component Link: https://github.com/espressif2022/TinyGL |
| 103 | + |
| 104 | +.. _SDL3 development library: |
| 105 | + |
| 106 | +SDL3 Development Library |
| 107 | +------------------------ |
| 108 | + |
| 109 | +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. |
| 110 | + |
| 111 | +Applicable Scenarios: |
| 112 | + |
| 113 | +- Users with emulator development, game porting, and cross-platform application development requirements. |
| 114 | + |
| 115 | +Component Link: https://components.espressif.com/components/georgik/sdl/versions/3.1.2~9 |
| 116 | + |
| 117 | +Related Example: https://github.com/georgik/esp32-sdl3-test/tree/main |
| 118 | + |
| 119 | +.. _Lottie player: |
| 120 | + |
| 121 | +Lottie Player Component |
| 122 | +----------------------- |
| 123 | + |
| 124 | +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. |
| 125 | + |
| 126 | +Applicable Scenarios: |
| 127 | + |
| 128 | +- Users using LVGL v8 who need to play Lottie animations |
| 129 | + |
| 130 | +Component Link: https://components.espressif.com/components/espressif2022/lottie_player |
| 131 | + |
| 132 | +.. _esp_emote_gfx: |
| 133 | + |
| 134 | +esp_emote_gfx |
| 135 | +------------- |
| 136 | + |
| 137 | +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. |
| 138 | + |
| 139 | +Features: |
| 140 | + |
| 141 | +- Supports text scrolling effects |
| 142 | +- Supports simultaneous playback of multiple animations with independent frame rate control |
| 143 | +- Adapts to multiple screen sizes |
| 144 | + |
| 145 | +Applicable Scenarios: |
| 146 | + |
| 147 | +- Guide animations, boot animations, emoticons and text rendering on various screens |
| 148 | + |
| 149 | +- Dynamic UI component display on resource-constrained platforms (ESP32-C2/C3, etc.) |
| 150 | + |
| 151 | +Component Link: https://components.espressif.com/components/espressif2022/esp_emote_gfx/ |
0 commit comments