C

1.9 新特性

Qt Quick Ultralite 在小版本发布之间保持源代码兼容性。但是,某些更改可能需要您相应地适应应用程序代码。以下部分突出了这些更改

重要更改

  • 弃用了以下函数
    • Qul::PlatformInterface::DrawingDevice::pixelAt()
    • Qul::PlatformInterface::Texture::dataAtOffset()
    • Qul::PlatformInterface::DrawingDevice::bytesPerPixel()
    • Qul::PlatformInterface::Texture::bytesPerPixel()
    • Qul::Image::bytesPerPixel()

新功能

  • 使用第三方的 nanopb 库添加了 protobuf 支持,以使主机和目标之间的通信更好。
  • 为嵌入式系统添加了第三方的 printf 实现。
  • 通过添加 plugin.qmltypes 文件,添加了对 QtQuickUltralite.Extras 模块的 Qt Creator 支持。
  • 添加了 QUL_MONOTYPE_SPARK_HEAP_NO_PREALLOC 和 QUL_MONOTYPE_SPARK_HEAP_SIZE CMake 目标属性,用于配置 Monotype Spark 的堆/缓存缓冲区。
  • 添加了对 Qt.font() API 上属性绑定的支持。
  • 添加了内存分配 API,以控制内存分配的大小。
  • 添加了 PaintedItemQul::PaintedItemDelegate API,以支持使用自定义硬件加速或软件渲染器渲染 QML 项目。
  • 添加了 Screen::defaultApplicationSize API,使平台能够在根项目没有大小时重写应用程序窗口大小。
  • 升级到 ARM GCC 版本 9。
  • 添加了对 Qul::PixelFormat_Alpha1 像素格式的支持。
  • 添加了 PixelDataPointer 结构,用于处理 bitsPerPixel() 小于 8 的像素数据。该结构与 Qul::PlatformInterface::DrawingDevice::pixelDataAt() 和 Qul::PlatformInterface::Texture::pixelData() 一起使用。
  • 使 Text 和 StaticText 项能够更优雅地处理缺少的 glyphs。它们为缺少的 glyphs 渲染占位符 glyphs(方框)。
  • 添加了 QUL_DEFAULT_FONT_QUALITY CMake 目标属性和 font.quality QML API,以控制 glyphs 渲染质量。

    注意:如果您禁用了自动 glyph 生成,必须设置 font.unicodeCoverage 属性。

  • 添加了 painteditem 示例、camera 示例和 Swipe game 演示。
  • 添加了对 Infineon/Cypress Traveo II 板的支持。
  • 添加了对 Linux 开发主机的支持。
  • 将CMake最小版本升级到v3.17.3。
  • 添加了消息队列API,以实现对自定义队列的实现。

修复了的问题

  • 重构了文本对齐计算,以修复文本项上的水平对齐问题。
  • 调整了图表示例的堆大小,以支持MIMXRT1170上的屏幕大小。
  • 将NXP板级SDK升级到版本2.9.1。
  • 通过禁用淡入动画,修复了RA6M3G上的温控示例动画问题。
  • 修复了EK-RA6M3G上PixelFormat_RGB32的混合问题。
  • 重构了qulrcc,使其不使用RGB332格式来处理Indexed8图像。
  • 在EK-RA6M3G上使用std::minstd_rand()代替std::rand()
  • 更新了手表示例,以使用新的time_t函数获取UTC时间。
  • 优化了STM32F7508-Discovery的Font_bindings示例。
  • 添加了用于捕获与C++相关的常见链接器问题的验证检查。
  • 更新了EK-RA6M3G平台移植,以使用fallbackDrawingEngine来处理不支持的像素格式。
  • 更新了裸机示例,以使用Qul::PlatformInterface::log()。
  • 更新了STM32的平台适配,以支持打印/日志记录。
  • 为MIMXRT1050、MIMXRT1060和MIMXRT1064添加了Platform::qul_printf()支持。
  • 为RH850实现了Platform::consoleWrite()。
  • 更新了EK-RA6M3G、MIMXRT1170和MIMXRT595的平台适配,以支持PlatformInterface::log()。
  • 在平台中使用printf替换为qul_printf
  • 在层级示例中删除了背景层的透明度。
  • 更新了vglitesupport以支持负向量坐标。
  • 修复了EK-RA6M3G上的性能测量崩溃问题。
  • 修复了构建应用程序时未指定CMAKE_BUILD_TYPE的问题。
  • 修复了startX == startY == 0时未添加隐式移动的问题。
  • 修复了在结合文本缓存使用spark引擎时剪辑文本的问题。
  • 在STM32上调整了动态资源大小阈值。
  • 向fontcompiler添加了生成1bpp象形文字的支持。
  • 更新了构建依赖关系,在重新构建平台库时导入核心库。
  • 在TextAlignment更改时启用Text缓存更新。
  • 池化了DynDependencyNode分配。

新类和函数

应用程序开发

新类

新QML类型

新QML方法

QML类型Qt

字体font(object fontConfiguration)

平台开发

新类

新成员函数

Texture

Qul::PlatformInterface::PixelDataPointerpixelData(int16_t x, int16_t y) const

MessageQueue

uint32_tcapacity() const
voidclearOverrun()
booldiscardSupported() const
Qul::Platform::MessageQueueStatusenqueueOrDiscard(const MessageType *message)
Qul::Platform::MessageQueueStatusenqueueOrDiscardFromInterrupt(const MessageType *message)
Qul::Platform::MessageQueueStatusenqueueOrOverwrite(const MessageType *message)
Qul::Platform::MessageQueueStatusenqueueOrOverwriteFromInterrupt(const MessageType *message)
boolisEmpty() const
boolisEmptyFromInterrupt() const
boolisOverrun() const
booloverwriteSupported() const
Qul::Platform::MessageQueueStatusreceive(MessageType *message, int32_t timeout = 0)
Qul::Platform::MessageQueueStatusreceiveFromInterrupt(MessageType *message, int32_t timeout = 0)

MessageQueueInterface

virtual uint32_tcapacity() const = 0
virtual voidclearOverrun() = 0
virtual booldiscardSupported() const = 0
virtual Qul::Platform::MessageQueueStatusenqueueOrDiscard(const void *message) = 0
virtual Qul::Platform::MessageQueueStatusenqueueOrDiscardFromInterrupt(const void *message)
virtual Qul::Platform::MessageQueueStatusenqueueOrOverwrite(const void *message) = 0
virtual Qul::Platform::MessageQueueStatusenqueueOrOverwriteFromInterrupt(const void *message)
virtual boolisEmpty() const = 0
virtual boolisEmptyFromInterrupt() const
virtual boolisOverrun() const = 0
virtual booloverwriteSupported() const = 0
virtual Qul::Platform::MessageQueueStatusreceive(void *message, int32_t timeout = 0) = 0
virtual Qul::Platform::MessageQueueStatusreceiveFromInterrupt(void *message, int32_t timeout = 0)

新全局函数

Tvii::Configuration::ConfigconfigForOTFLayer(std::uint32_t platformId)
Tvii::Configuration::ConfigdefaultConfigForOTFLayer()
voiddeleteQueue(Qul::Platform::MessageQueueInterface *queue)
boollayerHasWarping(int platformId)
intlog(const char *format, ...)
std::size_tmaximumQueueMessageSize()
Qul::Platform::MessageQueueInterface *requestQueue(std::size_t queueCapacity, std::size_t messageSize)
voidsetConfigForOTFLayer(std::uint32_t platformId, std::uint16_t copses, std::uint32_t fifo, std::uint32_t lines)
voidsetWarpingBufferForLayer(int platformId, const void *buffer, const int *platformStruct, int keepLines = 20)
Tvii::Warping::WarpInfo warpInfoForLayer (int platformId)

新的宏

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)

新的枚举类型

enum class MessageQueueStatus { Success, MessageDiscarded, MessageOverwritten, EmptyQueue, Timeout, …, OtherError }

前版本更改

1.1 版本的新功能

v1.1.0 的更改

1.2 版本的新功能

v1.2.0 的更改

1.3 版本的新功能

v1.3.0 的更改

1.4 版本的新功能

v1.4.0 的更改

1.5 版本的新功能

v1.5.0 的更改

1.6 版本的新功能

v1.6.0 的更改

1.7 版本的新功能

v1.7.0 的更改

1.8 版本的新功能

v1.8.0 的更改

1.9 新特性

v1.9.0 的更改

2.0 版本的新功能

v2.0.0 的更改

2.1 版本的新功能

v2.1 的更改

2.2 版本的新功能

v2.2 的更改

2.3 版本的新功能

v2.3 的更改

2.4 版本的新功能

v2.4.0 的更改

2.5 版本的新功能

v2.5 的更改

2.6 版本的新功能

v2.6.0 的更改

2.7 版本的新功能

v2.7.0 的更改

在某些 Qt 许可证下提供。
了解更多信息。