mirror of
https://github.com/emilk/egui.git
synced 2026-06-27 23:13:13 -04:00
rename pair to id_pair
This commit is contained in:
@@ -481,7 +481,7 @@ impl EpiIntegration {
|
||||
window: &winit::window::Window,
|
||||
egui_winit: &mut egui_winit::State,
|
||||
viewport_ui_cb: &Option<Arc<Box<ViewportUiCallback>>>,
|
||||
pair: ViewportIdPair,
|
||||
id_pair: ViewportIdPair,
|
||||
) -> egui::FullOutput {
|
||||
let frame_start = std::time::Instant::now();
|
||||
|
||||
@@ -493,7 +493,7 @@ impl EpiIntegration {
|
||||
raw_input.time = Some(self.beginning.elapsed().as_secs_f64());
|
||||
|
||||
// Run user code:
|
||||
let full_output = self.egui_ctx.run(raw_input, pair, |egui_ctx| {
|
||||
let full_output = self.egui_ctx.run(raw_input, id_pair, |egui_ctx| {
|
||||
crate::profile_scope!("App::update");
|
||||
if let Some(viewport_ui_cb) = viewport_ui_cb {
|
||||
// Child viewport
|
||||
|
||||
@@ -502,7 +502,7 @@ mod glow_integration {
|
||||
struct Viewport {
|
||||
gl_surface: Option<glutin::surface::Surface<glutin::surface::WindowSurface>>,
|
||||
window: Option<Rc<RefCell<winit::window::Window>>>,
|
||||
pair: ViewportIdPair,
|
||||
id_pair: ViewportIdPair,
|
||||
|
||||
/// The user-callback that shows the ui.
|
||||
viewport_ui_cb: Option<Arc<Box<ViewportUiCallback>>>,
|
||||
@@ -673,7 +673,7 @@ mod glow_integration {
|
||||
window: window.map(|w| Rc::new(RefCell::new(w))),
|
||||
egui_winit: None,
|
||||
viewport_ui_cb: None,
|
||||
pair: ViewportIdPair::MAIN,
|
||||
id_pair: ViewportIdPair::MAIN,
|
||||
})),
|
||||
);
|
||||
|
||||
@@ -729,7 +729,7 @@ mod glow_integration {
|
||||
win: &Rc<RefCell<Viewport>>,
|
||||
event_loop: &EventLoopWindowTarget<UserEvent>,
|
||||
) -> Result<()> {
|
||||
let builder = &self.builders[&win.borrow().pair.this];
|
||||
let builder = &self.builders[&win.borrow().id_pair.this];
|
||||
let mut win = win.borrow_mut();
|
||||
// make sure we have a window or create one.
|
||||
let window = win.window.take().unwrap_or_else(|| {
|
||||
@@ -797,8 +797,8 @@ mod glow_integration {
|
||||
|
||||
win.gl_surface = Some(gl_surface);
|
||||
self.current_gl_context = Some(current_gl_context);
|
||||
self.viewport_maps.insert(window.id(), win.pair.this);
|
||||
self.window_maps.insert(win.pair.this, window.id());
|
||||
self.viewport_maps.insert(window.id(), win.id_pair.this);
|
||||
self.window_maps.insert(win.id_pair.this, window.id());
|
||||
}
|
||||
win.window = Some(window);
|
||||
Ok(())
|
||||
@@ -1082,14 +1082,14 @@ mod glow_integration {
|
||||
let beginning = integration.beginning;
|
||||
|
||||
integration.egui_ctx.set_render_sync_callback(
|
||||
move |egui_ctx, viewport_builder, pair, viewport_ui_cb| {
|
||||
move |egui_ctx, viewport_builder, id_pair, viewport_ui_cb| {
|
||||
if let (Some(glutin), Some(gl), Some(painter)) =
|
||||
(glutin.upgrade(), gl.upgrade(), painter.upgrade())
|
||||
{
|
||||
Self::render_sync_viewport(
|
||||
egui_ctx,
|
||||
viewport_builder,
|
||||
pair,
|
||||
id_pair,
|
||||
viewport_ui_cb,
|
||||
&glutin,
|
||||
&gl,
|
||||
@@ -1119,7 +1119,7 @@ mod glow_integration {
|
||||
fn render_sync_viewport(
|
||||
egui_ctx: &egui::Context,
|
||||
mut viewport_builder: ViewportBuilder,
|
||||
pair: ViewportIdPair,
|
||||
id_pair: ViewportIdPair,
|
||||
viewport_ui_cb: Box<dyn FnOnce(&egui::Context) + '_>,
|
||||
glutin: &RefCell<GlutinWindowContext>,
|
||||
gl: &glow::Context,
|
||||
@@ -1128,7 +1128,7 @@ mod glow_integration {
|
||||
) {
|
||||
crate::profile_function!();
|
||||
|
||||
let has_window = glutin.borrow().viewports.get(&pair.this).is_some();
|
||||
let has_window = glutin.borrow().viewports.get(&id_pair.this).is_some();
|
||||
|
||||
// This will create a new native window if is needed
|
||||
if !has_window {
|
||||
@@ -1136,11 +1136,12 @@ mod glow_integration {
|
||||
|
||||
// Inherit parent icon if none
|
||||
{
|
||||
if viewport_builder.icon.is_none() && glutin.builders.get(&pair.this).is_none()
|
||||
if viewport_builder.icon.is_none()
|
||||
&& glutin.builders.get(&id_pair.this).is_none()
|
||||
{
|
||||
viewport_builder.icon = glutin
|
||||
.builders
|
||||
.get(&pair.parent)
|
||||
.get(&id_pair.parent)
|
||||
.and_then(|b| b.icon.clone());
|
||||
}
|
||||
}
|
||||
@@ -1148,18 +1149,21 @@ mod glow_integration {
|
||||
{
|
||||
glutin
|
||||
.viewports
|
||||
.entry(pair.this)
|
||||
.entry(id_pair.this)
|
||||
.or_insert(Rc::new(RefCell::new(Viewport {
|
||||
gl_surface: None,
|
||||
window: None,
|
||||
pair,
|
||||
id_pair,
|
||||
viewport_ui_cb: None,
|
||||
egui_winit: None,
|
||||
})));
|
||||
glutin.builders.entry(pair.this).or_insert(viewport_builder);
|
||||
glutin
|
||||
.builders
|
||||
.entry(id_pair.this)
|
||||
.or_insert(viewport_builder);
|
||||
}
|
||||
|
||||
let win = glutin.viewports[&pair.this].clone();
|
||||
let win = glutin.viewports[&id_pair.this].clone();
|
||||
|
||||
#[allow(unsafe_code)]
|
||||
let event_loop = unsafe {
|
||||
@@ -1174,7 +1178,7 @@ mod glow_integration {
|
||||
|
||||
// Rendering the sync viewport
|
||||
|
||||
let window = glutin.borrow().viewports.get(&pair.this).cloned();
|
||||
let window = glutin.borrow().viewports.get(&id_pair.this).cloned();
|
||||
let Some(window) = window else { return };
|
||||
|
||||
let window = &mut *window.borrow_mut();
|
||||
@@ -1187,13 +1191,13 @@ mod glow_integration {
|
||||
let win = win.borrow();
|
||||
let mut input = winit_state.take_egui_input(&win);
|
||||
input.time = Some(beginning.elapsed().as_secs_f64());
|
||||
let output = egui_ctx.run(input, pair, |ctx| {
|
||||
let output = egui_ctx.run(input, id_pair, |ctx| {
|
||||
viewport_ui_cb(ctx);
|
||||
});
|
||||
|
||||
let screen_size_in_pixels: [u32; 2] = win.inner_size().into();
|
||||
|
||||
let clipped_primitives = egui_ctx.tessellate(output.shapes, pair.this);
|
||||
let clipped_primitives = egui_ctx.tessellate(output.shapes, id_pair.this);
|
||||
|
||||
let mut glutin = glutin.borrow_mut();
|
||||
let mut painter = painter.borrow_mut();
|
||||
@@ -1215,13 +1219,13 @@ mod glow_integration {
|
||||
.unwrap()
|
||||
.is_current(glutin.current_gl_context.as_ref().unwrap())
|
||||
{
|
||||
let builder = &&glutin.builders[&window.pair.this];
|
||||
let builder = &&glutin.builders[&window.id_pair.this];
|
||||
log::error!("egui::create_viewport_sync with title: `{}` is not created in main thread, try to use wgpu!", builder.title);
|
||||
}
|
||||
|
||||
egui_glow::painter::clear(gl, screen_size_in_pixels, [0.0, 0.0, 0.0, 0.0]);
|
||||
|
||||
let pixels_per_point = egui_ctx.input_for(pair.this, |i| i.pixels_per_point());
|
||||
let pixels_per_point = egui_ctx.input_for(id_pair.this, |i| i.pixels_per_point());
|
||||
painter.paint_and_update_textures(
|
||||
screen_size_in_pixels,
|
||||
pixels_per_point,
|
||||
@@ -1242,7 +1246,12 @@ mod glow_integration {
|
||||
{
|
||||
log::error!("swap_buffers failed: {err}");
|
||||
}
|
||||
winit_state.handle_platform_output(&win, pair.this, egui_ctx, output.platform_output);
|
||||
winit_state.handle_platform_output(
|
||||
&win,
|
||||
id_pair.this,
|
||||
egui_ctx,
|
||||
output.platform_output,
|
||||
);
|
||||
}
|
||||
|
||||
fn process_viewport_builders(
|
||||
@@ -1254,7 +1263,7 @@ mod glow_integration {
|
||||
viewports.retain_mut(
|
||||
|ViewportOutput {
|
||||
builder,
|
||||
pair: ViewportIdPair { this: id, .. },
|
||||
id_pair: ViewportIdPair { this: id, .. },
|
||||
viewport_ui_cb,
|
||||
}| {
|
||||
let mut glutin = glutin_ctx.borrow_mut();
|
||||
@@ -1267,7 +1276,7 @@ mod glow_integration {
|
||||
viewport.window = None;
|
||||
viewport.gl_surface = None;
|
||||
viewport.viewport_ui_cb = viewport_ui_cb.clone();
|
||||
viewport.pair.parent = *id;
|
||||
viewport.id_pair.parent = *id;
|
||||
}
|
||||
if let Some(w) = viewport.window.clone() {
|
||||
process_viewport_commands(commands, *id, None, &w.borrow());
|
||||
@@ -1282,7 +1291,7 @@ mod glow_integration {
|
||||
|
||||
for ViewportOutput {
|
||||
mut builder,
|
||||
pair,
|
||||
id_pair,
|
||||
viewport_ui_cb,
|
||||
} in viewports
|
||||
{
|
||||
@@ -1291,24 +1300,24 @@ mod glow_integration {
|
||||
builder.icon = glutin_ctx
|
||||
.borrow()
|
||||
.builders
|
||||
.get(&pair.parent)
|
||||
.get(&id_pair.parent)
|
||||
.and_then(|b| b.icon.clone());
|
||||
}
|
||||
{
|
||||
let mut glutin = glutin_ctx.borrow_mut();
|
||||
glutin.viewports.insert(
|
||||
pair.this,
|
||||
id_pair.this,
|
||||
Rc::new(RefCell::new(Viewport {
|
||||
gl_surface: None,
|
||||
window: None,
|
||||
egui_winit: None,
|
||||
viewport_ui_cb,
|
||||
pair,
|
||||
id_pair,
|
||||
})),
|
||||
);
|
||||
glutin.builders.insert(pair.this, builder);
|
||||
glutin.builders.insert(id_pair.this, builder);
|
||||
}
|
||||
active_viewports_ids.push(pair.this);
|
||||
active_viewports_ids.push(id_pair.this);
|
||||
}
|
||||
|
||||
let mut glutin = glutin_ctx.borrow_mut();
|
||||
@@ -1436,7 +1445,7 @@ mod glow_integration {
|
||||
if viewport.borrow().viewport_ui_cb.is_none() && viewport_id != ViewportId::MAIN
|
||||
{
|
||||
if let Some(parent_viewport) =
|
||||
glutin.viewports.get(&viewport.borrow().pair.parent)
|
||||
glutin.viewports.get(&viewport.borrow().id_pair.parent)
|
||||
{
|
||||
if let Some(window) = parent_viewport.borrow().window.as_ref() {
|
||||
return EventResult::RepaintNext(window.borrow().id());
|
||||
@@ -1484,7 +1493,7 @@ mod glow_integration {
|
||||
&window,
|
||||
egui_winit,
|
||||
&viewport.viewport_ui_cb.clone(),
|
||||
viewport.pair,
|
||||
viewport.id_pair,
|
||||
);
|
||||
|
||||
integration.borrow_mut().handle_platform_output(
|
||||
@@ -1795,7 +1804,7 @@ mod glow_integration {
|
||||
running.app.borrow_mut().as_mut(),
|
||||
event,
|
||||
viewport.egui_winit.as_mut().unwrap(),
|
||||
viewport.pair.this,
|
||||
viewport.id_pair.this,
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -2183,7 +2192,7 @@ mod wgpu_integration {
|
||||
let beginning = integration.beginning;
|
||||
|
||||
integration.egui_ctx.set_render_sync_callback(
|
||||
move |egui_ctx, viewport_builder, pair, viewport_ui_cb| {
|
||||
move |egui_ctx, viewport_builder, id_pair, viewport_ui_cb| {
|
||||
if let (
|
||||
Some(viewports),
|
||||
Some(builders),
|
||||
@@ -2198,7 +2207,7 @@ mod wgpu_integration {
|
||||
Self::render_sync_viewport(
|
||||
egui_ctx,
|
||||
viewport_builder,
|
||||
pair,
|
||||
id_pair,
|
||||
viewport_ui_cb,
|
||||
&viewports,
|
||||
&builders,
|
||||
@@ -2230,7 +2239,7 @@ mod wgpu_integration {
|
||||
fn render_sync_viewport(
|
||||
egui_ctx: &egui::Context,
|
||||
mut viewport_builder: ViewportBuilder,
|
||||
pair: ViewportIdPair,
|
||||
id_pair: ViewportIdPair,
|
||||
viewport_ui_cb: Box<dyn FnOnce(&egui::Context) + '_>,
|
||||
viewports: &RefCell<Viewports>,
|
||||
builders: &RefCell<HashMap<ViewportId, ViewportBuilder>>,
|
||||
@@ -2241,27 +2250,27 @@ mod wgpu_integration {
|
||||
crate::profile_function!();
|
||||
|
||||
// Creating a new native window if is needed
|
||||
if viewports.borrow().get(&pair.this).is_none() {
|
||||
if viewports.borrow().get(&id_pair.this).is_none() {
|
||||
let mut builders = builders.borrow_mut();
|
||||
|
||||
{
|
||||
if viewport_builder.icon.is_none() && builders.get(&pair.this).is_none() {
|
||||
if viewport_builder.icon.is_none() && builders.get(&id_pair.this).is_none() {
|
||||
viewport_builder.icon =
|
||||
builders.get(&pair.parent).and_then(|b| b.icon.clone());
|
||||
builders.get(&id_pair.parent).and_then(|b| b.icon.clone());
|
||||
}
|
||||
}
|
||||
|
||||
let mut viewports = viewports.borrow_mut();
|
||||
|
||||
let Viewport { window, state, .. } =
|
||||
viewports.entry(pair.this).or_insert(Viewport {
|
||||
viewports.entry(id_pair.this).or_insert(Viewport {
|
||||
window: None,
|
||||
state: Rc::new(RefCell::new(None)),
|
||||
viewport_ui_cb: None,
|
||||
parent_id: pair.parent,
|
||||
parent_id: id_pair.parent,
|
||||
});
|
||||
builders
|
||||
.entry(pair.this)
|
||||
.entry(id_pair.this)
|
||||
.or_insert(viewport_builder.clone());
|
||||
|
||||
#[allow(unsafe_code)]
|
||||
@@ -2272,7 +2281,7 @@ mod wgpu_integration {
|
||||
};
|
||||
|
||||
Self::init_window(
|
||||
pair.this,
|
||||
id_pair.this,
|
||||
&viewport_builder,
|
||||
&mut viewport_maps.borrow_mut(),
|
||||
&mut painter.borrow_mut(),
|
||||
@@ -2283,7 +2292,7 @@ mod wgpu_integration {
|
||||
}
|
||||
|
||||
// Render sync viewport:
|
||||
let viewport = viewports.borrow().get(&pair.this).cloned();
|
||||
let viewport = viewports.borrow().get(&id_pair.this).cloned();
|
||||
let Some(viewport) = viewport else { return };
|
||||
let Some(winit_state) = &mut *viewport.state.borrow_mut() else {
|
||||
return;
|
||||
@@ -2294,23 +2303,23 @@ mod wgpu_integration {
|
||||
let win = window.borrow();
|
||||
let mut input = winit_state.take_egui_input(&win);
|
||||
input.time = Some(beginning.elapsed().as_secs_f64());
|
||||
let output = egui_ctx.run(input, pair, |ctx| {
|
||||
let output = egui_ctx.run(input, id_pair, |ctx| {
|
||||
viewport_ui_cb(ctx);
|
||||
});
|
||||
|
||||
let mut painter = painter.borrow_mut();
|
||||
|
||||
if let Err(err) = pollster::block_on(painter.set_window(pair.this, Some(&win))) {
|
||||
if let Err(err) = pollster::block_on(painter.set_window(id_pair.this, Some(&win))) {
|
||||
log::error!(
|
||||
"when rendering viewport_id: {}, set_window Error {err}",
|
||||
pair.this
|
||||
id_pair.this
|
||||
);
|
||||
}
|
||||
|
||||
let pixels_per_point = egui_ctx.input_for(pair.this, |i| i.pixels_per_point());
|
||||
let clipped_primitives = egui_ctx.tessellate(output.shapes, pair.this);
|
||||
let pixels_per_point = egui_ctx.input_for(id_pair.this, |i| i.pixels_per_point());
|
||||
let clipped_primitives = egui_ctx.tessellate(output.shapes, id_pair.this);
|
||||
painter.paint_and_update_textures(
|
||||
pair.this,
|
||||
id_pair.this,
|
||||
pixels_per_point,
|
||||
[0.0, 0.0, 0.0, 0.0],
|
||||
&clipped_primitives,
|
||||
@@ -2318,7 +2327,12 @@ mod wgpu_integration {
|
||||
false,
|
||||
);
|
||||
|
||||
winit_state.handle_platform_output(&win, pair.this, egui_ctx, output.platform_output);
|
||||
winit_state.handle_platform_output(
|
||||
&win,
|
||||
id_pair.this,
|
||||
egui_ctx,
|
||||
output.platform_output,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2500,7 +2514,7 @@ mod wgpu_integration {
|
||||
|
||||
out_viewports.retain_mut(
|
||||
|ViewportOutput {
|
||||
pair: ViewportIdPair { this: id, parent },
|
||||
id_pair: ViewportIdPair { this: id, parent },
|
||||
viewport_ui_cb,
|
||||
..
|
||||
}| {
|
||||
@@ -2517,7 +2531,7 @@ mod wgpu_integration {
|
||||
|
||||
for ViewportOutput {
|
||||
mut builder,
|
||||
pair:
|
||||
id_pair:
|
||||
ViewportIdPair {
|
||||
this: id,
|
||||
parent: parent_id,
|
||||
|
||||
@@ -194,9 +194,9 @@ struct ContextImpl {
|
||||
}
|
||||
|
||||
impl ContextImpl {
|
||||
fn begin_frame_mut(&mut self, mut new_raw_input: RawInput, pair: ViewportIdPair) {
|
||||
if let Some(pair) = self.viewport_stack.last().copied() {
|
||||
let previous_viewport_id = pair.this;
|
||||
fn begin_frame_mut(&mut self, mut new_raw_input: RawInput, id_pair: ViewportIdPair) {
|
||||
if let Some(id_pair) = self.viewport_stack.last().copied() {
|
||||
let previous_viewport_id = id_pair.this;
|
||||
|
||||
// Pause the active viewport
|
||||
self.memory.pause_frame(previous_viewport_id);
|
||||
@@ -210,8 +210,8 @@ impl ContextImpl {
|
||||
);
|
||||
}
|
||||
|
||||
let viewport_id = pair.this;
|
||||
self.viewport_stack.push(pair);
|
||||
let viewport_id = id_pair.this;
|
||||
self.viewport_stack.push(id_pair);
|
||||
self.output.entry(self.viewport_id()).or_default();
|
||||
self.repaint.start_frame(self.viewport_id());
|
||||
|
||||
@@ -485,12 +485,12 @@ impl Context {
|
||||
pub fn run(
|
||||
&self,
|
||||
new_input: RawInput,
|
||||
pair: ViewportIdPair,
|
||||
id_pair: ViewportIdPair,
|
||||
run_ui: impl FnOnce(&Context),
|
||||
) -> FullOutput {
|
||||
crate::profile_function!();
|
||||
|
||||
self.begin_frame(new_input, pair);
|
||||
self.begin_frame(new_input, id_pair);
|
||||
run_ui(self);
|
||||
self.end_frame()
|
||||
}
|
||||
@@ -512,10 +512,10 @@ impl Context {
|
||||
/// let full_output = ctx.end_frame();
|
||||
/// // handle full_output
|
||||
/// ```
|
||||
pub fn begin_frame(&self, new_input: RawInput, pair: ViewportIdPair) {
|
||||
pub fn begin_frame(&self, new_input: RawInput, id_pair: ViewportIdPair) {
|
||||
crate::profile_function!();
|
||||
|
||||
self.write(|ctx| ctx.begin_frame_mut(new_input, pair));
|
||||
self.write(|ctx| ctx.begin_frame_mut(new_input, id_pair));
|
||||
}
|
||||
|
||||
/// Create a new Context and specify if is desktop
|
||||
@@ -1340,7 +1340,7 @@ impl Context {
|
||||
if pixels_per_point != self.pixels_per_point() {
|
||||
self.write(|ctx| {
|
||||
for viewport in ctx.viewports.values() {
|
||||
ctx.repaint.request_repaint_settle(viewport.pair.this);
|
||||
ctx.repaint.request_repaint_settle(viewport.id_pair.this);
|
||||
}
|
||||
ctx.repaint.request_repaint_settle(ViewportId::MAIN);
|
||||
ctx.memory.override_pixels_per_point = Some(pixels_per_point);
|
||||
@@ -1491,7 +1491,7 @@ impl Context {
|
||||
ctx.viewport_id(),
|
||||
std::mem::take(&mut ctx.layer_rects_this_frame),
|
||||
);
|
||||
ctx.viewports.values().map(|vp| vp.pair.this).collect()
|
||||
ctx.viewports.values().map(|vp| vp.id_pair.this).collect()
|
||||
});
|
||||
viewports.push(ViewportId::MAIN);
|
||||
|
||||
@@ -1559,7 +1559,7 @@ impl Context {
|
||||
let available_viewports = self.read(|ctx| {
|
||||
let mut available_viewports = vec![ViewportId::MAIN];
|
||||
for vp in ctx.viewports.values() {
|
||||
available_viewports.push(vp.pair.this);
|
||||
available_viewports.push(vp.id_pair.this);
|
||||
}
|
||||
available_viewports
|
||||
});
|
||||
@@ -1572,23 +1572,23 @@ impl Context {
|
||||
|_,
|
||||
Viewport {
|
||||
builder,
|
||||
pair,
|
||||
id_pair,
|
||||
used,
|
||||
viewport_ui_cb,
|
||||
}| {
|
||||
let retain = *used;
|
||||
|
||||
if viewport_id == pair.parent {
|
||||
if viewport_id == id_pair.parent {
|
||||
*used = false;
|
||||
}
|
||||
|
||||
viewports.push(ViewportOutput {
|
||||
builder: builder.clone(),
|
||||
pair: *pair,
|
||||
id_pair: *id_pair,
|
||||
viewport_ui_cb: viewport_ui_cb.clone(),
|
||||
});
|
||||
(retain || viewport_id != pair.parent)
|
||||
&& available_viewports.contains(&pair.parent)
|
||||
(retain || viewport_id != id_pair.parent)
|
||||
&& available_viewports.contains(&id_pair.parent)
|
||||
},
|
||||
);
|
||||
});
|
||||
@@ -2525,7 +2525,7 @@ impl Context {
|
||||
|
||||
/// This will return the `ViewportIdPair` of the specified id
|
||||
pub fn viewport_id_pair(&self, id: impl Into<Id>) -> Option<ViewportIdPair> {
|
||||
self.read(|ctx| ctx.viewports.get(&id.into()).map(|v| v.pair))
|
||||
self.read(|ctx| ctx.viewports.get(&id.into()).map(|v| v.id_pair))
|
||||
}
|
||||
|
||||
/// For integrations: Is used to render a sync viewport.
|
||||
@@ -2598,7 +2598,7 @@ impl Context {
|
||||
let viewport_id = ctx.viewport_id();
|
||||
if let Some(window) = ctx.viewports.get_mut(&viewport_builder.id) {
|
||||
window.builder = viewport_builder;
|
||||
window.pair.parent = viewport_id;
|
||||
window.id_pair.parent = viewport_id;
|
||||
window.used = true;
|
||||
window.viewport_ui_cb = Some(Arc::new(Box::new(viewport_ui_cb)));
|
||||
} else {
|
||||
@@ -2608,7 +2608,7 @@ impl Context {
|
||||
viewport_builder.id,
|
||||
Viewport {
|
||||
builder: viewport_builder,
|
||||
pair: ViewportIdPair {
|
||||
id_pair: ViewportIdPair {
|
||||
this: id,
|
||||
parent: viewport_id,
|
||||
},
|
||||
@@ -2663,10 +2663,10 @@ impl Context {
|
||||
if let Some(window) = ctx.viewports.get_mut(&viewport_builder.id) {
|
||||
// Existing
|
||||
window.builder = viewport_builder.clone();
|
||||
window.pair.parent = parent;
|
||||
window.id_pair.parent = parent;
|
||||
window.used = true;
|
||||
window.viewport_ui_cb = None;
|
||||
window.pair
|
||||
window.id_pair
|
||||
} else {
|
||||
// New
|
||||
ctx.viewport_id_generator += 1;
|
||||
@@ -2676,7 +2676,7 @@ impl Context {
|
||||
viewport_builder.id,
|
||||
Viewport {
|
||||
builder: viewport_builder.clone(),
|
||||
pair: id_pair,
|
||||
id_pair,
|
||||
used: true,
|
||||
viewport_ui_cb: None,
|
||||
},
|
||||
|
||||
@@ -425,7 +425,7 @@ pub(crate) struct Viewport {
|
||||
pub(crate) builder: ViewportBuilder,
|
||||
|
||||
/// Id of us and our parent.
|
||||
pub(crate) pair: ViewportIdPair,
|
||||
pub(crate) id_pair: ViewportIdPair,
|
||||
|
||||
pub(crate) used: bool,
|
||||
|
||||
@@ -440,7 +440,7 @@ pub struct ViewportOutput {
|
||||
pub builder: ViewportBuilder,
|
||||
|
||||
/// Id of us and our parent.
|
||||
pub pair: ViewportIdPair,
|
||||
pub id_pair: ViewportIdPair,
|
||||
|
||||
/// The user-code that shows the GUI, used for "async" viewports.
|
||||
///
|
||||
|
||||
Reference in New Issue
Block a user