summaryrefslogtreecommitdiffstats
path: root/native/src/user_interface.rs
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2021-10-14 16:07:22 +0700
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2021-10-14 16:07:22 +0700
commit03b34931383e701c39c653a7662a616fe21a0947 (patch)
tree8c0773d50b615dbc62210db8919ecb97ca912bd9 /native/src/user_interface.rs
parent3aae45c1913e6a6f60b009f19d00d10add7ad11e (diff)
downloadiced-03b34931383e701c39c653a7662a616fe21a0947.tar.gz
iced-03b34931383e701c39c653a7662a616fe21a0947.tar.bz2
iced-03b34931383e701c39c653a7662a616fe21a0947.zip
Remove trait-specific draw logic in `iced_native`
Diffstat (limited to 'native/src/user_interface.rs')
-rw-r--r--native/src/user_interface.rs34
1 files changed, 13 insertions, 21 deletions
diff --git a/native/src/user_interface.rs b/native/src/user_interface.rs
index 8e0d7d1c..187c469a 100644
--- a/native/src/user_interface.rs
+++ b/native/src/user_interface.rs
@@ -329,11 +329,7 @@ where
/// // Flush rendering operations...
/// }
/// ```
- pub fn draw(
- &mut self,
- renderer: &mut Renderer,
- cursor_position: Point,
- ) -> Renderer::Output {
+ pub fn draw(&mut self, renderer: &mut Renderer, cursor_position: Point) {
let viewport = Rectangle::with_size(self.bounds);
let overlay = if let Some(mut overlay) =
@@ -348,40 +344,36 @@ where
let overlay_bounds = layer.layout.bounds();
- let overlay_primitives = overlay.draw(
- renderer,
- &Renderer::Defaults::default(),
- Layout::new(&layer.layout),
- cursor_position,
- );
+ renderer.with_layer(overlay_bounds, |renderer| {
+ overlay.draw(
+ renderer,
+ &Renderer::Defaults::default(),
+ Layout::new(&layer.layout),
+ cursor_position,
+ );
+ });
self.overlay = Some(layer);
- Some((overlay_primitives, overlay_bounds))
+ Some(overlay_bounds)
} else {
None
};
- if let Some((overlay_primitives, overlay_bounds)) = overlay {
+ if let Some(overlay_bounds) = overlay {
let base_cursor = if overlay_bounds.contains(cursor_position) {
Point::new(-1.0, -1.0)
} else {
cursor_position
};
- let base_primitives = self.root.widget.draw(
+ self.root.widget.draw(
renderer,
&Renderer::Defaults::default(),
Layout::new(&self.base.layout),
base_cursor,
&viewport,
);
-
- renderer.overlay(
- base_primitives,
- overlay_primitives,
- overlay_bounds,
- )
} else {
self.root.widget.draw(
renderer,
@@ -389,7 +381,7 @@ where
Layout::new(&self.base.layout),
cursor_position,
&viewport,
- )
+ );
}
}