1
0
mirror of https://github.com/emilk/egui.git synced 2026-06-28 07:23:13 -04:00

Refactor viewport ids in eframe (#3607)

Simplifies some things
This commit is contained in:
Emil Ernerfeldt
2023-11-22 13:50:43 +01:00
committed by GitHub
parent e037489ac2
commit ea53246c60
9 changed files with 49 additions and 55 deletions

View File

@@ -309,16 +309,6 @@ impl EpiIntegration {
}
}
pub fn handle_platform_output(
&mut self,
window: &winit::window::Window,
viewport_id: ViewportId,
platform_output: egui::PlatformOutput,
egui_winit: &mut egui_winit::State,
) {
egui_winit.handle_platform_output(window, viewport_id, &self.egui_ctx, platform_output);
}
// ------------------------------------------------------------------------
// Persistence stuff:

View File

@@ -506,7 +506,7 @@ impl GlowWinitRunning {
let window = viewport.window.as_ref().unwrap();
let egui_winit = viewport.egui_winit.as_mut().unwrap();
let mut raw_input = egui_winit.take_egui_input(window, viewport.ids);
let mut raw_input = egui_winit.take_egui_input(window);
let viewport_ui_cb = viewport.viewport_ui_cb.clone();
self.integration.pre_update();
@@ -562,7 +562,7 @@ impl GlowWinitRunning {
let egui_winit = viewport.egui_winit.as_mut().unwrap();
integration.post_update();
integration.handle_platform_output(window, viewport_id, platform_output, egui_winit);
egui_winit.handle_platform_output(window, &integration.egui_ctx, platform_output);
let clipped_primitives = integration.egui_ctx.tessellate(shapes, pixels_per_point);
@@ -1018,6 +1018,7 @@ impl GlutinWindowContext {
viewport.egui_winit.get_or_insert_with(|| {
egui_winit::State::new(
viewport_id,
event_loop,
Some(window.scale_factor() as f32),
self.max_texture_side,
@@ -1276,7 +1277,7 @@ fn render_immediate_viewport(
return;
};
let mut raw_input = winit_state.take_egui_input(window, ids);
let mut raw_input = winit_state.take_egui_input(window);
raw_input.viewports = glutin
.viewports
.iter()
@@ -1360,7 +1361,7 @@ fn render_immediate_viewport(
}
}
winit_state.handle_platform_output(window, ids.this, egui_ctx, platform_output);
winit_state.handle_platform_output(window, egui_ctx, platform_output);
glutin.handle_viewport_output(viewport_output);
}

View File

@@ -196,6 +196,7 @@ impl WgpuWinitApp {
}
let mut egui_winit = egui_winit::State::new(
ViewportId::ROOT,
event_loop,
Some(window.scale_factor() as f32),
painter.max_texture_side(),
@@ -504,7 +505,6 @@ impl WgpuWinitRunning {
viewport.update_viewport_info();
let Viewport {
ids,
viewport_ui_cb,
window,
egui_winit,
@@ -525,10 +525,7 @@ impl WgpuWinitRunning {
}
}
let mut raw_input = egui_winit.as_mut().unwrap().take_egui_input(
window,
ViewportIdPair::from_self_and_parent(viewport_id, ids.parent),
);
let mut raw_input = egui_winit.as_mut().unwrap().take_egui_input(window);
integration.pre_update();
@@ -581,7 +578,7 @@ impl WgpuWinitRunning {
viewport_output,
} = full_output;
integration.handle_platform_output(window, viewport_id, platform_output, egui_winit);
egui_winit.handle_platform_output(window, &integration.egui_ctx, platform_output);
{
let clipped_primitives = integration.egui_ctx.tessellate(shapes, pixels_per_point);
@@ -778,6 +775,7 @@ impl Viewport {
}
self.egui_winit = Some(egui_winit::State::new(
viewport_id,
event_loop,
Some(window.scale_factor() as f32),
painter.max_texture_side(),
@@ -866,7 +864,7 @@ fn render_immediate_viewport(
return;
};
let mut input = winit_state.take_egui_input(window, ids);
let mut input = winit_state.take_egui_input(window);
input.viewports = viewports
.iter()
.map(|(id, viewport)| (*id, viewport.info.clone()))
@@ -926,7 +924,7 @@ fn render_immediate_viewport(
false,
);
winit_state.handle_platform_output(window, ids.this, egui_ctx, platform_output);
winit_state.handle_platform_output(window, egui_ctx, platform_output);
handle_viewport_output(viewport_output, viewports, *focused_viewport);
}