Qt for MCUs の最初のリリース以来、皆様からのフィードバックやご要望が Qt for MCUs の開発の原動力となってきました。本日、要望の多かった機能や改善点を盛り込んだバージョン 2.3 をリリースしました。この新しいバージョンでは、Qt Quick Ultralite に Loader QML タイプを追加し、アプリケーションの全体的なメモリ要件を大幅に削減するパーシャルフレームバッファのサポート、Windows で MinGW を使用するアプリケーションのビルドをサポートし、その他にも多くの機能を追加しています。
このバージョンに含まれるすべての変更点リストは、オンラインドキュメンテーションの変更履歴に記載されています。このリリースの内容の詳細については、こちらを参照ください。
デフォルトでは、Qt Quick Ultralite UI で宣言された全ての QML コンポーネントは、Repeater や ListView のような動的にデリゲートを割り当てることができるいくつかの場合を除き、メモリ内に静的に割り当てられます。静的なメモリ割り当てには、実行時のパフォーマンスが良い、メモリ関連のバグが発生しにくいなどの利点がありますが、割り当てられたデータがアプリケーションのライフタイム中に必ずしも必要でない場合があり、メモリの浪費を引き起こすという欠点もあります。GUIを開発する場合、画面数が多くても一度に1つしか表示されない場合は、特に静的なコンポーネント割り当てが非効率になる可能性があります。アプリケーションの画面数が多ければ多いほど、メモリの無駄が増えることになります。
Qt Quick Ultralite に Loader QML タイプが追加され、QML コンポーネントの割り当てを完全に制御できるようになり、必要な時までその作成を遅らせることができるようになりました。これにより、アプリケーションの全体的な RAM フットプリントを削減し、場合によってはデバイスの起動時間を短縮することができます。
次は、アプリケーションの全体的な必要メモリを大幅に削減することができる新機能を紹介します。
フレームバッファはどんなグラフィックアプリケーションにも必要で、それはディスプレイに転送されるすべてのピクセルを含む RAM 内の予約領域です。グラフィックスエンジンによって行われた最後のレンダリングの完全なイメージを常に保持しています。Qt Quick Ultraliteは通常シングルまたはダブルのフレームバッファを使用し、UIが更新されるたびに実際に変化するピクセルだけをそこにレンダリングします。すべての描画操作が完了すると、フルフレームバッファをディスプレイに転送する必要があります。これらのバッファは、ディスプレイ上のピクセルと同じ大きさである必要があり、一般的なマイクロコントローラベースのグラフィックアプリケーションのRAM要件のほとんどに相当することがよくあります。例えば、解像度480x272の16ビットディスプレイの場合、シングルバッファには260KB、ダブルバッファには520KBのRAMが必要になります。
アプリケーションの残りの部分のためにメモリを解放する、または単にフルフレームバッファを保持するのに十分なRAMがない場合、これらのRAM要件を減らすために、1つまたは複数の小さな部分フレームバッファに基づいて、バッチで表示を更新する新機能が追加されました。
これにより、シングルバッファやダブルバッファのグラフィックスと比較して、メモリ使用量を大幅に削減することができます。例えば、480x272のディスプレイの場合、フレームバッファに使用するメモリはわずか1Kバイトで済みます。ただし、これには制限や制約があります。パーシャルフレームバッファを使用するためには、DSI、SPI、パラレル接続などのメモリを内蔵したディスプレイを使用する必要があります。また、アニメーションがディスプレイの大部分を占める場合、テアリング現象が発生する可能性があります。
リファレンス・プラットフォームのいくつかは、現在この機能をサポートしており、プラットフォーム・ソースで有効にすることができます。このトピックをさらに深く掘り下げ、あなた自身のプラットフォームポートにどのように実装できるかを学ぶには、こちらのページにアクセスしてください。
これらは Qt for MCUs 2.3 の主なハイライトに過ぎません。このリリースでは、Windows 上でアプリケーションをビルドするための MinGW のサポート、いくつかのメモリフットプリントの削減、スタンドアロンコード生成ツールの改善、最近リリースされたバージョン 9.0 の Qt Creator プラグインの改善など、さらに多くの機能および改善が含まれています。 機能一覧はリリースのチェンジログをご覧ください。
次の機能アップデートは、2023 年 3 月にバージョン 2.4 を予定しています。 このリリースのハイライトは、複雑な 2D および 3D アニメーションの画像シーケンスを再生する新機能、あらゆるマイクロコントローラーで Qt Quick Shapes を使用できるソフトウェアベクターグラフィックレンダラー、フォントデータの圧縮、これまで以上に軽量な Qt Quick Ultralite エンジンが含まれる予定です。
既存の Qt for MCUs 開発者の方は、Qt for MCUs のインストールディレクトリのルートにある Qt Maintenance Tool から Qt for MCUs 2.3 をダウンロードすることができます。初めてご利用になる方は、こちらをクリックしてください。また、コメント欄やこちらのフォームからご意見・ご要望をお聞かせください。