QSSGRenderExtension Class
扩展后端节点实现的基类。更多
Header: | #include <QSSGRenderExtension> |
Since: | Qt 6.7 |
公共类型
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 |
另请参见 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 | 渲染代码在主(色彩)程序之后记录和执行。 |
成员函数文档
[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
返回 将使用此呈现扩展的舞台。
© 2025 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.