From 2e8780e8050e262db0917ef71304457dd65295ff Mon Sep 17 00:00:00 2001 From: Silas Bartha Date: Tue, 23 Apr 2024 13:20:51 -0400 Subject: Initial Commit --- src/lib.rs | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 src/lib.rs (limited to 'src/lib.rs') diff --git a/src/lib.rs b/src/lib.rs new file mode 100644 index 0000000..f5c7120 --- /dev/null +++ b/src/lib.rs @@ -0,0 +1,42 @@ +use bevy::{prelude::*, render::{RenderApp, extract_component::{UniformComponentPlugin, ExtractComponentPlugin}, render_graph::{RenderGraphApp, ViewNodeRunner}}, asset::embedded_asset, core_pipeline::core_3d::graph::{Core3d, Node3d}}; + +pub struct OutlinePostProcessPlugin; + +pub mod components; +mod resources; +mod nodes; + +impl Plugin for OutlinePostProcessPlugin { + fn build(&self, app: &mut App) { + embedded_asset!(app, "../assets/shaders/outline_post_process.wgsl"); + + app.add_plugins(( + UniformComponentPlugin::::default(), + ExtractComponentPlugin::::default(), + )); + + let Ok(render_app) = app.get_sub_app_mut(RenderApp) else { + return; + }; + + render_app.add_render_graph_node::>( + Core3d, + nodes::OutlineRenderLabel, + ).add_render_graph_edges( + Core3d, + ( + Node3d::Tonemapping, + nodes::OutlineRenderLabel, + Node3d::EndMainPassPostProcessing, + ), + ); + } + + fn finish(&self, app: &mut App) { + let Ok(render_app) = app.get_sub_app_mut(RenderApp) else { + return; + }; + + render_app.init_resource::(); + } +} -- cgit v1.2.3