1.9 KiB
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 往往只消费
renderContext、surface与sceneData。 - fullscreen post-process / final-output 链路会继续消费
sourceSurface、sourceColorView与sourceColorState。 surface描述的是“这一次 pass 输出到哪里”,sourceSurface/sourceColorView描述的是“这一次 pass 从哪里读颜色输入”。
当前实现边界
- 当前只支持一路可选的上游颜色输入,不支持多个输入 surface 或多纹理输入槽位的统一建模。
- 深度附件、render area、sample 描述等输出约束不在这里展开,而是继续由 RenderSurface 表达。
RenderPassContext只是协议对象,不拥有这些资源的生命周期。