diff --git a/Cargo.lock b/Cargo.lock index 1c2eea4..6aed92a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -67,6 +67,12 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc7eb209b1518d6bb87b283c20095f5228ecda460da70b44f0802523dea6da04" +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + [[package]] name = "android_system_properties" version = "0.1.5" @@ -361,6 +367,20 @@ dependencies = [ "num-traits", ] +[[package]] +name = "chrono" +version = "0.4.39" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e36cc9d416881d2e24f9a963be5fb1cd90966419ac844274161d10488b3e825" +dependencies = [ + "android-tzdata", + "iana-time-zone", + "js-sys", + "num-traits", + "wasm-bindgen", + "windows-targets 0.52.6", +] + [[package]] name = "codespan-reporting" version = "0.11.1" @@ -781,6 +801,29 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dfa686283ad6dd069f105e5ab091b04c62850d3e4cf5d67debad1933f55023df" +[[package]] +name = "iana-time-zone" +version = "0.1.61" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "windows-core 0.52.0", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + [[package]] name = "icu_collections" version = "1.5.0" @@ -2229,6 +2272,7 @@ name = "strafe-client" version = "0.10.5" dependencies = [ "bytemuck", + "chrono", "configparser", "ddsfile", "glam", @@ -2892,7 +2936,7 @@ dependencies = [ "web-sys", "wgpu-types", "windows", - "windows-core", + "windows-core 0.58.0", ] [[package]] @@ -2921,7 +2965,16 @@ version = "0.58.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd04d41d93c4992d421894c18c8b43496aa748dd4c081bac0dc93eb0489272b6" dependencies = [ - "windows-core", + "windows-core 0.58.0", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-core" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" +dependencies = [ "windows-targets 0.52.6", ] diff --git a/strafe-client/Cargo.toml b/strafe-client/Cargo.toml index ecacbaf..910f22e 100644 --- a/strafe-client/Cargo.toml +++ b/strafe-client/Cargo.toml @@ -16,6 +16,7 @@ roblox = ["dep:strafesnet_deferred_loader", "dep:strafesnet_rbx_loader"] [dependencies] bytemuck = { version = "1.13.1", features = ["derive"] } +chrono = "0.4.39" configparser = "3.0.2" ddsfile = "0.5.1" glam = "0.29.0" diff --git a/strafe-client/src/graphics_worker.rs b/strafe-client/src/graphics_worker.rs index 9950785..0205667 100644 --- a/strafe-client/src/graphics_worker.rs +++ b/strafe-client/src/graphics_worker.rs @@ -34,12 +34,12 @@ pub fn new<'a>( Instruction::Render(frame_state)=>{ if let Some((size,user_settings))=resize.take(){ println!("Resizing to {:?}",size); - let t0=std::time::Instant::now(); + //let t0=std::time::Instant::now(); config.width=size.width.max(1); config.height=size.height.max(1); surface.configure(&device,&config); graphics.resize(&device,&config,&user_settings); - println!("Resize took {:?}",t0.elapsed()); + //println!("Resize took {:?}",t0.elapsed()); } //this has to go deeper somehow let frame=match surface.get_current_texture(){ diff --git a/strafe-client/src/setup.rs b/strafe-client/src/setup.rs index 77f951b..be0601c 100644 --- a/strafe-client/src/setup.rs +++ b/strafe-client/src/setup.rs @@ -215,17 +215,17 @@ pub async fn setup_and_start(title:String){ }; println!("Entering event loop..."); - let root_time=std::time::Instant::now(); + let root_time=chrono::Utc::now(); run_event_loop(event_loop,window_thread,root_time).unwrap(); } fn run_event_loop( event_loop:winit::event_loop::EventLoop<()>, mut window_thread:crate::compat_worker::QNWorker>, - root_time:std::time::Instant + root_time:chrono::DateTime, )->Result<(),winit::error::EventLoopError>{ event_loop.run(move |event,elwt|{ - let time=integer::Time::from_nanos(root_time.elapsed().as_nanos() as i64); + let time=integer::Time::from_nanos((chrono::Utc::now()-root_time).num_nanoseconds().unwrap()); // *control_flow=if cfg!(feature="metal-auto-capture"){ // winit::event_loop::ControlFlow::Exit // }else{