From 1a3cc9a6b7c20589db5c56e20aa2c69ac61763a0 Mon Sep 17 00:00:00 2001 From: HampusM Date: Thu, 25 Jun 2026 01:05:56 +0200 Subject: refactor(engine): render only to window targeted windows --- engine/src/rendering/backend/opengl.rs | 8 +++++++- engine/src/rendering/main_render_pass.rs | 13 ++----------- 2 files changed, 9 insertions(+), 12 deletions(-) (limited to 'engine/src/rendering') diff --git a/engine/src/rendering/backend/opengl.rs b/engine/src/rendering/backend/opengl.rs index 47c2145..c1e4823 100644 --- a/engine/src/rendering/backend/opengl.rs +++ b/engine/src/rendering/backend/opengl.rs @@ -3,6 +3,7 @@ use std::borrow::Cow; use std::collections::HashMap; +use ecs::query::term::With; use glutin::config::Config as GlutinConfig; use glutin::display::GetGlDisplay; use glutin::error::Error as GlutinError; @@ -101,6 +102,7 @@ use crate::rendering::{ SurfaceSpec, POST_RENDER_PHASE, RENDER_PHASE, + TargetWindow }; use crate::shader::cursor::BindingValue as ShaderBindingValue; use crate::shader::{ @@ -183,6 +185,7 @@ fn prepare_windows( window_query: Query< (Option<&Window>, &mut WindowCreationAttributes), ( + With, Without, Without, Without, @@ -258,7 +261,10 @@ fn prepare_windows( #[tracing::instrument(skip_all)] fn init_window_graphics( - window_query: Query<(&Window, &WindowGlConfig), (Without,)>, + window_query: Query< + (&Window, &WindowGlConfig), + (With, Without,) + >, windowing_context: Single, graphics_props: Single, mut graphics_ctx: Single, diff --git a/engine/src/rendering/main_render_pass.rs b/engine/src/rendering/main_render_pass.rs index a733482..3429e34 100644 --- a/engine/src/rendering/main_render_pass.rs +++ b/engine/src/rendering/main_render_pass.rs @@ -6,16 +6,7 @@ use crate::ecs::Query; use crate::model::{MaterialSearchResult, Model}; use crate::rendering::object::{Id as ObjectId, Store as ObjectStore}; use crate::rendering::{ - BufferClearMask, - Command, - DrawMeshOptions, - DrawProperties, - DrawPropertiesUpdateFlags, - MeshUsage, - PendingShaderBindings, - RenderPass, - RenderPasses, - SurfaceSpec, + BufferClearMask, Command, DrawMeshOptions, DrawProperties, DrawPropertiesUpdateFlags, MeshUsage, PendingShaderBindings, RenderPass, RenderPasses, SurfaceSpec, TargetWindow }; use crate::shader::default::ASSET_LABEL as DEFAULT_SHADER_ASSET_LABEL; use crate::shader::{ @@ -36,7 +27,7 @@ type RenderableEntity<'a> = ( #[tracing::instrument(skip_all)] pub fn add_main_render_passes( renderable_query: Query, (Without,)>, - window_surface_spec_query: Query<(&SurfaceSpec,), (With,)>, + window_surface_spec_query: Query<(&SurfaceSpec,), (With, With)>, assets: Single, shader_context: Single, mut render_passes: Single, -- cgit v1.2.3-18-g5258