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

1.2 KiB

SceneRenderer::GetPipeline

返回当前场景渲染器正在使用的 runtime pipeline。

RenderPipeline* GetPipeline() const;

返回值

  • 返回内部 m_cameraRenderer.GetPipeline() 的结果。

当前语义

  • 这是一个非拥有裸指针,只用于观察当前绑定的是哪一个 RenderPipeline 实例。
  • 该指针可能指向:
    • 手动注入的 runtime pipeline。
    • 由当前 pipeline asset 创建出的 runtime pipeline。
    • 在空指针回退路径中自动补出的默认 builtin forward pipeline。
  • 调用 SetPipelineSetPipelineAsset 后,这个指针都可能变化。

调用方影响

  • 不应跨生命周期长期缓存这个指针;SceneRenderer 销毁、替换 pipeline 或回退默认 pipeline 后,它都可能失效。
  • 它也不是“可由外部 delete 的所有权句柄”;真正的持有者仍是内部 CameraRenderer

测试覆盖

  • tests/Rendering/unit/test_camera_scene_renderer.cpp 覆盖了替换 pipeline 前后 GetPipeline() 返回值的变化,以及旧 pipeline 被 Shutdown() 的行为。

相关文档