summaryrefslogtreecommitdiffstats
path: root/winit
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2019-11-02 19:58:49 +0100
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2019-11-02 19:58:49 +0100
commit58e04af824a64d9f712a2d6691d4283888d271d3 (patch)
tree1408e07b0eb618d9a64ad6a9a0d8953832dc2aa8 /winit
parentf3baae92282566ccb6ff3689a08fcaa907430ef7 (diff)
downloadiced-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.rs18
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(