Files
XCEngine/docs/api/XCEngine/Rendering/Passes/BuiltinObjectIdOutlinePass/Shutdown.md

1.2 KiB

BuiltinObjectIdOutlinePass::Shutdown

命名空间: XCEngine::Rendering::Passes

类型: method

头文件: XCEngine/Rendering/Passes/BuiltinObjectIdOutlinePass.h

签名

void Shutdown();

作用

释放这个 outline pass 已经创建的所有内部 GPU 资源和 shader handle。

当前实现行为

当前实现非常直接:

void BuiltinObjectIdOutlinePass::Shutdown() {
    DestroyResources();
}

DestroyResources() 会按顺序销毁:

  1. m_pipelineState
  2. m_textureSet
  3. m_texturePool
  4. m_constantSet
  5. m_constantPool
  6. m_pipelineLayout
  7. m_builtinObjectIdOutlineShader

每个 RHI 对象在释放前都会先调用自身的 Shutdown(),随后再 delete 并把成员清空。最后会通过 ResetState() 回到未初始化状态。

关键语义

  • 对尚未初始化过的对象调用 Shutdown() 是安全的。
  • 资源释放后,后续仍可重新 Render 并按新的 RenderContext 懒创建资源。
  • 这个类当前不是完全 RAII 的:析构函数是默认析构,并不会自动代替 Shutdown() 执行清理。

相关文档