RenderGraph::add_node now requires a name

This commit is contained in:
Carter Anderson 2020-05-13 17:35:48 -07:00
parent 06f3a4efb9
commit fb8f9e8636
7 changed files with 48 additions and 48 deletions

View File

@ -25,15 +25,15 @@ pub trait ForwardPbrRenderGraphBuilder {
impl ForwardPbrRenderGraphBuilder for RenderGraph { impl ForwardPbrRenderGraphBuilder for RenderGraph {
fn add_pbr_graph(&mut self, resources: &Resources) -> &mut Self { fn add_pbr_graph(&mut self, resources: &Resources) -> &mut Self {
self.add_system_node_named( self.add_system_node(
node::LOCAL_TO_WORLD, node::LOCAL_TO_WORLD,
UniformNode::<LocalToWorld>::new(true) UniformNode::<LocalToWorld>::new(true)
); );
self.add_system_node_named( self.add_system_node(
node::STANDARD_MATERIAL, node::STANDARD_MATERIAL,
AssetUniformNode::<StandardMaterial>::new(true) AssetUniformNode::<StandardMaterial>::new(true)
); );
self.add_system_node_named(node::LIGHTS, LightsNode::new(10)); self.add_system_node(node::LIGHTS, LightsNode::new(10));
let mut shaders = resources.get_mut::<Assets<Shader>>().unwrap(); let mut shaders = resources.get_mut::<Assets<Shader>>().unwrap();
let mut pipelines = resources let mut pipelines = resources
.get_mut::<Assets<PipelineDescriptor>>() .get_mut::<Assets<PipelineDescriptor>>()

View File

@ -61,15 +61,15 @@ impl BaseRenderGraphBuilder for RenderGraph {
config: &BaseRenderGraphConfig, config: &BaseRenderGraphConfig,
) -> &mut Self { ) -> &mut Self {
if config.add_3d_camera { if config.add_3d_camera {
self.add_system_node_named(node::CAMERA, CameraNode::default()); self.add_system_node(node::CAMERA, CameraNode::default());
} }
if config.add_2d_camera { if config.add_2d_camera {
self.add_system_node_named(node::CAMERA2D, Camera2dNode::default()); self.add_system_node(node::CAMERA2D, Camera2dNode::default());
} }
if config.add_main_depth_texture { if config.add_main_depth_texture {
self.add_node_named( self.add_node(
node::MAIN_DEPTH_TEXTURE, node::MAIN_DEPTH_TEXTURE,
WindowTextureNode::new( WindowTextureNode::new(
WindowReference::Primary, WindowReference::Primary,
@ -92,7 +92,7 @@ impl BaseRenderGraphBuilder for RenderGraph {
} }
if config.add_main_pass { if config.add_main_pass {
self.add_node_named( self.add_node(
node::MAIN_PASS, node::MAIN_PASS,
PassNode::new(PassDescriptor { PassNode::new(PassDescriptor {
color_attachments: vec![RenderPassColorAttachmentDescriptor { color_attachments: vec![RenderPassColorAttachmentDescriptor {
@ -124,7 +124,7 @@ impl BaseRenderGraphBuilder for RenderGraph {
} }
} }
self.add_node_named( self.add_node(
node::PRIMARY_SWAP_CHAIN, node::PRIMARY_SWAP_CHAIN,
WindowSwapChainNode::new( WindowSwapChainNode::new(
WindowReference::Primary, WindowReference::Primary,

View File

@ -11,7 +11,7 @@ pub struct RenderGraph {
} }
impl RenderGraph { impl RenderGraph {
pub fn add_node<T>(&mut self, node: T) -> NodeId pub fn add_node_nameless<T>(&mut self, node: T) -> NodeId
where where
T: Node, T: Node,
{ {
@ -20,7 +20,7 @@ impl RenderGraph {
id id
} }
pub fn add_node_named<T>(&mut self, name: impl Into<Cow<'static, str>>, node: T) -> NodeId pub fn add_node<T>(&mut self, name: impl Into<Cow<'static, str>>, node: T) -> NodeId
where where
T: Node, T: Node,
{ {
@ -33,15 +33,15 @@ impl RenderGraph {
id id
} }
pub fn add_system_node<T>(&mut self, node: T) -> NodeId pub fn add_system_node_nameless<T>(&mut self, node: T) -> NodeId
where where
T: SystemNode + 'static, T: SystemNode + 'static,
{ {
self.new_node_systems.push(node.get_system()); self.new_node_systems.push(node.get_system());
self.add_node(node) self.add_node_nameless(node)
} }
pub fn add_system_node_named<T>( pub fn add_system_node<T>(
&mut self, &mut self,
name: impl Into<Cow<'static, str>>, name: impl Into<Cow<'static, str>>,
node: T, node: T,
@ -50,7 +50,7 @@ impl RenderGraph {
T: SystemNode + 'static, T: SystemNode + 'static,
{ {
self.new_node_systems.push(node.get_system()); self.new_node_systems.push(node.get_system());
self.add_node_named(name, node) self.add_node(name, node)
} }
pub fn get_node_state( pub fn get_node_state(
@ -365,10 +365,10 @@ mod tests {
#[test] #[test]
pub fn test_graph_edges() { pub fn test_graph_edges() {
let mut graph = RenderGraph::default(); let mut graph = RenderGraph::default();
let a_id = graph.add_node_named("A", TestNode::new(0, 1)); let a_id = graph.add_node("A", TestNode::new(0, 1));
let b_id = graph.add_node_named("B", TestNode::new(0, 1)); let b_id = graph.add_node("B", TestNode::new(0, 1));
let c_id = graph.add_node_named("C", TestNode::new(1, 1)); let c_id = graph.add_node("C", TestNode::new(1, 1));
let d_id = graph.add_node_named("D", TestNode::new(1, 0)); let d_id = graph.add_node("D", TestNode::new(1, 0));
graph.add_slot_edge("A", "out_0", "C", "in_0").unwrap(); graph.add_slot_edge("A", "out_0", "C", "in_0").unwrap();
graph.add_node_edge("B", "C").unwrap(); graph.add_node_edge("B", "C").unwrap();
@ -438,7 +438,7 @@ mod tests {
let mut graph = RenderGraph::default(); let mut graph = RenderGraph::default();
graph.add_node_named("A", MyNode { value: 42 }); graph.add_node("A", MyNode { value: 42 });
let node: &MyNode = graph.get_node("A").unwrap(); let node: &MyNode = graph.get_node("A").unwrap();
assert_eq!(node.value, 42, "node value matches"); assert_eq!(node.value, 42, "node value matches");
@ -455,9 +455,9 @@ mod tests {
pub fn test_slot_already_occupied() { pub fn test_slot_already_occupied() {
let mut graph = RenderGraph::default(); let mut graph = RenderGraph::default();
graph.add_node_named("A", TestNode::new(0, 1)); graph.add_node("A", TestNode::new(0, 1));
graph.add_node_named("B", TestNode::new(0, 1)); graph.add_node("B", TestNode::new(0, 1));
graph.add_node_named("C", TestNode::new(1, 1)); graph.add_node("C", TestNode::new(1, 1));
graph.add_slot_edge("A", 0, "C", 0).unwrap(); graph.add_slot_edge("A", 0, "C", 0).unwrap();
assert_eq!( assert_eq!(
@ -475,8 +475,8 @@ mod tests {
pub fn test_edge_already_exists() { pub fn test_edge_already_exists() {
let mut graph = RenderGraph::default(); let mut graph = RenderGraph::default();
graph.add_node_named("A", TestNode::new(0, 1)); graph.add_node("A", TestNode::new(0, 1));
graph.add_node_named("B", TestNode::new(1, 0)); graph.add_node("B", TestNode::new(1, 0));
graph.add_slot_edge("A", 0, "B", 0).unwrap(); graph.add_slot_edge("A", 0, "B", 0).unwrap();
assert_eq!( assert_eq!(

View File

@ -323,16 +323,16 @@ mod tests {
// //
// H -> I -> J // H -> I -> J
let a_id = graph.add_node_named("A", TestNode::new(0, 1)); let a_id = graph.add_node("A", TestNode::new(0, 1));
let b_id = graph.add_node_named("B", TestNode::new(2, 1)); let b_id = graph.add_node("B", TestNode::new(2, 1));
let c_id = graph.add_node_named("C", TestNode::new(2, 1)); let c_id = graph.add_node("C", TestNode::new(2, 1));
let d_id = graph.add_node_named("D", TestNode::new(1, 0)); let d_id = graph.add_node("D", TestNode::new(1, 0));
let e_id = graph.add_node_named("E", TestNode::new(0, 1)); let e_id = graph.add_node("E", TestNode::new(0, 1));
let f_id = graph.add_node_named("F", TestNode::new(0, 2)); let f_id = graph.add_node("F", TestNode::new(0, 2));
let g_id = graph.add_node_named("G", TestNode::new(1, 0)); let g_id = graph.add_node("G", TestNode::new(1, 0));
let h_id = graph.add_node_named("H", TestNode::new(0, 1)); let h_id = graph.add_node("H", TestNode::new(0, 1));
let i_id = graph.add_node_named("I", TestNode::new(1, 1)); let i_id = graph.add_node("I", TestNode::new(1, 1));
let j_id = graph.add_node_named("J", TestNode::new(1, 0)); let j_id = graph.add_node("J", TestNode::new(1, 0));
graph.add_node_edge("A", "B").unwrap(); graph.add_node_edge("A", "B").unwrap();
graph.add_node_edge("B", "C").unwrap(); graph.add_node_edge("B", "C").unwrap();
@ -445,16 +445,16 @@ mod tests {
// //
// H -> I -> J // H -> I -> J
let _a_id = graph.add_node_named("A", TestNode::new(0, 1)); let _a_id = graph.add_node("A", TestNode::new(0, 1));
let b_id = graph.add_node_named("B", TestNode::new(2, 1)); let b_id = graph.add_node("B", TestNode::new(2, 1));
let c_id = graph.add_node_named("C", TestNode::new(2, 1)); let c_id = graph.add_node("C", TestNode::new(2, 1));
let d_id = graph.add_node_named("D", TestNode::new(1, 0)); let d_id = graph.add_node("D", TestNode::new(1, 0));
let _e_id = graph.add_node_named("E", TestNode::new(0, 1)); let _e_id = graph.add_node("E", TestNode::new(0, 1));
let f_id = graph.add_node_named("F", TestNode::new(0, 2)); let f_id = graph.add_node("F", TestNode::new(0, 2));
let g_id = graph.add_node_named("G", TestNode::new(1, 0)); let g_id = graph.add_node("G", TestNode::new(1, 0));
let h_id = graph.add_node_named("H", TestNode::new(0, 1)); let h_id = graph.add_node("H", TestNode::new(0, 1));
let i_id = graph.add_node_named("I", TestNode::new(1, 1)); let i_id = graph.add_node("I", TestNode::new(1, 1));
let j_id = graph.add_node_named("J", TestNode::new(1, 0)); let j_id = graph.add_node("J", TestNode::new(1, 0));
graph.add_node_edge("A", "B").unwrap(); graph.add_node_edge("A", "B").unwrap();
graph.add_node_edge("B", "C").unwrap(); graph.add_node_edge("B", "C").unwrap();

View File

@ -67,13 +67,13 @@ pub trait UiRenderGraphBuilder {
impl UiRenderGraphBuilder for RenderGraph { impl UiRenderGraphBuilder for RenderGraph {
fn add_ui_graph(&mut self, resources: &Resources) -> &mut Self { fn add_ui_graph(&mut self, resources: &Resources) -> &mut Self {
self.add_system_node_named( self.add_system_node(
"color_material", "color_material",
AssetUniformNode::<ColorMaterial>::new(false), AssetUniformNode::<ColorMaterial>::new(false),
); );
self.add_node_edge("color_material", base_render_graph::node::MAIN_PASS) self.add_node_edge("color_material", base_render_graph::node::MAIN_PASS)
.unwrap(); .unwrap();
self.add_system_node_named("rect", UniformNode::<Rect>::new(false)); self.add_system_node("rect", UniformNode::<Rect>::new(false));
self.add_node_edge("rect", base_render_graph::node::MAIN_PASS) self.add_node_edge("rect", base_render_graph::node::MAIN_PASS)
.unwrap(); .unwrap();
let mut pipelines = resources let mut pipelines = resources

View File

@ -56,7 +56,7 @@ fn setup(
})); }));
render_graph render_graph
.add_system_node_named("my_material", AssetUniformNode::<MyMaterial>::new(true)); .add_system_node("my_material", AssetUniformNode::<MyMaterial>::new(true));
let main_pass: &mut PassNode = render_graph.get_node_mut("main_pass").unwrap(); let main_pass: &mut PassNode = render_graph.get_node_mut("main_pass").unwrap();
main_pass.add_pipeline( main_pass.add_pipeline(
pipeline_handle, pipeline_handle,

View File

@ -65,7 +65,7 @@ fn setup(
))), ))),
})); }));
render_graph render_graph
.add_system_node_named("my_material", AssetUniformNode::<MyMaterial>::new(true)); .add_system_node("my_material", AssetUniformNode::<MyMaterial>::new(true));
let main_pass: &mut PassNode = render_graph.get_node_mut("main_pass").unwrap(); let main_pass: &mut PassNode = render_graph.get_node_mut("main_pass").unwrap();
main_pass.add_pipeline( main_pass.add_pipeline(
pipeline_handle, pipeline_handle,