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