C
Qul::PlatformInterface::DrawingEngine Class
class Qul::PlatformInterface::DrawingEngineこのクラスはブレンド関数の抽象インターフェースを提供します。詳細...
| Header: | #include <platforminterface/drawingengine.h> |
| Since: | Qt Quick Ultralite (Platform) 1.5 |
パブリック型
(since Qt Quick Ultralite (Platform) 1.8) struct | Path |
(since Qt Quick Ultralite (Platform) 1.5) enum | BlendMode { BlendMode_SourceOver, BlendMode_Source } |
パブリック関数
(since Qt Quick Ultralite (Platform) 1.8) virtual Qul::PlatformInterface::DrawingEngine::Path * | allocatePath(const Qul::PlatformInterface::PathData *pathData, Qul::PlatformInterface::PathFillRule fillRule) |
| virtual void | blendAlphaMap(Qul::PlatformInterface::DrawingDevice *drawingDevice, const Qul::PlatformInterface::Point &pos, const Qul::PlatformInterface::Texture &source, const Qul::PlatformInterface::Rect &sourceRect, Qul::PlatformInterface::Rgba32 color, Qul::PlatformInterface::DrawingEngine::BlendMode blendMode = BlendMode_SourceOver) |
| virtual void | blendImage(Qul::PlatformInterface::DrawingDevice *drawingDevice, const Qul::PlatformInterface::Point &pos, const Qul::PlatformInterface::Texture &source, const Qul::PlatformInterface::Rect &sourceRect, int sourceOpacity, Qul::PlatformInterface::DrawingEngine::BlendMode blendMode = BlendMode_SourceOver) |
(since Qt Quick Ultralite (Platform) 1.8) virtual void | blendPath(Qul::PlatformInterface::DrawingDevice *drawingDevice, Qul::PlatformInterface::DrawingEngine::Path *path, const Qul::PlatformInterface::Transform &transform, const Qul::PlatformInterface::Rect &clipRect, const Qul::PlatformInterface::Brush *fillBrush, const Qul::PlatformInterface::Brush *strokeBrush, int sourceOpacity, Qul::PlatformInterface::DrawingEngine::BlendMode blendMode = BlendMode_SourceOver) |
| virtual void | blendRect(Qul::PlatformInterface::DrawingDevice *drawingDevice, const Qul::PlatformInterface::Rect &rect, Qul::PlatformInterface::Rgba32 color, Qul::PlatformInterface::DrawingEngine::BlendMode blendMode = BlendMode_SourceOver) |
(since Qt Quick Ultralite (Platform) 1.6) virtual void | blendRoundedRect(Qul::PlatformInterface::DrawingDevice *drawingDevice, const Qul::PlatformInterface::Rect &rect, const Qul::PlatformInterface::Rect &clipRect, Qul::PlatformInterface::Rgba32 color, int radius, Qul::PlatformInterface::DrawingEngine::BlendMode blendMode = BlendMode_SourceOver) |
| virtual void | blendTransformedAlphaMap(Qul::PlatformInterface::DrawingDevice *drawingDevice, const Qul::PlatformInterface::Transform &transform, const Qul::PlatformInterface::RectF &destinationRect, const Qul::PlatformInterface::Texture &source, const Qul::PlatformInterface::RectF &sourceRect, const Qul::PlatformInterface::Rect &clipRect, Qul::PlatformInterface::Rgba32 color, Qul::PlatformInterface::DrawingEngine::BlendMode blendMode = BlendMode_SourceOver) |
| virtual void | blendTransformedImage(Qul::PlatformInterface::DrawingDevice *drawingDevice, const Qul::PlatformInterface::Transform &transform, const Qul::PlatformInterface::RectF &destinationRect, const Qul::PlatformInterface::Texture &source, const Qul::PlatformInterface::RectF &sourceRect, const Qul::PlatformInterface::Rect &clipRect, int sourceOpacity, Qul::PlatformInterface::DrawingEngine::BlendMode blendMode = BlendMode_SourceOver) |
(since Qt Quick Ultralite (Platform) 1.8) virtual void | setStrokeProperties(Qul::PlatformInterface::DrawingEngine::Path *path, const Qul::PlatformInterface::StrokeProperties &strokeProperties) |
(since Qt Quick Ultralite (Platform) 2.12) virtual Qul::PlatformInterface::RenderHints | supportedRenderHints() const |
| virtual void | synchronizeForCpuAccess(Qul::PlatformInterface::DrawingDevice *drawingDevice, const Qul::PlatformInterface::Rect &rect) |
詳細説明
このクラスのインスタンスは、描画デバイス上でグラフィック要素をブレンドするために使用することができます。各プラットフォームの実装によっては、与えられたグラフィック要素のブレンド操作をサポートするハードウェアコンポーネントが利用可能な場合に、操作を加速することができます。
各プラットフォームは、これらのブレンド機能を実装することができます。プラットフォームに特別なサポートがない場合は、CPUを使用してタスクを実行するデフォルトのブレンド関数が呼び出されます。
サポートされているターゲットボードと開発ホストも参照してください 。
メンバー型ドキュメント
[since Qt Quick Ultralite (Platform) 1.5] enum DrawingEngine::BlendMode
この列挙型はブレンドモードを指定する。
| 定数 | 値 |
|---|---|
Qul::PlatformInterface::DrawingEngine::BlendMode_SourceOver | 0 |
ソースはデスティネーションの上に配置されます。
| 定数 | 値 |
|---|---|
Qul::PlatformInterface::DrawingEngine::BlendMode_Source | 1 |
ソースは、ブレンド操作なしでデスティネーション上に配置されます。
この列挙型はQt Quick Ultralite (Platform) 1.5 で導入されました。
メンバ関数ドキュメント
[virtual, since Qt Quick Ultralite (Platform) 1.8] Qul::PlatformInterface::DrawingEngine::Path *DrawingEngine::allocatePath(const Qul::PlatformInterface::PathData *pathData, Qul::PlatformInterface::PathFillRule fillRule)
与えられたパスデータのパスハンドルを確保する。
パスハンドルは、与えられたpathData のプラットフォーム固有の表現であり、与えられたfillRule によって満たされる。
プラットフォームは、Path ハンドルのサブクラスを使用して、パスに関連するプラットフォーム固有のデータ(たとえば、ハードウェアブレンディングに適した最適化された表現など)をキャッシュすることができます。そうすることで、最適化された表現は、パスが満たされたり、ストロークされたりするたびに再計算される必要がなくなります。
PathData Path つまり、allocatePathが呼ばれた時点からPath ハンドルが削除される時点までである。
注: フィルブラシが設定されていない場合、最適化された表現が必要ないため、実装は、理想的には、フィルされたパスの最適化された表現を生成する前に、blendPath が呼び出されるまで待つべきである。
デフォルトの実装はNULL を返します。
この関数はQt Quick Ultralite (Platform) 1.8 で導入されました。
[virtual] void DrawingEngine::blendAlphaMap(Qul::PlatformInterface::DrawingDevice *drawingDevice, const Qul::PlatformInterface::Point &pos, const Qul::PlatformInterface::Texture &source, const Qul::PlatformInterface::Rect &sourceRect, Qul::PlatformInterface::Rgba32 color, Qul::PlatformInterface::DrawingEngine::BlendMode blendMode = BlendMode_SourceOver)
アルファ マップを描画デバイスにブレンドします。
指定されたsource のsourceRect にcolor を掛け合わせ、blendMode を使ってpos のdrawingDevice にブレンドします。デフォルトのブレンドモードはBlendMode_SourceOver
デフォルトの実装では、まずsynchronizeForCpuAccess を呼び出し、次に fallbackDrawingEngine を使って blendAlphaMap を呼び出します。
[virtual] void DrawingEngine::blendImage(Qul::PlatformInterface::DrawingDevice *drawingDevice, const Qul::PlatformInterface::Point &pos, const Qul::PlatformInterface::Texture &source, const Qul::PlatformInterface::Rect &sourceRect, int sourceOpacity, Qul::PlatformInterface::DrawingEngine::BlendMode blendMode = BlendMode_SourceOver)
描画デバイスに画像をブレンドする。
指定されたsource のsourceRect は、blendMode を使ってpos のdrawingDevice にブレンドされます。デフォルトのブレンドモードはBlendMode_SourceOver sourceOpacity で、ソースの全体的な不透明度を 0 から 256 の範囲で指定します。
デフォルトの実装では、まずsynchronizeForCpuAccess を呼び出し、次に fallbackDrawingEngine を使って blendImage を呼び出します。
[virtual, since Qt Quick Ultralite (Platform) 1.8] void DrawingEngine::blendPath(Qul::PlatformInterface::DrawingDevice *drawingDevice, Qul::PlatformInterface::DrawingEngine::Path *path, const Qul::PlatformInterface::Transform &transform, const Qul::PlatformInterface::Rect &clipRect, const Qul::PlatformInterface::Brush *fillBrush, const Qul::PlatformInterface::Brush *strokeBrush, int sourceOpacity, Qul::PlatformInterface::DrawingEngine::BlendMode blendMode = BlendMode_SourceOver)
パスハンドルで表されたパスを描画デバイスにブレンドする。
指定 さ れたpath ハン ド ルは、 与えられたtransform とblendMode を用いてdrawingDevice へブ レ ン ド さ れます。
fillBrush がNULL に設定 さ れていない と き は、 パ ス が割 り 当て ら れた際に設定 さ れたPathFillRule に従っ て、 与え ら れたfillBrush に よ っ て パ ス が塗 ら れ る 必要があ り ます。
strokeBrush がNULL に設定 さ れていない と き は、 パ ス は、setStrokeProperties で設定 さ れたStrokeProperties に従っ て、 与えられたstrokeBrush に よ っ て描線 されるべき です。
その結果は、描画デバイス座標であるclipRect でクリッピングされるべきです。
sourceOpacity はソースの全体的な不透明度を 0 から 256 までの範囲で指定し、 256 は完全に不透明です。
デフォルトの実装では何もしません。
この関数はQt Quick Ultralite (Platform) 1.8 で導入されました。
[virtual] void DrawingEngine::blendRect(Qul::PlatformInterface::DrawingDevice *drawingDevice, const Qul::PlatformInterface::Rect &rect, Qul::PlatformInterface::Rgba32 color, Qul::PlatformInterface::DrawingEngine::BlendMode blendMode = BlendMode_SourceOver)
ソリッドカラーを描画デバイスにブレンドする。
color は、blendMode を使用してdrawingDevice 上のrect を塗りつぶすために使用されます。デフォルトのブレンドモードはBlendMode_SourceOver
デフォルトの実装では、まずsynchronizeForCpuAccess を呼び出し、次に fallbackDrawingEngine を使用して blendRect を呼び出します。
注意: この機能は、すべてのリファレンス・ボードのハードウェアでサポートされているとは限りません。詳細については、サポートされる機能の表を参照してください。
[virtual, since Qt Quick Ultralite (Platform) 1.6] void DrawingEngine::blendRoundedRect(Qul::PlatformInterface::DrawingDevice *drawingDevice, const Qul::PlatformInterface::Rect &rect, const Qul::PlatformInterface::Rect &clipRect, Qul::PlatformInterface::Rgba32 color, int radius, Qul::PlatformInterface::DrawingEngine::BlendMode blendMode = BlendMode_SourceOver)
角を丸めた矩形を描画デバイスにブレンドします。
color は、blendMode を使ってdrawingDevice 上のrect を塗りつぶすために使われます。デフォルトのブレンドモードはBlendMode_SourceOver です。ブレンドは、提供されたclipRect に対してクリップする必要があります。 radius 角丸矩形の描画に使用する角の半径を定義します。現在のところ、コーナーごとに異なる半径を指定する方法はありません。
デフォルトの実装では、まずsynchronizeForCpuAccess を呼び出し、次にフォールバック描画エンジンで blendRoundedRect を呼び出します。
注意: この機能は、すべてのリファレンス・ボードのハードウェアでサポートされているとは限りません。詳細については、サポートされる機能の表を参照してください。
この関数はQt Quick Ultralite (Platform) 1.6 で導入されました。
DrawingDevice::fallbackDrawingEngine()も参照してください 。
[virtual] void DrawingEngine::blendTransformedAlphaMap(Qul::PlatformInterface::DrawingDevice *drawingDevice, const Qul::PlatformInterface::Transform &transform, const Qul::PlatformInterface::RectF &destinationRect, const Qul::PlatformInterface::Texture &source, const Qul::PlatformInterface::RectF &sourceRect, const Qul::PlatformInterface::Rect &clipRect, Qul::PlatformInterface::Rgba32 color, Qul::PlatformInterface::DrawingEngine::BlendMode blendMode = BlendMode_SourceOver)
変換されたアルファマップを描画デバイスにブレンドする。
source の指定されたsourceRect にcolor を乗算し、blendMode を使ってdestinationRect のdrawingDevice にブレンドする。 ブレンド操作の前にtransform をsource に適用する。結果は、描画デバイス座標であるclipRect でクリップされる必要があります。
デフォルトのブレンドモードはBlendMode_SourceOver
デフォルトの実装では、まずsynchronizeForCpuAccess を呼び出し、次に fallbackDrawingEngine を使用して blendTransformedAlphaMap を呼び出します。
[virtual] void DrawingEngine::blendTransformedImage(Qul::PlatformInterface::DrawingDevice *drawingDevice, const Qul::PlatformInterface::Transform &transform, const Qul::PlatformInterface::RectF &destinationRect, const Qul::PlatformInterface::Texture &source, const Qul::PlatformInterface::RectF &sourceRect, const Qul::PlatformInterface::Rect &clipRect, int sourceOpacity, Qul::PlatformInterface::DrawingEngine::BlendMode blendMode = BlendMode_SourceOver)
変換された画像を描画デバイスにブレンドする。
指定されたsource のsourceRect は、blendMode を使ってdestinationRect のdrawingDevice にブレンドされる。transform は、ブレンド操作の前にsource に適用される。結果は、 描画デバ イ ス 座標であ るclipRect で ク リ ッ プ さ れ る 必要があ り ます。sourceOpacity は、 元画像の全体的な不透明度を 0 か ら 256 ま での範囲で指定 し ます。
デフォルトのブレンドモードはBlendMode_SourceOver
デフォルトの実装では、まずsynchronizeForCpuAccess を呼び出し、次に fallbackDrawingEngine を使って blendTransformedImage を呼び出します。
[virtual, since Qt Quick Ultralite (Platform) 1.8] void DrawingEngine::setStrokeProperties(Qul::PlatformInterface::DrawingEngine::Path *path, const Qul::PlatformInterface::StrokeProperties &strokeProperties)
与えられたpath ハンドルのストロークプロパティを設定する。
strokeProperties には、blendPath が呼び出されたときにstrokeBrush パラメータが設定されていると仮定して、blendPath が呼び出されてpath ハンドルが後でブレンドされるときに使用される情報が含まれる。
これにより、プラットフォーム実装は、blendPath が呼び出されるたびに再計算する代わりに、ハードウェアブレンドに適した最適化された表現をキャッシュすることができる。
注意: ストロークブラシが設定されていない場合は最適化された表現が必要ないため、最適化された表現を生成する前に、blendPath が呼び出されるまで待つのが理想的な実装です。
デフォルトの実装は何もしません。
この関数はQt Quick Ultralite (Platform) 1.8 で導入されました。
[virtual, since Qt Quick Ultralite (Platform) 2.12] Qul::PlatformInterface::RenderHints DrawingEngine::supportedRenderHints() const
このDrawingEngine でサポートされているレンダリングヒントを指定するフラグを返します。
サポートされているレンダリングヒントは、各レンダー関数が呼び出される前に問い合わせられます。ヒントがサポートされていない場合、フォールバックレンダリングが適用されます。
この関数はQt Quick Ultralite (Platform) 2.12 で導入されました。
[virtual] void DrawingEngine::synchronizeForCpuAccess(Qul::PlatformInterface::DrawingDevice *drawingDevice, const Qul::PlatformInterface::Rect &rect)
グラフィックスハードウェアをCPUからアクセスされるように同期させる。
drawingDevice ハードウェアが CPU からアクセスされるように同期される。これは、グラフィックスハードウェアが与えられたrect ですべてのアクティブな操作を終了するまで、CPU をブロックします。
デフォルトの実装は何もしません。
特定の Qt ライセンスの下で利用可能です。
詳細を確認してください。