mirror of
https://github.com/emilk/egui.git
synced 2026-08-30 05:10:03 -04:00
Use explicit Arc::clone to clarify when clones are cheap (#7784)
This commit is contained in:
@@ -216,7 +216,7 @@ impl<'app> GlowWinitApp<'app> {
|
||||
storage.as_deref(),
|
||||
&mut self.native_options,
|
||||
)?;
|
||||
let gl = painter.gl().clone();
|
||||
let gl = Arc::clone(painter.gl());
|
||||
|
||||
let max_texture_side = painter.max_texture_side();
|
||||
glutin.max_texture_side = Some(max_texture_side);
|
||||
@@ -234,9 +234,9 @@ impl<'app> GlowWinitApp<'app> {
|
||||
&self.app_name,
|
||||
&self.native_options,
|
||||
storage,
|
||||
Some(gl.clone()),
|
||||
Some(Arc::clone(&gl)),
|
||||
Some(Box::new({
|
||||
let painter = painter.clone();
|
||||
let painter = Rc::clone(&painter);
|
||||
move |native| painter.borrow_mut().register_native_texture(native)
|
||||
})),
|
||||
#[cfg(feature = "wgpu_no_default_features")]
|
||||
@@ -244,7 +244,7 @@ impl<'app> GlowWinitApp<'app> {
|
||||
);
|
||||
|
||||
{
|
||||
let event_loop_proxy = self.repaint_proxy.clone();
|
||||
let event_loop_proxy = Arc::clone(&self.repaint_proxy);
|
||||
integration
|
||||
.egui_ctx
|
||||
.set_request_repaint_callback(move |info| {
|
||||
|
||||
@@ -219,7 +219,7 @@ impl<'app> WgpuWinitApp<'app> {
|
||||
|
||||
{
|
||||
profiling::scope!("set_window");
|
||||
pollster::block_on(painter.set_window(ViewportId::ROOT, Some(window.clone())))?;
|
||||
pollster::block_on(painter.set_window(ViewportId::ROOT, Some(Arc::clone(&window))))?;
|
||||
}
|
||||
|
||||
let wgpu_render_state = painter.render_state();
|
||||
@@ -238,7 +238,7 @@ impl<'app> WgpuWinitApp<'app> {
|
||||
);
|
||||
|
||||
{
|
||||
let event_loop_proxy = self.repaint_proxy.clone();
|
||||
let event_loop_proxy = Arc::clone(&self.repaint_proxy);
|
||||
|
||||
egui_ctx.set_request_repaint_callback(move |info| {
|
||||
log::trace!("request_repaint_callback: {info:?}");
|
||||
@@ -610,7 +610,7 @@ impl WgpuWinitRunning<'_> {
|
||||
|
||||
{
|
||||
profiling::scope!("set_window");
|
||||
pollster::block_on(painter.set_window(viewport_id, Some(window.clone())))?;
|
||||
pollster::block_on(painter.set_window(viewport_id, Some(Arc::clone(window))))?;
|
||||
}
|
||||
|
||||
let Some(egui_winit) = egui_winit.as_mut() else {
|
||||
@@ -919,7 +919,7 @@ impl Viewport {
|
||||
let window = Arc::new(window);
|
||||
|
||||
if let Err(err) =
|
||||
pollster::block_on(painter.set_window(viewport_id, Some(window.clone())))
|
||||
pollster::block_on(painter.set_window(viewport_id, Some(Arc::clone(&window))))
|
||||
{
|
||||
log::error!("on set_window: viewport_id {viewport_id:?} {err}");
|
||||
}
|
||||
@@ -1051,7 +1051,8 @@ fn render_immediate_viewport(
|
||||
|
||||
{
|
||||
profiling::scope!("set_window");
|
||||
if let Err(err) = pollster::block_on(painter.set_window(ids.this, Some(window.clone()))) {
|
||||
if let Err(err) = pollster::block_on(painter.set_window(ids.this, Some(Arc::clone(window))))
|
||||
{
|
||||
log::error!(
|
||||
"when rendering viewport_id={:?}, set_window Error {err}",
|
||||
ids.this
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
use std::sync::Arc;
|
||||
|
||||
use egui::{TexturesDelta, UserData, ViewportCommand};
|
||||
|
||||
use crate::{App, epi, web::web_painter::WebPainter};
|
||||
@@ -12,7 +14,7 @@ pub struct AppRunner {
|
||||
painter: Box<dyn WebPainter>,
|
||||
pub(crate) input: super::WebInput,
|
||||
app: Box<dyn epi::App>,
|
||||
pub(crate) needs_repaint: std::sync::Arc<NeedRepaint>,
|
||||
pub(crate) needs_repaint: Arc<NeedRepaint>,
|
||||
last_save_time: f64,
|
||||
pub(crate) text_agent: TextAgent,
|
||||
|
||||
@@ -63,7 +65,7 @@ impl AppRunner {
|
||||
canvas,
|
||||
&web_options,
|
||||
)?;
|
||||
gl = Some(painter.gl().clone());
|
||||
gl = Some(Arc::clone(painter.gl()));
|
||||
Box::new(painter) as Box<dyn WebPainter>
|
||||
}
|
||||
|
||||
@@ -138,10 +140,9 @@ impl AppRunner {
|
||||
wgpu_render_state,
|
||||
};
|
||||
|
||||
let needs_repaint: std::sync::Arc<NeedRepaint> =
|
||||
std::sync::Arc::new(NeedRepaint::new(web_options.max_fps));
|
||||
let needs_repaint: Arc<NeedRepaint> = Arc::new(NeedRepaint::new(web_options.max_fps));
|
||||
{
|
||||
let needs_repaint = needs_repaint.clone();
|
||||
let needs_repaint = Arc::clone(&needs_repaint);
|
||||
egui_ctx.set_request_repaint_callback(move |info| {
|
||||
needs_repaint.repaint_after(info.delay.as_secs_f64());
|
||||
});
|
||||
|
||||
@@ -91,7 +91,7 @@ impl WebPainter for WebPainterGlow {
|
||||
for data in data {
|
||||
events.push(Event::Screenshot {
|
||||
viewport_id: ViewportId::default(),
|
||||
image: image.clone(),
|
||||
image: Arc::clone(&image),
|
||||
user_data: data,
|
||||
});
|
||||
}
|
||||
|
||||
@@ -105,7 +105,7 @@ impl WebPainterWgpu {
|
||||
surface_configuration,
|
||||
depth_stencil_format,
|
||||
depth_texture_view: None,
|
||||
on_surface_error: options.wgpu_options.on_surface_error.clone(),
|
||||
on_surface_error: Arc::clone(&options.wgpu_options.on_surface_error) as _,
|
||||
screen_capture_state: None,
|
||||
capture_tx,
|
||||
capture_rx,
|
||||
@@ -336,7 +336,7 @@ impl WebPainter for WebPainterWgpu {
|
||||
events.push(Event::Screenshot {
|
||||
viewport_id,
|
||||
user_data: data,
|
||||
image: screenshot.clone(),
|
||||
image: Arc::clone(&screenshot),
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user