Files
XCEngine/docs/api/XCEngine/Rendering/Execution/CameraRenderer/SetDepthOnlyPass.md

1.2 KiB

CameraRenderer::SetDepthOnlyPass

命名空间: XCEngine::Rendering

类型: method

头文件: XCEngine/Rendering/Execution/CameraRenderer.h

签名

void SetDepthOnlyPass(std::unique_ptr<RenderPass> depthOnlyPass);

作用

替换当前用于消费 request.depthOnly 的独立 scene pass。

当前实现行为

  1. 如果旧 m_depthOnlyPass 非空,先调用它的 Shutdown()
  2. 接管新的 depthOnlyPass
  3. 如果新指针为空,则自动回退到 Passes::BuiltinDepthOnlyPass

关键语义

  • 这里替换的是一个普通 RenderPass,并不要求具体类型必须来自 builtin pass 层。
  • CameraRenderer::Render() 只在 request.depthOnly.IsRequested() 时才会真正执行这里持有的 pass。
  • tests/Rendering/unit/test_camera_scene_renderer.cpp 通过 mock pass 验证了这条注入链会在主主管线之前执行,并正确消费 ScenePassRenderRequest 的 surface / clear-color override。

相关文档