render: impl Node for RenderGraph in prep for sub-graphs
This commit is contained in:
parent
f17bf40c77
commit
f440f306be
|
@ -242,9 +242,9 @@ impl RenderGraph {
|
|||
.as_compute_pipeline_descriptor()
|
||||
.expect("got render pipeline descriptor in a compute pass"),
|
||||
)),
|
||||
NodeType::Presenter | NodeType::Node => {
|
||||
NodeType::Presenter | NodeType::Node | NodeType::Graph => {
|
||||
panic!("Present or Node RenderGraph passes should not have a pipeline descriptor!");
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
drop(desc);
|
||||
|
@ -465,4 +465,24 @@ impl RenderGraph {
|
|||
pass.set_bind_group(*index, bg, &[]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl Node for RenderGraph {
|
||||
fn desc<'a, 'b>(&'a mut self, graph: &'b mut RenderGraph) -> NodeDesc {
|
||||
// TODO: how would bind groups be shared between sub-graphs?
|
||||
NodeDesc::new(NodeType::Graph, None, vec![])
|
||||
}
|
||||
|
||||
fn prepare(&mut self, world: &mut World, _: &mut RenderGraphContext) {
|
||||
self.prepare(world);
|
||||
}
|
||||
|
||||
fn execute(
|
||||
&mut self,
|
||||
_: &mut RenderGraph,
|
||||
_: &NodeDesc,
|
||||
_: &mut RenderGraphContext,
|
||||
) {
|
||||
self.render();
|
||||
}
|
||||
}
|
|
@ -18,6 +18,8 @@ pub enum NodeType {
|
|||
Render,
|
||||
/// A node that presents render results to a render target.
|
||||
Presenter,
|
||||
/// A node that represents a sub-graph.
|
||||
Graph,
|
||||
}
|
||||
|
||||
impl NodeType {
|
||||
|
@ -28,6 +30,7 @@ impl NodeType {
|
|||
NodeType::Compute => true,
|
||||
NodeType::Render => true,
|
||||
NodeType::Presenter => false,
|
||||
NodeType::Graph => false,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue