summaryrefslogtreecommitdiff
path: root/engine
diff options
context:
space:
mode:
authorHampusM <hampus@hampusmat.com>2026-04-24 17:51:08 +0200
committerHampusM <hampus@hampusmat.com>2026-04-24 19:06:09 +0200
commit06ce858fce9ee624fa2b0b73ff0df0aaf3ce1ce6 (patch)
tree5d7183c586e10563324c9b968e83afd5863967f6 /engine
parente9689c56db2a07df8c2b11bde7d44678fda97fb5 (diff)
fix(engine): make render pass surfaces current
Diffstat (limited to 'engine')
-rw-r--r--engine/src/renderer.rs10
-rw-r--r--engine/src/renderer/main_render_pass.rs4
2 files changed, 10 insertions, 4 deletions
diff --git a/engine/src/renderer.rs b/engine/src/renderer.rs
index bd9816b..744b41e 100644
--- a/engine/src/renderer.rs
+++ b/engine/src/renderer.rs
@@ -414,7 +414,17 @@ pub fn enqueue_commands_from_render_passes(
{
let mut last_render_pass_draw_props = active_draw_props.draw_properties.clone();
+ let mut last_surface_id: Option<SurfaceId> = None;
+
for render_pass in render_passes.passes.drain(..) {
+ if last_surface_id
+ .is_none_or(|last_surface_id| last_surface_id != render_pass.surface_id)
+ {
+ command_queue.push(Command::MakeCurrent(render_pass.surface_id));
+
+ last_surface_id = Some(render_pass.surface_id);
+ }
+
if render_pass.draw_properties != last_render_pass_draw_props {
command_queue.push(Command::UpdateDrawProperties(
render_pass.draw_properties.clone(),
diff --git a/engine/src/renderer/main_render_pass.rs b/engine/src/renderer/main_render_pass.rs
index 1868f3d..e7964dd 100644
--- a/engine/src/renderer/main_render_pass.rs
+++ b/engine/src/renderer/main_render_pass.rs
@@ -58,10 +58,6 @@ pub fn add_main_render_passes(
draw_properties: RendererDrawProperties::default(),
});
- render_pass
- .commands
- .push(RendererCommand::MakeCurrent(surface_spec.id));
-
let default_texture_asset = assets
.get_handle_to_loaded::<Texture>(TEXTURE_WHITE_1X1_ASSET_LABEL.clone())
.expect("Not possible");