QRhiRenderPassDescriptor 类
渲染通道资源。 更多...
头文件 | #include <QRhiRenderPassDescriptor> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
qmake | QT += gui |
自 | Qt 6.6 |
继承自 | QRhiResource |
公共函数
虚布尔 | isCompatible(const QRhiRenderPassDescriptor *other) const = 0 |
虚 const QRhiNativeHandles * | nativeHandles() |
虚 QRhiRenderPassDescriptor * | newCompatibleRenderPassDescriptor() const = 0 |
虚 QVector<quint32> | serializedFormat() const = 0 |
重实现的公共函数
虚 QRhiResource::Type | resourceType() const override |
详细描述
如果一个底层图形 API 中存在这种概念,渲染通道是一组附件(颜色、深度、模板)的集合,它描述了这些附件是如何使用的。
注意:这是一个 RHI API,兼容性保证有限,详细信息请参见 QRhi。
成员函数文档
[纯虚]
bool QRhiRenderPassDescriptor::isCompatible(const QRhiRenderPassDescriptor *other) const
如果 other QRhiRenderPassDescriptor 与此兼容,则返回 true,这意味着 this
和 other 可以在 QRhiGraphicsPipeline::setRenderPassDescriptor() 中互换使用。
渲染通道描述符兼容性的概念类似于 QRhiShaderResourceBindings 实例的布局兼容性。它们允许更好的重用 QRhiGraphicsPipeline 实例:例如,预期 QRhiGraphicsPipeline 实例缓存将使用这些函数来查找匹配的管道,而不是仅比较指针,这样就可以使用不同的 QRhiRenderPassDescriptor 和 QRhiShaderResourceBindings,只要它们兼容即可。
兼容性的具体细节取决于底层图形 API。从相同的 QRhiTextureRenderTarget 创建的两个渲染通道描述符始终兼容。
类似于 QRhiShaderResourceBindings,兼容性也可以在不一定是两个现有对象的情况下进行测试。通过调用 serializedFormat() 提取不透明的blob,可以通过比较返回的向量与另一个 QRhiRenderPassDescriptor 的 serializedFormat() 来测试兼容性。这在某些情况下具有优点,因为它允许在没有原始构建的 QRhiRenderPassDescriptor 更新可用的繁经济学家 depuis 广东人库存 (但返回的数据仍不变) 时,测试 QRhiGraphicsPipeline 与 QRhiRenderPassDescriptor 的兼容性。
另见 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 对象 rp1
和 rp2
,如果此函数返回的数据相同,则 rp1->isCompatible(rp2)
,反之亦然。
另见 isCompatible。
© 2024 Qt 公司有限公司。其中包含的文档贡献是各自所有者的版权。此处提供的文档根据自由软件基金会发布的 GNU 自由文档许可证版本 1.3 的条款进行许可。Qt 和相应的标志是芬兰和/或全世界 Qt 公司的商标。所有其他商标均为各自所有者的财产。