diff options
author | 2021-10-25 15:03:57 +0700 | |
---|---|---|
committer | 2021-10-25 15:03:57 +0700 | |
commit | 1afbc98544327b5454b862bec938dc76c4d38fa0 (patch) | |
tree | 5f48bb6379ce3db93afbb9d88284eab33ddb97af /graphics | |
parent | e7ae4422312e045a1fbbaa7655d4bf78ca6954a8 (diff) | |
download | iced-1afbc98544327b5454b862bec938dc76c4d38fa0.tar.gz iced-1afbc98544327b5454b862bec938dc76c4d38fa0.tar.bz2 iced-1afbc98544327b5454b862bec938dc76c4d38fa0.zip |
Implement `Widget::draw` for `Image`
Diffstat (limited to 'graphics')
-rw-r--r-- | graphics/src/renderer.rs | 4 | ||||
-rw-r--r-- | graphics/src/widget/image.rs | 10 |
2 files changed, 13 insertions, 1 deletions
diff --git a/graphics/src/renderer.rs b/graphics/src/renderer.rs index 5e74019f..d90a3f1e 100644 --- a/graphics/src/renderer.rs +++ b/graphics/src/renderer.rs @@ -26,6 +26,10 @@ impl<B: Backend> Renderer<B> { &self.backend } + pub fn draw_primitive(&mut self, primitive: Primitive) { + self.primitives.push(primitive); + } + pub fn present(&mut self, f: impl FnOnce(&mut B, &[Primitive])) { f(&mut self.backend, &self.primitives); } diff --git a/graphics/src/widget/image.rs b/graphics/src/widget/image.rs index b55ba32f..dc2d1657 100644 --- a/graphics/src/widget/image.rs +++ b/graphics/src/widget/image.rs @@ -3,8 +3,9 @@ pub mod viewer; use crate::backend::{self, Backend}; -use crate::Renderer; +use crate::{Primitive, Renderer}; use iced_native::image; +use iced_native::Layout; pub use iced_native::image::{Handle, Image, Viewer}; @@ -15,4 +16,11 @@ where fn dimensions(&self, handle: &image::Handle) -> (u32, u32) { self.backend().dimensions(handle) } + + fn draw(&mut self, handle: image::Handle, layout: Layout<'_>) { + self.draw_primitive(Primitive::Image { + handle, + bounds: layout.bounds(), + }) + } } |