pub struct LightingPipeline {
pub imports: Vec<(LightingPort, TargetView)>,
pub buffers: Vec<LightingBuffer>,
pub passes: Vec<u32>,
pub exports: Vec<(LightingPort, TargetView)>,
pub geometry_stencil: Option<GeometryStencil>,
pub notices: Vec<String>,
}Expand description
The part of a source graph a consumer runs between its material draws and presentation.
Its programs compute in the source’s program frame (crate::shader::ProgramFrame), as its material programs do,
so the G-buffer it imports is already in that frame: a consumer converts its constants by their kinds, not its images.
The source selects passes; a consumer never chooses programs by their names. Multiple input views can read the
same port (a source may keep two views of scene depth), but each exported meaning has one view.
Fields§
§imports: Vec<(LightingPort, TargetView)>§buffers: Vec<LightingBuffer>§passes: Vec<u32>Top-level RenderGraph pass indices in strictly increasing source order; groups retain their own order.
exports: Vec<(LightingPort, TargetView)>§geometry_stencil: Option<GeometryStencil>§notices: Vec<String>Source explanations of deliberate reconstruction or approximation, shown by every consumer.
Implementations§
Source§impl LightingPipeline
impl LightingPipeline
Sourcepub fn check(&self, graph: &RenderGraph) -> Result<(), String>
pub fn check(&self, graph: &RenderGraph) -> Result<(), String>
Verify the port types, source order and dependency closure of the selected subgraph. Every read image/buffer must be imported or produced earlier. This checks data dependencies, not whether the consumer implements each pass or can evaluate an unknown presence condition.