mirror of
https://github.com/emilk/egui.git
synced 2026-08-30 21:30:03 -04:00
Moved create_winit_window_builder from crates/eframe/src/native/run.rs to crates/egui-winit/src/lib.rs
This commit is contained in:
@@ -414,7 +414,7 @@ mod glow_integration {
|
||||
use egui::{
|
||||
epaint::ahash::HashMap, mutex::RwLock, NumExt as _, ViewportBuilder, ViewportRender,
|
||||
};
|
||||
use egui_winit::EventResponse;
|
||||
use egui_winit::{create_winit_window_builder, EventResponse};
|
||||
use glutin::{
|
||||
display::GetGlDisplay,
|
||||
prelude::{GlDisplay, NotCurrentGlContextSurfaceAccessor, PossiblyCurrentGlContext},
|
||||
@@ -1698,6 +1698,7 @@ mod wgpu_integration {
|
||||
use std::sync::Arc;
|
||||
|
||||
use egui::ViewportRender;
|
||||
use egui_winit::create_winit_window_builder;
|
||||
|
||||
use super::*;
|
||||
|
||||
@@ -2517,62 +2518,3 @@ fn system_theme(window: &winit::window::Window, options: &NativeOptions) -> Opti
|
||||
fn extremely_far_future() -> std::time::Instant {
|
||||
std::time::Instant::now() + std::time::Duration::from_secs(10_000_000_000)
|
||||
}
|
||||
|
||||
fn create_winit_window_builder(builder: &ViewportBuilder) -> winit::window::WindowBuilder {
|
||||
let mut window_builder = winit::window::WindowBuilder::new()
|
||||
.with_title(builder.title.clone())
|
||||
.with_transparent(builder.transparent.map_or(false, |e| e))
|
||||
.with_decorations(builder.decorations.map_or(false, |e| e))
|
||||
.with_resizable(builder.resizable.map_or(false, |e| e))
|
||||
.with_visible(builder.visible.map_or(false, |e| e))
|
||||
.with_fullscreen(
|
||||
builder
|
||||
.fullscreen
|
||||
.map(|e| e.then(|| winit::window::Fullscreen::Borderless(None)))
|
||||
.flatten(),
|
||||
)
|
||||
.with_enabled_buttons(
|
||||
WindowButtons::MAXIMIZE
|
||||
| WindowButtons::MINIMIZE
|
||||
| builder
|
||||
.close_button
|
||||
.map(|v| v.then(|| WindowButtons::CLOSE))
|
||||
.flatten()
|
||||
.unwrap_or(WindowButtons::empty()),
|
||||
)
|
||||
.with_active(builder.active.map_or(false, |e| e));
|
||||
if let Some(Some(inner_size)) = builder.inner_size {
|
||||
window_builder = window_builder
|
||||
.with_inner_size(winit::dpi::PhysicalSize::new(inner_size.0, inner_size.1));
|
||||
}
|
||||
if let Some(Some(min_inner_size)) = builder.min_inner_size {
|
||||
window_builder = window_builder.with_min_inner_size(winit::dpi::PhysicalSize::new(
|
||||
min_inner_size.0,
|
||||
min_inner_size.1,
|
||||
));
|
||||
}
|
||||
if let Some(Some(max_inner_size)) = builder.max_inner_size {
|
||||
window_builder = window_builder.with_max_inner_size(winit::dpi::PhysicalSize::new(
|
||||
max_inner_size.0,
|
||||
max_inner_size.1,
|
||||
));
|
||||
}
|
||||
if let Some(Some(position)) = builder.position {
|
||||
window_builder =
|
||||
window_builder.with_position(winit::dpi::PhysicalPosition::new(position.0, position.1));
|
||||
}
|
||||
|
||||
if let Some(Some(icon)) = builder.icon.clone() {
|
||||
window_builder = window_builder.with_window_icon(load_icon(crate::IconData {
|
||||
rgba: icon.2.clone(),
|
||||
width: icon.0,
|
||||
height: icon.1,
|
||||
}));
|
||||
}
|
||||
|
||||
window_builder
|
||||
}
|
||||
|
||||
fn changes_betwen_builders(now: &ViewportBuilder, last: &ViewportBuilder) -> Vec<ViewportCommand> {
|
||||
vec![]
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@ pub use accesskit_winit;
|
||||
pub use egui;
|
||||
#[cfg(feature = "accesskit")]
|
||||
use egui::accesskit;
|
||||
use egui::{mutex::RwLock, ViewportCommand, ViewportId};
|
||||
use egui::{mutex::RwLock, ViewportBuilder, ViewportCommand, ViewportId};
|
||||
pub use winit;
|
||||
|
||||
pub mod clipboard;
|
||||
@@ -904,6 +904,9 @@ fn translate_cursor(cursor_icon: egui::CursorIcon) -> Option<winit::window::Curs
|
||||
}
|
||||
}
|
||||
|
||||
// Helpers for egui Viewports
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
pub fn process_viewport_commands(
|
||||
commands: Vec<(ViewportId, ViewportCommand)>,
|
||||
focused: Option<ViewportId>,
|
||||
@@ -1037,6 +1040,66 @@ pub fn process_viewport_commands(
|
||||
}
|
||||
}
|
||||
|
||||
pub fn create_winit_window_builder(builder: &ViewportBuilder) -> winit::window::WindowBuilder {
|
||||
let mut window_builder = winit::window::WindowBuilder::new()
|
||||
.with_title(builder.title.clone())
|
||||
.with_transparent(builder.transparent.map_or(false, |e| e))
|
||||
.with_decorations(builder.decorations.map_or(false, |e| e))
|
||||
.with_resizable(builder.resizable.map_or(false, |e| e))
|
||||
.with_visible(builder.visible.map_or(false, |e| e))
|
||||
.with_fullscreen(
|
||||
builder
|
||||
.fullscreen
|
||||
.map(|e| e.then(|| winit::window::Fullscreen::Borderless(None)))
|
||||
.flatten(),
|
||||
)
|
||||
.with_enabled_buttons(
|
||||
WindowButtons::MAXIMIZE
|
||||
| WindowButtons::MINIMIZE
|
||||
| builder
|
||||
.close_button
|
||||
.map(|v| v.then(|| WindowButtons::CLOSE))
|
||||
.flatten()
|
||||
.unwrap_or(WindowButtons::empty()),
|
||||
)
|
||||
.with_active(builder.active.map_or(false, |e| e));
|
||||
if let Some(Some(inner_size)) = builder.inner_size {
|
||||
window_builder = window_builder
|
||||
.with_inner_size(winit::dpi::PhysicalSize::new(inner_size.0, inner_size.1));
|
||||
}
|
||||
if let Some(Some(min_inner_size)) = builder.min_inner_size {
|
||||
window_builder = window_builder.with_min_inner_size(winit::dpi::PhysicalSize::new(
|
||||
min_inner_size.0,
|
||||
min_inner_size.1,
|
||||
));
|
||||
}
|
||||
if let Some(Some(max_inner_size)) = builder.max_inner_size {
|
||||
window_builder = window_builder.with_max_inner_size(winit::dpi::PhysicalSize::new(
|
||||
max_inner_size.0,
|
||||
max_inner_size.1,
|
||||
));
|
||||
}
|
||||
if let Some(Some(position)) = builder.position {
|
||||
window_builder =
|
||||
window_builder.with_position(winit::dpi::PhysicalPosition::new(position.0, position.1));
|
||||
}
|
||||
|
||||
if let Some(Some(icon)) = builder.icon.clone() {
|
||||
window_builder = window_builder.with_window_icon(Some(
|
||||
winit::window::Icon::from_rgba(icon.2.clone(), icon.0, icon.1)
|
||||
.expect("Invalid Icon Data!"),
|
||||
));
|
||||
}
|
||||
|
||||
window_builder
|
||||
}
|
||||
|
||||
pub fn changes_betwen_builders(
|
||||
now: &ViewportBuilder,
|
||||
last: &ViewportBuilder,
|
||||
) -> Vec<ViewportCommand> {
|
||||
vec![]
|
||||
}
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
/// Profiling macro for feature "puffin"
|
||||
|
||||
Reference in New Issue
Block a user