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,以控制内存分配的大小。
- 添加了 PaintedItem 和 Qul::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::PixelDataPointer | pixelData(int16_t x, int16_t y) const |
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) |
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) |
新全局函数
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) |
新的宏
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 } |
前版本更改
v1.1.0 的更改 | |
v1.2.0 的更改 | |
v1.3.0 的更改 | |
v1.4.0 的更改 | |
v1.5.0 的更改 | |
v1.6.0 的更改 | |
v1.7.0 的更改 | |
v1.8.0 的更改 | |
v1.9.0 的更改 | |
v2.0.0 的更改 | |
v2.1 的更改 | |
v2.2 的更改 | |
v2.3 的更改 | |
v2.4.0 的更改 | |
v2.5 的更改 | |
v2.6.0 的更改 | |
v2.7.0 的更改 |
在某些 Qt 许可证下提供。
了解更多信息。