diff options
| author | 2022-03-17 00:59:35 -0300 | |
|---|---|---|
| committer | 2022-04-26 18:58:52 -0300 | |
| commit | 83ab27b5cbb20de79e532687a342a5f4036e3046 (patch) | |
| tree | f13909898b6af6ea01a750b3ba6b16a260f1363c /winit | |
| parent | 5356bb9bdb0074683722be194f36169836824af8 (diff) | |
| download | iced-83ab27b5cbb20de79e532687a342a5f4036e3046.tar.gz iced-83ab27b5cbb20de79e532687a342a5f4036e3046.tar.bz2 iced-83ab27b5cbb20de79e532687a342a5f4036e3046.zip | |
Add graphics information to `iced_winit`
Diffstat (limited to '')
| -rw-r--r-- | winit/src/application.rs | 14 | 
1 files changed, 11 insertions, 3 deletions
| 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::<A, E, C>( @@ -262,6 +263,8 @@ async fn run_instance<A, E, C>(          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<A, E, C>(                          &mut debug,                          &mut messages,                          &window, +                        &graphics_info,                      );                      // Update window @@ -516,6 +520,7 @@ pub fn update<A: Application, E: Executor>(      debug: &mut Debug,      messages: &mut Vec<A::Message>,      window: &winit::window::Window, +    graphics_info: &window::GraphicsInformation,  ) {      for message in messages.drain(..) {          debug.log_message(&message); @@ -524,7 +529,7 @@ pub fn update<A: Application, E: Executor>(          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<Message: 'static + std::fmt::Debug + Send, E: Executor>(      clipboard: &mut Clipboard,      proxy: &mut winit::event_loop::EventLoopProxy<Message>,      window: &winit::window::Window, +    graphics_info: &window::GraphicsInformation,  ) {      use iced_native::command;      use iced_native::system; @@ -591,6 +597,8 @@ pub fn run_command<Message: 'static + std::fmt::Debug + Send, E: Executor>(                              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) | 
