Files
XCEngine/docs/api/XCEngine/Rendering/RenderPass/RenderPassContext.md

1.9 KiB

RenderPassContext

描述单个 RenderPass 执行时可见的共享上下文。

struct RenderPassContext {
    const RenderContext& renderContext;
    const RenderSurface& surface;
    const RenderSceneData& sceneData;
    const RenderSurface* sourceSurface = nullptr;
    RHI::RHIResourceView* sourceColorView = nullptr;
    RHI::ResourceStates sourceColorState = RHI::ResourceStates::Common;
};

字段

字段 说明
renderContext 当前 backend、device、command list / queue 等运行时上下文。
surface 当前 pass 的输出目标 RenderSurface
sceneData 本帧已提取好的场景数据。
sourceSurface fullscreen / chained pass 的上游 RenderSurface;没有上游输入时可为空。
sourceColorView 上游传入的颜色输入视图;没有上游输入时可为空。
sourceColorState sourceColorView 当前约定的资源状态,供自动切换或状态校验使用。

当前语义

  • 前向场景 pass 往往只消费 renderContextsurfacesceneData
  • fullscreen post-process / final-output 链路会继续消费 sourceSurfacesourceColorViewsourceColorState
  • surface 描述的是“这一次 pass 输出到哪里”,sourceSurface / sourceColorView 描述的是“这一次 pass 从哪里读颜色输入”。

当前实现边界

  • 当前只支持一路可选的上游颜色输入,不支持多个输入 surface 或多纹理输入槽位的统一建模。
  • 深度附件、render area、sample 描述等输出约束不在这里展开,而是继续由 RenderSurface 表达。
  • RenderPassContext 只是协议对象,不拥有这些资源的生命周期。

相关文档