From 2c24f2acfb77f7672eacb31a2ee3be5f53caf5dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois?= Date: Sun, 3 Sep 2023 21:39:07 +0200 Subject: [PATCH 1/3] don't create windows on init event --- crates/bevy_winit/src/lib.rs | 44 +----------------------------------- 1 file changed, 1 insertion(+), 43 deletions(-) diff --git a/crates/bevy_winit/src/lib.rs b/crates/bevy_winit/src/lib.rs index d6ea22e368388..4bb12c3b85e36 100644 --- a/crates/bevy_winit/src/lib.rs +++ b/crates/bevy_winit/src/lib.rs @@ -48,7 +48,7 @@ use bevy_window::{ pub use winit::platform::android::activity::AndroidApp; use winit::{ - event::{self, DeviceEvent, Event, StartCause, WindowEvent}, + event::{self, DeviceEvent, Event, WindowEvent}, event_loop::{ControlFlow, EventLoop, EventLoopBuilder, EventLoopWindowTarget}, }; @@ -365,48 +365,6 @@ pub fn winit_runner(mut app: App) { match event { event::Event::NewEvents(start_cause) => match start_cause { - StartCause::Init => { - #[cfg(any(target_os = "android", target_os = "ios", target_os = "macos"))] - { - #[cfg(not(target_arch = "wasm32"))] - let ( - commands, - mut windows, - event_writer, - winit_windows, - adapters, - handlers, - accessibility_requested, - ) = create_window_system_state.get_mut(&mut app.world); - - #[cfg(target_arch = "wasm32")] - let ( - commands, - mut windows, - event_writer, - winit_windows, - adapters, - handlers, - accessibility_requested, - event_channel, - ) = create_window_system_state.get_mut(&mut app.world); - - create_windows( - event_loop, - commands, - windows.iter_mut(), - event_writer, - winit_windows, - adapters, - handlers, - accessibility_requested, - #[cfg(target_arch = "wasm32")] - event_channel, - ); - - create_window_system_state.apply(&mut app.world); - } - } _ => { if let Some(t) = runner_state.scheduled_update { let now = Instant::now(); From a2ea6eb6d0f4d7200f2ee80b86b97e823fe1afcf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois?= Date: Sun, 3 Sep 2023 22:13:34 +0200 Subject: [PATCH 2/3] clippy --- crates/bevy_winit/src/lib.rs | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/crates/bevy_winit/src/lib.rs b/crates/bevy_winit/src/lib.rs index 4bb12c3b85e36..c812de66afca7 100644 --- a/crates/bevy_winit/src/lib.rs +++ b/crates/bevy_winit/src/lib.rs @@ -364,15 +364,13 @@ pub fn winit_runner(mut app: App) { } match event { - event::Event::NewEvents(start_cause) => match start_cause { - _ => { - if let Some(t) = runner_state.scheduled_update { - let now = Instant::now(); - let remaining = t.checked_duration_since(now).unwrap_or(Duration::ZERO); - runner_state.wait_elapsed = remaining.is_zero(); - } + event::Event::NewEvents(_) => { + if let Some(t) = runner_state.scheduled_update { + let now = Instant::now(); + let remaining = t.checked_duration_since(now).unwrap_or(Duration::ZERO); + runner_state.wait_elapsed = remaining.is_zero(); } - }, + } event::Event::WindowEvent { event, window_id, .. } => { From e87bfce5139dc0a76a84982b8dffbaeb280b2937 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois?= Date: Fri, 22 Sep 2023 23:46:43 +0200 Subject: [PATCH 3/3] smaller change --- crates/bevy_winit/src/lib.rs | 58 +++++++++++++++++++++++++++++++----- 1 file changed, 51 insertions(+), 7 deletions(-) diff --git a/crates/bevy_winit/src/lib.rs b/crates/bevy_winit/src/lib.rs index c812de66afca7..92e6674674b83 100644 --- a/crates/bevy_winit/src/lib.rs +++ b/crates/bevy_winit/src/lib.rs @@ -48,7 +48,7 @@ use bevy_window::{ pub use winit::platform::android::activity::AndroidApp; use winit::{ - event::{self, DeviceEvent, Event, WindowEvent}, + event::{self, DeviceEvent, Event, StartCause, WindowEvent}, event_loop::{ControlFlow, EventLoop, EventLoopBuilder, EventLoopWindowTarget}, }; @@ -364,13 +364,57 @@ pub fn winit_runner(mut app: App) { } match event { - event::Event::NewEvents(_) => { - if let Some(t) = runner_state.scheduled_update { - let now = Instant::now(); - let remaining = t.checked_duration_since(now).unwrap_or(Duration::ZERO); - runner_state.wait_elapsed = remaining.is_zero(); + event::Event::NewEvents(start_cause) => match start_cause { + StartCause::Init => { + #[cfg(any(target_os = "ios", target_os = "macos"))] + { + #[cfg(not(target_arch = "wasm32"))] + let ( + commands, + mut windows, + event_writer, + winit_windows, + adapters, + handlers, + accessibility_requested, + ) = create_window_system_state.get_mut(&mut app.world); + + #[cfg(target_arch = "wasm32")] + let ( + commands, + mut windows, + event_writer, + winit_windows, + adapters, + handlers, + accessibility_requested, + event_channel, + ) = create_window_system_state.get_mut(&mut app.world); + + create_windows( + event_loop, + commands, + windows.iter_mut(), + event_writer, + winit_windows, + adapters, + handlers, + accessibility_requested, + #[cfg(target_arch = "wasm32")] + event_channel, + ); + + create_window_system_state.apply(&mut app.world); + } } - } + _ => { + if let Some(t) = runner_state.scheduled_update { + let now = Instant::now(); + let remaining = t.checked_duration_since(now).unwrap_or(Duration::ZERO); + runner_state.wait_elapsed = remaining.is_zero(); + } + } + }, event::Event::WindowEvent { event, window_id, .. } => {