mirror of
https://github.com/emilk/egui.git
synced 2026-09-01 14:20:04 -04:00
Fix cyclical reference
Removed the last fix because there is not need for it now!
This commit is contained in:
@@ -1027,7 +1027,6 @@ mod glow_integration {
|
|||||||
|
|
||||||
let glutin_ctx = Arc::new(RwLock::new(gl_window));
|
let glutin_ctx = Arc::new(RwLock::new(gl_window));
|
||||||
|
|
||||||
let egui_ctx = integration.egui_ctx.clone();
|
|
||||||
let glutin = glutin_ctx.clone();
|
let glutin = glutin_ctx.clone();
|
||||||
let _gl = gl.clone();
|
let _gl = gl.clone();
|
||||||
let painter = Arc::new(RwLock::new(painter));
|
let painter = Arc::new(RwLock::new(painter));
|
||||||
@@ -1036,7 +1035,7 @@ mod glow_integration {
|
|||||||
|
|
||||||
// ## Sync Rendering
|
// ## Sync Rendering
|
||||||
integration.egui_ctx.set_render_sync_callback(
|
integration.egui_ctx.set_render_sync_callback(
|
||||||
move |mut viewport_builder, viewport_id, parent_id, render| {
|
move |egui_ctx, mut viewport_builder, viewport_id, parent_id, render| {
|
||||||
if viewport_builder.icon.is_none(){
|
if viewport_builder.icon.is_none(){
|
||||||
viewport_builder.icon = glutin.read().builders.get(&parent_id).and_then(|b|b.icon.clone());
|
viewport_builder.icon = glutin.read().builders.get(&parent_id).and_then(|b|b.icon.clone());
|
||||||
}
|
}
|
||||||
@@ -1129,7 +1128,7 @@ mod glow_integration {
|
|||||||
);
|
);
|
||||||
winit_state.handle_platform_output(
|
winit_state.handle_platform_output(
|
||||||
&win,
|
&win,
|
||||||
&egui_ctx,
|
egui_ctx,
|
||||||
output.platform_output,
|
output.platform_output,
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
@@ -1298,11 +1297,6 @@ mod glow_integration {
|
|||||||
.window
|
.window
|
||||||
.clone(),
|
.clone(),
|
||||||
);
|
);
|
||||||
running
|
|
||||||
.integration
|
|
||||||
.read()
|
|
||||||
.egui_ctx
|
|
||||||
.set_render_sync_callback(|_, _, _, _| {});
|
|
||||||
running.app.write().on_exit(Some(&running.gl));
|
running.app.write().on_exit(Some(&running.gl));
|
||||||
running.painter.write().destroy();
|
running.painter.write().destroy();
|
||||||
}
|
}
|
||||||
@@ -2064,7 +2058,6 @@ mod wgpu_integration {
|
|||||||
);
|
);
|
||||||
|
|
||||||
let _windows = windows.clone();
|
let _windows = windows.clone();
|
||||||
let egui_ctx = integration.egui_ctx.clone();
|
|
||||||
let time = integration.beginning;
|
let time = integration.beginning;
|
||||||
let painter = Arc::new(RwLock::new(painter));
|
let painter = Arc::new(RwLock::new(painter));
|
||||||
let _painter = painter.clone();
|
let _painter = painter.clone();
|
||||||
@@ -2072,7 +2065,7 @@ mod wgpu_integration {
|
|||||||
|
|
||||||
// ## Sync Rendering
|
// ## Sync Rendering
|
||||||
integration.egui_ctx.set_render_sync_callback(
|
integration.egui_ctx.set_render_sync_callback(
|
||||||
move |viewport_builder, viewport_id, parent_viewport_id, render| {
|
move |egui_ctx, viewport_builder, viewport_id, parent_viewport_id, render| {
|
||||||
// TODO: If the `viewport_builder` do not have a icon set the icon to be the icon of the parent viewport
|
// TODO: If the `viewport_builder` do not have a icon set the icon to be the icon of the parent viewport
|
||||||
|
|
||||||
if _windows.read().get(&viewport_id).is_none(){
|
if _windows.read().get(&viewport_id).is_none(){
|
||||||
@@ -2124,7 +2117,7 @@ mod wgpu_integration {
|
|||||||
|
|
||||||
winit_state.handle_platform_output(
|
winit_state.handle_platform_output(
|
||||||
&win,
|
&win,
|
||||||
&egui_ctx,
|
egui_ctx,
|
||||||
output.platform_output,
|
output.platform_output,
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
@@ -2203,12 +2196,6 @@ mod wgpu_integration {
|
|||||||
.save(running.app.as_mut(), window.clone());
|
.save(running.app.as_mut(), window.clone());
|
||||||
}
|
}
|
||||||
|
|
||||||
running
|
|
||||||
.integration
|
|
||||||
.read()
|
|
||||||
.egui_ctx
|
|
||||||
.set_render_sync_callback(|_, _, _, _| {});
|
|
||||||
|
|
||||||
#[cfg(feature = "glow")]
|
#[cfg(feature = "glow")]
|
||||||
running.app.on_exit(None);
|
running.app.on_exit(None);
|
||||||
|
|
||||||
|
|||||||
@@ -477,12 +477,11 @@ impl std::cmp::PartialEq for Context {
|
|||||||
impl Default for Context {
|
impl Default for Context {
|
||||||
fn default() -> Self {
|
fn default() -> Self {
|
||||||
let s = Self(Arc::new(RwLock::new(ContextImpl::default())));
|
let s = Self(Arc::new(RwLock::new(ContextImpl::default())));
|
||||||
let clone = s.clone();
|
|
||||||
|
|
||||||
s.write(|ctx| {
|
s.write(|ctx| {
|
||||||
ctx.force_embedding = true;
|
ctx.force_embedding = true;
|
||||||
ctx.render_sync = Some(Arc::new(Box::new(
|
ctx.render_sync = Some(Arc::new(Box::new(
|
||||||
move |_builder, _viewport_id, _parent_viewport_id, render| render(&clone),
|
move |ctx, _builder, _viewport_id, _parent_viewport_id, render| render(ctx),
|
||||||
)));
|
)));
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -2472,8 +2471,13 @@ impl Context {
|
|||||||
/// Look in `crates/eframe/native/run.rs` and search for ``set_render_sync_callback`` to see for what is used!
|
/// Look in `crates/eframe/native/run.rs` and search for ``set_render_sync_callback`` to see for what is used!
|
||||||
pub fn set_render_sync_callback(
|
pub fn set_render_sync_callback(
|
||||||
&self,
|
&self,
|
||||||
callback: impl for<'a> Fn(ViewportBuilder, ViewportId, ViewportId, Box<dyn FnOnce(&Context) + 'a>)
|
callback: impl for<'a> Fn(
|
||||||
+ Send
|
&Context,
|
||||||
|
ViewportBuilder,
|
||||||
|
ViewportId,
|
||||||
|
ViewportId,
|
||||||
|
Box<dyn FnOnce(&Context) + 'a>,
|
||||||
|
) + Send
|
||||||
+ Sync
|
+ Sync
|
||||||
+ 'static,
|
+ 'static,
|
||||||
) {
|
) {
|
||||||
@@ -2585,6 +2589,7 @@ impl Context {
|
|||||||
{
|
{
|
||||||
let out = &mut out;
|
let out = &mut out;
|
||||||
render_sync.unwrap()(
|
render_sync.unwrap()(
|
||||||
|
self,
|
||||||
viewport_builder,
|
viewport_builder,
|
||||||
viewport_id,
|
viewport_id,
|
||||||
parent_viewport_id,
|
parent_viewport_id,
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ impl ViewportId {
|
|||||||
/// This is used to render an async viewport
|
/// This is used to render an async viewport
|
||||||
pub type ViewportRender = dyn Fn(&Context) + Sync + Send;
|
pub type ViewportRender = dyn Fn(&Context) + Sync + Send;
|
||||||
|
|
||||||
pub type ViewportRenderSyncCallback = dyn for<'a> Fn(ViewportBuilder, ViewportId, ViewportId, Box<dyn FnOnce(&Context) + 'a>)
|
pub type ViewportRenderSyncCallback = dyn for<'a> Fn(&Context, ViewportBuilder, ViewportId, ViewportId, Box<dyn FnOnce(&Context) + 'a>)
|
||||||
+ Send
|
+ Send
|
||||||
+ Sync;
|
+ Sync;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user