mirror of
https://github.com/emilk/egui.git
synced 2026-08-30 13:20:05 -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:
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user