1
0
mirror of https://github.com/emilk/egui.git synced 2026-08-31 22:00:03 -04:00

Make Context::request_repaint safe to call from any thread.

Closes https://github.com/emilk/egui/issues/1379
This commit is contained in:
Emil Ernerfeldt
2022-03-20 20:53:19 +01:00
parent ccbddcfe95
commit 72d264ed6c
5 changed files with 65 additions and 50 deletions

View File

@@ -46,20 +46,21 @@ pub fn run(app_name: &str, native_options: &epi::NativeOptions, app_creator: epi
let mut painter = crate::Painter::new(gl.clone(), None, "")
.unwrap_or_else(|error| panic!("some OpenGL error occurred {}\n", error));
let event_loop_proxy = parking_lot::Mutex::new(event_loop.create_proxy());
let egui_ctx = egui::Context::with_repaint_callback({
move || {
event_loop_proxy.lock().send_event(RequestRepaintEvent).ok();
}
});
let mut integration = egui_winit::epi::EpiIntegration::new(
"egui_glow",
egui_ctx,
painter.max_texture_side(),
gl_window.window(),
persistence,
);
{
let event_loop_proxy = parking_lot::Mutex::new(event_loop.create_proxy());
integration.egui_ctx.set_request_repaint_callback(move || {
event_loop_proxy.lock().send_event(RequestRepaintEvent).ok();
});
}
let mut app = app_creator(&epi::CreationContext {
egui_ctx: integration.egui_ctx.clone(),
integration_info: integration.frame.info(),