mirror of
https://github.com/emilk/egui.git
synced 2026-09-01 06:10:06 -04:00
Small cleanup
This commit is contained in:
@@ -468,6 +468,7 @@ mod glow_integration {
|
|||||||
prelude::{GlDisplay, NotCurrentGlContextSurfaceAccessor, PossiblyCurrentGlContext},
|
prelude::{GlDisplay, NotCurrentGlContextSurfaceAccessor, PossiblyCurrentGlContext},
|
||||||
surface::GlSurface,
|
surface::GlSurface,
|
||||||
};
|
};
|
||||||
|
use winit::window::WindowId;
|
||||||
|
|
||||||
use super::*;
|
use super::*;
|
||||||
|
|
||||||
@@ -530,8 +531,8 @@ mod glow_integration {
|
|||||||
not_current_gl_context: Option<glutin::context::NotCurrentContext>,
|
not_current_gl_context: Option<glutin::context::NotCurrentContext>,
|
||||||
|
|
||||||
viewports: ViewportIdMap<Rc<RefCell<Viewport>>>,
|
viewports: ViewportIdMap<Rc<RefCell<Viewport>>>,
|
||||||
viewport_maps: HashMap<winit::window::WindowId, ViewportId>,
|
viewport_maps: HashMap<WindowId, ViewportId>,
|
||||||
window_maps: ViewportIdMap<winit::window::WindowId>,
|
window_maps: ViewportIdMap<WindowId>,
|
||||||
|
|
||||||
builders: ViewportIdMap<ViewportBuilder>,
|
builders: ViewportIdMap<ViewportBuilder>,
|
||||||
}
|
}
|
||||||
@@ -1159,7 +1160,7 @@ mod glow_integration {
|
|||||||
.or_insert(viewport_builder);
|
.or_insert(viewport_builder);
|
||||||
}
|
}
|
||||||
|
|
||||||
let win = glutin.viewports[&id_pair.this].clone();
|
let viewport = glutin.viewports[&id_pair.this].clone();
|
||||||
|
|
||||||
#[allow(unsafe_code)]
|
#[allow(unsafe_code)]
|
||||||
let event_loop = unsafe {
|
let event_loop = unsafe {
|
||||||
@@ -1168,7 +1169,7 @@ mod glow_integration {
|
|||||||
})
|
})
|
||||||
};
|
};
|
||||||
glutin
|
glutin
|
||||||
.init_viewport(&win, event_loop)
|
.init_viewport(&viewport, event_loop)
|
||||||
.expect("Cannot init window on egui::Context::show_viewport_immediate");
|
.expect("Cannot init window on egui::Context::show_viewport_immediate");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1188,10 +1189,17 @@ mod glow_integration {
|
|||||||
|
|
||||||
let mut input = winit_state.take_egui_input(&window, id_pair);
|
let mut input = winit_state.take_egui_input(&window, id_pair);
|
||||||
input.time = Some(beginning.elapsed().as_secs_f64());
|
input.time = Some(beginning.elapsed().as_secs_f64());
|
||||||
|
|
||||||
|
// ---------------------------------------------------
|
||||||
|
// Call the user ui-code, which could re-entrantly call this function again!
|
||||||
|
// No locks may be hold while calling this function.
|
||||||
|
|
||||||
let output = egui_ctx.run(input, |ctx| {
|
let output = egui_ctx.run(input, |ctx| {
|
||||||
viewport_ui_cb(ctx);
|
viewport_ui_cb(ctx);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// ---------------------------------------------------
|
||||||
|
|
||||||
let screen_size_in_pixels: [u32; 2] = window.inner_size().into();
|
let screen_size_in_pixels: [u32; 2] = window.inner_size().into();
|
||||||
|
|
||||||
let clipped_primitives = egui_ctx.tessellate(output.shapes);
|
let clipped_primitives = egui_ctx.tessellate(output.shapes);
|
||||||
@@ -1277,8 +1285,8 @@ mod glow_integration {
|
|||||||
if recreate {
|
if recreate {
|
||||||
viewport.window = None;
|
viewport.window = None;
|
||||||
viewport.gl_surface = None;
|
viewport.gl_surface = None;
|
||||||
} else if let Some(w) = &viewport.window {
|
} else if let Some(window) = &viewport.window {
|
||||||
process_viewport_commands(commands, *id, None, &w.borrow());
|
process_viewport_commands(commands, *id, None, &window.borrow());
|
||||||
}
|
}
|
||||||
active_viewports_ids.insert(*id);
|
active_viewports_ids.insert(*id);
|
||||||
false
|
false
|
||||||
@@ -1342,7 +1350,7 @@ mod glow_integration {
|
|||||||
.map_or(0, |r| r.integration.egui_ctx.frame_nr_for(viewport_id))
|
.map_or(0, |r| r.integration.egui_ctx.frame_nr_for(viewport_id))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn is_focused(&self, window_id: winit::window::WindowId) -> bool {
|
fn is_focused(&self, window_id: WindowId) -> bool {
|
||||||
if let Some(focused_viewport) = self.focused_viewport {
|
if let Some(focused_viewport) = self.focused_viewport {
|
||||||
if let Some(running) = self.running.as_ref() {
|
if let Some(running) = self.running.as_ref() {
|
||||||
if let Some(window_id) =
|
if let Some(window_id) =
|
||||||
@@ -1359,10 +1367,7 @@ mod glow_integration {
|
|||||||
self.running.as_ref().map(|r| &r.integration)
|
self.running.as_ref().map(|r| &r.integration)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn window(
|
fn window(&self, window_id: WindowId) -> Option<Rc<RefCell<winit::window::Window>>> {
|
||||||
&self,
|
|
||||||
window_id: winit::window::WindowId,
|
|
||||||
) -> Option<Rc<RefCell<winit::window::Window>>> {
|
|
||||||
self.running.as_ref().and_then(|r| {
|
self.running.as_ref().and_then(|r| {
|
||||||
let glutin_ctx = r.glutin_ctx.borrow();
|
let glutin_ctx = r.glutin_ctx.borrow();
|
||||||
if let Some(viewport_id) = glutin_ctx.viewport_maps.get(&window_id) {
|
if let Some(viewport_id) = glutin_ctx.viewport_maps.get(&window_id) {
|
||||||
@@ -1376,13 +1381,13 @@ mod glow_integration {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
fn window_id_from_viewport_id(&self, id: ViewportId) -> Option<winit::window::WindowId> {
|
fn window_id_from_viewport_id(&self, id: ViewportId) -> Option<WindowId> {
|
||||||
self.running
|
self.running
|
||||||
.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 viewport_id_from_window_id(&self, id: &winit::window::WindowId) -> Option<ViewportId> {
|
fn viewport_id_from_window_id(&self, id: &WindowId) -> Option<ViewportId> {
|
||||||
self.running
|
self.running
|
||||||
.as_ref()
|
.as_ref()
|
||||||
.and_then(|r| r.glutin_ctx.borrow().viewport_maps.get(id).copied())
|
.and_then(|r| r.glutin_ctx.borrow().viewport_maps.get(id).copied())
|
||||||
@@ -1408,7 +1413,7 @@ mod glow_integration {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn run_ui_and_paint(&mut self, window_id: winit::window::WindowId) -> EventResult {
|
fn run_ui_and_paint(&mut self, window_id: WindowId) -> EventResult {
|
||||||
if self.running.is_none() {
|
if self.running.is_none() {
|
||||||
return EventResult::Wait;
|
return EventResult::Wait;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user