1.2 KiB
1.2 KiB
RenderPipeline::Shutdown
关闭这条 runtime 渲染管线并释放其持有资源。
virtual void Shutdown() = 0;
当前调用语义
从 engine/src/Rendering/Execution/CameraRenderer.cpp 可以看到,当前主要调用方会在这些时机直接调用它:
CameraRenderer析构时。CameraRenderer::ResetPipeline()替换旧 pipeline 时。
调用方不会额外区分“这条管线是否已经显式 Initialize() 过”;因此实现应能容忍未初始化或已清空状态上的 shutdown。
对实现的要求
- 应释放这条 runtime pipeline 自己拥有的 RHI 资源、缓存和临时对象。
- 应支持重复调用,避免把 teardown 变成一次性、脆弱的操作。
- 不应把 object-id pass、
CameraRenderRequest或外部RenderPassSequence的生命周期混进这里;这些属于管线外层协调逻辑。
设计说明
- 这是显式生命周期接口,不等同于 C++ 析构。
- 某些实现会在析构函数里再次兜底调用
Shutdown(),但基类本身不提供这一保证。