bevy/examples/shader
IceSentry 614de3019c
Add RenderGraphApp to simplify adding render nodes (#8007)
# Objective

- Adding a node to the render_graph can be quite verbose and error prone
because there's a lot of moving parts to it.

## Solution

- Encapsulate this in a simple utility method
	- Mostly intended for optional nodes that have specific ordering
- Requires that the `Node` impl `FromWorld`, but every internal node is
built using a new function taking a `&mut World` so it was essentially
already `FromWorld`
- Use it for the bloom, fxaa and taa, nodes. 
- The main nodes don't use it because they rely more on the order of
many nodes being added

---

## Changelog

- Impl `FromWorld` for `BloomNode`, `FxaaNode` and `TaaNode`
- Added `RenderGraph::add_node_edges()`
- Added `RenderGraph::sub_graph()`
- Added `RenderGraph::sub_graph_mut()`
- Added `RenderGraphApp`, `RenderGraphApp::add_render_graph_node`,
`RenderGraphApp::add_render_graph_edges`,
`RenderGraphApp::add_render_graph_edge`

## Notes

~~This was taken out of https://github.com/bevyengine/bevy/pull/7995
because it works on it's own. Once the linked PR is done, the new
`add_node()` will be simplified a bit since the input/output params
won't be necessary.~~

This feature will be useful in most of the upcoming render nodes so it's
impact will be more relevant at that point.

Partially fixes #7985 

## Future work

* Add a way to automatically label nodes or at least make it part of the
trait. This would remove one more field from the functions added in this
PR
* Use it in the main pass 2d/3d

---------

Co-authored-by: Carter Anderson <mcanders1@gmail.com>
2023-04-04 00:50:22 +00:00
..
animate_shader.rs Schedule-First: the new and improved add_systems (#8079) 2023-03-18 01:45:34 +00:00
array_texture.rs Schedule-First: the new and improved add_systems (#8079) 2023-03-18 01:45:34 +00:00
compute_shader_game_of_life.rs Schedule-First: the new and improved add_systems (#8079) 2023-03-18 01:45:34 +00:00
custom_vertex_attribute.rs Schedule-First: the new and improved add_systems (#8079) 2023-03-18 01:45:34 +00:00
post_process_pass.rs Add RenderGraphApp to simplify adding render nodes (#8007) 2023-04-04 00:50:22 +00:00
post_processing.rs Schedule-First: the new and improved add_systems (#8079) 2023-03-18 01:45:34 +00:00
shader_defs.rs Schedule-First: the new and improved add_systems (#8079) 2023-03-18 01:45:34 +00:00
shader_instancing.rs Schedule-First: the new and improved add_systems (#8079) 2023-03-18 01:45:34 +00:00
shader_material.rs Schedule-First: the new and improved add_systems (#8079) 2023-03-18 01:45:34 +00:00
shader_material_glsl.rs Schedule-First: the new and improved add_systems (#8079) 2023-03-18 01:45:34 +00:00
shader_material_screenspace_texture.rs Schedule-First: the new and improved add_systems (#8079) 2023-03-18 01:45:34 +00:00
shader_prepass.rs Temporal Antialiasing (TAA) (#7291) 2023-03-27 22:22:40 +00:00
texture_binding_array.rs Schedule-First: the new and improved add_systems (#8079) 2023-03-18 01:45:34 +00:00