What's New in 1.5

Important changes

  • DrawingEngine has additional blendRoundedRect function that can be overriden in platforms which supports hardware accelerated blending of rectangles that have rounded corners.

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:

Changes in 1.5

New features

  • Added documentation on porting Qt Quick Ultralite to new platforms, see the Qt Quick Ultralite Platform Porting Guide.
  • Added Image and ImageProvider APIs. Use them to register image providers for "image://provider/location" URLs and to display images that are loaded at runtime. See the image_loading example.
  • Added the QUL_DEFAULT_FONT_FAMILY and QUL_FONTS_DIR CMake target properties. Using the CMake variables of the same name is now deprecated.
  • Added SDK v2.8.0 support for NXP MIMXRT1050-EVKB, MIMXRT1060-EVK, and MIMXRT1064-EVK.
  • Added 24bpp color depth support for NXP RT1050, RT1060, and RT1064. This requires platform adaptation for screen support though.

Source compatibility breaks

  • Flickable's contentX and contentY properties have flipped sign: Positive values move the content right or down respectively. This matches the behavior in Qt Quick's Flickable.

Fixed issues

  • Fixed redraw bug on the desktop backend (QTMCU-7)
  • Fixed bug that prevented anchors on the root item of a QML file from working.
  • Use of the rotation, scale, and transformOrigin properties in the root item of a QML file works now.
  • qul_target_generate_interfaces() CMake API no longer require adding additional include directories using target_include_directories or setting CMAKE_INCLUDE_CURRENT_DIR.

New APIs

APIs for application development

New Classes

APIs for platform development

New Classes

New Member Functions

Class Texture:

const unsigned char *data() const

New Global Functions

PlatformInterface::Screen *availableScreens(size_t *screenCount)
PlatformInterface::DrawingDevice *beginFrame(const PlatformInterface::Screen *screen, int layer, const PlatformInterface::Rect &rect, int refreshInterval = 1)
void blendRectTiled(Qul::PlatformInterface::DrawingDevice *buffer, const Qul::PlatformInterface::Rect &rect, Qul::PlatformInterface::Rgba32 color, void (*)() finish, void (*)(void *, int) invalidateCache)
void blendRectTiledAlphaMap(Qul::PlatformInterface::DrawingDevice *buffer, const Qul::PlatformInterface::Rect &rect, Qul::PlatformInterface::Rgba32 color, void (*)() finish, void (*)(void *, int) invalidateCache)
void endFrame(const PlatformInterface::Screen *screen)
Qul::Platform::FrameBufferingType frameBufferingType(const PlatformInterface::Screen *screen)
void handleKeyEvent(uint64_t timestamp, Qul::PlatformInterface::KeyEventType type, int key, uint32_t nativeScanCode = 0, unsigned int modifiers = NoKeyboardModifier, char *textUtf8 = NULL, bool autoRepeat = false)
void handleTouchCancelEvent(Qul::PlatformInterface::Screen *screen, uint64_t timestamp)
void handleTouchEvent(Qul::PlatformInterface::Screen *screen, uint64_t timestamp, const Qul::PlatformInterface::TouchPoint *touchPoints, unsigned int numTouchPoints)
void init16bppRendering()
void init24bppRendering()
void init32bppRendering()
Qul::Platform::FrameStatistics presentFrame(const PlatformInterface::Screen *screen, const PlatformInterface::Rect &rect)
void printHeapStats()
void printStackStats()
void qul_free(void *ptr)
void *qul_malloc(std::size_t size)
void *qul_realloc(void *ptr, std::size_t new_size)
void updateEngine(uint64_t timestamp)

New Enum Types

enum FrameBufferingType { SingleBuffering, FlippedDoubleBuffering, CopyingDoubleBuffering, OtherBuffering }
enum KeyEventType { KeyPressEvent, KeyReleaseEvent }
enum KeyboardModifier { NoKeyboardModifier, ShiftKeyboardModifier, ControlKeyboardModifier, AltKeyboardModifier, MetaKeyboardModifier, …, GroupSwitchKeyboardModifier }
enum BlendMode { BlendMode_SourceOver, BlendMode_Source }
enum Flags { NoTextureFlags, Swizzled, PartiallyOverlaps, NeedsCachedLoadFromSlowMemory, PaddedWithTransparency }
enum State { Pressed, Moved, Stationary, Released }

New Variables

int refreshDelta
int remainingBudget
float areaX
float areaY
int id
int positionX
int positionY
float pressure
float rotation

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

Available under certain Qt licenses.
Find out more.