QQuickTextureFactory 类

QQuickTextureFactory 类提供了一个从 QML 加载自定义纹理的接口。更多...

头文件 #include <QQuickTextureFactory>
CMakefind_package(Qt6 REQUIRED COMPONENTS Quick)
target_link_libraries(mytarget PRIVATE Qt6::Quick)
qmakeQT += quick
继承 QObject

公共函数

QQuickTextureFactory()
虚函数~QQuickTextureFactory() override
虚 QSGTexture *createTexture(QQuickWindow *window) const = 0
虚 QImageimage() const
虚 inttextureByteCount() const = 0
虚 QSizetextureSize() const = 0

静态公共成员

QQuickTextureFactory *textureFactoryForImage(const QImage &image)

详细描述

纹理工厂的目的是提供一个可以转换为 OpenGL 纹理的图像数据的占位符。

由于负责加载图像数据的线程很少有一个可用的 OpenGL 上下文,因此无法直接创建纹理。

成员函数文档

QQuickTextureFactory::QQuickTextureFactory()

构造纹理工厂。由于 QQuickTextureFactory 是抽象的,因此不能直接实例化。

[重载虚函数 noexcept] QQuickTextureFactory::~QQuickTextureFactory()

销毁纹理工厂。

[纯虚函数] QSGTexture *QQuickTextureFactory::createTexture(QQuickWindow *window) const

此函数在场景图渲染线程上调用,用于从工厂创建 QSGTexture 实例。window 提供了在此处创建此纹理的上下文。

QML 将根据需要内部缓存返回的纹理。此函数的每次调用都应返回一个唯一的实例。

当调用此函数时,用于渲染的 OpenGL 上下文将被绑定。

[虚拟] QImage QQuickTextureFactory::image() const

返回此纹理的图像版本。

返回的图像的寿命未知,因此实现应该返回一个自包含的 QImage,而不是使用QImage(uchar *, ...) 构造函数。

此函数不常用且预期会较慢。

[纯虚] int QQuickTextureFactory::textureByteCount() const

返回纹理消耗的字节数。

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

返回一个包含指定 imageQQuickTextureFactory

这通常用于QQuickImageResponse::textureFactory中的辅助。

[纯虚] QSize QQuickTextureFactory::textureSize() const

返回纹理的大小。此函数将从任意线程中调用,不应依赖于已绑定的OpenGL上下文。

© 2024 Qt公司有限。此处包含的文档贡献属于其各自所有者的版权。此处提供的文档是根据由自由软件基金会发布的GNU自由文档许可1.3版的条款许可的。Qt及其相应标志是芬兰的Qt公司及其在世界上其他国家的商标。所有其他商标均为其各自所有者的财产。