-
-
Notifications
You must be signed in to change notification settings - Fork 188
Description
I'm always frustrated when I need to display dynamic or multilingual text in an EEZ-GUI project using LVGL, but am forced to pre-generate all required glyphs as static bitmaps. This approach significantly increases memory usage, limits flexibility for runtime text changes (e.g., user input, localization), and prevents full utilization of LVGL’s built-in support for FreeType-based on-the-fly font rendering.
I would like EEZ Studio to support direct integration with LVGL’s FreeType renderer, enabling true on-demand glyph rendering at runtime. Specifically:
Allow users to select a .ttf/.otf font file in the font configuration dialog.
Optionally enable a “Use FreeType at runtime” mode that skips bitmap pre-generation.
Generate project code that initializes LVGL with lv_freetype (or equivalent) and loads the original vector font file on the target device.
Ensure compatibility with common embedded targets (e.g., ESP32) where the font file can be stored and accessed during execution.
Describe alternatives you've considered
As a workaround, I’ve tried manually adding FreeType support outside of EEZ Studio by editing generated code and bundling font files separately. However, this breaks the visual design workflow, complicates version control, and is error-prone. Another option is using large pre-rendered fonts, but this wastes precious RAM/Flash and doesn’t scale for CJK or dynamic content.
LVGL has supported FreeType integration since v8 via the lv_lib_freetype extension. Many modern embedded GUIs rely on this for internationalization and dynamic UIs. EEZ Studio currently only supports static bitmap font generation, which limits its applicability in real-world multilingual or data-driven applications.