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 of std::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 with qul_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:

(since Qt Quick Ultralite 1.9) font font(object fontConfiguration)

Platform development

New Classes

New Member Functions

Class MessageQueue:

(since Qt Quick Ultralite (Platform) 1.9) uint32_t capacity() const
(since Qt Quick Ultralite (Platform) 1.9) void clearOverrun()
(since Qt Quick Ultralite (Platform) 1.9) bool discardSupported() const
(since Qt Quick Ultralite (Platform) 1.9) Qul::Platform::MessageQueueStatus enqueueOrDiscard(const MessageType *message)
(since Qt Quick Ultralite (Platform) 1.9) Qul::Platform::MessageQueueStatus enqueueOrDiscardFromInterrupt(const MessageType *message)
(since Qt Quick Ultralite (Platform) 1.9) Qul::Platform::MessageQueueStatus enqueueOrOverwrite(const MessageType *message)
(since Qt Quick Ultralite (Platform) 1.9) Qul::Platform::MessageQueueStatus enqueueOrOverwriteFromInterrupt(const MessageType *message)
(since Qt Quick Ultralite (Platform) 1.9) bool isEmpty() const
(since Qt Quick Ultralite (Platform) 1.9) bool isEmptyFromInterrupt() const
(since Qt Quick Ultralite (Platform) 1.9) bool isOverrun() const
(since Qt Quick Ultralite (Platform) 1.9) bool overwriteSupported() const
(since Qt Quick Ultralite (Platform) 1.9) Qul::Platform::MessageQueueStatus receive(MessageType *message, int32_t timeout = 0)
(since Qt Quick Ultralite (Platform) 1.9) Qul::Platform::MessageQueueStatus receiveFromInterrupt(MessageType *message, int32_t timeout = 0)

Class MessageQueueInterface:

(since Qt Quick Ultralite (Platform) 1.9) virtual uint32_t capacity() const = 0
(since Qt Quick Ultralite (Platform) 1.9) virtual void clearOverrun() = 0
(since Qt Quick Ultralite (Platform) 1.9) virtual bool discardSupported() const = 0
(since Qt Quick Ultralite (Platform) 1.9) virtual Qul::Platform::MessageQueueStatus enqueueOrDiscard(const void *message) = 0
(since Qt Quick Ultralite (Platform) 1.9) virtual Qul::Platform::MessageQueueStatus enqueueOrDiscardFromInterrupt(const void *message)
(since Qt Quick Ultralite (Platform) 1.9) virtual Qul::Platform::MessageQueueStatus enqueueOrOverwrite(const void *message) = 0
(since Qt Quick Ultralite (Platform) 1.9) virtual Qul::Platform::MessageQueueStatus enqueueOrOverwriteFromInterrupt(const void *message)
(since Qt Quick Ultralite (Platform) 1.9) virtual bool isEmpty() const = 0
(since Qt Quick Ultralite (Platform) 1.9) virtual bool isEmptyFromInterrupt() const
(since Qt Quick Ultralite (Platform) 1.9) virtual bool isOverrun() const = 0
(since Qt Quick Ultralite (Platform) 1.9) virtual bool overwriteSupported() const = 0
(since Qt Quick Ultralite (Platform) 1.9) virtual Qul::Platform::MessageQueueStatus receive(void *message, int32_t timeout = 0) = 0
(since Qt Quick Ultralite (Platform) 1.9) virtual Qul::Platform::MessageQueueStatus receiveFromInterrupt(void *message, int32_t timeout = 0)

Class Texture:

(since Qt Quick Ultralite (Platform) 1.9) Qul::PlatformInterface::PixelDataPointer pixelData(int16_t x, int16_t y) const

New Global Functions

(since Qt Quick Ultralite (Platform) 1.9) Tvii::Configuration::Config configForOTFLayer(uint32_t platformId)
(since Qt Quick Ultralite (Platform) 1.9) Tvii::Configuration::Config defaultConfigForOTFLayer()
(since Qt Quick Ultralite (Platform) 1.9) void deleteQueue(Qul::Platform::MessageQueueInterface *queue)
(since Qt Quick Ultralite (Platform) 1.9) bool layerHasWarping(int platformId)
(since Qt Quick Ultralite (Platform) 1.9) int log(const char *format, ...)
(since Qt Quick Ultralite (Platform) 1.9) std::size_t maximumQueueMessageSize()
(since Qt Quick Ultralite (Platform) 1.9) Qul::Platform::MessageQueueInterface *requestQueue(std::size_t queueCapacity, std::size_t messageSize)
(since Qt Quick Ultralite (Platform) 1.9) void setConfigForOTFLayer(uint32_t platformId, uint16_t copses, uint32_t fifo, uint32_t lines)
(since Qt Quick Ultralite (Platform) 1.9) void setWarpingBufferForLayer(int platformId, const void *buffer, const int *platformStruct, int keepLines = 20)
(since Qt Quick Ultralite (Platform) 1.9) Tvii::Warping::WarpInfo warpInfoForLayer(int platformId)

New Macros

(since Qt Quick Ultralite (Platform) 1.9) int qul_printf(const char *format, ...)
(since Qt Quick Ultralite (Platform) 1.9) int qul_snprintf(char *buffer, size_t count, const char *format, ...)
(since Qt Quick Ultralite (Platform) 1.9) int qul_sprintf(char *buffer, const char *format, ...)
(since Qt Quick Ultralite (Platform) 1.9) int qul_vprintf(const char *format, va_list va)
(since Qt Quick Ultralite (Platform) 1.9) int qul_vsnprintf(char *buffer, size_t count, const char *format, va_list va)

New Enum Types

(since Qt Quick Ultralite (Platform) 1.9) enum class MessageQueueStatus { Success, MessageDiscarded, MessageOverwritten, EmptyQueue, Timeout, …, OtherError }

Changes in Previous Versions

What's New in 1.1

Changes in v1.1.0

What's New in 1.2

Changes in v1.2.0

What's New in 1.3

Changes in v1.3.0

What's New in 1.4

Changes in v1.4.0

What's New in 1.5

Changes in v1.5.0

What's New in 1.6

Changes in v1.6.0

What's New in 1.7

Changes in v1.7.0

What's New in 1.8

Changes in v1.8.0

What's New in 1.9

Changes in v1.9.0

What's New in 2.0

Changes in v2.0.0

What's New in 2.1

Changes in v2.1

What's New in 2.2

Changes in v2.2

What's New in 2.3

Changes in v2.3

What's New in 2.4

Changes in v2.4.0

What's New in 2.5

Changes in v2.5

What's New in 2.6

Changes in v2.6.0

What's New in 2.7

Changes in v2.7.0

What's New in 2.8

Changes in v2.8.0

Available under certain Qt licenses.
Find out more.