Files
XCEngine/docs/api/XCEngine/Rendering/CameraRenderer/SetPipeline.md

44 lines
1.2 KiB
Markdown

# CameraRenderer::SetPipeline
**命名空间**: `XCEngine::Rendering`
**类型**: `method`
**头文件**: `XCEngine/Rendering/CameraRenderer.h`
## 签名
```cpp
void SetPipeline(std::unique_ptr<RenderPipeline> pipeline);
```
## 作用
手动替换当前主管线实例,并切断与 `RenderPipelineAsset` 的绑定关系。
## 当前实现行为
1. 先把 `m_pipelineAsset.reset()`,表示后续不再认为当前管线来自某个 asset。
2. 调用内部 `ResetPipeline(std::move(pipeline))`
3. `ResetPipeline()` 会:
- 对旧 `m_pipeline` 调用 `Shutdown()`
- 接管新的 `pipeline`
- 如果新指针为空,则回退到默认 pipeline asset 创建的内建前向管线
## 参数
| 参数 | 说明 |
|------|------|
| `pipeline` | 新的主管线实例所有权。可以为空;为空时会自动回退到默认内建前向管线。 |
## 关键语义
- 这是“直接注入实例”的入口,不会保留原来的 pipeline asset。
- 替换时走的是显式关停旧管线的路径,而不是简单换指针。
## 相关文档
- [SetPipelineAsset](SetPipelineAsset.md)
- [GetPipeline](GetPipeline.md)
- [GetPipelineAsset](GetPipelineAsset.md)