C
What's New in 2.12
Qt Quick Ultralite maintains source compatibility between minor releases. However, some changes may require you to adapt the application code accordingly. The following sections highlight such changes:
New features
- Added support for the following target platforms:
- Tier-1 support for TRAVEO T2G 6M DDR Evaluation Kit.
- Tier-3 support for
NXP RW612 on ZephyrandRenesas RA8P1.
- Added DeviceLink support to Infineon TRAVEO T2G targets built using either the Green Hills or IAR toolchains. This enables automated UI testing using Squish.
- QmlProject improvements or updates:
- Parse translation data in all the
qmlprojectfiles before generating a list of languages. - Added the MCU.Config.translationStorageSection property to enable defining a separate storage section for translation files.
- Added the MCU.Config.glyphsLayoutCacheSize property to define the cache size for the glyph layout and shaping data.
- Added the --generate-resource-binaries command-line option to enable regeneration of resource binaries only without exporting any configuration, QML files, and source files.
- Keep the font file for the Monotype Spark font engine in the resource binary, enabling version and checksum verification.
- The list of languages supported by the application is based on the translation files in the main QmlProject file.
- Added the following MCU.Config properties to support the Safe Renderer module:
- MCU.Config.safeTextCachePolicy to enable defining cache policy for dynamic SafeText resources.
- MCU.Config.safeBitmapRuntimeAllocationType to define the memory allocation type for accessing the SafeImage, SafePicture, and static SafeText resources.
- MCU.Config.safeBitmapStorageSection to enable defining a memory section for SafeText, SafeImage, and SafePicture.
- MCU.Config.safeRendererCrcAlgorithm to define a CRC algorithm for Qt Safe Layout tool.
- MCU.Config.safeTextFontDirectory to configure the fonts directory.
- MCU.Config.safeTextRuntimeAllocationType to define a memory allocation type for the dynamic SafeText resources.
- MCU.Config.safeTextStorageSection to define a memory section to store the dynamic SafeText resources.
- Parse translation data in all the
- Removed the GCC compiler-specific options and flags from
CompilerExtraOptions, as these options and flags were also set in the CMake toolchain file (armgcc.cmake). This avoids hard-coding the options and flags, so that they are customizable. - Added Qul::activeLanguages property to get the list of languages that the application supports.
- Added date value type to enable support for timestamp instance in Position instances.
- Added Qul::validateMonotypeDataTableChecksums() to verify the integrity of Monotype data tables stored in external flash. Storing these data tables in an external flash saves approximately
~57KB on the internal flash. Refer to Placing Monotype data tables in external flash for more information. - Updated the thermo demo to store the Monotype data tables in QSPI by default on
STM32F769I Discovery Kit. - Added Qul::initResources() options to enable control the initialization behavior.
- Added MCU.Config.glyphsLayoutCacheSize to control the size of cache for glyph layout data.
qmltocppimprovements:- Improved code that sets all the property bindings for a given root object to use table-based setters, which reduces code footprint significantly.
- Added error checks for built-in read-only list property.
- Added support for Coco to get code coverage results from the target hardware.
- Added support to independently update application and its resource data. Also added queryResourceStorageSectionInfo() and more options to initResources() API, which enables UI features based on what resource data is available for OTA (Over The Air) updates.
- RTOS, SDK and compiler upgrades:
- MSVC compiler to 2022 on Windows 11.
- Renesas RH850/D1M1A RGL SDK to v2.2.0a.
- Renesas platform SDK to version 25.06.00.
- NXP platform SDK to version 25.09.00.
- STM32CubeH7 SDK to version 1.12.1.
- Zephyr RTOS to v4.1.
- Improved cache memory usage reports in the performance logs, counting all the allocated space including block overhead.
- Added maybeTexture() method to check if there is enough space in the resource cache, instead of asserting.
- Added multi-line elide mode, which you can enable using the MCU.Config.Experimental.multiLineElide QmlProject property. This mode elides any line that exceeds the available width. It does not require an explicit height to be set.
- Added maximumLineCount property to limit the number of visible lines in a Text item.
- Improved navigation API:
- Added CoordinateAnimation to animate the transition between two coordinates.
- Optimized memory requirements for geoCoordinate.
- Added the QtPositioning global type, which offers the coordinate() method.
- Added distanceTo() method to calculate distance in meters between the two coordinates.
- Added speed and timestamp to enable applications to configure these properties in a GeoPositionInfo. The corresponding read-only properties that enable you access these properties in QML are Position::speed and Position::timestamp.
Fixed issues
- Enabled TRAVEO T2G targets to use the resource cache to preserve assets for multiple frames when using OTF layers. This avoids visual artifacts on the OTF layer when the texture data it's rendering gets invalidated in Qt Quick Ultralite Core.
- Fixed out of memory exception on STM32F769I target based on IAR toolchain. Changed to a fixed stack of size 24K for IAR builds too.
- Fixed graphical glitches when drawing path strokes on T2G TRAVEO boards.
- Fixed the JPEG decoder to allocate memory dynamically instead of using a hard coded memory address on TRAVEO T2G targets.
- Fixed incorrect perspective transforms on TRAVEO T2G targets when
destRect.topLeft() != srcRect.topLeft(). - Improved error reporting when surface allocation fails on TRAVEO T2G.
- Fixed text caching to avoid visual artifacts because of removed entries when the drawing engine is still reading them asynchronously.
- Fixed platform adaptation for Renesas RH850 to use CPU fallback engine for RGB332 pixel format.
qmltocppfixes:- Fix code generated for component layout with many items.
- Ignore
importstatements if a module is importing itself. - Skip generating the translation function if no translation files are found.
qmlprojectexporterfixes:- Warnings related to C++ compiler options.
- Use correct URI for the Qt Safe Renderer module.
- Fixed position property to make sure it is accessible from QML.
- Fixed GHS compiler generated dependency file suffix information, to make sure Ninja knows the correct file name.
- Fixed a crash because of resetting a ListView or Repeater model from the delegate.
- Fixed
fontcompilerwarnings by disabling the char attribute mapping to the corresponding cluster value. - Optimized text performance by avoiding unnecessary re-layout and clearing cache before rendering.
- Fixed memory corruption on TRAVEO T2G, where the JPEG decoder was allocating memory dynamically instead of using a hard coded memory address.
- Fixed text cache implementation to call
waitUntilAsyncReadFinished()before removing entries from the cache.
New APIs
APIs for application development
- New Classes
- New Member Functions
- New Functions in Namespaces
- New Enum Types
- New Type Aliases
- New Variables
- New QML Types
- New QML Properties
New Classes
New Member Functions
Class GeoPositionInfo:
(since Qt Quick Ultralite 2.12) bool | hasSpeed() const |
Class SharedImage:
(since Qt Quick Ultralite 2.12) bool | maybeTexture(Qul::PlatformInterface::Texture &texture, int textureIndex = 0) const |
New Functions in Namespaces
(since Qt Quick Ultralite 2.12) bool | queryResourceStorageSectionInfo(const char *resourceStorageSectionName, Qul::ResourceStorageSectionInfo *info = NULL) |
(since Qt Quick Ultralite 2.12) bool | validateMonotypeDataTableChecksums(Qul::MonotypeDataTables tables = MonotypeDataTables(MonotypeDataTable::AllDataTables)) |
New Enum Types
(since Qt Quick Ultralite 2.12) enum class | RenderHint { SafeRendering } |
(since Qt Quick Ultralite 2.12) enum class | MonotypeDataTable { decompositionData0, decompositionData1, decompositionData2, decompositionData3, decompositionIndex, …, AllDataTables } |
(since Qt Quick Ultralite 2.12) enum class | ResourceInitializationOptions { DisableAutomaticVersionChecking, AllowUnlistedResources } |
New Type Aliases
(since Qt Quick Ultralite 2.12) | RenderHints |
(since Qt Quick Ultralite 2.12) | MonotypeDataTables |
New Variables
New QML Types
New QML Properties
QML Type Position:
(since Qt Quick Ultralite 2.12) | speed : double |
(since Qt Quick Ultralite 2.12) | speedValid : bool |
(since Qt Quick Ultralite 2.12) | timestamp : date |
QML Type Qul:
(since Qt Quick Ultralite 2.12) | activeLanguages : list<string> |
QML Type Text:
(since Qt Quick Ultralite 2.12) | maximumLineCount : int |
APIs for platform development
New Classes
New Member Functions
Class DrawingEngine:
(since Qt Quick Ultralite (Platform) 2.12) virtual Qul::PlatformInterface::RenderHints | supportedRenderHints() const |
Changes in Previous Versions
- What's New in 2.11
- What's New in 2.10
- What's New in 2.9
- What's New in 2.8
- What's New in 2.7
- What's New in 2.6
- What's New in 2.5
- What's New in 2.4
- What's New in 2.3
- What's New in 2.2
- What's New in 2.1
- What's New in 2.0
- What's New in 1.9
- What's New in 1.8
- What's New in 1.7
- What's New in 1.6
- What's New in 1.5
- What's New in 1.4
- What's New in 1.3
- What's New in 1.2
- What's New in 1.1
Available under certain Qt licenses.
Find out more.