diff options
author | 2019-11-11 06:07:31 +0100 | |
---|---|---|
committer | 2019-11-11 06:07:31 +0100 | |
commit | 860a6923bbed57a21ce4b2cae331f6a3a51ca3fe (patch) | |
tree | b179c26278ef95b6aa2520c1cef69b5fa264ebcf /native/src/renderer.rs | |
parent | d4d14b68f47e9527554a728ebbba9b840832626a (diff) | |
download | iced-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.rs | 11 |
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) + } } |