summaryrefslogtreecommitdiffstats
path: root/winit/src/application.rs
diff options
context:
space:
mode:
Diffstat (limited to 'winit/src/application.rs')
-rw-r--r--winit/src/application.rs23
1 files changed, 14 insertions, 9 deletions
diff --git a/winit/src/application.rs b/winit/src/application.rs
index a8612b1a..8529c99c 100644
--- a/winit/src/application.rs
+++ b/winit/src/application.rs
@@ -1,9 +1,9 @@
use crate::{
- conversion,
+ container, conversion,
input::{keyboard, mouse},
renderer::{Target, Windowed},
- subscription, Cache, Clipboard, Command, Container, Debug, Element, Event,
- Length, MouseCursor, Settings, Subscription, UserInterface,
+ subscription, window, Cache, Clipboard, Command, Container, Debug, Element,
+ Event, Length, MouseCursor, Settings, Subscription, UserInterface,
};
/// An interactive, native cross-platform application.
@@ -18,7 +18,7 @@ pub trait Application: Sized {
/// The renderer to use to draw the [`Application`].
///
/// [`Application`]: trait.Application.html
- type Renderer: Windowed;
+ type Renderer: Windowed + container::Renderer;
/// The type of __messages__ your [`Application`] will produce.
///
@@ -81,8 +81,10 @@ pub trait Application: Sized {
/// It should probably be that last thing you call in your `main` function.
///
/// [`Application`]: trait.Application.html
- fn run(settings: Settings)
- where
+ fn run(
+ settings: Settings,
+ renderer_settings: <Self::Renderer as Windowed>::Settings,
+ ) where
Self: 'static,
{
use winit::{
@@ -140,7 +142,7 @@ pub trait Application: Sized {
let mut resized = false;
let clipboard = Clipboard::new(&window);
- let mut renderer = Self::Renderer::new();
+ let mut renderer = Self::Renderer::new(renderer_settings);
let mut target = {
let (width, height) = to_physical(size, dpi);
@@ -371,10 +373,13 @@ pub trait Application: Sized {
*control_flow = ControlFlow::Exit;
}
WindowEvent::Resized(new_size) => {
+ events.push(Event::Window(window::Event::Resized {
+ width: new_size.width.round() as u32,
+ height: new_size.height.round() as u32,
+ }));
+
size = new_size;
resized = true;
-
- log::debug!("Resized: {:?}", new_size);
}
_ => {}
},