驚くべきことに、QWidget を QGLWidget に切り替えたところ、QPainter::drawImage の呼び出しが 5 倍速くなりました。ウィジェットの種類以外は何も変更しませんでした。QPainter 呼び出しのパフォーマンスを向上させるにはどうすればよいでしょうか? 私はそれがうまくいくことをうれしく思いますが、私はその方法を理解していません。何か案は?
ありがとう。
QGLWidget は、システムで利用可能な OpenGL 実装を使用します。これは、ハードウェア アクセラレーションの可能性があります。システムによって異なります。Qt ウィジェットは、さまざまな QPaintEngine を使用してレンダリングできます。パラメータ -graphicssystem を使用してアプリケーションを実行することで、グラフィック システム全体を OpenGL を使用するように変更することもできます。これは現在 Qt for Linux Embedded では実行できません。たとえば、animatetiles の例を実行して違いを試すことができます。これは、必ずしもラスター ペインタよりもパフォーマンスが優れていることを意味するわけではないことに注意してください。システムの OpenGL 実装に依存し、ソフトウェアのみの場合、パフォーマンスはさらに悪化する可能性があります。
コンテンツのレンダリングにOpenGLを使用します。
OpenGLを使用している場合は、おそらくハードウェアアクセラレーションも使用しています