QQuickRenderTarget 类
The QQuickRenderTarget class provides an opaque container for native graphics resources specifying a render target, and associated metadata. 更多...
头文件 | #include <QQuickRenderTarget> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Quick) target_link_libraries(mytarget PRIVATE Qt6::Quick) |
qmake | QT += quick |
Since | Qt 6.0 |
公共函数
QQuickRenderTarget() | |
~QQuickRenderTarget() | |
(since 6.3) qreal | devicePixelRatio() const |
bool | isNull() const |
(since 6.4) bool | mirrorVertically() const |
(since 6.3) void | setDevicePixelRatio(qreal ratio) |
(since 6.4) void | setMirrorVertically(bool enable) |
静态公共成员
(since 6.4) QQuickRenderTarget | fromD3D11Texture(void *texture, uint format, const QSize &pixelSize, int sampleCount = 1) |
QQuickRenderTarget | fromD3D11Texture(void *texture, const QSize &pixelSize, int sampleCount = 1) |
(since 6.6) QQuickRenderTarget | fromD3D12Texture(void *texture, int resourceState, uint format, const QSize &pixelSize, int sampleCount = 1) |
(since 6.4) QQuickRenderTarget | fromMetalTexture(MTLTexture *texture, uint format, const QSize &pixelSize, int sampleCount = 1) |
QQuickRenderTarget | fromMetalTexture(MTLTexture *texture, const QSize &pixelSize, int sampleCount = 1) |
(since 6.2) QQuickRenderTarget | fromOpenGLRenderBuffer(uint renderbufferId, const QSize &pixelSize, int sampleCount = 1) |
(since 6.4) QQuickRenderTarget | fromOpenGLTexture(uint textureId, uint format, const QSize &pixelSize, int sampleCount = 1) |
QQuickRenderTarget | fromOpenGLTexture(uint textureId, const QSize &pixelSize, int sampleCount = 1) |
(since 6.4) QQuickRenderTarget | fromPaintDevice(QPaintDevice *device) |
(since 6.6) QQuickRenderTarget | fromRhiRenderTarget(QRhiRenderTarget *renderTarget) |
(since 6.4) QQuickRenderTarget | fromVulkanImage(VkImage image, VkImageLayout layout, VkFormat format, const QSize &pixelSize, int sampleCount = 1) |
QQuickRenderTarget | fromVulkanImage(VkImage image, VkImageLayout layout, const QSize &pixelSize, int sampleCount = 1) |
相关非成员
bool | operator!=(const QQuickRenderTarget &a, const QQuickRenderTarget &b) |
bool | operator==(const QQuickRenderTarget &a, const QQuickRenderTarget &b) |
另请参阅 QQuickWindow::setRenderTarget() 和 QQuickGraphicsDevice.
成员函数文档
QQuickRenderTarget::QQuickRenderTarget()
构建一个默认的 QQuickRenderTarget 对象,该对象不引用任何原生对象。
[noexcept]
QQuickRenderTarget::~QQuickRenderTarget()
析构函数。
[since 6.3]
qreal QQuickRenderTarget::devicePixelRatio() const
返回渲染目标的设备像素比率。这是设备像素和设备独立像素之间的比率。
默认的设备像素比率为 1.0。
此函数自 Qt 6.3 起引入。
另请参阅 setDevicePixelRatio().
[static, since 6.4]
QQuickRenderTarget QQuickRenderTarget::fromD3D11Texture(void *texture, uint format, const QSize &pixelSize, int sampleCount = 1)
返回一个新的指向由 texture 指定的 D3D11 纹理对象的 QQuickRenderTarget。
format 指定纹理的 DXGI_FORMAT。应仅使用 Qt 渲染基础设施支持的纹理格式。
pixelSize 指定图像的大小,以像素为单位。目前只支持 2D 纹理。
sampleCount 指定样本数量。0 或 1 表示无多重采样,而类似于 4 或 8 的值表示原生对象是多样本纹理。
此纹理用作 Qt Quick 场景图使用的渲染目标的第一个颜色附件。如果适用,将创建并自动使用深度-模板缓冲区。
注意:结果 QQuickRenderTarget 不拥有任何原生资源,它只包含大小和样本数量的相关元数据和引用。确保原生资源至少在必要的时刻存在是调用者的责任。
此函数自 Qt 6.4 起引入。
另请参阅 QQuickWindow::setRenderTarget() 和 QQuickRenderControl.
[static]
QQuickRenderTarget QQuickRenderTarget::fromD3D11Texture(void *texture, const QSize &pixelSize, int sampleCount = 1)
这是一个重载函数。
返回一个新的指向由 texture 指定的 D3D11 纹理对象的 QQuickRenderTarget。假设纹理的格式为 DXGI_FORMAT_R8G8B8A8_UNORM。
pixelSize 指定图像的大小,以像素为单位。目前只支持 2D 纹理。
sampleCount 指定样本数量。0 或 1 表示无多重采样,而类似于 4 或 8 的值表示原生对象是多样本纹理。
此纹理用作 Qt Quick 场景图使用的渲染目标的第一个颜色附件。如果适用,将创建并自动使用深度-模板缓冲区。
注意:结果 QQuickRenderTarget 不拥有任何原生资源,它只包含大小和样本数量的相关元数据和引用。确保原生资源至少在必要的时刻存在是调用者的责任。
另请参阅 QQuickWindow::setRenderTarget() 和 QQuickRenderControl.
[静态, 自 6.6 开始]
QQuickRenderTarget QQuickRenderTarget::fromD3D12Texture(void *texture, int resourceState, uint format, const QSize &pixelSize, int sampleCount = 1)
返回一个新的 QQuickRenderTarget 对象,该对象引用由 texture 指定的 D3D12 纹理对象。
resourceState 必须是一个有效的位掩码,包含来自 D3D12_RESOURCE_STATES 的位,指定资源的当前状态。
format 指定纹理的 DXGI_FORMAT。应仅使用 Qt 渲染基础设施支持的纹理格式。
pixelSize 指定图像的大小,以像素为单位。目前只支持 2D 纹理。
sampleCount 指定样本数量。0 或 1 表示无多重采样,而类似于 4 或 8 的值表示原生对象是多样本纹理。
此纹理用作 Qt Quick 场景图使用的渲染目标的第一个颜色附件。如果适用,将创建并自动使用深度-模板缓冲区。
注意:结果 QQuickRenderTarget 不拥有任何原生资源,它只包含大小和样本数量的相关元数据和引用。确保原生资源至少在必要的时刻存在是调用者的责任。
该函数自 Qt 6.6 起被引入。
另请参阅 QQuickWindow::setRenderTarget() 和 QQuickRenderControl.
[静态, 自 6.4 开始]
QQuickRenderTarget QQuickRenderTarget::fromMetalTexture(MTLTexture *texture, uint format, const QSize &pixelSize, int sampleCount = 1)
返回一个新的 QQuickRenderTarget 对象,该对象引用由 texture 指定的 Metal 纹理对象。
format 指定纹理的 MTLPixelFormat。应仅使用受 Qt 渲染基础设施支持的纹理格式。
pixelSize 指定图像的大小,以像素为单位。目前只支持 2D 纹理。
sampleCount 指定样本数量。0 或 1 表示无多重采样,而类似于 4 或 8 的值表示原生对象是多样本纹理。
此纹理用作 Qt Quick 场景图使用的渲染目标的第一个颜色附件。如果适用,将创建并自动使用深度-模板缓冲区。
注意:结果 QQuickRenderTarget 不拥有任何原生资源,它只包含大小和样本数量的相关元数据和引用。确保原生资源至少在必要的时刻存在是调用者的责任。
此函数自 Qt 6.4 起引入。
另请参阅 QQuickWindow::setRenderTarget() 和 QQuickRenderControl.
[静态]
QQuickRenderTarget QQuickRenderTarget::fromMetalTexture(MTLTexture *texture, const QSize &pixelSize, int sampleCount = 1)
这是一个重载函数。
返回一个新的 QQuickRenderTarget 对象,该对象引用由 texture 指定的 Metal 纹理对象。纹理的格式假定为 MTLPixelFormatRGBA8Unorm。
pixelSize 指定图像的大小,以像素为单位。目前只支持 2D 纹理。
sampleCount 指定样本数量。0 或 1 表示无多重采样,而类似于 4 或 8 的值表示原生对象是多样本纹理。
此纹理用作 Qt Quick 场景图使用的渲染目标的第一个颜色附件。如果适用,将创建并自动使用深度-模板缓冲区。
注意:结果 QQuickRenderTarget 不拥有任何原生资源,它只包含大小和样本数量的相关元数据和引用。确保原生资源至少在必要的时刻存在是调用者的责任。
另请参阅 QQuickWindow::setRenderTarget() 和 QQuickRenderControl.
[静态, 自 6.2 开始]
QQuickRenderTarget QQuickRenderTarget::fromOpenGLRenderBuffer(uint renderbufferId, const QSize &pixelSize, int sampleCount = 1)
返回一个新的 QQuickRenderTarget 对象,该对象引用由 renderbufferId 指定的 OpenGL renderbuffer 对象。
渲染缓冲区将被用作内部帧缓冲对象的颜色附件。此函数提供以允许针对由应用程序创建的一些外部缓冲区(例如 EGLImageKHR)所创建的渲染缓冲区。一旦应用程序已调用 glEGLImageTargetRenderbufferStorageOES,即可将该渲染缓冲区传递到此函数。
pixelSize 指定图像的大小,以像素为单位。
sampleCount 指定样本数。0 或 1 表示无多采样,而类似于 4 或 8 的值表示原生对象是一个多采样渲染缓冲区。
注意:结果 QQuickRenderTarget 不拥有任何原生资源,它只包含大小和样本数量的相关元数据和引用。确保原生资源至少在必要的时刻存在是调用者的责任。
该函数自 Qt 6.2 起被引入。
另请参阅 QQuickWindow::setRenderTarget() 和 QQuickRenderControl.
[静态, 自 6.4 开始]
QQuickRenderTarget QQuickRenderTarget::fromOpenGLTexture(uint textureId, uint format, const QSize &pixelSize, int sampleCount = 1)
返回一个新的 QQuickRenderTarget 对象,该对象引用由 textureId 指定的 OpenGL 纹理对象。
格式指定了纹理的本地内部格式。应仅使用由 Qt 渲染基础设施支持的纹理格式。
pixelSize 指定图像的大小,以像素为单位。目前只支持 2D 纹理。
sampleCount 指定样本数量。0 或 1 表示无多重采样,而类似于 4 或 8 的值表示原生对象是多样本纹理。
此纹理用作 Qt Quick 场景图使用的渲染目标的第一个颜色附件。如果适用,将创建并自动使用深度-模板缓冲区。
OpenGL 对象名称 textureId 必须是 Qt Quick 场景图使用的渲染上下文中的一个有效名称。
注意:结果 QQuickRenderTarget 不拥有任何原生资源,它只包含大小和样本数量的相关元数据和引用。确保原生资源至少在必要的时刻存在是调用者的责任。
此函数自 Qt 6.4 起引入。
另请参阅 QQuickWindow::setRenderTarget() 和 QQuickRenderControl.
[静态]
QQuickRenderTarget QQuickRenderTarget::fromOpenGLTexture(uint textureId, const QSize &pixelSize, int sampleCount = 1)
这是一个重载函数。
返回一个引用由 textureId 指定的 OpenGL 纹理对象的新的 QQuickRenderTarget。纹理假定格式为 GL_RGBA (GL_RGBA8)。
pixelSize 指定图像的大小,以像素为单位。目前只支持 2D 纹理。
sampleCount 指定样本数量。0 或 1 表示无多重采样,而类似于 4 或 8 的值表示原生对象是多样本纹理。
此纹理用作 Qt Quick 场景图使用的渲染目标的第一个颜色附件。如果适用,将创建并自动使用深度-模板缓冲区。
OpenGL 对象名称 textureId 必须是 Qt Quick 场景图使用的渲染上下文中的一个有效名称。
注意:结果 QQuickRenderTarget 不拥有任何原生资源,它只包含大小和样本数量的相关元数据和引用。确保原生资源至少在必要的时刻存在是调用者的责任。
另请参阅 QQuickWindow::setRenderTarget() 和 QQuickRenderControl.
[静态,自 6.4 版起]
QQuickRenderTarget QQuickRenderTarget::fromPaintDevice(QPaintDevice *device)
返回一个新的 QQuickRenderTarget,该对象引用由 device 指定的绘制设备对象。
此将渲染重定向到 QPaintDevice 的选项仅在运行带有 Qt Quick 的 软件
后端时可用。
注意: QQuickRenderTarget 不拥有 device,确保对象存在并非调用者的责任。
此函数自 Qt 6.4 起引入。
另请参阅 QQuickWindow::setRenderTarget() 和 QQuickRenderControl.
[静态,自 6.6 版起]
QQuickRenderTarget QQuickRenderTarget::fromRhiRenderTarget(QRhiRenderTarget *renderTarget)
返回一个新的 QQuickRenderTarget,该对象引用现有的 renderTarget。
renderTarget 在大多数情况下将是一个 QRhiTextureRenderTarget,允许将 Qt Quick 场景的渲染定向到 QRhiTexture。
注意:结果 QQuickRenderTarget 不拥有 renderTarget 及其底层原生资源,它仅包含引用及其大小和样本计数的相关元数据。确保引用的资源存在的责任由调用者承担。
该函数自 Qt 6.6 起被引入。
另请参阅 QQuickWindow::setRenderTarget() 和 QQuickRenderControl.
[静态,自 6.4 版起]
QQuickRenderTarget QQuickRenderTarget::fromVulkanImage(VkImage image, VkImageLayout layout, VkFormat format, const QSize &pixelSize, int sampleCount = 1)
返回一个新的 QQuickRenderTarget,该对象引用由 image 指定的 Vulkan 图像对象。必须同时提供图像的当前 layout。
format 指定了图像的 VkFormat。应仅使用由 Qt 的渲染基础设施支持的图像格式。
pixelSize 指定图像的大小,以像素为单位。目前只支持 2D 纹理。
sampleCount 指定样本数量。0 或 1 表示无多重采样,而类似于 4 或 8 的值表示原生对象是多样本纹理。
图像用作 Qt Quick 场景图使用的渲染目标的第一颜色附件。如果适用,将自动创建并使用深度-模板缓冲区。
注意:结果 QQuickRenderTarget 不拥有任何原生资源,它只包含大小和样本数量的相关元数据和引用。确保原生资源至少在必要的时刻存在是调用者的责任。
此函数自 Qt 6.4 起引入。
另请参阅 QQuickWindow::setRenderTarget() 和 QQuickRenderControl.
[静态]
QQuickRenderTarget QQuickRenderTarget::fromVulkanImage(VkImage image, VkImageLayout layout, const QSize &pixelSize, int sampleCount = 1)
这是一个重载函数。
返回一个新的引用指定的QQuickRenderTarget的Vulkan图像对象的新对象。假定图像的格式为VK_FORMAT_R8G8B8A8_UNORM。
pixelSize 指定图像的大小,以像素为单位。目前只支持 2D 纹理。
sampleCount 指定样本数量。0 或 1 表示无多重采样,而类似于 4 或 8 的值表示原生对象是多样本纹理。
此纹理用作 Qt Quick 场景图使用的渲染目标的第一个颜色附件。如果适用,将创建并自动使用深度-模板缓冲区。
注意:结果 QQuickRenderTarget 不拥有任何原生资源,它只包含大小和样本数量的相关元数据和引用。确保原生资源至少在必要的时刻存在是调用者的责任。
另请参阅 QQuickWindow::setRenderTarget() 和 QQuickRenderControl.
bool QQuickRenderTarget::isNull() const
如果此QQuickRenderTarget是默认构造的,引用没有本地对象,则返回true。
[自6.4起]
bool QQuickRenderTarget::mirrorVertically() const
返回渲染目标是垂直镜像的值。
默认值为false
。
此函数自 Qt 6.4 起引入。
另请参阅setMirrorVertically。
[自6.3起]
void QQuickRenderTarget::setDevicePixelRatio(qreal ratio)
将此渲染目标的设备像素比设置为ratio。这是设备像素与设备无关像素之间的比率。
请注意,如果在QQuickRenderControl::renderWindow()被重新实现为返回有效的QWindow时,指定的设备像素比例值将被忽略。
此函数自 Qt 6.3 起引入。
另请参阅devicePixelRatio。
[自6.4起]
void QQuickRenderTarget::setMirrorVertically(bool enable)
在绘制时设置渲染目标内容的大小是否应该垂直镜像到enable。这允许轻松集成不遵循标准预期的第三方渲染代码。
注意:当使用软件
后端时不应使用此函数。
此函数自 Qt 6.4 起引入。
另请参阅mirrorVertically。
相关非成员函数
[noexcept]
bool operator!=(const QQuickRenderTarget &a, const QQuickRenderTarget &b)
如果a和b引用不同的本地对象集或相关数据(大小、样本数)不匹配,则返回true。
[noexcept]
bool operator==(const QQuickRenderTarget &a, const QQuickRenderTarget &b)
如果a和b引用相同的本地对象集合和匹配的相关数据(大小、样本数),则返回true。
© 2024 Qt公司有限公司。本内的文档贡献是各自所有者的版权。本提供的文档是根据Free Software Foundation发布的GNU自由文档许可证版本1.3许可的。Qt及其标志是芬兰以及/或全球其他地区的Qt公司的商标。所有其他商标均为各自所有者的财产。