diff options
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(), + }) + } } |