mirror of
https://github.com/emilk/egui.git
synced 2026-08-29 21:00:03 -04:00
eframe: Remove warm-starting (#3574)
This was an ill-supported feature with little benefit or use.
This commit is contained in:
@@ -4,10 +4,7 @@ use winit::event_loop::EventLoopWindowTarget;
|
||||
|
||||
use raw_window_handle::{HasRawDisplayHandle as _, HasRawWindowHandle as _};
|
||||
|
||||
use egui::{
|
||||
DeferredViewportUiCallback, NumExt as _, ViewportBuilder, ViewportId, ViewportIdPair,
|
||||
ViewportInfo,
|
||||
};
|
||||
use egui::{DeferredViewportUiCallback, NumExt as _, ViewportBuilder, ViewportId};
|
||||
use egui_winit::{EventResponse, WindowSettings};
|
||||
|
||||
use crate::{epi, Theme};
|
||||
@@ -206,28 +203,6 @@ impl EpiIntegration {
|
||||
});
|
||||
}
|
||||
|
||||
pub fn warm_up(
|
||||
&mut self,
|
||||
app: &mut dyn epi::App,
|
||||
window: &winit::window::Window,
|
||||
egui_winit: &mut egui_winit::State,
|
||||
) {
|
||||
crate::profile_function!();
|
||||
let saved_memory: egui::Memory = self.egui_ctx.memory(|mem| mem.clone());
|
||||
self.egui_ctx
|
||||
.memory_mut(|mem| mem.set_everything_is_visible(true));
|
||||
|
||||
let mut raw_input = egui_winit.take_egui_input(window, ViewportIdPair::ROOT);
|
||||
raw_input.viewports =
|
||||
std::iter::once((ViewportId::ROOT, ViewportInfo::default())).collect();
|
||||
self.pre_update();
|
||||
let full_output = self.update(app, None, raw_input);
|
||||
self.post_update();
|
||||
self.pending_full_output.append(full_output); // Handle it next frame
|
||||
self.egui_ctx.memory_mut(|mem| *mem = saved_memory); // We don't want to remember that windows were huge.
|
||||
self.egui_ctx.clear_animations();
|
||||
}
|
||||
|
||||
/// If `true`, it is time to close the native window.
|
||||
pub fn should_close(&self) -> bool {
|
||||
self.close
|
||||
|
||||
@@ -1151,12 +1151,6 @@ mod glow_integration {
|
||||
.expect("viewport doesn't exist")
|
||||
}
|
||||
|
||||
fn viewport_mut(&mut self, viewport_id: ViewportId) -> &mut Viewport {
|
||||
self.viewports
|
||||
.get_mut(&viewport_id)
|
||||
.expect("viewport doesn't exist")
|
||||
}
|
||||
|
||||
fn window(&self, viewport_id: ViewportId) -> Rc<Window> {
|
||||
self.viewport(viewport_id)
|
||||
.window
|
||||
@@ -1488,7 +1482,7 @@ mod glow_integration {
|
||||
|
||||
let app = {
|
||||
let window = glutin.window(ViewportId::ROOT);
|
||||
let mut app = app_creator(&epi::CreationContext {
|
||||
let cc = epi::CreationContext {
|
||||
egui_ctx: integration.egui_ctx.clone(),
|
||||
integration_info: integration.frame.info().clone(),
|
||||
storage: integration.frame.storage(),
|
||||
@@ -1497,18 +1491,9 @@ mod glow_integration {
|
||||
wgpu_render_state: None,
|
||||
raw_display_handle: window.raw_display_handle(),
|
||||
raw_window_handle: window.raw_window_handle(),
|
||||
});
|
||||
|
||||
if app.warm_up_enabled() {
|
||||
let viewport = glutin.viewport_mut(ViewportId::ROOT);
|
||||
integration.warm_up(
|
||||
app.as_mut(),
|
||||
&window,
|
||||
viewport.egui_winit.as_mut().unwrap(),
|
||||
);
|
||||
}
|
||||
|
||||
app
|
||||
};
|
||||
crate::profile_scope!("app_creator");
|
||||
app_creator(&cc)
|
||||
};
|
||||
|
||||
let glutin = Rc::new(RefCell::new(glutin));
|
||||
@@ -2124,15 +2109,11 @@ mod wgpu_integration {
|
||||
raw_display_handle: window.raw_display_handle(),
|
||||
raw_window_handle: window.raw_window_handle(),
|
||||
};
|
||||
let mut app = {
|
||||
let app = {
|
||||
crate::profile_scope!("user_app_creator");
|
||||
app_creator(&cc)
|
||||
};
|
||||
|
||||
if app.warm_up_enabled() {
|
||||
integration.warm_up(app.as_mut(), &window, &mut egui_winit);
|
||||
}
|
||||
|
||||
let mut viewport_from_window = HashMap::default();
|
||||
viewport_from_window.insert(window.id(), ViewportId::ROOT);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user