mirror of
https://github.com/emilk/egui.git
synced 2026-09-01 06:10:06 -04:00
Minor naming cleanup
This commit is contained in:
@@ -21,11 +21,11 @@ use super::epi_integration::{self, EpiIntegration};
|
|||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
pub const IS_DESKTOP: bool = cfg!(any(
|
pub const IS_DESKTOP: bool = cfg!(any(
|
||||||
target_os = "windows",
|
target_os = "freebsd",
|
||||||
target_os = "linux",
|
target_os = "linux",
|
||||||
target_os = "macos",
|
target_os = "macos",
|
||||||
target_os = "freebsd",
|
target_os = "openbsd",
|
||||||
target_os = "openbsd"
|
target_os = "windows",
|
||||||
));
|
));
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
@@ -103,9 +103,9 @@ trait WinitApp {
|
|||||||
window_id: winit::window::WindowId,
|
window_id: winit::window::WindowId,
|
||||||
) -> Option<Rc<RefCell<winit::window::Window>>>;
|
) -> Option<Rc<RefCell<winit::window::Window>>>;
|
||||||
|
|
||||||
fn get_window_id(&self, id: ViewportId) -> Option<winit::window::WindowId>;
|
fn window_id_from_viewport_id(&self, id: ViewportId) -> Option<winit::window::WindowId>;
|
||||||
|
|
||||||
fn get_viewport_id(&self, id: &winit::window::WindowId) -> Option<ViewportId>;
|
fn viewport_id_from_window_id(&self, id: &winit::window::WindowId) -> Option<ViewportId>;
|
||||||
|
|
||||||
fn save_and_destroy(&mut self);
|
fn save_and_destroy(&mut self);
|
||||||
|
|
||||||
@@ -201,7 +201,7 @@ fn run_and_return(
|
|||||||
let current_frame_nr = winit_app.frame_nr(*viewport_id);
|
let current_frame_nr = winit_app.frame_nr(*viewport_id);
|
||||||
if current_frame_nr == *frame_nr || current_frame_nr == *frame_nr + 1 {
|
if current_frame_nr == *frame_nr || current_frame_nr == *frame_nr + 1 {
|
||||||
log::trace!("UserEvent::RequestRepaint scheduling repaint at {when:?}");
|
log::trace!("UserEvent::RequestRepaint scheduling repaint at {when:?}");
|
||||||
if let Some(window_id) = winit_app.get_window_id(*viewport_id) {
|
if let Some(window_id) = winit_app.window_id_from_viewport_id(*viewport_id) {
|
||||||
EventResult::RepaintAt(window_id, *when)
|
EventResult::RepaintAt(window_id, *when)
|
||||||
} else {
|
} else {
|
||||||
EventResult::Wait
|
EventResult::Wait
|
||||||
@@ -354,7 +354,7 @@ fn run_and_exit(event_loop: EventLoop<UserEvent>, mut winit_app: impl WinitApp +
|
|||||||
}) => {
|
}) => {
|
||||||
let current_frame_nr = winit_app.frame_nr(*viewport_id);
|
let current_frame_nr = winit_app.frame_nr(*viewport_id);
|
||||||
if current_frame_nr == *frame_nr || current_frame_nr == *frame_nr + 1 {
|
if current_frame_nr == *frame_nr || current_frame_nr == *frame_nr + 1 {
|
||||||
if let Some(window_id) = winit_app.get_window_id(*viewport_id) {
|
if let Some(window_id) = winit_app.window_id_from_viewport_id(*viewport_id) {
|
||||||
EventResult::RepaintAt(window_id, *when)
|
EventResult::RepaintAt(window_id, *when)
|
||||||
} else {
|
} else {
|
||||||
EventResult::Wait
|
EventResult::Wait
|
||||||
@@ -1380,14 +1380,14 @@ mod glow_integration {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
fn get_window_id(&self, id: ViewportId) -> Option<winit::window::WindowId> {
|
fn window_id_from_viewport_id(&self, id: ViewportId) -> Option<winit::window::WindowId> {
|
||||||
self.running
|
self.running
|
||||||
.borrow()
|
.borrow()
|
||||||
.as_ref()
|
.as_ref()
|
||||||
.and_then(|r| r.glutin_ctx.borrow().window_maps.get(&id).copied())
|
.and_then(|r| r.glutin_ctx.borrow().window_maps.get(&id).copied())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn get_viewport_id(&self, id: &winit::window::WindowId) -> Option<ViewportId> {
|
fn viewport_id_from_window_id(&self, id: &winit::window::WindowId) -> Option<ViewportId> {
|
||||||
self.running
|
self.running
|
||||||
.borrow()
|
.borrow()
|
||||||
.as_ref()
|
.as_ref()
|
||||||
@@ -1421,7 +1421,7 @@ mod glow_integration {
|
|||||||
return EventResult::Wait;
|
return EventResult::Wait;
|
||||||
}
|
}
|
||||||
|
|
||||||
if let Some(viewport_id) = self.get_viewport_id(&window_id) {
|
if let Some(viewport_id) = self.viewport_id_from_window_id(&window_id) {
|
||||||
#[cfg(feature = "puffin")]
|
#[cfg(feature = "puffin")]
|
||||||
puffin::GlobalProfiler::lock().new_frame();
|
puffin::GlobalProfiler::lock().new_frame();
|
||||||
crate::profile_scope!("frame");
|
crate::profile_scope!("frame");
|
||||||
@@ -2043,12 +2043,12 @@ mod wgpu_integration {
|
|||||||
crate::profile_function!();
|
crate::profile_function!();
|
||||||
if let Some(Viewport { window, .. }) = running.viewports.borrow().get(&id) {
|
if let Some(Viewport { window, .. }) = running.viewports.borrow().get(&id) {
|
||||||
let window = window.clone();
|
let window = window.clone();
|
||||||
if let Some(win) = &window {
|
if let Some(window) = &window {
|
||||||
return pollster::block_on(
|
return pollster::block_on(
|
||||||
running
|
running
|
||||||
.painter
|
.painter
|
||||||
.borrow_mut()
|
.borrow_mut()
|
||||||
.set_window(id, Some(&*win.borrow())),
|
.set_window(id, Some(&*window.borrow())),
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
return pollster::block_on(
|
return pollster::block_on(
|
||||||
@@ -2345,7 +2345,7 @@ mod wgpu_integration {
|
|||||||
|
|
||||||
fn is_focused(&self, window_id: winit::window::WindowId) -> bool {
|
fn is_focused(&self, window_id: winit::window::WindowId) -> bool {
|
||||||
if let Some(focus) = *self.is_focused.borrow() {
|
if let Some(focus) = *self.is_focused.borrow() {
|
||||||
self.get_viewport_id(&window_id)
|
self.viewport_id_from_window_id(&window_id)
|
||||||
.map_or(false, |i| i == focus)
|
.map_or(false, |i| i == focus)
|
||||||
} else {
|
} else {
|
||||||
false
|
false
|
||||||
@@ -2371,7 +2371,7 @@ mod wgpu_integration {
|
|||||||
.flatten()
|
.flatten()
|
||||||
}
|
}
|
||||||
|
|
||||||
fn get_window_id(&self, id: ViewportId) -> Option<winit::window::WindowId> {
|
fn window_id_from_viewport_id(&self, id: ViewportId) -> Option<winit::window::WindowId> {
|
||||||
self.running.as_ref().and_then(|r| {
|
self.running.as_ref().and_then(|r| {
|
||||||
r.viewports
|
r.viewports
|
||||||
.borrow()
|
.borrow()
|
||||||
@@ -2424,6 +2424,7 @@ mod wgpu_integration {
|
|||||||
viewports: mut out_viewports,
|
viewports: mut out_viewports,
|
||||||
viewport_commands,
|
viewport_commands,
|
||||||
};
|
};
|
||||||
|
|
||||||
{
|
{
|
||||||
let Some((
|
let Some((
|
||||||
viewport_id,
|
viewport_id,
|
||||||
@@ -2514,14 +2515,14 @@ mod wgpu_integration {
|
|||||||
|
|
||||||
out_viewports.retain_mut(
|
out_viewports.retain_mut(
|
||||||
|ViewportOutput {
|
|ViewportOutput {
|
||||||
id_pair: ViewportIdPair { this: id, parent },
|
id_pair: ViewportIdPair { this, parent },
|
||||||
viewport_ui_cb,
|
viewport_ui_cb,
|
||||||
..
|
..
|
||||||
}| {
|
}| {
|
||||||
if let Some(window) = viewports.borrow_mut().get_mut(id) {
|
if let Some(window) = viewports.borrow_mut().get_mut(this) {
|
||||||
window.viewport_ui_cb = viewport_ui_cb.clone();
|
window.viewport_ui_cb = viewport_ui_cb.clone();
|
||||||
window.parent_id = *parent;
|
window.parent_id = *parent;
|
||||||
active_viewports_ids.push(*id);
|
active_viewports_ids.push(*this);
|
||||||
false
|
false
|
||||||
} else {
|
} else {
|
||||||
true
|
true
|
||||||
@@ -2531,32 +2532,28 @@ mod wgpu_integration {
|
|||||||
|
|
||||||
for ViewportOutput {
|
for ViewportOutput {
|
||||||
mut builder,
|
mut builder,
|
||||||
id_pair:
|
id_pair,
|
||||||
ViewportIdPair {
|
|
||||||
this: id,
|
|
||||||
parent: parent_id,
|
|
||||||
},
|
|
||||||
viewport_ui_cb,
|
viewport_ui_cb,
|
||||||
} in out_viewports
|
} in out_viewports
|
||||||
{
|
{
|
||||||
if builder.icon.is_none() {
|
if builder.icon.is_none() {
|
||||||
builder.icon = builders
|
builder.icon = builders
|
||||||
.borrow_mut()
|
.borrow_mut()
|
||||||
.get_mut(&parent_id)
|
.get_mut(&id_pair.parent)
|
||||||
.and_then(|w| w.icon.clone());
|
.and_then(|w| w.icon.clone());
|
||||||
}
|
}
|
||||||
|
|
||||||
viewports.borrow_mut().insert(
|
viewports.borrow_mut().insert(
|
||||||
id,
|
id_pair.this,
|
||||||
Viewport {
|
Viewport {
|
||||||
window: None,
|
window: None,
|
||||||
state: Rc::new(RefCell::new(None)),
|
state: Rc::new(RefCell::new(None)),
|
||||||
viewport_ui_cb,
|
viewport_ui_cb,
|
||||||
parent_id,
|
parent_id: id_pair.parent,
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
builders.borrow_mut().insert(id, builder);
|
builders.borrow_mut().insert(id_pair.this, builder);
|
||||||
active_viewports_ids.push(id);
|
active_viewports_ids.push(id_pair.this);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (viewport_id, command) in viewport_commands {
|
for (viewport_id, command) in viewport_commands {
|
||||||
@@ -2582,16 +2579,15 @@ mod wgpu_integration {
|
|||||||
.retain(|_, id| active_viewports_ids.contains(id));
|
.retain(|_, id| active_viewports_ids.contains(id));
|
||||||
painter.borrow_mut().clean_surfaces(&active_viewports_ids);
|
painter.borrow_mut().clean_surfaces(&active_viewports_ids);
|
||||||
|
|
||||||
let Some((
|
let Some(
|
||||||
_,
|
|
||||||
Viewport {
|
Viewport {
|
||||||
window: Some(window),
|
window: Some(window),
|
||||||
..
|
..
|
||||||
},
|
},
|
||||||
)) = viewport_maps
|
) = viewport_maps
|
||||||
.borrow()
|
.borrow()
|
||||||
.get(&window_id)
|
.get(&window_id)
|
||||||
.and_then(|id| viewports.borrow().get(id).map(|w| (*id, w.clone())))
|
.and_then(|id| viewports.borrow().get(id).cloned())
|
||||||
else {
|
else {
|
||||||
return EventResult::Wait;
|
return EventResult::Wait;
|
||||||
};
|
};
|
||||||
@@ -2673,7 +2669,7 @@ mod wgpu_integration {
|
|||||||
}
|
}
|
||||||
|
|
||||||
winit::event::Event::WindowEvent { event, window_id } => {
|
winit::event::Event::WindowEvent { event, window_id } => {
|
||||||
let viewport_id = self.get_viewport_id(window_id);
|
let viewport_id = self.viewport_id_from_window_id(window_id);
|
||||||
if let Some(running) = &mut self.running {
|
if let Some(running) = &mut self.running {
|
||||||
// On Windows, if a window is resized by the user, it should repaint synchronously, inside the
|
// On Windows, if a window is resized by the user, it should repaint synchronously, inside the
|
||||||
// event handler.
|
// event handler.
|
||||||
@@ -2701,9 +2697,7 @@ mod wgpu_integration {
|
|||||||
// Resize with 0 width and height is used by winit to signal a minimize event on Windows.
|
// Resize with 0 width and height is used by winit to signal a minimize event on Windows.
|
||||||
// See: https://github.com/rust-windowing/winit/issues/208
|
// See: https://github.com/rust-windowing/winit/issues/208
|
||||||
// This solves an issue where the app would panic when minimizing on Windows.
|
// This solves an issue where the app would panic when minimizing on Windows.
|
||||||
if let Some(viewport_id) =
|
if let Some(viewport_id) = viewport_id {
|
||||||
running.viewport_maps.borrow().get(window_id).copied()
|
|
||||||
{
|
|
||||||
use std::num::NonZeroU32;
|
use std::num::NonZeroU32;
|
||||||
if let (Some(width), Some(height)) = (
|
if let (Some(width), Some(height)) = (
|
||||||
NonZeroU32::new(physical_size.width),
|
NonZeroU32::new(physical_size.width),
|
||||||
@@ -2807,7 +2801,7 @@ mod wgpu_integration {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
fn get_viewport_id(&self, id: &winit::window::WindowId) -> Option<ViewportId> {
|
fn viewport_id_from_window_id(&self, id: &winit::window::WindowId) -> Option<ViewportId> {
|
||||||
self.running
|
self.running
|
||||||
.as_ref()
|
.as_ref()
|
||||||
.and_then(|r| r.viewport_maps.borrow().get(id).copied())
|
.and_then(|r| r.viewport_maps.borrow().get(id).copied())
|
||||||
|
|||||||
@@ -1568,29 +1568,21 @@ impl Context {
|
|||||||
|
|
||||||
let mut viewports = Vec::new();
|
let mut viewports = Vec::new();
|
||||||
self.write(|ctx| {
|
self.write(|ctx| {
|
||||||
ctx.viewports.retain(
|
ctx.viewports.retain(|_, viewport| {
|
||||||
|_,
|
let retain = viewport.used;
|
||||||
Viewport {
|
|
||||||
builder,
|
|
||||||
id_pair,
|
|
||||||
used,
|
|
||||||
viewport_ui_cb,
|
|
||||||
}| {
|
|
||||||
let retain = *used;
|
|
||||||
|
|
||||||
if viewport_id == id_pair.parent {
|
if viewport_id == viewport.id_pair.parent {
|
||||||
*used = false;
|
viewport.used = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
viewports.push(ViewportOutput {
|
viewports.push(ViewportOutput {
|
||||||
builder: builder.clone(),
|
builder: viewport.builder.clone(),
|
||||||
id_pair: *id_pair,
|
id_pair: viewport.id_pair,
|
||||||
viewport_ui_cb: viewport_ui_cb.clone(),
|
viewport_ui_cb: viewport.viewport_ui_cb.clone(),
|
||||||
});
|
});
|
||||||
(retain || viewport_id != id_pair.parent)
|
(retain || viewport_id != viewport.id_pair.parent)
|
||||||
&& available_viewports.contains(&id_pair.parent)
|
&& available_viewports.contains(&viewport.id_pair.parent)
|
||||||
},
|
});
|
||||||
);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
// This is used to resume the last frame!
|
// This is used to resume the last frame!
|
||||||
@@ -2670,8 +2662,10 @@ impl Context {
|
|||||||
} else {
|
} else {
|
||||||
// New
|
// New
|
||||||
ctx.viewport_id_generator += 1;
|
ctx.viewport_id_generator += 1;
|
||||||
let id = ViewportId(ctx.viewport_id_generator);
|
let id_pair = ViewportIdPair {
|
||||||
let id_pair = ViewportIdPair { this: id, parent };
|
this: ViewportId(ctx.viewport_id_generator),
|
||||||
|
parent,
|
||||||
|
};
|
||||||
ctx.viewports.insert(
|
ctx.viewports.insert(
|
||||||
viewport_builder.id,
|
viewport_builder.id,
|
||||||
Viewport {
|
Viewport {
|
||||||
|
|||||||
@@ -21,7 +21,8 @@ pub struct App {
|
|||||||
impl eframe::App for App {
|
impl eframe::App for App {
|
||||||
fn update(&mut self, ctx: &egui::Context, _frame: &mut eframe::Frame) {
|
fn update(&mut self, ctx: &egui::Context, _frame: &mut eframe::Frame) {
|
||||||
egui::CentralPanel::default().show(ctx, |ui| {
|
egui::CentralPanel::default().show(ctx, |ui| {
|
||||||
generic_ui(ui, "Central Panel");
|
ui.heading("Main viewport");
|
||||||
|
generic_ui(ui, "main_viewport");
|
||||||
{
|
{
|
||||||
let mut force_embedding = ctx.force_embedding();
|
let mut force_embedding = ctx.force_embedding();
|
||||||
ui.checkbox(&mut force_embedding, "Force embedding of new viewprts");
|
ui.checkbox(&mut force_embedding, "Force embedding of new viewprts");
|
||||||
@@ -42,19 +43,19 @@ impl eframe::App for App {
|
|||||||
"Async Viewport",
|
"Async Viewport",
|
||||||
self.async_viewport_state.clone(),
|
self.async_viewport_state.clone(),
|
||||||
vec![
|
vec![
|
||||||
AsyncViewport::new("Async Viewport in Async Viewport", move |ctx| {
|
AsyncViewport::new("AA: Async Viewport in Async Viewport", move |ctx| {
|
||||||
show_async_viewport(
|
show_async_viewport(
|
||||||
ctx,
|
ctx,
|
||||||
"AA Async Viewport in Async Viewport",
|
"AA: Async Viewport in Async Viewport",
|
||||||
async_state.clone(),
|
async_state.clone(),
|
||||||
vec![],
|
vec![],
|
||||||
);
|
);
|
||||||
}),
|
}),
|
||||||
AsyncViewport::new("Sync Viewport in Async Viewport", move |ctx| {
|
AsyncViewport::new("AS: Sync Viewport in Async Viewport", move |ctx| {
|
||||||
let mut state = sync_state.write();
|
let mut state = sync_state.write();
|
||||||
show_sync_viewport(
|
show_sync_viewport(
|
||||||
ctx,
|
ctx,
|
||||||
"AS Sync Viewport in Async Viewport",
|
"AS: Sync Viewport in Async Viewport",
|
||||||
&mut state,
|
&mut state,
|
||||||
vec![],
|
vec![],
|
||||||
);
|
);
|
||||||
@@ -72,18 +73,18 @@ impl eframe::App for App {
|
|||||||
"Sync Viewport",
|
"Sync Viewport",
|
||||||
&mut self.sync_viewport_state,
|
&mut self.sync_viewport_state,
|
||||||
vec![
|
vec![
|
||||||
SyncViewport::new("Async Viewport in Sync Viewport", move |ctx| {
|
SyncViewport::new("SA: Async Viewport in Sync Viewport", move |ctx| {
|
||||||
show_async_viewport(
|
show_async_viewport(
|
||||||
ctx,
|
ctx,
|
||||||
"SA Async Viewport in Sync Viewport",
|
"SA: Async Viewport in Sync Viewport",
|
||||||
async_state.clone(),
|
async_state.clone(),
|
||||||
vec![],
|
vec![],
|
||||||
);
|
);
|
||||||
}),
|
}),
|
||||||
SyncViewport::new("Sync Viewport in Sync Viewport", move |ctx| {
|
SyncViewport::new("SS: Sync Viewport in Sync Viewport", move |ctx| {
|
||||||
show_sync_viewport(
|
show_sync_viewport(
|
||||||
ctx,
|
ctx,
|
||||||
"SS Sync Viewport in Sync Viewport",
|
"SS: Sync Viewport in Sync Viewport",
|
||||||
sync_state,
|
sync_state,
|
||||||
vec![],
|
vec![],
|
||||||
);
|
);
|
||||||
|
|||||||
Reference in New Issue
Block a user