From 2f53f7d6a7549464ed62dd97aed07fee5e3851eb Mon Sep 17 00:00:00 2001 From: Emil Ernerfeldt Date: Sun, 12 Nov 2023 11:45:36 +0100 Subject: [PATCH] Handle viewport commands in EguiGlow --- crates/egui-winit/src/lib.rs | 2 +- crates/egui_glow/src/winit.rs | 13 ++++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/crates/egui-winit/src/lib.rs b/crates/egui-winit/src/lib.rs index c42eeb5c8..436c8f58e 100644 --- a/crates/egui-winit/src/lib.rs +++ b/crates/egui-winit/src/lib.rs @@ -989,7 +989,7 @@ fn translate_cursor(cursor_icon: egui::CursorIcon) -> Option, + commands: impl IntoIterator, window: &winit::window::Window, is_viewport_focused: bool, ) { diff --git a/crates/egui_glow/src/winit.rs b/crates/egui_glow/src/winit.rs index f2cadd05a..5bbd19adb 100644 --- a/crates/egui_glow/src/winit.rs +++ b/crates/egui_glow/src/winit.rs @@ -50,13 +50,24 @@ impl EguiGlow { let raw_input = self .egui_winit .take_egui_input(window, ViewportIdPair::ROOT); + let egui::FullOutput { platform_output, textures_delta, shapes, - .. + viewports, + viewport_commands, } = self.egui_ctx.run(raw_input, run_ui); + if viewports.len() > 1 { + log::warn!("Multiple viewports not yet supported by EguiGlow"); + } + egui_winit::process_viewport_commands( + viewport_commands.into_iter().map(|(_id, command)| command), + window, + true, + ); + self.egui_winit.handle_platform_output( window, ViewportId::ROOT,