C
What's New in 1.9
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:
Important changes
- Deprecated the following functions:
- Qul::PlatformInterface::DrawingDevice::pixelAt()
- Qul::PlatformInterface::Texture::dataAtOffset()
- Qul::PlatformInterface::DrawingDevice::bytesPerPixel()
- Qul::PlatformInterface::Texture::bytesPerPixel()
- Qul::Image::bytesPerPixel()
New features
- Added protobuf support using the nanopb 3rd party library to enable better communication between the host and the target.
- Added the 3rd party
printf
implementation for embedded systems. - Added Qt Creator support for the QtQuickUltralite.Extras module by adding the
plugin.qmltypes
file. - Added the QUL_MONOTYPE_SPARK_HEAP_NO_PREALLOC and QUL_MONOTYPE_SPARK_HEAP_SIZE CMake target properties to configure the heap/cache buffers for Monotype Spark.
- Added support for property bindings on the Qt.font() API.
- Added the memory allocation API to have control over the size of memory allocations.
- Added the PaintedItem and Qul::PaintedItemDelegate APIs to support rendering QML items using custom hardware-accelerated or software renderer.
- Added the Screen::defaultApplicationSize API, enabling the platform to override the application window size if its root item does not have a size.
- Upgraded to ARM GCC version 9.
- Added support for the Qul::PixelFormat_Alpha1 pixel format.
- Added the PixelDataPointer structure to handle pointing pixel data where
bitsPerPixel()
is < 8. This structure is used with the Qul::PlatformInterface::DrawingDevice::pixelDataAt() and Qul::PlatformInterface::Texture::pixelData(). - Enabled Text and StaticText items to handle the missing glpyhs more gracefully. They render a placeholder glyph (box) for the missing glpyh.
- Added the QUL_DEFAULT_FONT_QUALITY CMake target property and font.quality QML API to control the glyph rendering quality.
Note: You must set the font.unicodeCoverage property if the automatic glyph generation is disabled.
- Added painteditem example, camera example, and Swipe game demo.
- Added support for the Infineon/Cypress Traveo II board.
- Added support for Linux development host.
- Upgraded the CMake minimun version to v3.17.3.
- Added the MessageQueue API to enable implementing custom queues.
Fixed issues
- Refactored text alignment calculation to fix horizontal alignment issues on a Text item.
- Fixed the heap size for the charts example to support the screen size on MIMXRT1170.
- Upgraded NXP board SDK to version 2.9.1.
- Fixed the Thermo demo animation issues on RA6M3G by disabling the fade animation.
- Fixed blending of PixelFormat_RGB32 on EK-RA6M3G.
- Refactored
qulrcc
to not use RGB332 format for Indexed8 images. - Switched to
std::minstd_rand()
instead ofstd::rand()
on EK-RA6M3G. - Updated the Watch demo to use a new
time_t
function to get the UTC time. - Optimized the Font_bindings example for STM32F7508-Discovery.
- Added sanity check to catch common linker issues relating to C++.
- Updated the EK-RA6M3G platform port to use fallbackDrawingEngine for the unsupported pixel formats.
- Updated the baremetal example to use Qul::PlatformInterface::log().
- Updated the platform adaptation for STM32 to support printing/logging.
- Add support for Platform::qul_printf() to MIMXRT1050, MIMXRT1060, and MIMXRT1064.
- Implemented Platform::consoleWrite() for RH850.
- Updated the platform adaptation for EK-RA6M3G, MIMXRT1170, and MIMXRT595, to support PlatformInterface::log().
- Replaced
printf
withqul_printf
in platforms. - Dropped opacity for the background layer in the layer example.
- Updated vglitesupport to support negative vector coordinates.
- Fixed performance measurement crash on EK-RA6M3G.
- Fixed unspecified CMAKE_BUILD_TYPE when building an application.
- Fixed implicit move not added when startX == startY == 0.
- Fixed clipped text when using spark engine in combination with text cache.
- Adjusted the dynamic assets size threshold to smaller on STM32.
- Added support for generating 1bpp glyphs to fontcompiler.
- Updated build dependancy to import the core library when rebuilding a platform library.
- Enabled Text cache updates on TextAlignment change.
- Pooled the DynDependencyNode allocations.
New Classes and Functions
Aplication development
New Classes
New QML Types
New QML Methods
QML Type Qt:
font | font(object fontConfiguration) |
Platform development
New Classes
New Member Functions
Class Texture:
Qul::PlatformInterface::PixelDataPointer | pixelData(int16_t x, int16_t y) const |
Class MessageQueueInterface:
virtual uint32_t | capacity() const = 0 |
virtual void | clearOverrun() = 0 |
virtual bool | discardSupported() const = 0 |
virtual Qul::Platform::MessageQueueStatus | enqueueOrDiscard(const void *message) = 0 |
virtual Qul::Platform::MessageQueueStatus | enqueueOrDiscardFromInterrupt(const void *message) |
virtual Qul::Platform::MessageQueueStatus | enqueueOrOverwrite(const void *message) = 0 |
virtual Qul::Platform::MessageQueueStatus | enqueueOrOverwriteFromInterrupt(const void *message) |
virtual bool | isEmpty() const = 0 |
virtual bool | isEmptyFromInterrupt() const |
virtual bool | isOverrun() const = 0 |
virtual bool | overwriteSupported() const = 0 |
virtual Qul::Platform::MessageQueueStatus | receive(void *message, int32_t timeout = 0) = 0 |
virtual Qul::Platform::MessageQueueStatus | receiveFromInterrupt(void *message, int32_t timeout = 0) |
Class MessageQueue:
uint32_t | capacity() const |
void | clearOverrun() |
bool | discardSupported() const |
Qul::Platform::MessageQueueStatus | enqueueOrDiscard(const MessageType *message) |
Qul::Platform::MessageQueueStatus | enqueueOrDiscardFromInterrupt(const MessageType *message) |
Qul::Platform::MessageQueueStatus | enqueueOrOverwrite(const MessageType *message) |
Qul::Platform::MessageQueueStatus | enqueueOrOverwriteFromInterrupt(const MessageType *message) |
bool | isEmpty() const |
bool | isEmptyFromInterrupt() const |
bool | isOverrun() const |
bool | overwriteSupported() const |
Qul::Platform::MessageQueueStatus | receive(MessageType *message, int32_t timeout = 0) |
Qul::Platform::MessageQueueStatus | receiveFromInterrupt(MessageType *message, int32_t timeout = 0) |
New Global Functions
Tvii::Configuration::Config | configForOTFLayer(std::uint32_t platformId) |
Tvii::Configuration::Config | defaultConfigForOTFLayer() |
void | deleteQueue(Qul::Platform::MessageQueueInterface *queue) |
bool | layerHasWarping(int platformId) |
int | log(const char *format, ...) |
std::size_t | maximumQueueMessageSize() |
Qul::Platform::MessageQueueInterface * | requestQueue(std::size_t queueCapacity, std::size_t messageSize) |
void | setConfigForOTFLayer(std::uint32_t platformId, std::uint16_t copses, std::uint32_t fifo, std::uint32_t lines) |
void | setWarpingBufferForLayer(int platformId, const void *buffer, const int *platformStruct, int keepLines = 20) |
Tvii::Warping::WarpInfo | warpInfoForLayer(int platformId) |
New Macros
int | qul_printf(const char *format, ...) |
int | qul_snprintf(char *buffer, size_t count, const char *format, ...) |
int | qul_sprintf(char *buffer, const char *format, ...) |
int | qul_vprintf(const char *format, va_list va) |
int | qul_vsnprintf(char *buffer, size_t count, const char *format, va_list va) |
New Enum Types
enum class | MessageQueueStatus { Success, MessageDiscarded, MessageOverwritten, EmptyQueue, Timeout, …, OtherError } |
Changes in Previous Versions
Changes in v1.1.0 | |
Changes in v1.2.0 | |
Changes in v1.3.0 | |
Changes in v1.4.0 | |
Changes in v1.5.0 | |
Changes in v1.6.0 | |
Changes in v1.7.0 | |
Changes in v1.8.0 | |
Changes in v1.9.0 | |
Changes in v2.0.0 | |
Changes in v2.1 | |
Changes in v2.2 | |
Changes in v2.3 | |
Changes in v2.4.0 | |
Changes in v2.5 | |
Changes in v2.6.0 | |
Changes in v2.7.0 |
Available under certain Qt licenses.
Find out more.