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 のヒープ/キャッシュバッファを設定するための CMake ターゲットプロパティ QUL_MONOTYPE_SPARK_HEAP_NO_PREALLOC および QUL_MONOTYPE_SPARK_HEAP_SIZE を追加しました。
- Qt.font() API でのプロパティバインディングのサポートを追加しました。
- メモリ割り当てのサイズを制御できるメモリ割り当て API を追加しました。
- カスタムハードウェアアクセラレーションまたはソフトウェアレンダラーを使用した QML アイテムのレンダリングをサポートするために、PaintedItem およびQul::PaintedItemDelegate API を追加しました。
- Screen::defaultApplicationSize API を追加し、ルートアイテムにサイズが設定されていない場合、プラットフォームがアプリケーションウィンドウのサイズを上書きできるようにしました。
- ARM GCC バージョン 9 にアップグレードしました。
- Qul::PixelFormat_Alpha1 ピクセル形式のサポートを追加しました。
bitsPerPixel()が 8 未満の場合のピクセルデータを扱うために、PixelDataPointer 構造体を追加しました。この構造体は、Qul::PlatformInterface::DrawingDevice::pixelDataAt() およびQul::PlatformInterface::Texture::pixelData() で使用されます。- Text およびStaticText アイテムが、欠落したグリフをより適切に処理できるようになりました。これらは、欠落したグリフの代わりにプレースホルダーグリフ(ボックス)をレンダリングします。
- グリフのレンダリング品質を制御するための QUL_DEFAULT_FONT_QUALITY CMake ターゲットプロパティとfont.quality QML API を追加しました。
注: 自動グリフ生成が無効になっている場合は、font.unicodeCoverage プロパティを設定する必要があります 。
- painteditem のサンプル、カメラのサンプル、およびSwipe ゲームのデモを追加しました。
- Infineon/Cypress Traveo II ボードのサポートを追加しました。
- Linux 開発ホストのサポートを追加しました。
- CMake の最小バージョンを v3.17.3 にアップグレードしました。
- カスタムキューの実装を可能にするため、MessageQueue API を追加しました。
不具合の修正
- Text アイテムの水平方向の配置に関する問題を修正するため、テキストの配置計算をリファクタリングしました。
- MIMXRT1170の画面サイズに対応するため、チャート例のヒープサイズを修正しました。
- NXP ボード用SDKをバージョン2.9.1にアップグレードしました。
- RA6M3G における Thermo デモのアニメーションの問題を、フェードアニメーションを無効化することで修正しました。
- EK-RA6M3G における PixelFormat_RGB32 のブレンドを修正しました。
qulrccをリファクタリングし、Indexed8 画像で RGB332 フォーマットを使用しないようにしました。- EK-RA6M3G において、
std::rand()の代わりにstd::minstd_rand()を使用するように変更しました。 - Watchデモを更新し、UTC時刻を取得するために新しい
time_t関数を使用するようにしました。 - STM32F7508-Discovery向けにFont_bindingsサンプルを最適化しました。
- C++に関連する一般的なリンカーの問題を検出するためのサニティチェックを追加しました。
- EK-RA6M3G プラットフォームの移植版を更新し、サポートされていないピクセル形式に対して fallbackDrawingEngine を使用するようにしました。
- Qul::PlatformInterface::log() を使用するように、bare metal サンプルを更新しました。
- 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 Engine をテキストキャッシュと組み合わせて使用した際にテキストが切り取られる問題を修正しました。
- 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) |
MessageQueueInterface クラス :
(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 の変更点 |
特定のQtライセンスの下で利用可能です。
詳細はこちらをご覧ください。