diff options
| author | HampusM <hampus@hampusmat.com> | 2026-04-24 17:51:08 +0200 |
|---|---|---|
| committer | HampusM <hampus@hampusmat.com> | 2026-04-24 19:06:09 +0200 |
| commit | 06ce858fce9ee624fa2b0b73ff0df0aaf3ce1ce6 (patch) | |
| tree | 5d7183c586e10563324c9b968e83afd5863967f6 /engine/src/renderer.rs | |
| parent | e9689c56db2a07df8c2b11bde7d44678fda97fb5 (diff) | |
fix(engine): make render pass surfaces current
Diffstat (limited to 'engine/src/renderer.rs')
| -rw-r--r-- | engine/src/renderer.rs | 10 |
1 files changed, 10 insertions, 0 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(), |
