QRhiRenderPassDescriptor 类

渲染通道资源。 更多...

头文件 #include <QRhiRenderPassDescriptor>
CMakefind_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmakeQT += gui
Qt 6.6
继承自 QRhiResource

公共函数

虚布尔isCompatible(const QRhiRenderPassDescriptor *other) const = 0
虚 const QRhiNativeHandles *nativeHandles()
虚 QRhiRenderPassDescriptor *newCompatibleRenderPassDescriptor() const = 0
虚 QVector<quint32>serializedFormat() const = 0

重实现的公共函数

虚 QRhiResource::TyperesourceType() const override

详细描述

如果一个底层图形 API 中存在这种概念,渲染通道是一组附件(颜色、深度、模板)的集合,它描述了这些附件是如何使用的。

注意:这是一个 RHI API,兼容性保证有限,详细信息请参见 QRhi

成员函数文档

[纯虚] bool QRhiRenderPassDescriptor::isCompatible(const QRhiRenderPassDescriptor *other) const

如果 other QRhiRenderPassDescriptor 与此兼容,则返回 true,这意味着 thisother 可以在 QRhiGraphicsPipeline::setRenderPassDescriptor() 中互换使用。

渲染通道描述符兼容性的概念类似于 QRhiShaderResourceBindings 实例的布局兼容性。它们允许更好的重用 QRhiGraphicsPipeline 实例:例如,预期 QRhiGraphicsPipeline 实例缓存将使用这些函数来查找匹配的管道,而不是仅比较指针,这样就可以使用不同的 QRhiRenderPassDescriptorQRhiShaderResourceBindings,只要它们兼容即可。

兼容性的具体细节取决于底层图形 API。从相同的 QRhiTextureRenderTarget 创建的两个渲染通道描述符始终兼容。

类似于 QRhiShaderResourceBindings,兼容性也可以在不一定是两个现有对象的情况下进行测试。通过调用 serializedFormat() 提取不透明的blob,可以通过比较返回的向量与另一个 QRhiRenderPassDescriptorserializedFormat() 来测试兼容性。这在某些情况下具有优点,因为它允许在没有原始构建的 QRhiRenderPassDescriptor 更新可用的繁经济学家 depuis 广东人库存 (但返回的数据仍不变) 时,测试 QRhiGraphicsPipelineQRhiRenderPassDescriptor 的兼容性。

另见 newCompatibleRenderPassDescriptor() 和 serializedFormat

[virtual] const QRhiNativeHandles *QRhiRenderPassDescriptor::nativeHandles()

返回指向一个后端特定的 QRhiNativeHandles 子类的指针,例如 QRhiVulkanRenderPassNativeHandles。当后端不支持暴露底层原生资源时,返回值是 nullptr

另见 QRhiVulkanRenderPassNativeHandles

[pure virtual] QRhiRenderPassDescriptor *QRhiRenderPassDescriptor::newCompatibleRenderPassDescriptor() const

返回一个新的与这个相同的 QRhiRenderPassDescriptor,它是兼容的。

此函数允许克隆 QRhiRenderPassDescriptor。返回的对象可以立即使用,并且所有权转移给调用者。在将对象存储在与图形管道相关的数据结构中(以便创建新的管道,而新的管道又需要一个渲染描述符),并且渲染描述符的寿命可能短于管道的情况下,克隆 QRhiRenderPassDescriptor 对象可能会有用。在这种情况下,可以在数据结构中存储克隆版本,并转移所有权。

另见 isCompatible

[override virtual] QRhiResource::Type QRhiRenderPassDescriptor::resourceType() const

重实现了: QRhiResource::resourceType() const

返回资源类型。

[pure virtual] QVector<quint32> QRhiRenderPassDescriptor::serializedFormat() const

返回一个包含描述与兼容性相关的 数据的整数向量的向量。

给定两个 QRhiRenderPassDescriptor 对象 rp1rp2,如果此函数返回的数据相同,则 rp1->isCompatible(rp2),反之亦然。

注意: 返回的数据是用于在属于 QRhi 对象的生命周期内存储和在内存中进行比较的。它不适合存储在磁盘上、在进程间重用或与具有不同后端的多实例 QRhi 一起使用。

另见 isCompatible

© 2024 Qt 公司有限公司。其中包含的文档贡献是各自所有者的版权。此处提供的文档根据自由软件基金会发布的 GNU 自由文档许可证版本 1.3 的条款进行许可。Qt 和相应的标志是芬兰和/或全世界 Qt 公司的商标。所有其他商标均为各自所有者的财产。