QQuickRenderTarget 类

The QQuickRenderTarget class provides an opaque container for native graphics resources specifying a render target, and associated metadata. 更多...

头文件 #include <QQuickRenderTarget>
CMakefind_package(Qt6 REQUIRED COMPONENTS Quick)
target_link_libraries(mytarget PRIVATE Qt6::Quick)
qmakeQT += quick
SinceQt 6.0

公共函数

QQuickRenderTarget()
~QQuickRenderTarget()
(since 6.3) qrealdevicePixelRatio() const
boolisNull() const
(since 6.4) boolmirrorVertically() const
(since 6.3) voidsetDevicePixelRatio(qreal ratio)
(since 6.4) voidsetMirrorVertically(bool enable)

静态公共成员

(since 6.4) QQuickRenderTargetfromD3D11Texture(void *texture, uint format, const QSize &pixelSize, int sampleCount = 1)
QQuickRenderTargetfromD3D11Texture(void *texture, const QSize &pixelSize, int sampleCount = 1)
(since 6.6) QQuickRenderTargetfromD3D12Texture(void *texture, int resourceState, uint format, const QSize &pixelSize, int sampleCount = 1)
(since 6.4) QQuickRenderTargetfromMetalTexture(MTLTexture *texture, uint format, const QSize &pixelSize, int sampleCount = 1)
QQuickRenderTargetfromMetalTexture(MTLTexture *texture, const QSize &pixelSize, int sampleCount = 1)
(since 6.2) QQuickRenderTargetfromOpenGLRenderBuffer(uint renderbufferId, const QSize &pixelSize, int sampleCount = 1)
(since 6.4) QQuickRenderTargetfromOpenGLTexture(uint textureId, uint format, const QSize &pixelSize, int sampleCount = 1)
QQuickRenderTargetfromOpenGLTexture(uint textureId, const QSize &pixelSize, int sampleCount = 1)
(since 6.4) QQuickRenderTargetfromPaintDevice(QPaintDevice *device)
(since 6.6) QQuickRenderTargetfromRhiRenderTarget(QRhiRenderTarget *renderTarget)
(since 6.4) QQuickRenderTargetfromVulkanImage(VkImage image, VkImageLayout layout, VkFormat format, const QSize &pixelSize, int sampleCount = 1)
QQuickRenderTargetfromVulkanImage(VkImage image, VkImageLayout layout, const QSize &pixelSize, int sampleCount = 1)
booloperator!=(const QQuickRenderTarget &a, const QQuickRenderTarget &b)
booloperator==(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)

如果ab引用不同的本地对象集或相关数据(大小、样本数)不匹配,则返回true。

[noexcept] bool operator==(const QQuickRenderTarget &a, const QQuickRenderTarget &b)

如果ab引用相同的本地对象集合和匹配的相关数据(大小、样本数),则返回true。

© 2024 Qt公司有限公司。本内的文档贡献是各自所有者的版权。本提供的文档是根据Free Software Foundation发布的GNU自由文档许可证版本1.3许可的。Qt及其标志是芬兰以及/或全球其他地区的Qt公司的商标。所有其他商标均为各自所有者的财产。