44 lines
1.2 KiB
Markdown
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)
|