1
0
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:
Emil Ernerfeldt
2023-11-03 14:07:22 +01:00
parent f14fa1663e
commit 47e7b9d2dc
3 changed files with 57 additions and 68 deletions

View File

@@ -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())

View File

@@ -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 {

View File

@@ -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![],
); );