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

1.3 KiB
Raw Blame History

BuiltinObjectIdPass::Shutdown

主动销毁当前缓存的 object-id pass GPU 资源。

void Shutdown() override;

当前语义

  • 当前实现直接转发到内部 DestroyResources()
  • 它会依次清理:
    • 内部 RenderResourceCache
    • m_perObjectSets 中按 object ID 缓存的 descriptor pool / descriptor set
    • m_pipelineState
    • m_pipelineLayout
    • m_builtinObjectIdShader
  • 同时还会把 m_devicem_backendTypem_perObjectBindingm_firstDescriptorSet 等运行时状态复位。

调用后效果

  • 这是一次“回到未初始化状态”的 teardown。
  • 下一次 Render 再进入时,会重新走 EnsureInitialized(...) -> CreateResources(...) 路径。
  • 当前实现支持重复调用;资源已经清空后,后续 Shutdown() 只会处理空状态。

调用方影响

  • 任何此前由该 pass 间接缓存的 mesh GPU 副本、pipeline state 或 per-object descriptor set都会在这里失效。
  • 这不会销毁 RenderSurfaceRenderSceneData 或调用方持有的 scene / mesh / material 对象本体。

相关文档