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 を使用することが想定されています。
注:このクラスは 、QCanvasPainterWidget やQCanvasPainterItem などの利便性の高いクラスを使用せずに QCanvasPainter を扱う場合にのみ関係します。これらのクラスは、アプリケーションにQCanvasPainter インスタンスを提供するためです。
以下は、正常に初期化済みの既存のQRhi と一緒に使用するためのQCanvasPainter を取得するコードスニペットの例です:
std::unique_ptr<QCanvasPainterFactory> factory(new QCanvasPainterFactory);
QCanvasPainter *painter = factory->create(rhi);
QCanvasRhiPaintDriver *paintDriver = factory->paintDriver();同じスレッド上で同じ `QRhi ` を操作するすべての描画コードについては、各コンポーネントに専用の `QCanvasPainter`(およびそれに伴うファクトリ)を用意するのではなく、同じ `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()` が `true` を返すためです。
この関数はスレッドセーフです。ただし、QRhi のスレッドに関するルールは通常通り適用されます。つまり、QRhi オブジェクト、ひいては、そのQRhi に関連付けられたQCanvasPainterFactory 、QCanvasRhiPaintDriver 、およびQCanvasPainter のインスタンスは、すべて単一のスレッド上で使用されることが想定されています。
注: 返される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.