
This makes the [New Bevy Renderer](#2535) the default (and only) renderer. The new renderer isn't _quite_ ready for the final release yet, but I want as many people as possible to start testing it so we can identify bugs and address feedback prior to release. The examples are all ported over and operational with a few exceptions: * I removed a good portion of the examples in the `shader` folder. We still have some work to do in order to make these examples possible / ergonomic / worthwhile: #3120 and "high level shader material plugins" are the big ones. This is a temporary measure. * Temporarily removed the multiple_windows example: doing this properly in the new renderer will require the upcoming "render targets" changes. Same goes for the render_to_texture example. * Removed z_sort_debug: entity visibility sort info is no longer available in app logic. we could do this on the "render app" side, but i dont consider it a priority.
45 lines
1.3 KiB
Rust
45 lines
1.3 KiB
Rust
mod context;
|
|
mod edge;
|
|
mod graph;
|
|
mod node;
|
|
mod node_slot;
|
|
|
|
pub use context::*;
|
|
pub use edge::*;
|
|
pub use graph::*;
|
|
pub use node::*;
|
|
pub use node_slot::*;
|
|
|
|
use thiserror::Error;
|
|
|
|
#[derive(Error, Debug, Eq, PartialEq)]
|
|
pub enum RenderGraphError {
|
|
#[error("node does not exist")]
|
|
InvalidNode(NodeLabel),
|
|
#[error("output node slot does not exist")]
|
|
InvalidOutputNodeSlot(SlotLabel),
|
|
#[error("input node slot does not exist")]
|
|
InvalidInputNodeSlot(SlotLabel),
|
|
#[error("node does not match the given type")]
|
|
WrongNodeType,
|
|
#[error("attempted to connect a node output slot to an incompatible input node slot")]
|
|
MismatchedNodeSlots {
|
|
output_node: NodeId,
|
|
output_slot: usize,
|
|
input_node: NodeId,
|
|
input_slot: usize,
|
|
},
|
|
#[error("attempted to add an edge that already exists")]
|
|
EdgeAlreadyExists(Edge),
|
|
#[error("node has an unconnected input slot")]
|
|
UnconnectedNodeInputSlot { node: NodeId, input_slot: usize },
|
|
#[error("node has an unconnected output slot")]
|
|
UnconnectedNodeOutputSlot { node: NodeId, output_slot: usize },
|
|
#[error("node input slot already occupied")]
|
|
NodeInputSlotAlreadyOccupied {
|
|
node: NodeId,
|
|
input_slot: usize,
|
|
occupied_by_node: NodeId,
|
|
},
|
|
}
|