diff --git a/src/main.rs b/src/main.rs index a115a89..88d8c8e 100644 --- a/src/main.rs +++ b/src/main.rs @@ -27,7 +27,7 @@ use bevy::render::settings::{Backends, RenderCreation, WgpuSettings}; use bevy::render::{RenderDebugFlags, RenderPlugin}; use bevy::scene::ScenePlugin; use bevy::window::{CompositeAlphaMode, PresentMode}; -use bevy::winit::{WakeUp, WinitPlugin}; +use bevy::winit::{WakeUp, WinitPlugin, WinitSettings, UpdateMode}; use bevy_dmabuf::import::DmabufImportPlugin; use bevy_mod_openxr::action_set_attaching::OxrActionAttachingPlugin; use bevy_mod_openxr::action_set_syncing::OxrActionSyncingPlugin; @@ -315,10 +315,10 @@ fn bevy_loop( .async_compute .on_thread_spawn = Some(enter_runtime_context.clone()); plugins = plugins.set(task_pool_plugin); - if args.flatscreen + let flatscreenmode = args.flatscreen || std::env::var_os("DISPLAY").is_some_and(|s| !s.is_empty()) - || std::env::var_os("WAYLAND_DISPLAY").is_some_and(|s| !s.is_empty()) - { + || std::env::var_os("WAYLAND_DISPLAY").is_some_and(|s| !s.is_empty()); + if flatscreenmode { let mut plugin = WinitPlugin::::default(); plugin.run_on_any_thread = true; plugins = plugins @@ -378,6 +378,13 @@ fn bevy_loop( }), ); + if flatscreenmode { + app.insert_resource(WinitSettings { + focused_mode: UpdateMode::Continuous, + unfocused_mode: UpdateMode::Continuous, + }); + } + app.add_plugins(bevy_sk::hand::HandPlugin); // app.add_plugins(HandGizmosPlugin); app.world_mut().resource_mut::().brightness = 1000.0;