1.3 KiB
1.3 KiB
BuiltinObjectIdPass::Shutdown
主动销毁当前缓存的 object-id pass GPU 资源。
void Shutdown() override;
当前语义
- 当前实现直接转发到内部
DestroyResources()。 - 它会依次清理:
- 内部 RenderResourceCache
m_perObjectSets中按 object ID 缓存的 descriptor pool / descriptor setm_pipelineStatem_pipelineLayoutm_builtinObjectIdShader
- 同时还会把
m_device、m_backendType、m_perObjectBinding、m_firstDescriptorSet等运行时状态复位。
调用后效果
- 这是一次“回到未初始化状态”的 teardown。
- 下一次 Render 再进入时,会重新走
EnsureInitialized(...) -> CreateResources(...)路径。 - 当前实现支持重复调用;资源已经清空后,后续
Shutdown()只会处理空状态。
调用方影响
- 任何此前由该 pass 间接缓存的 mesh GPU 副本、pipeline state 或 per-object descriptor set,都会在这里失效。
- 这不会销毁
RenderSurface、RenderSceneData或调用方持有的 scene / mesh / material 对象本体。