27 lines
1007 B
Markdown
27 lines
1007 B
Markdown
# RenderPipeline::~RenderPipeline
|
|
|
|
销毁渲染管线基类对象。
|
|
|
|
```cpp
|
|
virtual ~RenderPipeline() = default;
|
|
```
|
|
|
|
## 当前语义
|
|
|
|
- 这是一个虚析构函数,保证通过 `RenderPipeline*` 删除具体 pipeline 时行为正确。
|
|
- 基类析构函数本身不会主动调用 [Shutdown](Shutdown.md)。
|
|
- 因此 GPU 资源释放策略由调用方和派生类共同决定:
|
|
- `CameraRenderer` 会在替换或销毁 pipeline 前显式调用 `Shutdown()`。
|
|
- 某些派生类会在自己的析构函数里再次兜底,例如 builtin forward pipeline。
|
|
|
|
## 设计说明
|
|
|
|
- 把 `Shutdown()` 与 C++ 析构分开,可以让调用方在对象仍然存活时就提前回收 GPU 资源,而不是把所有释放时机都拖到对象真正销毁的最后一刻。
|
|
- 这也意味着“对象被 delete”并不天然等价于“已经执行过规范的渲染资源 shutdown 路径”。
|
|
|
|
## 相关文档
|
|
|
|
- [RenderPipeline](RenderPipeline.md)
|
|
- [Shutdown](Shutdown.md)
|
|
- [Initialize](Initialize.md)
|