Implement Widget::draw for Image

This commit is contained in:
Héctor Ramón Jiménez 2021-10-25 15:03:57 +07:00
parent e7ae442231
commit 1afbc98544
No known key found for this signature in database
GPG key ID: 140CC052C94F138E
3 changed files with 17 additions and 2 deletions

View file

@ -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);
}

View file

@ -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(),
})
}
}