summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--graphics/src/widget/svg.rs6
-rw-r--r--native/src/widget/svg.rs8
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>