From d232706f6830be5685435feb8126f08aeb7b2c93 Mon Sep 17 00:00:00 2001 From: Florian RICHER Date: Sun, 25 May 2025 18:05:20 +0200 Subject: [PATCH] engine_render: Resize swapchain --- crates/engine_render/src/window/mod.rs | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/crates/engine_render/src/window/mod.rs b/crates/engine_render/src/window/mod.rs index 9af4184..d019444 100644 --- a/crates/engine_render/src/window/mod.rs +++ b/crates/engine_render/src/window/mod.rs @@ -136,9 +136,15 @@ fn window_size_dependent_setup(images: &[Arc]) -> Vec> { .collect::>() } -fn need_update_window_surface(window_surface: Res) -> bool { +fn need_update_window_surface( + window_surface: Res, + window_handle: Res, +) -> bool { match &window_surface.surface { - Some(surface) => surface.recreate_swapchain, + Some(surface) => { + let window_size: [f32; 2] = window_handle.0.inner_size().into(); + surface.recreate_swapchain || surface.viewport.extent != window_size + } None => false, } } @@ -147,16 +153,8 @@ fn update_window_surface( mut window_surface: ResMut, window_handle: Res, ) { - if window_surface.surface.is_none() { - return; - } - let window_surface = window_surface.surface.as_mut().unwrap(); - if !window_surface.recreate_swapchain { - return; - } - let window_size = window_handle.0.inner_size(); let (new_swapchain, new_images) = window_surface .swapchain