34 lines
1.3 KiB
Markdown
34 lines
1.3 KiB
Markdown
# SceneRenderer::GetPipelineAsset
|
||
|
||
返回当前场景渲染器绑定的 pipeline asset。
|
||
|
||
```cpp
|
||
const RenderPipelineAsset* GetPipelineAsset() const;
|
||
```
|
||
|
||
## 返回值
|
||
|
||
- 返回内部 `m_cameraRenderer.GetPipelineAsset()` 的结果。
|
||
|
||
## 当前语义
|
||
|
||
- 这是一个非拥有观察指针,用来回答“当前 runtime pipeline 是由哪个 asset 工厂派生出来的”。
|
||
- 默认构造的 `SceneRenderer` 通常会返回默认 builtin forward pipeline asset。
|
||
- 如果最近一次切换是 [SetPipeline](SetPipeline.md) 且传入了非空 runtime pipeline,这里会变成 `nullptr`,因为那条路径会清掉当前 asset 绑定。
|
||
- 如果 [SetPipelineAsset](SetPipelineAsset.md) 传入空指针,内部不会保留 `nullptr`,而是回退到默认 builtin forward asset。
|
||
|
||
## 调用方影响
|
||
|
||
- 这不是 `shared_ptr` 的外露别名,不提供所有权,也不保证在 `SceneRenderer` 生命周期之外继续有效。
|
||
- 对外部来说,它更适合做调试、状态展示或测试断言,而不适合做长期缓存键。
|
||
|
||
## 测试覆盖
|
||
|
||
- `tests/Rendering/unit/test_camera_scene_renderer.cpp` 覆盖了默认 asset、替换 asset,以及替换 runtime pipeline 后 asset 观察值的变化。
|
||
|
||
## 相关文档
|
||
|
||
- [SceneRenderer](SceneRenderer.md)
|
||
- [SetPipelineAsset](SetPipelineAsset.md)
|
||
- [GetPipeline](GetPipeline.md)
|