From d328b07b3937c968fc8139f0b5c61903ebb893e7 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Tue, 18 Aug 2020 03:37:32 +0200 Subject: Introduce `viewport` to `Widget::draw` This should eventually allow us to only generate primitives that are visible. --- native/src/user_interface.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'native/src/user_interface.rs') diff --git a/native/src/user_interface.rs b/native/src/user_interface.rs index 00a290f1..59d91f42 100644 --- a/native/src/user_interface.rs +++ b/native/src/user_interface.rs @@ -1,4 +1,6 @@ -use crate::{layout, overlay, Clipboard, Element, Event, Layout, Point, Size}; +use crate::layout; +use crate::overlay; +use crate::{Clipboard, Element, Event, Layout, Point, Rectangle, Size}; use std::hash::Hasher; @@ -327,6 +329,8 @@ where renderer: &mut Renderer, cursor_position: Point, ) -> Renderer::Output { + let viewport = Rectangle::with_size(self.bounds); + let overlay = if let Some(mut overlay) = self.root.overlay(Layout::new(&self.base.layout)) { @@ -365,6 +369,7 @@ where &Renderer::Defaults::default(), Layout::new(&self.base.layout), base_cursor, + &viewport, ); renderer.overlay( @@ -378,6 +383,7 @@ where &Renderer::Defaults::default(), Layout::new(&self.base.layout), cursor_position, + &viewport, ) } } -- cgit