mirror of
https://github.com/emilk/egui.git
synced 2026-06-27 15:13:12 -04:00
Fix all warnings
This commit is contained in:
@@ -113,12 +113,7 @@ pub trait App {
|
||||
/// The [`egui::Context`] can be cloned and saved if you like.
|
||||
///
|
||||
/// To force a repaint, call [`egui::Context::request_repaint`] at any time (e.g. from another thread).
|
||||
fn update(
|
||||
&mut self,
|
||||
ctx: &egui::Context,
|
||||
frame: &mut Frame,
|
||||
render_function: Option<&ViewportRender>,
|
||||
);
|
||||
fn update(&mut self, ctx: &egui::Context, frame: &mut Frame, render: Option<&ViewportRender>);
|
||||
|
||||
/// Get a handle to the app.
|
||||
///
|
||||
@@ -818,7 +813,7 @@ impl Frame {
|
||||
/// struct MyApp;
|
||||
///
|
||||
/// impl eframe::App for MyApp {
|
||||
/// fn update(&mut self, ctx: &egui::Context, frame: &mut eframe::Frame) {
|
||||
/// fn update(&mut self, ctx: &egui::Context, frame: &mut eframe::Frame, _render: Option<&egui::ViewportRender>) {
|
||||
/// // In real code the app would render something here
|
||||
/// frame.request_screenshot();
|
||||
/// // Things that are added to the frame after the call to
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
//! }
|
||||
//!
|
||||
//! impl eframe::App for MyEguiApp {
|
||||
//! fn update(&mut self, ctx: &egui::Context, frame: &mut eframe::Frame) {
|
||||
//! fn update(&mut self, ctx: &egui::Context, frame: &mut eframe::Frame, _render: Option<&egui::ViewportRender>) {
|
||||
//! egui::CentralPanel::default().show(ctx, |ui| {
|
||||
//! ui.heading("Hello World!");
|
||||
//! });
|
||||
@@ -187,7 +187,7 @@ mod native;
|
||||
/// }
|
||||
///
|
||||
/// impl eframe::App for MyEguiApp {
|
||||
/// fn update(&mut self, ctx: &egui::Context, frame: &mut eframe::Frame) {
|
||||
/// fn update(&mut self, ctx: &egui::Context, frame: &mut eframe::Frame, _render: Option<&egui::ViewportRender>) {
|
||||
/// egui::CentralPanel::default().show(ctx, |ui| {
|
||||
/// ui.heading("Hello World!");
|
||||
/// });
|
||||
|
||||
@@ -7,8 +7,6 @@ use winit::platform::macos::WindowBuilderExtMacOS as _;
|
||||
|
||||
use raw_window_handle::{HasRawDisplayHandle as _, HasRawWindowHandle as _};
|
||||
|
||||
#[cfg(feature = "accesskit")]
|
||||
use egui::accesskit;
|
||||
use egui::{mutex::RwLock, NumExt as _, ViewportBuilder, ViewportId, ViewportRender};
|
||||
#[cfg(feature = "accesskit")]
|
||||
use egui_winit::accesskit_winit;
|
||||
@@ -24,13 +22,6 @@ pub struct WindowState {
|
||||
pub maximized: bool,
|
||||
}
|
||||
|
||||
pub fn points_to_size(points: egui::Vec2) -> winit::dpi::LogicalSize<f64> {
|
||||
winit::dpi::LogicalSize {
|
||||
width: points.x as f64,
|
||||
height: points.y as f64,
|
||||
}
|
||||
}
|
||||
|
||||
pub fn read_window_info(
|
||||
window: &winit::window::Window,
|
||||
pixels_per_point: f32,
|
||||
@@ -126,7 +117,6 @@ pub fn window_builder<E>(
|
||||
|
||||
#[cfg(all(feature = "wayland", target_os = "linux"))]
|
||||
{
|
||||
use winit::platform::wayland::WindowBuilderExtWayland as _;
|
||||
match &native_options.app_id {
|
||||
Some(app_id) => window_builder = window_builder.with_name(app_id, ""),
|
||||
None => window_builder = window_builder.with_name(title, ""),
|
||||
@@ -217,28 +207,6 @@ fn largest_monitor_point_size<E>(event_loop: &EventLoopWindowTarget<E>) -> egui:
|
||||
}
|
||||
}
|
||||
|
||||
pub fn load_icon(icon_data: epi::IconData) -> Option<winit::window::Icon> {
|
||||
winit::window::Icon::from_rgba(icon_data.rgba, icon_data.width, icon_data.height).ok()
|
||||
}
|
||||
|
||||
#[cfg(target_os = "windows")]
|
||||
fn window_builder_drag_and_drop(
|
||||
window_builder: winit::window::WindowBuilder,
|
||||
enable: bool,
|
||||
) -> winit::window::WindowBuilder {
|
||||
use winit::platform::windows::WindowBuilderExtWindows as _;
|
||||
window_builder.with_drag_and_drop(enable)
|
||||
}
|
||||
|
||||
#[cfg(not(target_os = "windows"))]
|
||||
fn window_builder_drag_and_drop(
|
||||
window_builder: winit::window::WindowBuilder,
|
||||
_enable: bool,
|
||||
) -> winit::window::WindowBuilder {
|
||||
// drag and drop can only be disabled on windows
|
||||
window_builder
|
||||
}
|
||||
|
||||
pub fn handle_app_output(
|
||||
window: &winit::window::Window,
|
||||
current_pixels_per_point: f32,
|
||||
@@ -359,9 +327,7 @@ pub struct EpiIntegration {
|
||||
|
||||
impl EpiIntegration {
|
||||
#[allow(clippy::too_many_arguments)]
|
||||
pub fn new<E>(
|
||||
event_loop: &EventLoopWindowTarget<E>,
|
||||
max_texture_side: usize,
|
||||
pub fn new(
|
||||
window: &winit::window::Window,
|
||||
system_theme: Option<Theme>,
|
||||
app_name: &str,
|
||||
@@ -455,7 +421,7 @@ impl EpiIntegration {
|
||||
app,
|
||||
window,
|
||||
egui_winit,
|
||||
None,
|
||||
&None,
|
||||
ViewportId::MAIN,
|
||||
ViewportId::MAIN,
|
||||
);
|
||||
@@ -473,7 +439,6 @@ impl EpiIntegration {
|
||||
&mut self,
|
||||
app: &mut dyn epi::App,
|
||||
event: &winit::event::WindowEvent<'_>,
|
||||
window_id: &winit::window::WindowId,
|
||||
egui_winit: &mut egui_winit::State,
|
||||
viewport_id: ViewportId,
|
||||
) -> EventResponse {
|
||||
@@ -508,22 +473,12 @@ impl EpiIntegration {
|
||||
egui_winit.on_event(&self.egui_ctx, event)
|
||||
}
|
||||
|
||||
#[cfg(feature = "accesskit")]
|
||||
pub fn on_accesskit_action_request(
|
||||
&mut self,
|
||||
request: accesskit::ActionRequest,
|
||||
window_id: &winit::window::WindowId,
|
||||
egui_winit: &mut egui_winit::State,
|
||||
) {
|
||||
egui_winit.on_accesskit_action_request(request);
|
||||
}
|
||||
|
||||
pub fn update(
|
||||
&mut self,
|
||||
app: &mut dyn epi::App,
|
||||
window: &winit::window::Window,
|
||||
egui_winit: &mut egui_winit::State,
|
||||
render: Option<Arc<Box<ViewportRender>>>,
|
||||
render: &Option<Arc<Box<ViewportRender>>>,
|
||||
viewport_id: egui::ViewportId,
|
||||
parent_id: egui::ViewportId,
|
||||
) -> egui::FullOutput {
|
||||
|
||||
@@ -413,9 +413,7 @@ fn run_and_exit(event_loop: EventLoop<UserEvent>, mut winit_app: impl WinitApp +
|
||||
mod glow_integration {
|
||||
use std::sync::Arc;
|
||||
|
||||
use egui::{
|
||||
epaint::ahash::HashMap, mutex::RwLock, NumExt as _, ViewportBuilder, ViewportRender,
|
||||
};
|
||||
use egui::{epaint::ahash::HashMap, mutex::RwLock, NumExt as _, ViewportRender};
|
||||
use egui_winit::{
|
||||
changes_between_builders, create_winit_window_builder, process_viewport_commands,
|
||||
EventResponse,
|
||||
@@ -882,8 +880,6 @@ mod glow_integration {
|
||||
&self.native_options,
|
||||
);
|
||||
let mut integration = epi_integration::EpiIntegration::new(
|
||||
event_loop,
|
||||
painter.max_texture_side(),
|
||||
&gl_window
|
||||
.window(ViewportId::MAIN)
|
||||
.read()
|
||||
@@ -996,7 +992,8 @@ mod glow_integration {
|
||||
|
||||
// Sync Rendering
|
||||
integration.egui_ctx.set_render_sync_callback(
|
||||
move |viewport_builder, viewport_id, parent_viewport_id, render| {
|
||||
move |_viewport_builder, viewport_id, parent_viewport_id, render| {
|
||||
// TODO: we should use `_viewport_builder` to create a new window in this frame!
|
||||
'try_render: {
|
||||
let window = glutin.read().windows.get(&viewport_id).cloned();
|
||||
if let Some(window) = window {
|
||||
@@ -1121,7 +1118,7 @@ mod glow_integration {
|
||||
w.parent_id = *id;
|
||||
}
|
||||
if let Some(w) = w.window.clone() {
|
||||
process_viewport_commands(commands, *id, None, w);
|
||||
process_viewport_commands(commands, *id, None, &w);
|
||||
}
|
||||
active_viewports_ids.push(*id);
|
||||
false
|
||||
@@ -1302,7 +1299,7 @@ mod glow_integration {
|
||||
app.write().as_mut(),
|
||||
&win.window.as_ref().unwrap().read(),
|
||||
win.egui_winit.as_mut().unwrap(),
|
||||
win.render.clone(),
|
||||
&win.render.clone(),
|
||||
win.window_id,
|
||||
win.parent_id,
|
||||
);
|
||||
@@ -1623,7 +1620,6 @@ mod glow_integration {
|
||||
break 'res running.integration.write().on_event(
|
||||
running.app.write().as_mut(),
|
||||
event,
|
||||
window_id,
|
||||
viewport.egui_winit.as_mut().unwrap(),
|
||||
viewport.window_id,
|
||||
);
|
||||
@@ -1660,11 +1656,11 @@ mod glow_integration {
|
||||
if let Some(viewport_id) = glutin_ctx.window_maps.get(window_id).copied() {
|
||||
if let Some(viewport) = glutin_ctx.windows.get(&viewport_id).cloned() {
|
||||
let mut viewport = viewport.write();
|
||||
running.integration.write().on_accesskit_action_request(
|
||||
request.clone(),
|
||||
window_id,
|
||||
viewport.egui_winit.as_mut().unwrap(),
|
||||
);
|
||||
viewport
|
||||
.egui_winit
|
||||
.as_mut()
|
||||
.unwrap()
|
||||
.on_accesskit_action_request(request.clone());
|
||||
}
|
||||
}
|
||||
// As a form of user input, accessibility actions should
|
||||
@@ -1884,8 +1880,6 @@ mod wgpu_integration {
|
||||
|
||||
let system_theme = system_theme(&window, &self.native_options);
|
||||
let mut integration = epi_integration::EpiIntegration::new(
|
||||
event_loop,
|
||||
painter.max_texture_side().unwrap_or(2048),
|
||||
&window,
|
||||
system_theme,
|
||||
&self.app_name,
|
||||
@@ -1972,7 +1966,8 @@ mod wgpu_integration {
|
||||
let _painter = painter.clone();
|
||||
|
||||
integration.egui_ctx.set_render_sync_callback(
|
||||
move |viewport_builder, viewport_id, parent_viewport_id, render| {
|
||||
move |_viewport_builder, viewport_id, parent_viewport_id, render| {
|
||||
// TODO: we should use `_viewport_builder` to create a new window in this frame!
|
||||
'try_render: {
|
||||
let window = _windows.read().get(&viewport_id).cloned();
|
||||
if let Some(window) = window {
|
||||
@@ -2179,7 +2174,7 @@ mod wgpu_integration {
|
||||
app.as_mut(),
|
||||
&window.read(),
|
||||
state.write().as_mut().unwrap(),
|
||||
render.clone(),
|
||||
&render.clone(),
|
||||
viewport_id,
|
||||
parent_viewport_id,
|
||||
);
|
||||
@@ -2424,7 +2419,6 @@ mod wgpu_integration {
|
||||
Some(running.integration.write().on_event(
|
||||
running.app.as_mut(),
|
||||
event,
|
||||
window_id,
|
||||
state,
|
||||
id,
|
||||
))
|
||||
@@ -2465,11 +2459,7 @@ mod wgpu_integration {
|
||||
.and_then(|id| running.windows.read().get(id).cloned())
|
||||
{
|
||||
if let Some(state) = &mut *state.write() {
|
||||
running.integration.write().on_accesskit_action_request(
|
||||
request.clone(),
|
||||
window_id,
|
||||
state,
|
||||
);
|
||||
state.on_accesskit_action_request(request.clone());
|
||||
}
|
||||
}
|
||||
// As a form of user input, accessibility actions should
|
||||
@@ -2523,9 +2513,3 @@ fn system_theme(window: &winit::window::Window, options: &NativeOptions) -> Opti
|
||||
None
|
||||
}
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
fn extremely_far_future() -> std::time::Instant {
|
||||
std::time::Instant::now() + std::time::Duration::from_secs(10_000_000_000)
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
use egui::TexturesDelta;
|
||||
use egui::ViewportId;
|
||||
use wasm_bindgen::JsValue;
|
||||
|
||||
use crate::{epi, App};
|
||||
@@ -178,9 +179,11 @@ impl AppRunner {
|
||||
let canvas_size = super::canvas_size_in_points(self.canvas_id());
|
||||
let raw_input = self.input.new_frame(canvas_size);
|
||||
|
||||
let full_output = self.egui_ctx.run(raw_input, 0, 0, |egui_ctx| {
|
||||
self.app.update(egui_ctx, &mut self.frame, None);
|
||||
});
|
||||
let full_output =
|
||||
self.egui_ctx
|
||||
.run(raw_input, ViewportId::MAIN, ViewportId::MAIN, |egui_ctx| {
|
||||
self.app.update(egui_ctx, &mut self.frame, None);
|
||||
});
|
||||
let egui::FullOutput {
|
||||
platform_output,
|
||||
repaint_after,
|
||||
|
||||
@@ -194,70 +194,66 @@ impl Painter {
|
||||
viewport_id: ViewportId,
|
||||
window: Option<&winit::window::Window>,
|
||||
) -> Result<(), crate::WgpuError> {
|
||||
match window {
|
||||
Some(window) => {
|
||||
let size = window.inner_size();
|
||||
if self.surfaces.get(&viewport_id).is_none() {
|
||||
let surface = unsafe { self.instance.create_surface(&window)? };
|
||||
if let Some(window) = window {
|
||||
let size = window.inner_size();
|
||||
if self.surfaces.get(&viewport_id).is_none() {
|
||||
let surface = unsafe { self.instance.create_surface(&window)? };
|
||||
|
||||
let render_state = if let Some(render_state) = &self.render_state {
|
||||
render_state
|
||||
} else {
|
||||
let render_state = RenderState::create(
|
||||
&self.configuration,
|
||||
&self.instance,
|
||||
&surface,
|
||||
self.depth_format,
|
||||
self.msaa_samples,
|
||||
)
|
||||
.await?;
|
||||
self.render_state.get_or_insert(render_state)
|
||||
};
|
||||
|
||||
let alpha_mode = if self.support_transparent_backbuffer {
|
||||
let supported_alpha_modes =
|
||||
surface.get_capabilities(&render_state.adapter).alpha_modes;
|
||||
|
||||
// Prefer pre multiplied over post multiplied!
|
||||
if supported_alpha_modes.contains(&wgpu::CompositeAlphaMode::PreMultiplied)
|
||||
{
|
||||
wgpu::CompositeAlphaMode::PreMultiplied
|
||||
} else if supported_alpha_modes
|
||||
.contains(&wgpu::CompositeAlphaMode::PostMultiplied)
|
||||
{
|
||||
wgpu::CompositeAlphaMode::PostMultiplied
|
||||
} else {
|
||||
log::warn!("Transparent window was requested, but the active wgpu surface does not support a `CompositeAlphaMode` with transparency.");
|
||||
wgpu::CompositeAlphaMode::Auto
|
||||
}
|
||||
let render_state = if let Some(render_state) = &self.render_state {
|
||||
render_state
|
||||
} else {
|
||||
let render_state = RenderState::create(
|
||||
&self.configuration,
|
||||
&self.instance,
|
||||
&surface,
|
||||
self.depth_format,
|
||||
self.msaa_samples,
|
||||
)
|
||||
.await?;
|
||||
self.render_state.get_or_insert(render_state)
|
||||
};
|
||||
|
||||
let alpha_mode = if self.support_transparent_backbuffer {
|
||||
let supported_alpha_modes =
|
||||
surface.get_capabilities(&render_state.adapter).alpha_modes;
|
||||
|
||||
// Prefer pre multiplied over post multiplied!
|
||||
if supported_alpha_modes.contains(&wgpu::CompositeAlphaMode::PreMultiplied) {
|
||||
wgpu::CompositeAlphaMode::PreMultiplied
|
||||
} else if supported_alpha_modes
|
||||
.contains(&wgpu::CompositeAlphaMode::PostMultiplied)
|
||||
{
|
||||
wgpu::CompositeAlphaMode::PostMultiplied
|
||||
} else {
|
||||
log::warn!("Transparent window was requested, but the active wgpu surface does not support a `CompositeAlphaMode` with transparency.");
|
||||
wgpu::CompositeAlphaMode::Auto
|
||||
};
|
||||
}
|
||||
} else {
|
||||
wgpu::CompositeAlphaMode::Auto
|
||||
};
|
||||
|
||||
let supports_screenshot =
|
||||
!matches!(render_state.adapter.get_info().backend, wgpu::Backend::Gl);
|
||||
let supports_screenshot =
|
||||
!matches!(render_state.adapter.get_info().backend, wgpu::Backend::Gl);
|
||||
|
||||
self.surfaces.insert(
|
||||
viewport_id,
|
||||
SurfaceState {
|
||||
surface,
|
||||
width: size.width,
|
||||
height: size.height,
|
||||
alpha_mode,
|
||||
supports_screenshot,
|
||||
},
|
||||
);
|
||||
}
|
||||
self.resize_and_generate_depth_texture_view_and_msaa_view(
|
||||
self.surfaces.insert(
|
||||
viewport_id,
|
||||
size.width,
|
||||
size.height,
|
||||
SurfaceState {
|
||||
surface,
|
||||
width: size.width,
|
||||
height: size.height,
|
||||
alpha_mode,
|
||||
supports_screenshot,
|
||||
},
|
||||
);
|
||||
}
|
||||
None => {
|
||||
log::warn!("All surfaces was deleted!");
|
||||
self.surfaces.clear();
|
||||
}
|
||||
self.resize_and_generate_depth_texture_view_and_msaa_view(
|
||||
viewport_id,
|
||||
size.width,
|
||||
size.height,
|
||||
);
|
||||
} else {
|
||||
log::warn!("All surfaces was deleted!");
|
||||
self.surfaces.clear();
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
|
||||
@@ -915,7 +915,7 @@ pub fn process_viewport_commands(
|
||||
commands: Vec<ViewportCommand>,
|
||||
viewport_id: ViewportId,
|
||||
focused: Option<ViewportId>,
|
||||
window: Arc<RwLock<winit::window::Window>>,
|
||||
window: &Arc<RwLock<winit::window::Window>>,
|
||||
) {
|
||||
use winit::dpi::PhysicalSize;
|
||||
use winit::window::ResizeDirection;
|
||||
@@ -1025,14 +1025,18 @@ pub fn process_viewport_commands(
|
||||
})),
|
||||
ViewportCommand::ContentProtected(v) => win.set_content_protected(v),
|
||||
ViewportCommand::CursorPosition(x, y) => {
|
||||
win.set_cursor_position(LogicalPosition::new(x, y));
|
||||
if let Err(err) = win.set_cursor_position(LogicalPosition::new(x, y)) {
|
||||
log::error!("{err}");
|
||||
}
|
||||
}
|
||||
ViewportCommand::CursorGrab(o) => {
|
||||
win.set_cursor_grab(match o {
|
||||
if let Err(err) = win.set_cursor_grab(match o {
|
||||
1 => CursorGrabMode::Confined,
|
||||
2 => CursorGrabMode::Locked,
|
||||
_ => CursorGrabMode::None,
|
||||
});
|
||||
}) {
|
||||
log::error!("{err}");
|
||||
}
|
||||
}
|
||||
ViewportCommand::CursorVisible(v) => win.set_cursor_visible(v),
|
||||
ViewportCommand::CursorHitTest(v) => {
|
||||
@@ -1051,7 +1055,7 @@ pub fn process_viewports_commands(
|
||||
) {
|
||||
for (viewport_id, command) in commands {
|
||||
if let Some(window) = get_window(viewport_id) {
|
||||
process_viewport_commands(vec![command], viewport_id, focused, window);
|
||||
process_viewport_commands(vec![command], viewport_id, focused, &window);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1113,6 +1117,18 @@ pub fn create_winit_window_builder(builder: &ViewportBuilder) -> winit::window::
|
||||
));
|
||||
}
|
||||
|
||||
#[cfg(all(feature = "wayland", target_os = "linux"))]
|
||||
if let Some(name) = builder.name.clone() {
|
||||
use winit::platform::wayland::WindowBuilderExtWayland as _;
|
||||
window_builder = window_builder.with_name(name.0, name.1);
|
||||
}
|
||||
|
||||
#[cfg(target_os = "windows")]
|
||||
if let Some(drag_and_drop) = builder.drag_and_drop {
|
||||
use winit::platform::windows::WindowBuilderExtWindows as _;
|
||||
window_builder = window_builder.with_drag_and_drop(enable);
|
||||
}
|
||||
|
||||
// TODO: implement `ViewportBuilder::hittest`
|
||||
// Is not implemented because winit in his current state will not allow to set cursor_hittest on a `WindowBuilder`
|
||||
|
||||
|
||||
@@ -987,7 +987,7 @@ impl<'open> Window<'open> {
|
||||
}
|
||||
});
|
||||
})
|
||||
.map_or((None, None), |ir| (Some(ir.inner), Some(ir.response)));
|
||||
.map_or((None, None), |ir| (Some(()), Some(ir.response)));
|
||||
if let Some(content_response) = &content_response {
|
||||
size = content_response.rect.size();
|
||||
}
|
||||
@@ -1167,7 +1167,7 @@ impl<'open> Window<'open> {
|
||||
}
|
||||
});
|
||||
})
|
||||
.map_or((None, None), |ir| (Some(ir.inner), Some(ir.response)));
|
||||
.map_or((None, None), |ir| (Some(()), Some(ir.response)));
|
||||
if let Some(content_response) = &content_response {
|
||||
size = content_response.rect.size();
|
||||
}
|
||||
|
||||
@@ -435,7 +435,7 @@ impl ContextImpl {
|
||||
/// // Game loop:
|
||||
/// loop {
|
||||
/// let raw_input = egui::RawInput::default();
|
||||
/// let full_output = ctx.run(raw_input, |ctx| {
|
||||
/// let full_output = ctx.run(raw_input, egui::ViewportId::MAIN, egui::ViewportId::MAIN, |ctx| {
|
||||
/// egui::CentralPanel::default().show(&ctx, |ui| {
|
||||
/// ui.label("Hello world!");
|
||||
/// if ui.button("Click me").clicked() {
|
||||
@@ -504,7 +504,7 @@ impl Context {
|
||||
///
|
||||
/// // Each frame:
|
||||
/// let input = egui::RawInput::default();
|
||||
/// let full_output = ctx.run(input, |ctx| {
|
||||
/// let full_output = ctx.run(input, egui::ViewportId::MAIN, egui::ViewportId::MAIN, |ctx| {
|
||||
/// egui::CentralPanel::default().show(&ctx, |ui| {
|
||||
/// ui.label("Hello egui!");
|
||||
/// });
|
||||
@@ -532,7 +532,7 @@ impl Context {
|
||||
///
|
||||
/// // Each frame:
|
||||
/// let input = egui::RawInput::default();
|
||||
/// ctx.begin_frame(input);
|
||||
/// ctx.begin_frame(input, egui::ViewportId::MAIN, egui::ViewportId::MAIN);
|
||||
///
|
||||
/// egui::CentralPanel::default().show(&ctx, |ui| {
|
||||
/// ui.label("Hello egui!");
|
||||
|
||||
@@ -119,7 +119,7 @@
|
||||
//! loop {
|
||||
//! let raw_input: egui::RawInput = gather_input();
|
||||
//!
|
||||
//! let full_output = ctx.run(raw_input, |ctx| {
|
||||
//! let full_output = ctx.run(raw_input, egui::ViewportId::MAIN, egui::ViewportId::MAIN, |ctx| {
|
||||
//! egui::CentralPanel::default().show(&ctx, |ui| {
|
||||
//! ui.label("Hello world!");
|
||||
//! if ui.button("Click me").clicked() {
|
||||
|
||||
@@ -100,11 +100,11 @@ impl eframe::App for Custom3d {
|
||||
fn update(
|
||||
&mut self,
|
||||
ctx: &egui::Context,
|
||||
frame: &mut eframe::Frame,
|
||||
_frame: &mut eframe::Frame,
|
||||
render: Option<&ViewportRender>,
|
||||
) {
|
||||
if let Some(render) = render {
|
||||
render(ctx, ctx.get_viewport_id(), ctx.get_parent_viewport_id());
|
||||
render(ctx);
|
||||
return;
|
||||
}
|
||||
egui::CentralPanel::default().show(ctx, |ui| {
|
||||
|
||||
@@ -433,7 +433,6 @@ impl EguiWindows {
|
||||
tmp_ctx.memory_ui(ui);
|
||||
});
|
||||
|
||||
let tmp_output_event_history = output_event_history.clone();
|
||||
egui::Window::new("📤 Output Events")
|
||||
.open(output_events)
|
||||
.resizable(true)
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
use crate::shader_version::ShaderVersion;
|
||||
use egui::ViewportId;
|
||||
pub use egui_winit;
|
||||
use egui_winit::winit;
|
||||
pub use egui_winit::EventResponse;
|
||||
@@ -53,14 +54,17 @@ impl EguiGlow {
|
||||
repaint_after,
|
||||
textures_delta,
|
||||
shapes,
|
||||
} = self.egui_ctx.run(raw_input, run_ui);
|
||||
..
|
||||
} = self
|
||||
.egui_ctx
|
||||
.run(raw_input, ViewportId::MAIN, ViewportId::MAIN, run_ui);
|
||||
|
||||
self.egui_winit
|
||||
.handle_platform_output(window, &self.egui_ctx, platform_output);
|
||||
|
||||
self.shapes = shapes;
|
||||
self.textures_delta.append(textures_delta);
|
||||
repaint_after
|
||||
repaint_after.last().map(|(_, t)| *t).unwrap_or_default()
|
||||
}
|
||||
|
||||
/// Paint the results of the last call to [`Self::run`].
|
||||
|
||||
@@ -162,6 +162,6 @@ fn main() {
|
||||
initial_window_size: Some(egui::Vec2::new(400.0, 220.0)),
|
||||
..NativeOptions::default()
|
||||
},
|
||||
Box::new(|_| Box::new(App::default())),
|
||||
Box::new(|_| Box::<App>::default()),
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user