From ba945b490065e2bb722ee22cbb054d9030eeaa31 Mon Sep 17 00:00:00 2001 From: Schmarni Date: Sun, 29 Dec 2024 22:45:27 +0100 Subject: [PATCH] refactor: Sleep in parallel while doing independent work Signed-off-by: Schmarni --- src/main.rs | 47 ++++++++++++++++++++++-------------- src/objects/input/sk_hand.rs | 10 ++++---- 2 files changed, 34 insertions(+), 23 deletions(-) diff --git a/src/main.rs b/src/main.rs index 6b4b972..d10eefa 100644 --- a/src/main.rs +++ b/src/main.rs @@ -42,7 +42,6 @@ use bevy_mod_xr::session::{XrFirst, XrPreDestroySession, XrSessionCreated, XrSes use bevy_mod_xr::spaces::XrPrimaryReferenceSpace; use bevy_plugin::{DbusConnection, InputUpdate, StardustBevyPlugin, StardustFirst}; use clap::Parser; -use tracing::level_filters::LevelFilter; use core::client::Client; use core::task; use directories::ProjectDirs; @@ -62,8 +61,10 @@ use stardust_xr::server; use std::ops::Deref; use std::path::PathBuf; use std::sync::Arc; +use std::thread; use tokio::net::UnixListener; use tokio::sync::Notify; +use tracing::level_filters::LevelFilter; use tracing::{debug_span, error, info, warn}; use tracing_subscriber::{fmt, prelude::*, EnvFilter}; use zbus::fdo::ObjectManager; @@ -332,7 +333,7 @@ fn bevy_loop( cams.iter().for_each(|e| { cmds.entity(e).remove::(); }); - let _span = debug_span!("spawn"); + let _span = debug_span!("spawn"); cmds.insert_resource(ClearColor(Color::NONE)); } *last_hidden = env_hidden; @@ -416,26 +417,36 @@ fn bevy_loop( { world.run_system_cached(sync_sets); } - world.run_schedule(InputUpdate); - let session = world.remove_resource::(); - let mut objects = world.remove_resource::().unwrap(); - objects.update(session.as_deref(), time); - world.insert_resource(objects); - if let Some(session) = session { - world.insert_resource(session); - } - input::process_input(); - nodes::root::Root::send_frame_events(world.resource::