summaryrefslogtreecommitdiffstats
path: root/graphics
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2021-10-25 15:03:57 +0700
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2021-10-25 15:03:57 +0700
commit1afbc98544327b5454b862bec938dc76c4d38fa0 (patch)
tree5f48bb6379ce3db93afbb9d88284eab33ddb97af /graphics
parente7ae4422312e045a1fbbaa7655d4bf78ca6954a8 (diff)
downloadiced-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.rs4
-rw-r--r--graphics/src/widget/image.rs10
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(),
+ })
+ }
}