summaryrefslogtreecommitdiffstats
path: root/winit
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2020-05-21 00:37:47 +0200
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2020-05-21 00:44:35 +0200
commite0e4ee73feead3f05730625c7e1917b63f0b384e (patch)
tree5cd934cc474a5aacc60359f6fe69a5b9d31fe45b /winit
parenta1a5fcfd46622d5b18d1716aa2adb4659835ccf3 (diff)
downloadiced-e0e4ee73feead3f05730625c7e1917b63f0b384e.tar.gz
iced-e0e4ee73feead3f05730625c7e1917b63f0b384e.tar.bz2
iced-e0e4ee73feead3f05730625c7e1917b63f0b384e.zip
Implement `iced_glutin` :tada:
Diffstat (limited to 'winit')
-rw-r--r--winit/src/application.rs32
-rw-r--r--winit/src/lib.rs7
-rw-r--r--winit/src/proxy.rs1
-rw-r--r--winit/src/settings.rs36
-rw-r--r--winit/src/size.rs30
5 files changed, 45 insertions, 61 deletions
diff --git a/winit/src/application.rs b/winit/src/application.rs
index 9196709b..ccab19f1 100644
--- a/winit/src/application.rs
+++ b/winit/src/application.rs
@@ -129,7 +129,6 @@ pub trait Application: Sized {
use winit::{
event::{self, WindowEvent},
event_loop::{ControlFlow, EventLoop},
- window::WindowBuilder,
};
let mut debug = Debug::new();
@@ -155,32 +154,11 @@ pub trait Application: Sized {
let mut title = application.title();
let mut mode = application.mode();
- let window = {
- let mut window_builder = WindowBuilder::new();
-
- let (width, height) = settings.window.size;
-
- window_builder = window_builder
- .with_title(&title)
- .with_inner_size(winit::dpi::LogicalSize { width, height })
- .with_resizable(settings.window.resizable)
- .with_decorations(settings.window.decorations)
- .with_fullscreen(conversion::fullscreen(
- event_loop.primary_monitor(),
- mode,
- ));
-
- #[cfg(target_os = "windows")]
- {
- use winit::platform::windows::WindowBuilderExtWindows;
-
- if let Some(parent) = settings.window.platform_specific.parent {
- window_builder = window_builder.with_parent_window(parent);
- }
- }
-
- window_builder.build(&event_loop).expect("Open window")
- };
+ let window = settings
+ .window
+ .into_builder(&title, mode, event_loop.primary_monitor())
+ .build(&event_loop)
+ .expect("Open window");
let physical_size = window.inner_size();
let mut viewport = Viewport::with_physical_size(
diff --git a/winit/src/lib.rs b/winit/src/lib.rs
index b0f235ad..9cf5dc0d 100644
--- a/winit/src/lib.rs
+++ b/winit/src/lib.rs
@@ -15,7 +15,7 @@
//! [`winit`]: https://github.com/rust-windowing/winit
//! [`Application`]: trait.Application.html
//! [`conversion`]: conversion
-#![deny(missing_docs)]
+//#![deny(missing_docs)]
#![deny(missing_debug_implementations)]
#![deny(unused_results)]
#![forbid(unsafe_code)]
@@ -44,8 +44,7 @@ mod debug;
pub use application::Application;
pub use clipboard::Clipboard;
+pub use debug::Debug;
pub use mode::Mode;
+pub use proxy::Proxy;
pub use settings::Settings;
-
-use debug::Debug;
-use proxy::Proxy;
diff --git a/winit/src/proxy.rs b/winit/src/proxy.rs
index cff6ca72..ee96614a 100644
--- a/winit/src/proxy.rs
+++ b/winit/src/proxy.rs
@@ -5,6 +5,7 @@ use iced_native::futures::{
};
use std::pin::Pin;
+#[derive(Debug)]
pub struct Proxy<Message: 'static> {
raw: winit::event_loop::EventLoopProxy<Message>,
}
diff --git a/winit/src/settings.rs b/winit/src/settings.rs
index d58c51f0..751f5071 100644
--- a/winit/src/settings.rs
+++ b/winit/src/settings.rs
@@ -8,6 +8,11 @@ mod platform;
pub use platform::PlatformSpecific;
+use crate::conversion;
+use crate::Mode;
+use winit::monitor::MonitorHandle;
+use winit::window::WindowBuilder;
+
/// The settings of an application.
#[derive(Debug, Clone, Copy, PartialEq, Default)]
pub struct Settings<Flags> {
@@ -38,6 +43,37 @@ pub struct Window {
pub platform_specific: platform::PlatformSpecific,
}
+impl Window {
+ pub fn into_builder(
+ self,
+ title: &str,
+ mode: Mode,
+ primary_monitor: MonitorHandle,
+ ) -> WindowBuilder {
+ let mut window_builder = WindowBuilder::new();
+
+ let (width, height) = self.size;
+
+ window_builder = window_builder
+ .with_title(title)
+ .with_inner_size(winit::dpi::LogicalSize { width, height })
+ .with_resizable(self.resizable)
+ .with_decorations(self.decorations)
+ .with_fullscreen(conversion::fullscreen(primary_monitor, mode));
+
+ #[cfg(target_os = "windows")]
+ {
+ use winit::platform::windows::WindowBuilderExtWindows;
+
+ if let Some(parent) = self.platform_specific.parent {
+ window_builder = window_builder.with_parent_window(parent);
+ }
+ }
+
+ window_builder
+ }
+}
+
impl Default for Window {
fn default() -> Window {
Window {
diff --git a/winit/src/size.rs b/winit/src/size.rs
deleted file mode 100644
index 7e3056d4..00000000
--- a/winit/src/size.rs
+++ /dev/null
@@ -1,30 +0,0 @@
-pub struct Size {
- physical: winit::dpi::PhysicalSize<u32>,
- logical: winit::dpi::LogicalSize<f64>,
- scale_factor: f64,
-}
-
-impl Size {
- pub fn new(
- physical: winit::dpi::PhysicalSize<u32>,
- scale_factor: f64,
- ) -> Size {
- Size {
- logical: physical.to_logical(scale_factor),
- physical,
- scale_factor,
- }
- }
-
- pub fn physical(&self) -> winit::dpi::PhysicalSize<u32> {
- self.physical
- }
-
- pub fn logical(&self) -> winit::dpi::LogicalSize<f64> {
- self.logical
- }
-
- pub fn scale_factor(&self) -> f64 {
- self.scale_factor
- }
-}