What's New in 1.5

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

Available under certain Qt licenses.
Find out more.