summaryrefslogtreecommitdiffstats
path: root/winit
diff options
context:
space:
mode:
authorLibravatar Richard <richardsoncusto@gmail.com>2022-04-27 15:40:29 -0300
committerLibravatar Richard <richardsoncusto@gmail.com>2022-04-27 15:43:41 -0300
commit6e167675d6a51a8a78d93439719ebffe35dcfdef (patch)
tree916ec6025b58de3893cc97f9bac379c335976f04 /winit
parent8643fbef90fc16371e27ae0142eb7e4c6b432d29 (diff)
downloadiced-6e167675d6a51a8a78d93439719ebffe35dcfdef.tar.gz
iced-6e167675d6a51a8a78d93439719ebffe35dcfdef.tar.bz2
iced-6e167675d6a51a8a78d93439719ebffe35dcfdef.zip
Use closure internally to fetch `graphics_info`
Diffstat (limited to 'winit')
-rw-r--r--winit/src/application.rs12
-rw-r--r--winit/src/system.rs8
2 files changed, 9 insertions, 11 deletions
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<A, E, C>(
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<A, E, C>(
&mut debug,
&mut messages,
&window,
- &graphics_info,
+ || compositor.fetch_information(),
);
// Update window
@@ -521,7 +519,7 @@ pub fn update<A: Application, E: Executor>(
debug: &mut Debug,
messages: &mut Vec<A::Message>,
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<Message: 'static + std::fmt::Debug + Send, E: Executor>(
clipboard: &mut Clipboard,
proxy: &mut winit::event_loop::EventLoopProxy<Message>,
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<Message: 'static + std::fmt::Debug + Send, E: Executor>(
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);
diff --git a/winit/src/system.rs b/winit/src/system.rs
index f5f68593..beda2bdd 100644
--- a/winit/src/system.rs
+++ b/winit/src/system.rs
@@ -17,7 +17,7 @@ pub fn fetch_information<Message>(
#[cfg(feature = "sysinfo")]
pub(crate) fn get_information(
- graphics_info: &compositor::Information,
+ graphics_info: compositor::Information,
) -> Option<Information> {
use sysinfo::{ProcessExt, ProcessorExt, System, SystemExt};
let mut system = System::new_all();
@@ -38,8 +38,8 @@ pub(crate) fn get_information(
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(),
+ graphics_adapter: graphics_info.adapter,
+ graphics_backend: graphics_info.backend,
};
Some(information)
@@ -47,7 +47,7 @@ pub(crate) fn get_information(
#[cfg(not(feature = "sysinfo"))]
pub(crate) fn get_information(
- _graphics_info: &compositor::Information,
+ _graphics_info: compositor::Information,
) -> Option<Information> {
None
}