diff options
author | 2019-11-02 19:58:49 +0100 | |
---|---|---|
committer | 2019-11-02 19:58:49 +0100 | |
commit | 58e04af824a64d9f712a2d6691d4283888d271d3 (patch) | |
tree | 1408e07b0eb618d9a64ad6a9a0d8953832dc2aa8 /winit | |
parent | f3baae92282566ccb6ff3689a08fcaa907430ef7 (diff) | |
download | iced-58e04af824a64d9f712a2d6691d4283888d271d3.tar.gz iced-58e04af824a64d9f712a2d6691d4283888d271d3.tar.bz2 iced-58e04af824a64d9f712a2d6691d4283888d271d3.zip |
Draft `Metrics` and improve `Target` abstraction
Diffstat (limited to 'winit')
-rw-r--r-- | winit/src/application.rs | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/winit/src/application.rs b/winit/src/application.rs index b90b5eef..8c7d8c37 100644 --- a/winit/src/application.rs +++ b/winit/src/application.rs @@ -1,7 +1,7 @@ use crate::{ column, conversion, input::{keyboard, mouse}, - renderer::Windowed, + renderer::{Target, Windowed}, Cache, Column, Element, Event, Length, MouseCursor, UserInterface, }; @@ -41,8 +41,14 @@ pub trait Application { .into(); let mut new_size: Option<Size> = None; - let mut renderer = Self::Renderer::new(&window); - let mut target = renderer.target(size.width, size.height); + let mut renderer = Self::Renderer::new(); + + let mut target = <Self::Renderer as Windowed>::Target::new( + &window, + size.width, + size.height, + &renderer, + ); let user_interface = UserInterface::build( document(&mut self, size), @@ -103,11 +109,13 @@ pub trait Application { } event::Event::RedrawRequested(_) => { if let Some(new_size) = new_size.take() { - target = renderer.target(new_size.width, new_size.height); + target.resize(new_size.width, new_size.height, &renderer); + size = new_size; } - let new_mouse_cursor = renderer.draw(&primitive, &mut target); + let new_mouse_cursor = + renderer.draw(&primitive, None, &mut target); if new_mouse_cursor != mouse_cursor { window.set_cursor_icon(conversion::mouse_cursor( |