diff options
author | 2021-10-14 16:07:22 +0700 | |
---|---|---|
committer | 2021-10-14 16:07:22 +0700 | |
commit | 03b34931383e701c39c653a7662a616fe21a0947 (patch) | |
tree | 8c0773d50b615dbc62210db8919ecb97ca912bd9 /native/src/user_interface.rs | |
parent | 3aae45c1913e6a6f60b009f19d00d10add7ad11e (diff) | |
download | iced-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.rs | 34 |
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, - ) + ); } } |