QQuickTextureFactory Class

QQuickTextureFactory クラスは、QML からカスタムテクスチャを読み込むためのインターフェイスを提供します。詳細...

Header: #include <QQuickTextureFactory>
CMake: find_package(Qt6 REQUIRED COMPONENTS Quick)
target_link_libraries(mytarget PRIVATE Qt6::Quick)
qmake: QT += quick
Inherits: QObject

パブリック関数

QQuickTextureFactory()
virtual ~QQuickTextureFactory() override
virtual QSGTexture *createTexture(QQuickWindow *window) const = 0
virtual QImage image() const
virtual int textureByteCount() const = 0
virtual QSize textureSize() const = 0

静的パブリックメンバー

QQuickTextureFactory *textureFactoryForImage(const QImage &image)

詳細説明

テクスチャファクトリの目的は、OpenGLテクスチャに変換できる画像データのプレースホルダを提供することです。

テクスチャを直接作成することは、画像データのロードを担当するスレッドで利用可能なOpenGLコンテキストがほとんどないため、不可能です。

メンバー関数ドキュメント

QQuickTextureFactory::QQuickTextureFactory()

テクスチャ ファクトリーを構築します。QQuickTextureFactory は抽象なので、直接インスタンス化することはできません。

[override virtual noexcept] QQuickTextureFactory::~QQuickTextureFactory()

テクスチャ ファクトリを破棄します。

[pure virtual] QSGTexture *QQuickTextureFactory::createTexture(QQuickWindow *window) const

この関数はシーングラフのレンダリングスレッドで呼び出され、ファクトリーからQSGTexture インスタンスを作成します。window は、このテクスチャが作成されるコンテキストを提供します。

QMLは必要に応じて、返されたテクスチャを内部的にキャッシュします。この関数を呼び出すたびに、一意のインスタンスが返されます。

レンダリングに使用される OpenGL コンテキストは、この関数が呼び出されたときにバインドされます。

[virtual] QImage QQuickTextureFactory::image() const

このテクスチャの画像バージョンを返します。

返されるイメージの寿命は不明であるため、実装はQImage(uchar *, ...) コンストラクタを使用せず、自己のQImage を返すべきである。

この関数はあまり使用されず、動作が遅くなることが予想されます。

[pure virtual] int QQuickTextureFactory::textureByteCount() const

テクスチャが消費するメモリのバイト数を返します。

[static] QQuickTextureFactory *QQuickTextureFactory::textureFactoryForImage(const QImage &image)

与えられたimage を保持するQQuickTextureFactory を返します。

これは通常、QQuickImageResponse::textureFactory のヘルパーとして使用されます。

[pure virtual] QSize QQuickTextureFactory::textureSize() const

テクスチャのサイズを返します。この関数は任意のスレッドから呼び出され、OpenGLコンテキストバウンドに依存してはいけません。

この関数は任意のスレッドから呼び出されます。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。