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 サポートを追加。- Monotype Spark のヒープ/キャッシュバッファを設定する QUL_MONOTYPE_SPARK_HEAP_NO_PREALLOC と QUL_MONOTYPE_SPARK_HEAP_SIZE CMake ターゲットプロパティを追加。
- Qt.font() API のプロパティバインディングに対応した。
- メモリ割り当て API を追加し、メモリ割り当てのサイズを制御できるようにした。
- PaintedItem とQul::PaintedItemDelegate API を追加し、カスタムのハードウェアアクセラレーションまたはソフトウェアレンダラーを使用した QML アイテムのレンダリングをサポートした。
- Screen::defaultApplicationSizeAPIを追加し、ルート・アイテムにサイズがない場合に、プラットフォームがアプリケーション・ウィンドウ・サイズをオーバーライドできるようにした。
- ARM GCC バージョン 9 にアップグレード。
- Qul::PixelFormat_Alpha1 ピクセル・フォーマットのサポートを追加。
- PixelDataPointer 構造体を追加し、
bitsPerPixel()が 8 未満のピクセル・データのポインティングを扱えるようにした。この構造体はQul::PlatformInterface::DrawingDevice::pixelDataAt() とQul::PlatformInterface::Texture::pixelData() で使用される。 - 欠落した glpyhs をより優雅に扱うために、Text とStaticText アイテムを有効にしました。これらは、欠落しているglpyhのためのプレースホルダグリフ(ボックス)をレンダリングします。
- グリフ描画品質を制御するための QUL_DEFAULT_FONT_QUALITY CMake ターゲットプロパティとfont.quality QML API を追加。
注意: グリフの自動生成が無効になっている場合は、font.unicodeCoverage プロパティを設定する必要があります。
- painteditemの例、カメラの例、Swipeゲームのデモを追加。
- Infineon/Cypress Traveo II ボードのサポートを追加。
- Linux開発ホストのサポートを追加。
- CMakeの最小バージョンをv3.17.3にアップグレード。
- カスタムキューを実装できるようにMessageQueue API を追加。
修正された問題
- テキストアイテムの水平アライメントの問題を修正するために、テキストのアライメント計算をリファクタリングした。
- MIMXRT1170の画面サイズをサポートするために、チャートのサンプルのヒープサイズを修正した。
- NXP board SDKをバージョン2.9.1にアップグレード。
- フェードアニメーションを無効にすることで、RA6M3G上のThermoデモアニメーションの問題を修正。
- EK-RA6M3G の PixelFormat_RGB32 のブレンドを修正。
- Indexed8 画像に RGB332 フォーマットを使用しないように
qulrccをリファクタリング。 - EK-RA6M3G で
std::rand()の代わりにstd::minstd_rand()に変更。 - 新しい
time_t関数を使用して UTC 時間を取得するようにWatch デモを更新。 - Font_bindings サンプルを STM32F7508-Discovery 用に最適化。
- C++ に関する一般的なリンカーの問題を検出するためのサニティチェックを追加。
- EK-RA6M3G プラットフォーム・ポートを更新し、サポートされていないピクセル・フォーマットに fallbackDrawingEngine を使用するようにしました。
- ベアメタルのサンプルを更新し、Qul::PlatformInterface::log() を使用するようにした。
- STM32 用プラットフォーム適応を更新し、印刷/ロギングをサポートするようにした。
- MIMXRT1050、MIMXRT1060、MIMXRT1064にPlatform::qul_printf()のサポートを追加。
- RH850用にPlatform::consoleWrite()を実装した。
- PlatformInterface::log()をサポートするために、EK-RA6M3G、MIMXRT1170、およびMIMXRT595用のプラットフォーム適応を更新した。
- プラットフォームの
printfをqul_printfに置き換えた。 - レイヤーの例で背景レイヤーの不透明度を削除。
- 負のベクトル座標をサポートするように vglitesupport を更新。
- EK-RA6M3G での性能測定のクラッシュを修正。
- アプリケーションのビルド時に CMAKE_BUILD_TYPE が指定されていなかったのを修正。
- startX == startY == 0 のときに暗黙の移動が追加されなかったのを修正。
- スパーク・エンジンとテキスト・キャッシュを併用した場合に、テキストがクリッピングしていたのを修正。
- STM32 でダイナミック・アセット・サイズのしきい値が小さくなるように調整。
- fontcompilerに1bppグリフの生成サポートを追加。
- プラットフォームライブラリの再構築時にコアライブラリをインポートするようにビルド依存性を更新。
- TextAlignment の変更に伴うテキストキャッシュの更新を有効にした。
- DynDependencyNode の割り当てをプール。
新しいクラスと関数
アプリケーション開発
新しいクラス
新しいQMLタイプ
新しいQMLプロパティ
QML型font :
(since Qt Quick Ultralite 1.9) | quality : Quality |
新しいQMLメソッド
QMLタイプQt :
(since Qt Quick Ultralite 1.9) font | font(object fontConfiguration) |
プラットフォーム開発
新しいクラス
新しいメンバー関数
クラス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) |
(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) |
クラスTexture :
(since Qt Quick Ultralite (Platform) 1.9) Qul::PlatformInterface::PixelDataPointer | pixelData(int16_t x, int16_t y) const |
新しいグローバル関数
(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) |
新しいマクロ
(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) |
新しい列挙型
(since Qt Quick Ultralite (Platform) 1.9) 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の変更 | |
v2.8.0の変更 | |
v2.9.0の変更 | |
v2.10.1の変更 | |
v2.11.0の変更点 |