1.3 KiB
1.3 KiB
SceneRenderer::SetPipelineAsset
切换当前场景渲染器使用的 pipeline asset。
void SetPipelineAsset(std::shared_ptr<const RenderPipelineAsset> pipelineAsset);
参数
pipelineAsset- 目标 pipeline asset;允许传入空指针。
当前语义
- 当前实现直接转发到内部
m_cameraRenderer.SetPipelineAsset(...)。 - 如果传入 asset 非空,后续 runtime pipeline 会由该 asset 创建。
- 如果传入 asset 为空,内部会回退到默认 builtin forward pipeline asset,而不是保留空绑定。
- 被替换掉的旧 runtime pipeline 会先执行
Shutdown(),再由新 asset 创建新实例。
调用方影响
- 调用之后,GetPipelineAsset 和 GetPipeline 的返回值都可能变化。
- 任何此前缓存的旧 pipeline 指针都应视为潜在失效。
- 如果调用方只是想直接接管 runtime pipeline,而不是保留 asset 工厂关系,应改用 SetPipeline。
测试覆盖
tests/Rendering/unit/test_camera_scene_renderer.cpp验证了替换 asset 时旧 pipeline 会被Shutdown(),并且新 asset 会创建新的 runtime pipeline 实例。