Files
XCEngine/docs/api/XCEngine/Rendering/Execution/SceneRenderer/GetPipeline.md

36 lines
1.2 KiB
Markdown

# SceneRenderer::GetPipeline
返回当前场景渲染器正在使用的 runtime pipeline。
```cpp
RenderPipeline* GetPipeline() const;
```
## 返回值
- 返回内部 `m_cameraRenderer.GetPipeline()` 的结果。
## 当前语义
- 这是一个非拥有裸指针,只用于观察当前绑定的是哪一个 `RenderPipeline` 实例。
- 该指针可能指向:
- 手动注入的 runtime pipeline。
- 由当前 pipeline asset 创建出的 runtime pipeline。
- 在空指针回退路径中自动补出的默认 builtin forward pipeline。
- 调用 [SetPipeline](SetPipeline.md) 或 [SetPipelineAsset](SetPipelineAsset.md) 后,这个指针都可能变化。
## 调用方影响
- 不应跨生命周期长期缓存这个指针;`SceneRenderer` 销毁、替换 pipeline 或回退默认 pipeline 后,它都可能失效。
- 它也不是“可由外部 delete 的所有权句柄”;真正的持有者仍是内部 `CameraRenderer`
## 测试覆盖
- `tests/Rendering/unit/test_camera_scene_renderer.cpp` 覆盖了替换 pipeline 前后 `GetPipeline()` 返回值的变化,以及旧 pipeline 被 `Shutdown()` 的行为。
## 相关文档
- [SceneRenderer](SceneRenderer.md)
- [SetPipeline](SetPipeline.md)
- [GetPipelineAsset](GetPipelineAsset.md)