summaryrefslogtreecommitdiffstats
path: root/native/src/renderer.rs
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2019-11-11 06:07:31 +0100
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2019-11-11 06:07:31 +0100
commit860a6923bbed57a21ce4b2cae331f6a3a51ca3fe (patch)
treeb179c26278ef95b6aa2520c1cef69b5fa264ebcf /native/src/renderer.rs
parentd4d14b68f47e9527554a728ebbba9b840832626a (diff)
downloadiced-860a6923bbed57a21ce4b2cae331f6a3a51ca3fe.tar.gz
iced-860a6923bbed57a21ce4b2cae331f6a3a51ca3fe.tar.bz2
iced-860a6923bbed57a21ce4b2cae331f6a3a51ca3fe.zip
Split text measurements cache from rendering cache
This speeds up layouting in the most common scenario considerably! :tada:
Diffstat (limited to 'native/src/renderer.rs')
-rw-r--r--native/src/renderer.rs11
1 files changed, 10 insertions, 1 deletions
diff --git a/native/src/renderer.rs b/native/src/renderer.rs
index 5963d577..833de571 100644
--- a/native/src/renderer.rs
+++ b/native/src/renderer.rs
@@ -26,6 +26,15 @@ mod windowed;
pub use debugger::Debugger;
pub use windowed::{Target, Windowed};
-pub trait Renderer {
+use crate::{layout, Element};
+
+pub trait Renderer: Sized {
type Output;
+
+ fn layout<'a, Message>(
+ &mut self,
+ element: &Element<'a, Message, Self>,
+ ) -> layout::Node {
+ element.layout(self, &layout::Limits::NONE)
+ }
}