QSSGRenderHelpers Class
类包含用于设置和呈现QtQuick3D 渲染器的辅助函数。更多
Header: | #include <QSSGRenderHelpers> |
Since: | Qt 6.7 |
公共类型
enum class | CreateFlag { None, Recurse, Steal } |
flags | CreateFlags |
静态公共成员
QSSGPrepResultId | commit(const QSSGFrameData &frameData, QSSGPrepContextId prepId, QSSGRenderablesId renderablesId, float lodThreshold = 1.0f) |
QSSGRenderablesId | createRenderables(const QSSGFrameData &frameData, QSSGPrepContextId prepId, const QSSGRenderHelpers::NodeList &nodes, QSSGRenderHelpers::CreateFlags flags = CreateFlag::None) |
QSSGPrepContextId | prepareForRender(const QSSGFrameData &frameData, const QSSGRenderExtension &ext, QSSGCameraId cameraId, quint32 slot = 0) |
void | prepareRenderables(const QSSGFrameData &frameData, QSSGPrepResultId prepId, QRhiRenderPassDescriptor *renderPassDescriptor, QSSGRhiGraphicsPipelineState &ps, QSSGRenderablesFilters filter = QSSGRenderablesFilter::All) |
void | renderRenderables(const QSSGFrameData &frameData, QSSGPrepResultId prepId) |
成员类型文档
枚举类 QSSGRenderHelpers::CreateFlag
flags QSSGRenderHelpers::CreateFlags
常量 | 值 | 默认值。 |
---|---|---|
QSSGRenderHelpers::CreateFlag::None | 0 | 默认值。仅为指定的节点创建渲染对象。 |
QSSGRenderHelpers::CreateFlag::Recurse | 0x1 | 为每个节点及其子节点创建可渲染文件。 |
QSSGRenderHelpers::CreateFlag::Steal | 0x2 | 可渲染内容来自引擎,不会由QtQuick3D 渲染。 |
注意: 在未设置 {QSSGRenderHelpers::CreateFlag::Steal}{Steal} 标志的情况下调用QSSGRenderHelpers::createRenderables() 意味着节点会被复制,QtQuick3D 将正常渲染节点的副本。
CreateFlags 类型是QFlags<CreateFlag> 的类型定义。它存储 CreateFlag 值的 OR 组合。
成员函数文档
[static]
QSSGPrepResultId QSSGRenderHelpers::commit(const QSSGFrameData &frameData, QSSGPrepContextId prepId, QSSGRenderablesId renderablesId, float lodThreshold = 1.0f)
一旦对呈现器进行了所需的更改,数据就可以标记为已准备好供呈现器使用。
返回准备结果的 id。
frameData,prepId,renderablesId 、lodThreshold
另请参阅 prepareRenderables() 和renderRenderables()。
[static]
QSSGRenderablesId QSSGRenderHelpers::createRenderables(const QSSGFrameData &frameData, QSSGPrepContextId prepId, const QSSGRenderHelpers::NodeList &nodes, QSSGRenderHelpers::CreateFlags flags = CreateFlag::None)
获取节点 id 列表,并创建可由呈现器进一步处理的呈现对象。如果列表中没有节点或没有可呈现的节点,返回的 id 将无效。
默认情况下,该函数不会向下递归,而是将nodes 的子节点包含在列表中。可以通过在flags 参数中传递Recurse 标志来启用递归功能。
返回已创建的可呈现元素的 id。
frameData,prepId
另请参阅 CreateFlags 和prepareForRender()。
[static]
QSSGPrepContextId QSSGRenderHelpers::prepareForRender(const QSSGFrameData &frameData, const QSSGRenderExtension &ext, QSSGCameraId cameraId, quint32 slot = 0)
prepareForRender() 创建了一个上下文,用于收集和存储与此渲染扩展相关的渲染数据信息。
如果同一个节点要渲染多次,但属性不同,例如使用不同的材质或相机,那么就需要创建一个新的上下文。要为一个扩展创建多个上下文,可以使用slot 参数。默认上下文创建在槽0 中。
返回预创建上下文的 ID。
frameData,ext 、cameraId
另请参阅 commit().
[static]
void QSSGRenderHelpers::prepareRenderables(const QSSGFrameData &frameData, QSSGPrepResultId prepId, QRhiRenderPassDescriptor *renderPassDescriptor, QSSGRhiGraphicsPipelineState &ps, QSSGRenderablesFilters filter = QSSGRenderablesFilter::All)
在调用renderRenderables 之前,为呈现器准备所需的绘制调用数据。
返回准备结果的 id。
frameData,renderPassDescriptor,ps,prepId 、filter
另请参阅 renderRenderables() 。
[static]
void QSSGRenderHelpers::renderRenderables(const QSSGFrameData &frameData, QSSGPrepResultId prepId)
渲染可呈现物。
frameData,prepId
另请参见 prepareRenderables().
© 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.