summaryrefslogtreecommitdiff
path: root/engine/src/rendering
diff options
context:
space:
mode:
authorHampusM <hampus@hampusmat.com>2026-06-25 01:05:56 +0200
committerHampusM <hampus@hampusmat.com>2026-06-30 18:24:46 +0200
commit1a3cc9a6b7c20589db5c56e20aa2c69ac61763a0 (patch)
tree2186e0946aeef1b029aa28e74420baf634f0e21e /engine/src/rendering
parent6f1186236aca39c49816bc3d52f28dd880cff6a9 (diff)
refactor(engine): render only to window targeted windows
Diffstat (limited to 'engine/src/rendering')
-rw-r--r--engine/src/rendering/backend/opengl.rs8
-rw-r--r--engine/src/rendering/main_render_pass.rs13
2 files changed, 9 insertions, 12 deletions
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<TargetWindow>,
Without<CreationReady>,
Without<WindowGlConfig>,
Without<WindowClosed>,
@@ -258,7 +261,10 @@ fn prepare_windows(
#[tracing::instrument(skip_all)]
fn init_window_graphics(
- window_query: Query<(&Window, &WindowGlConfig), (Without<SurfaceSpec>,)>,
+ window_query: Query<
+ (&Window, &WindowGlConfig),
+ (With<TargetWindow>, Without<SurfaceSpec>,)
+ >,
windowing_context: Single<WindowingContext>,
graphics_props: Single<GraphicsProperties>,
mut graphics_ctx: Single<GraphicsContext>,
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<RenderableEntity<'_>, (Without<NoDraw>,)>,
- window_surface_spec_query: Query<(&SurfaceSpec,), (With<Window>,)>,
+ window_surface_spec_query: Query<(&SurfaceSpec,), (With<Window>, With<TargetWindow>)>,
assets: Single<Assets>,
shader_context: Single<ShaderContext>,
mut render_passes: Single<RenderPasses>,