Qt5では、開発をはるかに簡単にする新しいテクノロジーが追加されています。
Qt5は下位互換性があり、Qt 4.8アプリケーションを実行できますが、だからといって最高のパフォーマンスが得られるわけではありません。
Qt5には、コンポーネントを画面にペイントするための2つのオプションがあります。Qt 5 でのペイントは、主に次のいずれかで行われます。
Qタッチパネル
このドキュメントでは、 Qt5GraphicsOverview |Qtウィキ|Qtプロジェクト Qpainterエンジンは、ソフトウェアを使用してペイントし、QimagesまたはQwidgetsを描画するときに使用されます。OpenGLに対するその利点は 、アンチエイリアシングが有効になっている場合の高品質と、完全な機能セットです。
Qpainter は OpenGL エンジンを使用できますが、ドキュメントに記載されているように、状態の変化の影響を受けやすくなります。そして、慎重に使用する必要があります。
QML とシーングラフ。
すべてのビジュアルQMLアイテムは、OpenGLと密接に結びついた低レベルで高性能なレンダリングスタックであるシーングラフを使用してレンダリングされます。
Qt Quick 2は、OpenGL ES 2.0またはOpenGL 2.0をベースにした専用のシーングラフをレンダリングに利用しています。従来の命令型ペイントシステム(QPainterなど)ではなく、グラフィックスのシーングラフを使用すると 、レンダリングされるシーンをフレーム間で保持でき、レンダリングが開始される前にレンダリングするプリミティブの完全なセットがわかっています。これにより、状態の変化を最小限に抑えるためのバッチレンダリングや、不明瞭なプリミティブの破棄など、多くの最適化が可能になります。
QML シーングラフは、 Qt 5 の QML の新しいバックエンドであり、OpenGL に基づいています。これは一般的に、 Qt 4で使用されていたQPainterベースのバックエンドよりもQMLのパフォーマンスを大幅に向上させます。これにより、さまざまな方法でパフォーマンスが向上します。
i.MX6 両方のオプションでテストし、QML Qtquick2 要素を使用して最良の結果を得ました。ウィジェットを介してQtPainterを使用しようとすると、X11やWaylandのようなウィンドウシステムを使用しないと、Painterがうまく機能せず、QtGLWidgetしか表示されないという問題に直面しました。
QMLシーングラフを使用すると、OpenGL要素とQt要素を同じ環境上に持つことができ、一方を他方と通信して変数を共有する簡単な方法があります。ここで結果の例をご覧ください: I.MX6 シーングラフ Qt5 - YouTube
そして大きな利点は、sceneGraph がすべて OpenGL によって高速化されることです。
こんにちは
私は、もともとQt4.7に基づいており、iMX35で実行されている大規模なアプリケーションをQt5.1を使用してiMX6に移植しています。
私のレガシーアプリケーションには、QPainter APIに基づく2D描画がたくさんあります。
QWidgetをQGLWidgetに置き換えて、ハードウェアアクセラレーションQPainterAPIを取得することを望んでいました。そうではないようです。
私はQPainterを使い続けており、Qt 4.7のようなソフトウェアレンダリングしか利用できません
ハードウェアアクセラレーションによる2Dレンダリングが必要な場合は、gl APIを使用してすべての描画コードを書き直す必要があります。
私の理解は正しいですか?
Fabio
FranciscoCarrilloさん、この文書を公開の i.MX コミュニティに移動して、外部のメンバーがアクセスできない場所にある文書を指しないようにしていただけませんか?そして、この問題を報告した以下の公開ディスカッションに投稿を追加しますか?
リンクされた記事には、「この場所またはコンテンツへのアクセスは制限されています..."
この質問は 答えられていません。(想定どおりに回答済みとしてマーク)
スティーブンラングスタッフ 2013年7月12日 2:43 AM
「この場所やコンテンツへのアクセスは制限されています。これが間違いだと思う場合は、管理者またはここにあなたを案内した人に連絡してください。https://community.freescale.com/docs/DOC-94234 にアクセスしようとすると、EGLFSのQT5デモエラーから指摘されています。
よろしくお願いします。
叶える