diff options
-rw-r--r-- | graphics/src/widget/svg.rs | 6 | ||||
-rw-r--r-- | native/src/widget/svg.rs | 8 |
2 files changed, 10 insertions, 4 deletions
diff --git a/graphics/src/widget/svg.rs b/graphics/src/widget/svg.rs index b74a0abb..621f1a85 100644 --- a/graphics/src/widget/svg.rs +++ b/graphics/src/widget/svg.rs @@ -1,6 +1,6 @@ //! Display vector graphics in your application. use crate::backend::{self, Backend}; -use crate::Renderer; +use crate::{Primitive, Rectangle, Renderer}; use iced_native::svg; pub use iced_native::svg::{Handle, Svg}; @@ -12,4 +12,8 @@ where fn dimensions(&self, handle: &svg::Handle) -> (u32, u32) { self.backend().viewport_dimensions(handle) } + + fn draw(&mut self, handle: svg::Handle, bounds: Rectangle) { + self.draw_primitive(Primitive::Svg { handle, bounds }) + } } diff --git a/native/src/widget/svg.rs b/native/src/widget/svg.rs index cce560cb..785b8054 100644 --- a/native/src/widget/svg.rs +++ b/native/src/widget/svg.rs @@ -89,13 +89,12 @@ where fn draw( &self, renderer: &mut Renderer, - style: &renderer::Style, + _style: &renderer::Style, layout: Layout<'_>, _cursor_position: Point, _viewport: &Rectangle, ) { - // TODO - // renderer.draw(self.handle.clone(), layout) + renderer.draw(self.handle.clone(), layout.bounds()) } fn hash_layout(&self, state: &mut Hasher) { @@ -187,6 +186,9 @@ impl std::fmt::Debug for Data { pub trait Renderer: crate::Renderer { /// Returns the default dimensions of an [`Svg`] for the given [`Handle`]. fn dimensions(&self, handle: &Handle) -> (u32, u32); + + // Draws an [`Svg`]. + fn draw(&mut self, handle: Handle, bounds: Rectangle); } impl<'a, Message, Renderer> From<Svg> for Element<'a, Message, Renderer> |