diff options
Diffstat (limited to 'engine/src/rendering.rs')
| -rw-r--r-- | engine/src/rendering.rs | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/engine/src/rendering.rs b/engine/src/rendering.rs index 2ec0b38..e9e620e 100644 --- a/engine/src/rendering.rs +++ b/engine/src/rendering.rs @@ -121,6 +121,10 @@ impl Default for Extension } } +/// Marker component for windows that should be renderer to. +#[derive(Debug, Clone, Copy, Component)] +pub struct TargetWindow; + builder! { #[builder(name=GraphicsPropertiesBuilder, derives=(Debug, Clone))] #[derive(Debug, Clone, Sole)] @@ -400,7 +404,7 @@ impl Default for CommandQueue #[tracing::instrument(skip_all)] fn enqueue_commands_from_render_passes( - window_surface_spec_query: Query<(&SurfaceSpec,), (With<Window>,)>, + window_surface_spec_query: Query<(&SurfaceSpec,), (With<Window>, With<TargetWindow>)>, mut command_queue: Single<CommandQueue>, mut render_passes: Single<RenderPasses>, mut active_draw_props: Local<ActiveDrawProperties>, @@ -450,6 +454,10 @@ fn handle_window_changed( for evt_match in &observe { let window_ent = evt_match.get_entity(); + if window_ent.get::<TargetWindow>().is_none() { + continue; + } + let Some(window_surface_spec) = window_ent.get::<SurfaceSpec>() else { continue; }; @@ -485,6 +493,10 @@ fn handle_window_removed( let window_ent = evt_match.get_entity(); + if window_ent.get::<TargetWindow>().is_none() { + continue; + } + tracing::debug!( entity_id = %window_ent_id, title = %evt_match.get_ent_target_comp().title, |
