QCanvasPainterFactory Class
QCanvasPainterFactory は、QCanvasPainter と関連するレンダリング エンジンのインスタンスを管理します。詳細...
| ヘッダー | #include <QCanvasPainterFactory> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS CanvasPainter)target_link_libraries(mytarget PRIVATE Qt6::CanvasPainter) |
| 以来: | Qt 6.11 |
| ステータス | テクニカルプレビュー |
パブリック関数
| QCanvasPainterFactory() | |
| QCanvasPainter * | create(QRhi *rhi) |
| void | destroy() |
| bool | isValid() const |
| QCanvasRhiPaintDriver * | paintDriver() |
| QCanvasPainter * | painter() |
静的パブリックメンバ
| QCanvasPainterFactory * | sharedInstance(QRhi *rhi) |
詳細説明
QCanvasPainter 経由でレンダリングするアプリケーションは、ペインタクラスのインスタンスを自分で作成するのではなく、QCanvasPainterFactory を使用することが期待されています。
QCanvasPainter 注意: このクラスは、QCanvasPainterWidget やQCanvasPainterItem のような便利なクラスなしで QCanvasPainter を使用する場合にのみ関連します。
以下は、既存の正常に初期化されたQRhi で使用するためのQCanvasPainter を取得するコード例です:
std::unique_ptr<QCanvasPainterFactory> factory(new QCanvasPainterFactory); QCanvasPainter *painter = factory->create(rhi); QCanvasRhiPaintDriver *paintDriver = factory->paintDriver();
同じスレッドで同じQRhi を操作するすべての描画コードは、各コンポーネントで専用のペインター(およびそのファクトリ)を持つのではなく、同じQCanvasPainter を共有して再利用することが推奨されます。これは、新しいQCanvasPainterFactoryを構築する代わりに、sharedInstance ()を呼び出すことで実現できます:
QCanvasPainterFactory *factory = QCanvasPainterFactory::sharedInstance(rhi); QCanvasPainter *painter = factory->painter(); QCanvasRhiPaintDriver *paintDriver = factory->paintDriver();
メンバ関数ドキュメント
QCanvasPainterFactory::QCanvasPainterFactory()
コンストラクタ。
sharedInstance()も参照 。
QCanvasPainter *QCanvasPainterFactory::create(QRhi *rhi)
QCanvasPainter レンダリング インフラストラクチャを初期化します。
ペインターを返すか、レンダラーが初期化できなかった場合は null を返します。
このファクトリーはrhi と関連付けられ、destroy() と create() が再度呼び出されない限り、他のQRhi で使用することはできません。
この関数を繰り返し呼 んでも効果はなく、無害です。rhiペインター基盤の再初期化が必要な場合は、最初にdestroy ()を呼び出す。
注意: ファクトリーインスタンスを取得するためにsharedInstance() を使用した場合、この関数を呼び出す必要はありません。
destroy()、isValid()、painter()も参照してください 。
void QCanvasPainterFactory::destroy()
レンダリング・インフラを破壊する。通常、この関数を呼び出す必要はない。むしろ、この関数の後にcreate() が続くような状況で使用される。
create()も参照 。
bool QCanvasPainterFactory::isValid() const
create() が正常に呼び出された場合に true を返します。
QCanvasRhiPaintDriver *QCanvasPainterFactory::paintDriver()
ペイントドライバオブジェクトを返します。isValid() が false の場合は null を返します。
注意: 返されたオブジェクトは呼び出し元が所有するものではありません。
QCanvasPainter *QCanvasPainterFactory::painter()
ペインターを返します。isValid() が false の場合は null を返します。
注意: 返されるオブジェクトは呼び出し元が所有するものではありません。
[static] QCanvasPainterFactory *QCanvasPainterFactory::sharedInstance(QRhi *rhi)
与えられたrhi に関連付けられたQCanvasPainterFactory インスタンスを返す。
同じrhi でこの関数を呼び出すと、常に同じQCanvasPainterFactory が返されます。
返されたファクトリーでcreate() を呼び出す必要はなく、painter() をすぐにクエリできます。なぜなら、結果は常に初期化済みであり、isValid() は真を返すからです。
この関数はスレッドセーフです。ただし、QRhi のスレッドルールは通常どおり適用されます。QRhi オブジェクトと、それに関連するQCanvasPainterFactory 、QCanvasRhiPaintDriver 、QCanvasPainter のインスタンスQRhi は、すべて同じ 1 つのスレッドで使用されます。
注意: 返されたQCanvasPainterFactory は呼び出し元の所有物ではなく、rhi が破棄されると無効になる。
painter()も参照のこと 。
© 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.