From 115e10be764c84ca44c8d3af3d646961145b0e34 Mon Sep 17 00:00:00 2001 From: Emil Ernerfeldt Date: Sun, 12 Nov 2023 16:11:38 +0100 Subject: [PATCH] Avoid some Window Rc clones --- crates/eframe/src/native/run.rs | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/crates/eframe/src/native/run.rs b/crates/eframe/src/native/run.rs index 9bee9db7c..5a6e3396a 100644 --- a/crates/eframe/src/native/run.rs +++ b/crates/eframe/src/native/run.rs @@ -1930,9 +1930,11 @@ mod wgpu_integration { if let Some(running) = &mut self.running { crate::profile_function!(); let mut shared = running.shared.borrow_mut(); - if let Some(Viewport { window, .. }) = shared.viewports.get(&id) { - let window = window.clone(); - return pollster::block_on(shared.painter.set_window(id, window.as_deref())); + let SharedState { + viewports, painter, .. + } = &mut *shared; + if let Some(Viewport { window, .. }) = viewports.get(&id) { + return pollster::block_on(painter.set_window(id, window.as_deref())); } } Ok(()) @@ -2516,11 +2518,11 @@ mod wgpu_integration { } for (viewport_id, command) in viewport_commands { - if let Some(window) = viewports.get(&viewport_id).and_then(|w| w.window.clone()) { + if let Some(window) = viewports.get(&viewport_id).and_then(|w| w.window.as_ref()) { let is_viewport_focused = self.focused_viewport == Some(viewport_id); egui_winit::process_viewport_commands( std::iter::once(command), - &window, + window, is_viewport_focused, ); }