在本页

QSSGRenderExtension Class

扩展后端节点实现的基类。更多

Header: #include <QSSGRenderExtension>
Since: Qt 6.7
Inherited By:

QSSGRenderTextureProviderExtension

公共类型

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::Standalone0渲染代码在渲染准备阶段被完整记录。这通常意味着前面的渲染扩展会有一些输出。使用这种模式时,prepareRender() 和render() 函数都会在帧的准备阶段被调用。
QSSGRenderExtension::RenderMode::Main1渲染代码记录在主渲染通道中。在此模式下,prepareRender() 在帧的准备阶段被调用,而render() 则在帧的渲染阶段被调用。

enum class QSSGRenderExtension::RenderStage

指定分机的调用顺序。

常数描述
QSSGRenderExtension::RenderStage::PreColor0在主(色彩)程序之前记录并执行渲染代码。
QSSGRenderExtension::RenderStage::PostColor1渲染代码在主(色彩)程序之后记录和执行。

注: 只有当RenderMode 设置为Main 时,RenderStage 才与之相关。

成员函数文档

[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 之后,但在当前帧的任何渲染数据或渲染完成之前调用。

返回脏状态。如果有脏数据需要渲染,则返回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.