diff --git a/Cargo.lock b/Cargo.lock index bcfec8c..80e32ee 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2200,14 +2200,29 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" dependencies = [ "pin-project-lite", + "tracing-attributes", "tracing-core", ] +[[package]] +name = "tracing-attributes" +version = "0.1.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "tracing-core" version = "0.1.33" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" +dependencies = [ + "once_cell", +] [[package]] name = "ttf-parser" @@ -3109,13 +3124,13 @@ dependencies = [ "dirs-next", "futures", "lazy_static", - "log", "once_cell", "parking_lot", "regex", "rustyline", "thiserror 2.0.12", "tokio", + "tracing", "wgpu", "winit", ] diff --git a/engine/src/core/render/mod.rs b/engine/src/core/render/mod.rs index 19e36a2..b2569eb 100644 --- a/engine/src/core/render/mod.rs +++ b/engine/src/core/render/mod.rs @@ -1,3 +1,5 @@ +use std::io::{Read, Write}; +use std::ops::Deref; use std::sync::Arc; use ctx::WgpuCtx; @@ -29,7 +31,7 @@ impl ApplicationHandler for App<'_> { self.ctx = Some(wgpu_ctx) } } - + fn window_event( &mut self, event_loop: &ActiveEventLoop, @@ -39,11 +41,13 @@ impl ApplicationHandler for App<'_> { match event { WindowEvent::CloseRequested => { if let Some(index) = self.window.iter().position(|window| window.id() == window_id) { - let window = self.window.remove(index); - // how do i close a window :( - window.set_title("Dead window"); + let mut window = self.window.remove(index); + let mut window = Arc::into_inner(window); + window = None; + drop(window); - debug!("Window closed, exiting"); + + println!("Window: {:?} closed, exiting",window_id); } if self.window.is_empty() { event_loop.exit();