From 764b424dfc2b2163f21483a6d1f05ea1da62c561 Mon Sep 17 00:00:00 2001 From: Richard Date: Thu, 27 Jan 2022 06:02:19 -0300 Subject: Add logging to window and context creation --- winit/src/application.rs | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) (limited to 'winit/src/application.rs') diff --git a/winit/src/application.rs b/winit/src/application.rs index ed077507..6f2ea1a5 100644 --- a/winit/src/application.rs +++ b/winit/src/application.rs @@ -137,14 +137,16 @@ where let subscription = application.subscription(); - let window = settings - .window - .into_builder( - &application.title(), - application.mode(), - event_loop.primary_monitor(), - settings.id, - ) + let builder = settings.window.into_builder( + &application.title(), + application.mode(), + event_loop.primary_monitor(), + settings.id, + ); + + log::info!("Window builder: {:#?}", builder); + + let window = builder .build(&event_loop) .map_err(Error::WindowCreationFailed)?; -- cgit From fed8da1c9078638a96ae57a9dd6edacb0a1936b3 Mon Sep 17 00:00:00 2001 From: Richard Date: Wed, 16 Feb 2022 19:20:26 -0300 Subject: Add new `System` variant to `Action` --- winit/src/application.rs | 1 + 1 file changed, 1 insertion(+) (limited to 'winit/src/application.rs') diff --git a/winit/src/application.rs b/winit/src/application.rs index 6f2ea1a5..33f53315 100644 --- a/winit/src/application.rs +++ b/winit/src/application.rs @@ -573,6 +573,7 @@ pub fn run_command( }); } }, + command::Action::System(_action) => {} } } } -- cgit From 6295a72aa66381af9567b0b25e22d960ac672998 Mon Sep 17 00:00:00 2001 From: Richard Date: Tue, 8 Mar 2022 19:49:03 -0300 Subject: Implement `QueryInformation` for `iced_winit` --- winit/src/application.rs | 45 ++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 44 insertions(+), 1 deletion(-) (limited to 'winit/src/application.rs') diff --git a/winit/src/application.rs b/winit/src/application.rs index 33f53315..d184c0c3 100644 --- a/winit/src/application.rs +++ b/winit/src/application.rs @@ -540,6 +540,7 @@ pub fn run_command( window: &winit::window::Window, ) { use iced_native::command; + use iced_native::system; use iced_native::window; for action in command.actions() { @@ -573,7 +574,49 @@ pub fn run_command( }); } }, - command::Action::System(_action) => {} + command::Action::System(action) => match action { + system::Action::QueryInformation(tag) => { + #[cfg(feature = "sysinfo")] + let information = { + use sysinfo::{ProcessorExt, System, SystemExt}; + let mut system = System::new_all(); + system.refresh_all(); + + let cpu = system.global_processor_info(); + let unknown = String::from("unknown"); + + let information = system::Information { + system_name: system + .name() + .unwrap_or(unknown.clone()), + system_kernel: system + .kernel_version() + .unwrap_or(unknown.clone()), + system_version: system + .long_os_version() + .unwrap_or(unknown.clone()), + cpu_brand: cpu.brand().into(), + cpu_vendor: cpu.vendor_id().into(), + cpu_name: cpu.name().into(), + cpu_cores: system + .physical_core_count() + .map_or(unknown, |cores| cores.to_string()), + memory_total: system.total_memory().to_string(), + }; + + Some(information) + }; + + #[cfg(not(feature = "sysinfo"))] + let information = None; + + let message = tag(information); + + proxy + .send_event(message) + .expect("Send message to event loop"); + } + }, } } } -- cgit From c2f45a192fdeba5eec79158dda8640a99a36fdb1 Mon Sep 17 00:00:00 2001 From: Richard Date: Tue, 8 Mar 2022 19:58:34 -0300 Subject: Turn `Information` fields `pub` --- winit/src/application.rs | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) (limited to 'winit/src/application.rs') diff --git a/winit/src/application.rs b/winit/src/application.rs index d184c0c3..b2f9be29 100644 --- a/winit/src/application.rs +++ b/winit/src/application.rs @@ -583,25 +583,16 @@ pub fn run_command( system.refresh_all(); let cpu = system.global_processor_info(); - let unknown = String::from("unknown"); let information = system::Information { - system_name: system - .name() - .unwrap_or(unknown.clone()), - system_kernel: system - .kernel_version() - .unwrap_or(unknown.clone()), - system_version: system - .long_os_version() - .unwrap_or(unknown.clone()), + system_name: system.name(), + system_kernel: system.kernel_version(), + system_version: system.long_os_version(), cpu_brand: cpu.brand().into(), cpu_vendor: cpu.vendor_id().into(), cpu_name: cpu.name().into(), - cpu_cores: system - .physical_core_count() - .map_or(unknown, |cores| cores.to_string()), - memory_total: system.total_memory().to_string(), + cpu_cores: system.physical_core_count(), + memory_total: system.total_memory(), }; Some(information) -- cgit From 53538b65b1c557015c2900fc28b8916cf719a10b Mon Sep 17 00:00:00 2001 From: Richard Date: Thu, 10 Mar 2022 03:02:17 -0300 Subject: Add `system_information` example --- winit/src/application.rs | 2 -- 1 file changed, 2 deletions(-) (limited to 'winit/src/application.rs') diff --git a/winit/src/application.rs b/winit/src/application.rs index b2f9be29..f5a58f2f 100644 --- a/winit/src/application.rs +++ b/winit/src/application.rs @@ -589,8 +589,6 @@ pub fn run_command( system_kernel: system.kernel_version(), system_version: system.long_os_version(), cpu_brand: cpu.brand().into(), - cpu_vendor: cpu.vendor_id().into(), - cpu_name: cpu.name().into(), cpu_cores: system.physical_core_count(), memory_total: system.total_memory(), }; -- cgit From 83ab27b5cbb20de79e532687a342a5f4036e3046 Mon Sep 17 00:00:00 2001 From: Richard Date: Thu, 17 Mar 2022 00:59:35 -0300 Subject: Add graphics information to `iced_winit` --- winit/src/application.rs | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'winit/src/application.rs') diff --git a/winit/src/application.rs b/winit/src/application.rs index f5a58f2f..9d65d769 100644 --- a/winit/src/application.rs +++ b/winit/src/application.rs @@ -167,17 +167,18 @@ where let mut clipboard = Clipboard::connect(&window); + let (compositor, renderer) = C::new(compositor_settings, Some(&window))?; + run_command( init_command, &mut runtime, &mut clipboard, &mut proxy, &window, + &compositor.get_information(), ); runtime.track(subscription); - let (compositor, renderer) = C::new(compositor_settings, Some(&window))?; - let (mut sender, receiver) = mpsc::unbounded(); let mut instance = Box::pin(run_instance::( @@ -262,6 +263,8 @@ async fn run_instance( physical_size.height, ); + let graphics_info = compositor.get_information(); + let mut user_interface = ManuallyDrop::new(build_user_interface( &mut application, user_interface::Cache::default(), @@ -317,6 +320,7 @@ async fn run_instance( &mut debug, &mut messages, &window, + &graphics_info, ); // Update window @@ -516,6 +520,7 @@ pub fn update( debug: &mut Debug, messages: &mut Vec, window: &winit::window::Window, + graphics_info: &window::GraphicsInformation, ) { for message in messages.drain(..) { debug.log_message(&message); @@ -524,7 +529,7 @@ pub fn update( let command = runtime.enter(|| application.update(message)); debug.update_finished(); - run_command(command, runtime, clipboard, proxy, window); + run_command(command, runtime, clipboard, proxy, window, graphics_info); } let subscription = application.subscription(); @@ -538,6 +543,7 @@ pub fn run_command( clipboard: &mut Clipboard, proxy: &mut winit::event_loop::EventLoopProxy, window: &winit::window::Window, + graphics_info: &window::GraphicsInformation, ) { use iced_native::command; use iced_native::system; @@ -591,6 +597,8 @@ pub fn run_command( cpu_brand: cpu.brand().into(), cpu_cores: system.physical_core_count(), memory_total: system.total_memory(), + graphics_adapter: graphics_info.adapter.clone(), + graphics_backend: graphics_info.backend.clone(), }; Some(information) -- cgit From c9ea1f11dec96df04ade463ea9f33062a85c9219 Mon Sep 17 00:00:00 2001 From: Richard Date: Thu, 14 Apr 2022 02:11:43 -0300 Subject: Add memory usage to `Information` struct --- winit/src/application.rs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'winit/src/application.rs') diff --git a/winit/src/application.rs b/winit/src/application.rs index 9d65d769..1865f344 100644 --- a/winit/src/application.rs +++ b/winit/src/application.rs @@ -584,12 +584,21 @@ pub fn run_command( system::Action::QueryInformation(tag) => { #[cfg(feature = "sysinfo")] let information = { - use sysinfo::{ProcessorExt, System, SystemExt}; + use sysinfo::{ + ProcessExt, ProcessorExt, System, SystemExt, + }; let mut system = System::new_all(); system.refresh_all(); let cpu = system.global_processor_info(); + let memory_used = sysinfo::get_current_pid() + .and_then(|pid| { + system.process(pid).ok_or("Process not found") + }) + .and_then(|process| Ok(process.memory())) + .ok(); + let information = system::Information { system_name: system.name(), system_kernel: system.kernel_version(), @@ -597,6 +606,7 @@ pub fn run_command( cpu_brand: cpu.brand().into(), cpu_cores: system.physical_core_count(), memory_total: system.total_memory(), + memory_used, graphics_adapter: graphics_info.adapter.clone(), graphics_backend: graphics_info.backend.clone(), }; -- cgit From 053f352f68863e31a4576b8462a54b4e65f629d9 Mon Sep 17 00:00:00 2001 From: Richard Date: Thu, 14 Apr 2022 11:15:54 -0300 Subject: Introduce `get_information` --- winit/src/application.rs | 36 ++---------------------------------- 1 file changed, 2 insertions(+), 34 deletions(-) (limited to 'winit/src/application.rs') diff --git a/winit/src/application.rs b/winit/src/application.rs index 1865f344..37a0d584 100644 --- a/winit/src/application.rs +++ b/winit/src/application.rs @@ -582,40 +582,8 @@ pub fn run_command( }, command::Action::System(action) => match action { system::Action::QueryInformation(tag) => { - #[cfg(feature = "sysinfo")] - let information = { - use sysinfo::{ - ProcessExt, ProcessorExt, System, SystemExt, - }; - let mut system = System::new_all(); - system.refresh_all(); - - let cpu = system.global_processor_info(); - - let memory_used = sysinfo::get_current_pid() - .and_then(|pid| { - system.process(pid).ok_or("Process not found") - }) - .and_then(|process| Ok(process.memory())) - .ok(); - - let information = system::Information { - system_name: system.name(), - system_kernel: system.kernel_version(), - system_version: system.long_os_version(), - cpu_brand: cpu.brand().into(), - cpu_cores: system.physical_core_count(), - memory_total: system.total_memory(), - memory_used, - graphics_adapter: graphics_info.adapter.clone(), - graphics_backend: graphics_info.backend.clone(), - }; - - Some(information) - }; - - #[cfg(not(feature = "sysinfo"))] - let information = None; + let information = + crate::system::get_information(graphics_info); let message = tag(information); -- cgit From 5be1ac18fe1757d31386f98774d823bd1137eea4 Mon Sep 17 00:00:00 2001 From: Richard Date: Tue, 26 Apr 2022 19:09:09 -0300 Subject: Rename `GraphicsInformation` to `Information` --- winit/src/application.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'winit/src/application.rs') diff --git a/winit/src/application.rs b/winit/src/application.rs index 37a0d584..f5e4c66d 100644 --- a/winit/src/application.rs +++ b/winit/src/application.rs @@ -520,7 +520,7 @@ pub fn update( debug: &mut Debug, messages: &mut Vec, window: &winit::window::Window, - graphics_info: &window::GraphicsInformation, + graphics_info: &window::Information, ) { for message in messages.drain(..) { debug.log_message(&message); @@ -543,7 +543,7 @@ pub fn run_command( clipboard: &mut Clipboard, proxy: &mut winit::event_loop::EventLoopProxy, window: &winit::window::Window, - graphics_info: &window::GraphicsInformation, + graphics_info: &window::Information, ) { use iced_native::command; use iced_native::system; -- cgit From 984d1f375ecec301dd42b049eecd1b88e3bca32a Mon Sep 17 00:00:00 2001 From: Richard Date: Tue, 26 Apr 2022 19:18:18 -0300 Subject: Move `compositor` module access from `window` to `crate` --- winit/src/application.rs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'winit/src/application.rs') diff --git a/winit/src/application.rs b/winit/src/application.rs index f5e4c66d..853ede0c 100644 --- a/winit/src/application.rs +++ b/winit/src/application.rs @@ -13,6 +13,7 @@ use crate::{ use iced_futures::futures; use iced_futures::futures::channel::mpsc; +use iced_graphics::compositor; use iced_graphics::window; use iced_native::program::Program; use iced_native::user_interface::{self, UserInterface}; @@ -426,7 +427,7 @@ async fn run_instance( } Err(error) => match error { // This is an unrecoverable error. - window::SurfaceError::OutOfMemory => { + compositor::SurfaceError::OutOfMemory => { panic!("{:?}", error); } _ => { @@ -520,7 +521,7 @@ pub fn update( debug: &mut Debug, messages: &mut Vec, window: &winit::window::Window, - graphics_info: &window::Information, + graphics_info: &compositor::Information, ) { for message in messages.drain(..) { debug.log_message(&message); @@ -543,7 +544,7 @@ pub fn run_command( clipboard: &mut Clipboard, proxy: &mut winit::event_loop::EventLoopProxy, window: &winit::window::Window, - graphics_info: &window::Information, + graphics_info: &compositor::Information, ) { use iced_native::command; use iced_native::system; -- cgit From 005e516b5e1e8bb22f2da8524ffe4529f3b60ba1 Mon Sep 17 00:00:00 2001 From: Richard Date: Tue, 26 Apr 2022 19:20:38 -0300 Subject: Rename `get_information` to `fetch_information` --- winit/src/application.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'winit/src/application.rs') diff --git a/winit/src/application.rs b/winit/src/application.rs index 853ede0c..59f0624c 100644 --- a/winit/src/application.rs +++ b/winit/src/application.rs @@ -176,7 +176,7 @@ where &mut clipboard, &mut proxy, &window, - &compositor.get_information(), + &compositor.fetch_information(), ); runtime.track(subscription); @@ -264,7 +264,7 @@ async fn run_instance( physical_size.height, ); - let graphics_info = compositor.get_information(); + let graphics_info = compositor.fetch_information(); let mut user_interface = ManuallyDrop::new(build_user_interface( &mut application, -- cgit From 6e167675d6a51a8a78d93439719ebffe35dcfdef Mon Sep 17 00:00:00 2001 From: Richard Date: Wed, 27 Apr 2022 15:40:29 -0300 Subject: Use closure internally to fetch `graphics_info` --- winit/src/application.rs | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) (limited to 'winit/src/application.rs') diff --git a/winit/src/application.rs b/winit/src/application.rs index 59f0624c..9d881475 100644 --- a/winit/src/application.rs +++ b/winit/src/application.rs @@ -176,7 +176,7 @@ where &mut clipboard, &mut proxy, &window, - &compositor.fetch_information(), + || compositor.fetch_information(), ); runtime.track(subscription); @@ -264,8 +264,6 @@ async fn run_instance( physical_size.height, ); - let graphics_info = compositor.fetch_information(); - let mut user_interface = ManuallyDrop::new(build_user_interface( &mut application, user_interface::Cache::default(), @@ -321,7 +319,7 @@ async fn run_instance( &mut debug, &mut messages, &window, - &graphics_info, + || compositor.fetch_information(), ); // Update window @@ -521,7 +519,7 @@ pub fn update( debug: &mut Debug, messages: &mut Vec, window: &winit::window::Window, - graphics_info: &compositor::Information, + graphics_info: impl FnOnce() -> compositor::Information + Copy, ) { for message in messages.drain(..) { debug.log_message(&message); @@ -544,7 +542,7 @@ pub fn run_command( clipboard: &mut Clipboard, proxy: &mut winit::event_loop::EventLoopProxy, window: &winit::window::Window, - graphics_info: &compositor::Information, + graphics_info: impl FnOnce() -> compositor::Information + Copy, ) { use iced_native::command; use iced_native::system; @@ -584,7 +582,7 @@ pub fn run_command( command::Action::System(action) => match action { system::Action::QueryInformation(tag) => { let information = - crate::system::get_information(graphics_info); + crate::system::get_information(graphics_info()); let message = tag(information); -- cgit From 5eefa5d4ead9ebfac7dab1db9aebf9797d2dad38 Mon Sep 17 00:00:00 2001 From: Richard Date: Wed, 27 Apr 2022 16:18:27 -0300 Subject: Simplify the `QueryInformation` Action --- winit/src/application.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'winit/src/application.rs') diff --git a/winit/src/application.rs b/winit/src/application.rs index 9d881475..04dd55f1 100644 --- a/winit/src/application.rs +++ b/winit/src/application.rs @@ -582,7 +582,7 @@ pub fn run_command( command::Action::System(action) => match action { system::Action::QueryInformation(tag) => { let information = - crate::system::get_information(graphics_info()); + crate::system::information(graphics_info()); let message = tag(information); -- cgit From 93bfe2c75ec97ef78f993926c703f040dde4a5f3 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Sat, 30 Apr 2022 13:37:57 +0200 Subject: Expose `system` module through feature flag --- winit/src/application.rs | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) (limited to 'winit/src/application.rs') diff --git a/winit/src/application.rs b/winit/src/application.rs index 04dd55f1..1b7a4c8d 100644 --- a/winit/src/application.rs +++ b/winit/src/application.rs @@ -542,7 +542,7 @@ pub fn run_command( clipboard: &mut Clipboard, proxy: &mut winit::event_loop::EventLoopProxy, window: &winit::window::Window, - graphics_info: impl FnOnce() -> compositor::Information + Copy, + _graphics_info: impl FnOnce() -> compositor::Information + Copy, ) { use iced_native::command; use iced_native::system; @@ -580,15 +580,18 @@ pub fn run_command( } }, command::Action::System(action) => match action { - system::Action::QueryInformation(tag) => { - let information = - crate::system::information(graphics_info()); + system::Action::QueryInformation(_tag) => { + #[cfg(feature = "sysinfo")] + { + let information = + crate::system::information(_graphics_info()); - let message = tag(information); + let message = _tag(information); - proxy - .send_event(message) - .expect("Send message to event loop"); + proxy + .send_event(message) + .expect("Send message to event loop"); + } } }, } -- cgit From e24f26c28f09916f04f536a52368dcd1a4f34ed4 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Wed, 4 May 2022 14:02:54 +0200 Subject: Fix feature name in `cfg` block in `iced_winit` --- winit/src/application.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'winit/src/application.rs') diff --git a/winit/src/application.rs b/winit/src/application.rs index 1b7a4c8d..421ae398 100644 --- a/winit/src/application.rs +++ b/winit/src/application.rs @@ -581,7 +581,7 @@ pub fn run_command( }, command::Action::System(action) => match action { system::Action::QueryInformation(_tag) => { - #[cfg(feature = "sysinfo")] + #[cfg(feature = "system")] { let information = crate::system::information(_graphics_info()); -- cgit From f1ec0af5070fe2752967cdc38ed66b8b70882366 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Wed, 4 May 2022 14:25:04 +0200 Subject: Run `system::information` in a different thread ... since it seems it can block for a couple of seconds. --- winit/src/application.rs | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) (limited to 'winit/src/application.rs') diff --git a/winit/src/application.rs b/winit/src/application.rs index 421ae398..90b03d56 100644 --- a/winit/src/application.rs +++ b/winit/src/application.rs @@ -583,14 +583,19 @@ pub fn run_command( system::Action::QueryInformation(_tag) => { #[cfg(feature = "system")] { - let information = - crate::system::information(_graphics_info()); + let graphics_info = _graphics_info(); + let proxy = proxy.clone(); - let message = _tag(information); + let _ = std::thread::spawn(move || { + let information = + crate::system::information(graphics_info); - proxy - .send_event(message) - .expect("Send message to event loop"); + let message = _tag(information); + + proxy + .send_event(message) + .expect("Send message to event loop") + }); } } }, -- cgit