Files
XCEngine/docs/api/XCEngine/Rendering/RenderPipeline/Shutdown.md

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(),但基类本身不提供这一保证。

相关文档