summaryrefslogtreecommitdiffstats
path: root/graphics
diff options
context:
space:
mode:
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(),
+ })
+ }
}