Files
XCEngine/docs/api/XCEngine/Rendering/CameraRenderer/Destructor.md

1.7 KiB
Raw Blame History

CameraRenderer::~CameraRenderer

命名空间: XCEngine::Rendering

类型: destructor

头文件: XCEngine/Rendering/Execution/CameraRenderer.h

签名

~CameraRenderer();

作用

在对象销毁前关闭当前持有的主管线、object-id pass、depth-only pass 和 shadow-caster pass。

当前实现行为

析构函数当前按以下顺序执行清理:

  1. 如果 m_pipeline 非空,调用 m_pipeline->Shutdown()
  2. 如果 m_objectIdPass 非空,调用 m_objectIdPass->Shutdown()
  3. 如果 m_depthOnlyPass 非空,调用 m_depthOnlyPass->Shutdown()
  4. 如果 m_shadowCasterPass 非空,调用 m_shadowCasterPass->Shutdown()

随后由 unique_ptr 和成员对象自身析构负责释放内存。

设计含义

  • 主管线、object-id pass、depth-only pass 和 shadow-caster pass 的 GPU 资源回收路径都是显式 Shutdown(),而不是只依赖 C++ 析构。
  • 调用方注入到 CameraRenderRequest 里的 RenderPassSequence 并不由这里持有,因此也不在这里做统一回收。

注意事项

相关文档