1.2 KiB
1.2 KiB
CameraRenderer::SetDepthOnlyPass
命名空间: XCEngine::Rendering
类型: method
头文件: XCEngine/Rendering/Execution/CameraRenderer.h
签名
void SetDepthOnlyPass(std::unique_ptr<RenderPass> depthOnlyPass);
作用
替换当前用于消费 request.depthOnly 的独立 scene pass。
当前实现行为
- 如果旧
m_depthOnlyPass非空,先调用它的Shutdown()。 - 接管新的
depthOnlyPass。 - 如果新指针为空,则自动回退到 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。