このページでは

Qt Quick OpenVG 対応

OpenVG 適応版は、 Qt Quick 2の代替レンダラーであり、OpenVGコマンドを使用してシーングラフの内容をレンダリングし、ハードウェアアクセラレーションされた2Dベクトルおよびラスターグラフィックスを提供します。ソフトウェア・アダプテーションと同様に、一部の機能や最適化は利用できなくなっています。Qt Quick 2のアプリケーションのほとんどは、変更なしに実行できますが、サポートされていない機能を使用しようとしても無視されます。

EGL の要件

デフォルトの OpenGL レンダラーとは異なり、OpenVG コンテキストを取得するための組み込みサポートは存在しません。つまり、現在のコンテキストの要求と管理はレンダラーの責任となります。これを行うには、OpenVG レンダラー内で EGL を直接使用する必要があります。 したがって、OpenVGレンダラーは、QSurfaceFormat::OpenVG をサポートするQWindowsの作成に対応したプラットフォームプラグインでのみ使用可能です。このウィンドウから、レンダラーはEGLSurfaceを取得でき、それをEGLContextと組み合わせてOpenVGコンテンツをレンダリングすることができます。

レンダラー

OpenVG レンダラーは、OpenVG API を使用してコマンドやデータをベクター GPU に送信し、シーングラフを高速にレンダリングすることで、グラフィックスレンダリングの負荷を CPU から軽減します。矩形やフォントグリフのレンダリングなど、多くの操作は、ストロークや塗りつぶしが行われるパスとして表現できるため、OpenVG に最適です。 通常はテクスチャを伴うシーングラフ項目のレンダリングは、OpenVGレンダラーではVGImageを使用して処理されます。さらに、(レイヤーなどと同様に)オフスクリーンサーフェスにレンダリングする場合、シーンのサブツリーはVGImageにレンダリングされ、そのVGImageはシーン内で再利用可能です。

レンダリングループ

OpenVG レンダラーは、Basic のレンダリングループの挙動を反映しており、すべての OpenVG コマンドを単一のスレッドで実行します。

レンダリングループの詳細については、「Qt Quick シーングラフ」を参照してください。

シェーダーエフェクト

ShaderEffect QtQuick 2のコンポーネントは、OpenVGアダプテーションではレンダリングできません。 やQML Item Layers(いずれもオフスクリーンサーフェス)を使用することは可能ですが、 アイテムを介してこれらにシェーダーエフェクトを適用することはできません。これは、OpenVGには頂点単位およびフラグメント単位のシェーダー演算を適用するためのAPIがないためです。 ただし、OpenVG APIのImage Filter操作を活用することで、カスタムアイテムにおけるShaderEffectsが提供する効果と同様の効果を得られる可能性があります。カスタムOpenVGレンダリングを統合するには、 を と組み合わせて使用します。ShaderEffectSource ShaderEffect QSGRenderNode QSGRendererInterface

パーティクルエフェクト

OpenVG 対応版では、パーティクルエフェクトをレンダリングすることはできません。可能な限り、シーンからパーティクルを完全に削除してください。そうしないと、たとえ表示されていなくても、パーティクルには依然としてある程度の処理が必要となります。

テキストのレンダリング

OpenVG 対応におけるテキストのレンダリングは、グリフパスのレンダリングに基づいており、OpenGL バックエンドとは異なり、距離フィールドの手法は使用されません。

透視変換

OpenVG API では、非アフィン変換によるパスの変形は許可されていませんが、Qt Quick を使用すれば可能です。そのため、Rectangles や Text などのパスを使用してコンポーネントをレンダリングする際に遠近法変換を適用する場合、OpenVG バックエンドはまず VGImage へレンダリングしてから、変換を適用します。 この動作は実行時により多くのメモリを消費し、処理時間も長くなります。可能であれば避けるようにしてください。

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.