We are pleased to announce the release of TouchGFX 4.25.0, a significant update packed with new core functionalities and numerous bug fixes to enhance your development experience.
Here’s a glimpse of what’s new:
LTDC-driven display: emulated framebuffer
This major feature introduces memory savings by using the MCU’s memory instead of external RAM. By allocating memory for only a subregion of the display and synchronizing between the LCD controller and graphics framework, full screen storage is unnecessary. This is ideal for static UIs but may require adjustments for animations to avoid screen tearing. Check out the blog article and the dedicated page in our documentation.
Bitmap font compression
TouchGFX 4.25.0 introduces bitmap font compression, which can drastically reduce flash usage for applications with extensive font usage. You can enable 4Bpp bitmap font compression in the Designer under the Typography tab in the “Text” menu and configure the “Compressed Font Cache Size” in the Text Configuration Tab in the “Config” menu.
Translations in external unmapped flash
Building on our support for translations in external mapped flash, this version extends support to unmapped flash. Translations are copied into RAM for mapping. Enable this by checking “Copy translations to RAM” in the Text Configuration Tab in the “Config” menu.
Improved designer performance
TouchGFX Designer now operates efficiently without a persistent internet connection, making it usable even in remote locations. Additionally, project opening and creation times have been significantly reduced, even for large projects.
Simplified importing of custom containers
Importing custom containers is now streamlined. If conflicts arise during import, you can select specific files to import, allowing updates to existing containers or the use of pre-existing assets.
Configurable partial framebuffer block size
You can now configure the block dimension of your partial framebuffer, crucial for project setup.
CMake support
TouchGFX now supports CMake projects. Detailed setup, build, and debug instructions are available in our documentation.
Enhanced rotated display features: this will address the requests in the forum here and here.
Two new features for rotated displays:
- Single smart framebuffer mode: now supported, resolving previous coordinate reference issues.
- Video support: videos with different orientations than the screen are now supported with minimal extra render time.
Other features:
- New libraries compatible with IAR9 Libcpp (C/C++17 runtime) projects
- Support for VectorRenderer::setStrokeMiterLimit(), VectorRenderer::setStrokeLineJoin() VectorRenderer::setStrokeLineCap() functionality on NemaP and NemaPVG platforms
- Added getText() to TextButtonStyle
- New method HAL::InvalidateTextureCache()
- New hooks waitUntilTransmitEnd() and waitUntilCanTransferBlock(uint16_t bottom) to PartialFrameBufferManager
- Improved render performance on NemaP and NemaPVG platforms
Bugfixes:
- Fixed erroneous Static- and DynamicGraph code generation when named 'graph'
- Fixed Wipe and Cover transition on GPU2D in rotate90
- Fixed ToggleButton pressed and released images from presets being switched
- Fixed invalidated areas in Wipe and Cover transition
- Fixed LCD32bpp::fillBuffer when no alpha in background
- Fixed numeric fractions when writing RTL text
- Fixed SVG stroke in rotated display
- Fixed SVG gradient in rotated display
- Fixed bug in translation.rb to better handle extra columns
- Fixed warning in translation.rb related to document classifications
- Videoconvert.rb generated old assembly syntax to include video data for Cortex-M55 on Keil
- Fixed bug where ImageConverter would fail to generate assets if Thumbs.db files were in the asset folder
- Fixed compiler warnings in CWRUtil::toQ5() and CWRUtil::toQ10() functions
- Fixed bug where ImageConverter would compress RGB images in a wrong pixel format compared to framebuffer pixel format
- Fixed issue with unaligned access in GeneratedFont::getPixelData()
- Fixed Vector Font render error
- Fixed issue where Texture Mappers on NemaP platforms could draw wrong pixels
- Fixed bug where Graph widget did not clear correctly
To take full advantage of the features in this new version, we recommend using the last version of STM32CubeMX, STM32CubeProgrammer, and STM32CubeIDE.
You can download TouchGFX 4.25.0 here (release date: 03/03/2025).
First published on Mar 4, 2025