diff options
author | 2020-02-12 08:49:42 +0100 | |
---|---|---|
committer | 2020-02-12 08:49:42 +0100 | |
commit | 578ea4abb8a2dd0d53d7087322796bf9ad541b56 (patch) | |
tree | be684d9262fbf1ae0c5fc2db469d74ab0a5a98c4 /wgpu/src/widget/canvas.rs | |
parent | f34407bfdaf06c4bf204dc31b152be9451c243b8 (diff) | |
download | iced-578ea4abb8a2dd0d53d7087322796bf9ad541b56.tar.gz iced-578ea4abb8a2dd0d53d7087322796bf9ad541b56.tar.bz2 iced-578ea4abb8a2dd0d53d7087322796bf9ad541b56.zip |
Finish `clock` example
Diffstat (limited to '')
-rw-r--r-- | wgpu/src/widget/canvas.rs | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/wgpu/src/widget/canvas.rs b/wgpu/src/widget/canvas.rs index 6bfeed9a..c984fee9 100644 --- a/wgpu/src/widget/canvas.rs +++ b/wgpu/src/widget/canvas.rs @@ -68,7 +68,6 @@ impl<'a, Message> Widget<Message, Renderer> for Canvas<'a> { limits: &layout::Limits, ) -> layout::Node { let limits = limits.width(self.width).height(self.height); - let size = limits.resolve(Size::ZERO); layout::Node::new(size) @@ -78,10 +77,26 @@ impl<'a, Message> Widget<Message, Renderer> for Canvas<'a> { &self, _renderer: &mut Renderer, _defaults: &Defaults, - _layout: Layout<'_>, + layout: Layout<'_>, _cursor_position: Point, ) -> (Primitive, MouseCursor) { - (Primitive::None, MouseCursor::Idle) + let bounds = layout.bounds(); + let origin = Point::new(bounds.x, bounds.y); + let size = Size::new(bounds.width, bounds.height); + + ( + Primitive::Group { + primitives: self + .layers + .iter() + .map(|layer| Primitive::Mesh2D { + origin, + buffers: layer.draw(size), + }) + .collect(), + }, + MouseCursor::Idle, + ) } fn hash_layout(&self, state: &mut Hasher) { |