diff options
author | 2020-04-09 00:34:37 +0200 | |
---|---|---|
committer | 2020-04-09 00:34:37 +0200 | |
commit | d51b501d2f5170f79c953c63e0532490882e9ca9 (patch) | |
tree | fc94aeaca9abae4e63dfda286d5e5b3f25711402 /wgpu | |
parent | 703beae05ec2988b9a6b15e84291ec818b37bf5b (diff) | |
parent | 6e7769b65dfda1ab748eb26f8832fd32714f6fc1 (diff) | |
download | iced-d51b501d2f5170f79c953c63e0532490882e9ca9.tar.gz iced-d51b501d2f5170f79c953c63e0532490882e9ca9.tar.bz2 iced-d51b501d2f5170f79c953c63e0532490882e9ca9.zip |
Merge pull request #267 from robjtede/improve/canvas-cache-default
impl default for canvas cache
Diffstat (limited to 'wgpu')
-rw-r--r-- | wgpu/src/widget/canvas/layer/cache.rs | 31 |
1 files changed, 24 insertions, 7 deletions
diff --git a/wgpu/src/widget/canvas/layer/cache.rs b/wgpu/src/widget/canvas/layer/cache.rs index 20a095bd..4f8c2bec 100644 --- a/wgpu/src/widget/canvas/layer/cache.rs +++ b/wgpu/src/widget/canvas/layer/cache.rs @@ -6,6 +6,19 @@ use crate::{ use iced_native::Size; use std::{cell::RefCell, marker::PhantomData, sync::Arc}; +enum State { + Empty, + Filled { + bounds: Size, + primitive: Arc<Primitive>, + }, +} + +impl Default for State { + fn default() -> Self { + State::Empty + } +} /// A simple cache that stores generated geometry to avoid recomputation. /// /// A [`Cache`] will not redraw its geometry unless the dimensions of its layer @@ -19,12 +32,16 @@ pub struct Cache<T: Drawable> { state: RefCell<State>, } -enum State { - Empty, - Filled { - bounds: Size, - primitive: Arc<Primitive>, - }, +impl<T> Default for Cache<T> +where + T: Drawable, +{ + fn default() -> Self { + Self { + input: PhantomData, + state: Default::default(), + } + } } impl<T> Cache<T> @@ -37,7 +54,7 @@ where pub fn new() -> Self { Cache { input: PhantomData, - state: RefCell::new(State::Empty), + state: Default::default(), } } |