From d72cd62aa2f3d1233d13dd144ef871d9c11468c6 Mon Sep 17 00:00:00 2001 From: Jonas Matser Date: Mon, 22 Feb 2021 09:38:28 +0100 Subject: [PATCH 1/3] Adds UiRenderGraphConfig --- crates/bevy_ui/src/lib.rs | 17 ++++++++++++++--- crates/bevy_ui/src/render/mod.rs | 32 +++++++++++++++++++++++--------- 2 files changed, 37 insertions(+), 12 deletions(-) diff --git a/crates/bevy_ui/src/lib.rs b/crates/bevy_ui/src/lib.rs index b066e1d29ea7b..463976518cb6c 100644 --- a/crates/bevy_ui/src/lib.rs +++ b/crates/bevy_ui/src/lib.rs @@ -24,8 +24,17 @@ use bevy_ecs::{IntoSystem, ParallelSystemDescriptorCoercion, SystemStage}; use bevy_render::render_graph::RenderGraph; use update::ui_z_system; -#[derive(Default)] -pub struct UiPlugin; +pub struct UiPlugin { + ui_render_graph_config: Option, +} + +impl Default for UiPlugin { + fn default() -> Self { + Self { + ui_render_graph_config: Some(UiRenderGraphConfig::default()), + } + } +} pub mod stage { pub const UI: &str = "ui"; @@ -56,6 +65,8 @@ impl Plugin for UiPlugin { let resources = app.resources(); let mut render_graph = resources.get_mut::().unwrap(); - render_graph.add_ui_graph(resources); + if let Some(ref config) = self.ui_render_graph_config { + render_graph.add_ui_graph(config, resources); + } } } diff --git a/crates/bevy_ui/src/render/mod.rs b/crates/bevy_ui/src/render/mod.rs index 50e92d883d899..f947347bbe715 100644 --- a/crates/bevy_ui/src/render/mod.rs +++ b/crates/bevy_ui/src/render/mod.rs @@ -77,12 +77,24 @@ pub mod camera { pub const CAMERA_UI: &str = "CameraUi"; } +pub struct UiRenderGraphConfig { + connect_ui_pass_to_main_depth_texture: bool, +} + +impl Default for UiRenderGraphConfig { + fn default() -> Self { + Self { + connect_ui_pass_to_main_depth_texture: true, + } + } +} + pub trait UiRenderGraphBuilder { - fn add_ui_graph(&mut self, resources: &Resources) -> &mut Self; + fn add_ui_graph(&mut self, config: &UiRenderGraphConfig, resources: &Resources) -> &mut Self; } impl UiRenderGraphBuilder for RenderGraph { - fn add_ui_graph(&mut self, resources: &Resources) -> &mut Self { + fn add_ui_graph(&mut self, config: &UiRenderGraphConfig, resources: &Resources) -> &mut Self { let mut pipelines = resources.get_mut::>().unwrap(); let mut shaders = resources.get_mut::>().unwrap(); let msaa = resources.get::().unwrap(); @@ -123,13 +135,15 @@ impl UiRenderGraphBuilder for RenderGraph { ) .unwrap(); - self.add_slot_edge( - base::node::MAIN_DEPTH_TEXTURE, - WindowTextureNode::OUT_TEXTURE, - node::UI_PASS, - "depth", - ) - .unwrap(); + if config.connect_ui_pass_to_main_depth_texture { + self.add_slot_edge( + base::node::MAIN_DEPTH_TEXTURE, + WindowTextureNode::OUT_TEXTURE, + node::UI_PASS, + "depth", + ) + .unwrap(); + } if msaa.samples > 1 { self.add_slot_edge( From 94d5cc01fbe2b1563276deb700bbe3e15e572e2d Mon Sep 17 00:00:00 2001 From: Jonas Matser Date: Mon, 22 Feb 2021 10:16:46 +0100 Subject: [PATCH 2/3] Make config field pub --- crates/bevy_ui/src/render/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/bevy_ui/src/render/mod.rs b/crates/bevy_ui/src/render/mod.rs index f947347bbe715..dc4302bdd00b9 100644 --- a/crates/bevy_ui/src/render/mod.rs +++ b/crates/bevy_ui/src/render/mod.rs @@ -78,7 +78,7 @@ pub mod camera { } pub struct UiRenderGraphConfig { - connect_ui_pass_to_main_depth_texture: bool, + pub connect_ui_pass_to_main_depth_texture: bool, } impl Default for UiRenderGraphConfig { From d0887e612b82f846b726d9f1884ad640a21d6b68 Mon Sep 17 00:00:00 2001 From: Jonas Matser Date: Mon, 22 Feb 2021 10:24:21 +0100 Subject: [PATCH 3/3] Make another field public --- crates/bevy_ui/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/bevy_ui/src/lib.rs b/crates/bevy_ui/src/lib.rs index 463976518cb6c..d3c9b4040ea29 100644 --- a/crates/bevy_ui/src/lib.rs +++ b/crates/bevy_ui/src/lib.rs @@ -25,7 +25,7 @@ use bevy_render::render_graph::RenderGraph; use update::ui_z_system; pub struct UiPlugin { - ui_render_graph_config: Option, + pub ui_render_graph_config: Option, } impl Default for UiPlugin {