1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
mod graph_builder;
pub use graph_builder::RenderGraphBuilder;
pub use graph_builder::RenderGraphQueue;

mod graph_image;
pub use graph_image::RenderGraphImageConstraint;
pub use graph_image::RenderGraphImageExtents;
pub use graph_image::RenderGraphImageSpecification;
pub use graph_image::RenderGraphImageUsageId;
pub use graph_image::RenderGraphImageViewOptions;
use graph_image::*;

mod graph_buffer;
pub use graph_buffer::RenderGraphBufferConstraint;
pub use graph_buffer::RenderGraphBufferSpecification;
pub use graph_buffer::RenderGraphBufferUsageId;
use graph_buffer::*;

mod graph_node;
pub use graph_node::RenderGraphNodeId;
use graph_node::*;

mod graph_pass;
use graph_pass::*;

mod graph_plan;
pub use graph_plan::RenderGraphPlan;

mod graph_resource_cache;
pub use graph_resource_cache::RenderGraphCache;

mod prepared_graph;
pub use prepared_graph::OnBeginExecuteGraphArgs;
pub use prepared_graph::PreparedRenderGraph;
pub use prepared_graph::SwapchainSurfaceInfo;
pub use prepared_graph::VisitComputeNodeArgs;
pub use prepared_graph::VisitRenderpassNodeArgs;

use rafx_api::RafxResult;

pub type RenderGraphResourceName = &'static str;

enum RenderGraphNodeVisitNodeCallback {
    Renderpass(Box<RenderGraphNodeVisitRenderpassNodeCallback>),
    Compute(Box<RenderGraphNodeVisitComputeNodeCallback>),
}

type RenderGraphNodeVisitRenderpassNodeCallback =
    dyn Fn(VisitRenderpassNodeArgs) -> RafxResult<()> + Send;

type RenderGraphNodeVisitComputeNodeCallback =
    dyn Fn(VisitComputeNodeArgs) -> RafxResult<()> + Send;