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

Simplify egui_winit::State (#3678)

By storing a clone of the egui context in it, we can be sure to always
use the correct `pixels_per_point`
This commit is contained in:
Emil Ernerfeldt
2023-12-05 11:45:25 +01:00
committed by GitHub
parent 80d7143b15
commit a4e389431d
6 changed files with 70 additions and 84 deletions

View File

@@ -255,8 +255,7 @@ impl EpiIntegration {
_ => {}
}
egui_winit.update_pixels_per_point(&self.egui_ctx, window);
egui_winit.on_window_event(&self.egui_ctx, event)
egui_winit.on_window_event(window, event)
}
pub fn pre_update(&mut self) {

View File

@@ -517,7 +517,6 @@ impl GlowWinitRunning {
egui_winit::update_viewport_info(&mut viewport.info, &egui_ctx, window);
let egui_winit = viewport.egui_winit.as_mut().unwrap();
egui_winit.update_pixels_per_point(&egui_ctx, window);
let mut raw_input = egui_winit.take_egui_input(window);
let viewport_ui_cb = viewport.viewport_ui_cb.clone();
@@ -600,7 +599,7 @@ impl GlowWinitRunning {
let egui_winit = viewport.egui_winit.as_mut().unwrap();
integration.post_update();
egui_winit.handle_platform_output(window, &integration.egui_ctx, platform_output);
egui_winit.handle_platform_output(window, platform_output);
let clipped_primitives = integration.egui_ctx.tessellate(shapes, pixels_per_point);
@@ -1066,6 +1065,7 @@ impl GlutinWindowContext {
viewport.egui_winit.get_or_insert_with(|| {
egui_winit::State::new(
self.egui_ctx.clone(),
viewport_id,
event_loop,
Some(window.scale_factor() as f32),
@@ -1318,7 +1318,6 @@ fn render_immediate_viewport(
};
egui_winit::update_viewport_info(&mut viewport.info, egui_ctx, window);
egui_winit.update_pixels_per_point(egui_ctx, window);
let mut raw_input = egui_winit.take_egui_input(window);
raw_input.viewports = glutin
.viewports
@@ -1414,7 +1413,7 @@ fn render_immediate_viewport(
}
}
egui_winit.handle_platform_output(window, egui_ctx, platform_output);
egui_winit.handle_platform_output(window, platform_output);
glutin.handle_viewport_output(egui_ctx, viewport_output);
}

View File

@@ -205,6 +205,7 @@ impl WgpuWinitApp {
#[allow(unused_mut)] // used for accesskit
let mut egui_winit = egui_winit::State::new(
egui_ctx.clone(),
ViewportId::ROOT,
event_loop,
Some(window.scale_factor() as f32),
@@ -488,10 +489,7 @@ impl WgpuWinitRunning {
let mut shared_lock = shared.borrow_mut();
let SharedState {
egui_ctx,
viewports,
painter,
..
viewports, painter, ..
} = &mut *shared_lock;
if viewport_id != ViewportId::ROOT {
@@ -539,7 +537,6 @@ impl WgpuWinitRunning {
}
let egui_winit = egui_winit.as_mut().unwrap();
egui_winit.update_pixels_per_point(egui_ctx, window);
let mut raw_input = egui_winit.take_egui_input(window);
integration.pre_update();
@@ -596,7 +593,7 @@ impl WgpuWinitRunning {
viewport_output,
} = full_output;
egui_winit.handle_platform_output(window, egui_ctx, platform_output);
egui_winit.handle_platform_output(window, platform_output);
{
let clipped_primitives = egui_ctx.tessellate(shapes, pixels_per_point);
@@ -799,6 +796,7 @@ impl Viewport {
}
self.egui_winit = Some(egui_winit::State::new(
egui_ctx.clone(),
viewport_id,
event_loop,
Some(window.scale_factor() as f32),
@@ -880,7 +878,6 @@ fn render_immediate_viewport(
};
egui_winit::update_viewport_info(&mut viewport.info, egui_ctx, window);
egui_winit.update_pixels_per_point(egui_ctx, window);
let mut input = egui_winit.take_egui_input(window);
input.viewports = viewports
.iter()
@@ -944,7 +941,7 @@ fn render_immediate_viewport(
false,
);
egui_winit.handle_platform_output(window, &egui_ctx, platform_output);
egui_winit.handle_platform_output(window, platform_output);
handle_viewport_output(&egui_ctx, viewport_output, viewports, *focused_viewport);
}