このページでは

C

2.0の新機能

Qt Quick Ultraliteはマイナーリリース間のソース互換性を維持しています。しかし、いくつかの変更点は、それに応じてアプリケーションコードを適応させる必要があるかもしれません。以下のセクションでは、そのような変更点を強調します:

重要な変更

  • CMake コンフィギュレーション API の環境変数依存性を削除しました。-DQUL_TOOLCHAIN_DIR および-DQUL_SDK_DIR CMake オプションを使用して、外部ツール設定と製造元 SDK の場所を提供できます。-DQul_ROOT オプションを使用して、Qt Quick Ultralite インストール場所を提供することもできます。
  • CMake API の名称を変更し、命名ポリシーに従って、直感的で理解しやすくしました。詳細については、2.0 での CMake API の変更を参照してください。
  • 既存の Qul::initializePlatform() 関数を、Qul::initializeHardware() と Qul::initializePlatform() という 2 つの新しい関数に置き換えました。
  • ハードウェアを初期化するタイミングを制御するために、アプリケーションのエントリーポイントにinitializeHardware 引数を追加しました。詳しくは、 Qt Quick Ultraliteアプリケーションを静的ライブラリとして構築するをご覧ください。
  • Chartsモジュールを削除しました。
  • ListElement のプロパティに対するスクリプトバインディングを無効化。
  • STMicroelectronics 製の以下のボードのサポートを終了:
    • STM32L4R9I-discovery
    • STM32F7508-discovery
    • STM32L4R9I-eval
  • Qt for MCUs v1.9 で非推奨となった以下のプラットフォーム API を削除:
    • Qul::PlatformInterface::DrawingDevice::pixelAt()
    • Qul::PlatformInterface::Texture::dataAtOffset()
    • Qul::PlatformInterface::DrawingDevice::bytesPerPixel()
    • Qul::PlatformInterface::Texture::bytesPerPixel()
    • Qul::Image::bytesPerPixel()
  • JavaScriptの日付APIを削除しました。
  • 非推奨のQul::PlatformInterface::Screen コンストラクタを削除しました。
  • EK-RA6M3G 用 BSP ヘッダーからQUL_* の定義を削除。
  • デバッグ出力をリダイレクトするためのQUL_REDIRECT_PRINTF_TO_* コンパイルオプションを削除しました。代わりにシリアルポート出力を使用。
  • アセット保存場所のマクロとリンカーセクションを変更。イメージリソースはデフォルトで、QulResourceData セグメントに格納される場所に依存しないデータ構造にコンパイルされます。

新機能

  • アーキテクチャベースのビルドが可能になり、各プラットフォーム用のコア・ライブラリが OS の仕様から分離されました。これにより、サポートされるプラットフォームごとに必要なコア・ライブラリのビルド数が減り、同じ CPU アーキテクチャーを持つ他のプラットフォームへの移植が容易になります。
  • QUL_DEFAULT_FONT_FAMILY と QUL_FONTS_DIR の CMake 変数を、対応する CMake ターゲットのプロパティに置き換えました。すべての CMake API の変更については、2.0 での CMake API の変更を参照してください。
  • Montotype Spark フォントエンジンによるテキストシェーピングを有効または無効にする QUL_COMPLEX_TEXT_RENDERING CMake API を追加。
  • toFixedInt()toExponentialAuto() をそれぞれ toFixed() と toExponential() メソッドに置き換えました。
  • プラットフォーム SDK とライブラリをアップグレード:
    • Renasas Grapihcs Library SDK v2.0.0a をリリース。
    • MIMXRT1050-EVKB - MCUXpresso SDK v2.10.0
    • MIMXRT1060-EVK - MCUXpresso SDK v2.10.1
    • MIMXRT1064-EVK - MCUXpresso SDK v2.10.0
    • MIMXRT1170-EVK - MCUXpresso SDK v2.10.1
    • Monotype SDK v2.0
  • PlatformContext API を追加しました。include/platform/platform.h の既存のグローバルプラットフォーム関数を仮想関数にしました。 Qt Quick Ultralite コアはQul::Platform 名前空間の getPlatformInstance() 関数を使用してこれらのプラットフォーム関数にアクセスします。
  • waitForFlip()とstm32_flushFrame()の空のwhileループをstm32_enterSleepMode()に置き換えることで、CPU負荷を軽減しました。
  • QulPerf を QtQuickUltralite.Extras モジュールに移動しました。
  • アプリケーション固有の設定を制御するためにQul::ApplicationSettings 。その結果、Qul::Application::setUiLanguage()を削除。
  • CMakeのAPIをより直感的な名前に変更し、目的に応じて適切なAPIを選択しやすくしました。これらの API の一覧については、2.0 での CMake API の変更を参照してください。
  • ベンダーのボードサポートパッケージ(BSP)ソースを別のQul::QuickUltralitePlatformSDKライブラリにコンパイルできるようになりました。また、これらのライブラリーに個別のコンパイラーフラグを使用できるようになりました。
  • アンカーラインのみを変更するには、AnchorChanges 。マージンの変更にはPropertyChanges を使用。
  • Renesas RH850 で Monotype Spark フォントエンジンのサポートを追加。
  • MemoryAllocatorのacquire()とrelease()のデフォルト実装を更新し、waitUntilAsyncReadFinished()とflushCachesForAsyncRead()を呼び出さないようにした。
  • CMake 3.21 以降で IAR ツールチェーンを使用したソースからのビルドが可能になりました。
  • FreeRTOS 上で IAR を使用して STM32F769i の初期スタックサイズ (1K) を定義。
  • FreeRTOS heap_5 アロケータで SRAM と SDRAM の両方を使用できるようにしました。
  • STM およびNXP プラットフォームのデフォルトのタッチイベントキュー実装を削除。
  • NXP プラットフォームのタッチイベント処理を変更。タッチスクリーンからの割り込みがあった場合のみ、タッチデータが照会されます。
  • QUL_FONT_ENGINE CMake ターゲットプロパティを追加し、任意のフォントエンジンを選択できるようにしました。
  • EK-RA6M3G 用の J-Link コマンドファイル名に CMake ターゲットを追加しました。
  • ビヘイビア内のグループアニメーションに対応した。
  • STM32H750B-discoveryボードのユーザーボタンのサポートを追加しました。
  • TextCache blending alphamapsのサポートを追加しました。
  • Monotype WorldType Shaper Sparkに基づくテキストシェーピングのサポートを追加しました。これにより、テキストアイテムで複雑な双方向スクリプトを使用できるようになった。
  • アセットのキャッシュメモリを確保するための PreloadAllocator と ReversePreloadAllocator を追加。
  • モジュールライブラリからリソースを削除。これらのリソースはモジュールと一緒に出荷されますが、選択された色の濃さに基づいてアプリケーションと一緒にビルドされます。
  • 各プラットフォームに QulModuleResourceData リンカセクションを追加。これは、場所に依存しないリソース機能を無効にし、リンカーが未使用のリソースを削除できるようにします。
  • Qt Quick Ultralite モジュールのランタイム・リソース検索サポートを有効にしました。
  • 翻訳サンプルにタイ語とアラビア語のサポートを追加しました。
  • Thermoデモに複雑なスクリプトとBiDiテキストのサポートを追加。
  • Wfloat-equal が適用可能な float 用の特殊化テンプレートを追加。
  • qmltocpp によって生成された C++ コードに対して-Wfloat-equal-Wshadow を有効にした。
  • STM32H750B 用のペイントされたアイテムの例を有効にした。
  • RH850 に SDRAM メモリ・アロケータを追加。
  • StaticText に複数行テキストを水平に揃えるサポートを追加。
  • NXP 1060 と 1064、および STM32H750B で倍精度 FPU を使用するように変更。
  • ダイナミック・ヒープ・サイズを使用するように、GCC ツールチェーンに基づくプラットフォーム・ビルドを更新。
  • STM32 ボード上のダイナミック・アセット・ヒープを SRAM と SDRAM 用の個別のアロケータに置き換えた。これらのアロケータは、 Qt Quick Ultralite プラットフォーム抽象化におけるメモリ割り当てに基づいている。
  • すべての割り当てを qul_malloc に切り替えました。
  • RT1170 のタイルイメージフォーマットのサポートを追加。
  • デスクトップ Qt バックエンドを通常のプラットフォームに変換し、CMake 設定の複雑さを軽減。
  • OTA アップデートのために qulrcc でバイナリを生成する CMake ビルドターゲットを追加。
  • qulrcc の改良:
    • コアとメインの2つのライブラリに分割。ここで、コアはアセットの変換を処理し、メインは入力と出力を処理します。
    • テクスチャーヘッダーのオフセットを現在のオフセットに追加。
    • キャッシュのサイズが小さすぎて画像が収まらない場合に警告。
    • QUL_RESOURCE_STORAGE_SECTION CMake API を使用して設定されたメモリセクションから読み込まれたデータに基づいてイメージアセットを生成します。
    • 2つのイメージ間でハッシュ値が競合していることを警告し、どちらかの名前を変更するようアドバイスします。

修正された問題

Qt for MCUs v2.0.0

  • カラムレイアウトのアイテムが非表示に設定されている場合の動作を更新しました:
    • 可視性の変更時にアイテムを再レイアウト、
    • 非表示アイテムのプレースホルダーを空にしました。
  • カラムの最初のアイテムのトップマージンを削除。
  • QMLのプロパティ変更シグナルに関する問題を修正しました。これにより、プロパティ変更シグナルが正しく発信されるようになりました。
  • Qt Creator を使用した RH850 D1M1A の点滅に関する問題を修正しました。
  • 空の状態でもトランジションアニメーションが期待通りに動作するように、関数レベルのリンクを無効にしました。
  • コンテキストの切り替えロジックを修正し、直接スリープに移行する代わりにqul_os_yield() を使用するようにしました。これにより、Qt for MCUs アプリケーションがプリエンプティブおよび協調マルチタスク・モードの両方で期待どおりに動作するようになりました。
  • スタック・メモリ・サイズに制限を追加し、ベアメタルの STM32 でヒープ・メモリとのオーバーラップを回避。
  • font.unicodeCoverage の使用を Qt.font() 呼び出しのみに制限しました。
  • RGB 画像フォーマットの透明ピクセルのレンダリングに関する問題を修正しました。
  • CMake 3.16.3 を使用した Linux ホストでのビルドの問題を修正。
  • swipe_gameデモをリファクタリングして、予期しないアーティファクトを修正しました。
  • NXP RT1170 の IAR リンカの警告を修正。
  • テキストの方向が左から右か右から左かに基づいて、自動的にテキストが整列するようにした。
  • IRQピン206を設定することにより、EK-RA6M3G上のタッチ入力の問題を修正。
  • リソースのプラットフォームまたはボード固有のデフォルトプロパティが、すべてのQt Quick Ultralite モジュールで利用可能であることを確認。
  • テキストレイアウトの幅計算ロジックを修正。
  • 時計例のUIの不具合を修正しました。
  • テキストレイアウトのリグレッションを修正。
  • QUL_PLATFORM_BOARD_DIR と QUL_TARGET_TOOLCHAIN_DIR が有効なパスであることを確認するチェックを追加しました。
  • StaticText アイテムでグリフをマージすることによって、描画呼び出しが多すぎるために FIFO バッファがオーバーフローするのを修正。
  • TVIIエフェクトのサンプルをデスクトップで動作するように更新。
  • RGB332 フォーマットの不透明画像のレンダリングの問題を修正。
  • フラッシュ・ターゲットが確実にビルドされるように、ビルド・ターゲットの依存関係を追加。
  • 右寄せテキストのアーティファクトを修正。
  • NXP における IAR コンパイラのエラーと警告を修正しました。
  • NXP FreeRTOS プラットフォームでアプリケーションが停止する問題を修正しました。
  • RH850 でルートImageLayer のソースとして内部フラッシュ内のイメージを使用する際の問題を修正しました。

Qt for MCUs v2.0.1

  • ImageLayer アイテムのソースが見つからないことによるアサーションを修正しました。ソースがない場合、レイヤーは無視されます。
  • thermoデモの右マージンを修正し、アラビア語のテキストがオーバーフローしないようにした。
  • fontcompiler の以下の問題を修正:
    • サポートされていないフォントファイル形式がSparkフォントエンジンで使用された場合にセグメンテーションフォールトが発生する問題を修正しました。
    • デフォルトのQUL_MAX_PARAGRAPH_SIZEが100を超えないように更新。
  • Qul::PlatformTraveoIIExtras モジュールのヘッダーの欠落を修正しました。layerwarping.htviiconfiguration.h のヘッダーは、<tviiextras/layerwarping.h><tviiextras/tviiconfiguration.h> を使って含まれるようになりました。
  • Static フォントエンジンのリグレッションを修正し、アンカー付きテキストアイテムが y 軸上で正しいオフセットでレンダリングされるようにしました。
  • GNU ツールチェイン以外のすべてのツールチェインに対するフォントバイナリデータサポートを削除しました。これにより、CMake v3.22.0を使用してIARツールチェーンでQt Quick Ultraliteをビルドする際の失敗が修正されました。

新しいAPI

アプリケーション開発用API

新しいクラス

名前空間の新しい関数

(since Qt Quick Ultralite 2.0) void initHardware()

新しい QML メソッド

QML 型Qt

(since Qt Quick Ultralite 2.0) string resolvedUrl(String url)

プラットフォーム開発用API

新しいクラス

新しいグローバル機能

(since Qt Quick Ultralite (Platform) 2.0) Qul::Platform::PlatformContext *getPlatformInstance()

旧バージョンでの変更点


詳細はこちら。