QSSGRenderExtension Class
扩展后端节点实现的基类。更多...
| Header: | #include <qssgrenderextensions.h> |
| Since: | Qt 6.7 |
| Inherited By: |
公共类型
| enum class | RenderMode { Standalone, Main } |
| enum class | RenderStage { PreColor, PostColor } |
公共函数
| virtual QSSGRenderExtension::RenderMode | mode() const = 0 |
| virtual bool | prepareData(QSSGFrameData &data) = 0 |
| virtual void | prepareRender(QSSGFrameData &data) = 0 |
| virtual void | render(QSSGFrameData &data) = 0 |
| virtual void | resetForFrame() = 0 |
| virtual QSSGRenderExtension::RenderStage | stage() const = 0 |
受保护函数
| QSSGRenderExtension(QSSGRenderGraphObject::Type inType, QSSGRenderGraphObject::FlagT inFlags) |
另请参阅 QQuick3DRenderExtension 。
成员类型文档
enum class QSSGRenderExtension::RenderMode
指定渲染扩展模式。
| 常量 | 值 | 描述 |
|---|---|---|
QSSGRenderExtension::RenderMode::Standalone | 0 | 在渲染准备阶段,会完整记录渲染代码。这通常意味着会生成一些针对先前渲染扩展的输出。使用此模式时,在帧的准备阶段会同时调用prepareRender() 和render() 函数。 |
QSSGRenderExtension::RenderMode::Main | 1 | 渲染代码记录在主渲染阶段内。在此模式下,prepareRender() 函数在帧的准备阶段被调用,而render() 函数则在帧的渲染阶段被调用。 |
enum class QSSGRenderExtension::RenderStage
指定扩展程序的调用顺序。
| 常量 | 值 | 描述 |
|---|---|---|
QSSGRenderExtension::RenderStage::PreColor | 0 | 渲染代码会被记录下来,并在主(颜色)渲染阶段之前执行。 |
QSSGRenderExtension::RenderStage::PostColor | 1 | 渲染代码将在主(颜色)处理阶段之后被记录并执行。 注意: 只有当“RenderMode ”设置为“Main ”时,“R enderStage” 才起作用。 |
成员函数文档
[protected] QSSGRenderExtension::QSSGRenderExtension(QSSGRenderGraphObject::Type inType, QSSGRenderGraphObject::FlagT inFlags)
一个构造函数,允许用户为扩展指定用户类型和标志。
注意:对于 用户定义的扩展,类型必须由 QSSGRenderGraphObject::BaseType::User 与 0 到 4095 之间的数值组合而成。
注意: QSSGRenderGraphObject::BaseType::Extension类型会 自动添加到给定的inType 中。
注意: 如果扩展分配了图形资源,则 inFlags 必须包含Flags ::HasGraphicsResources。
[pure virtual] QSSGRenderExtension::RenderMode QSSGRenderExtension::mode() const
返回:此扩展所使用的渲染模式。
[pure virtual] bool QSSGRenderExtension::prepareData(QSSGFrameData &data)
在收集完场景的data 后,但在当前帧的任何渲染数据或渲染操作开始之前调用。
返回“Dirty”状态。如果存在需要渲染的未更新数据,则返回true 。
注意: 在准备和渲染阶段,引擎创建/收集的大部分 数据都是按帧计算的,应在下一帧开始时释放或视为已释放。
另请参阅 QSSGFrameData 。
[pure virtual] void QSSGRenderExtension::prepareRender(QSSGFrameData &data)
准备渲染所需的数据。构建并收集渲染所需的data 。在此之前排入计划的任何渲染扩展都已处理完毕。此外,模式为RenderMode::Standalone 的任何渲染扩展,若成功执行,则已完全完成。
注意: 在准备和渲染阶段从引擎创建/收集的大部分 数据都是按帧处理的,应在下一帧开始时释放或假定已释放
另请参阅 QSSGFrameData 。
[pure virtual] void QSSGRenderExtension::render(QSSGFrameData &data)
记录渲染通道。根据扩展mode 的不同,该函数将在帧的准备阶段或渲染阶段被调用。
使用data 访问渲染上下文,从而可查询其中的活动QRhi 对象。
另请参阅 QSSGRenderExtension::RenderMode 。
[pure virtual] void QSSGRenderExtension::resetForFrame()
每当新帧开始时调用。此时应清除上一帧的任何数据。
[pure virtual] QSSGRenderExtension::RenderStage QSSGRenderExtension::stage() const
返回将使用此渲染扩展的阶段。
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.