1.3 KiB
1.3 KiB
CameraRenderer::~CameraRenderer
命名空间: XCEngine::Rendering
类型: destructor
头文件: XCEngine/Rendering/CameraRenderer.h
签名
~CameraRenderer();
作用
在对象销毁前关闭当前持有的主管线和 object-id pass。
当前实现行为
析构函数当前按以下顺序执行清理:
- 如果
m_pipeline非空,调用m_pipeline->Shutdown()。 - 如果
m_objectIdPass非空,调用m_objectIdPass->Shutdown()。
随后由 unique_ptr 和成员对象自身析构负责释放内存。
设计含义
- 主管线和 object-id pass 的 GPU 资源回收路径是显式
Shutdown(),而不是只依赖 C++ 析构。 - 调用方注入到
CameraRenderRequest里的RenderPassSequence并不由这里持有,因此也不在这里做统一回收。
注意事项
- 当前没有内部同步;不应在其它线程仍然可能访问管线或命令对象时销毁
CameraRenderer。 - 如果你只是想切换主管线或 object-id pass,不要等到析构,应该优先使用 SetPipeline、SetPipelineAsset 或 SetObjectIdPass。