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

1.3 KiB
Raw Blame History

CameraRenderer::~CameraRenderer

命名空间: XCEngine::Rendering

类型: destructor

头文件: XCEngine/Rendering/CameraRenderer.h

签名

~CameraRenderer();

作用

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

当前实现行为

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

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

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

设计含义

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

注意事项

  • 当前没有内部同步;不应在其它线程仍然可能访问管线或命令对象时销毁 CameraRenderer
  • 如果你只是想切换主管线或 object-id pass不要等到析构应该优先使用 SetPipelineSetPipelineAssetSetObjectIdPass

相关文档