summaryrefslogtreecommitdiffstats
path: root/graphics/src/renderer.rs
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2022-03-09 14:10:15 +0700
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2022-03-09 14:10:15 +0700
commit12c1a3f829c801022d45f1a294d8fc7fa10606e5 (patch)
tree05cc7a7981f13063831e7397129ea30a14a6d97a /graphics/src/renderer.rs
parent7d9ab71790ba0395681490f3af4d3899bb09ab09 (diff)
downloadiced-12c1a3f829c801022d45f1a294d8fc7fa10606e5.tar.gz
iced-12c1a3f829c801022d45f1a294d8fc7fa10606e5.tar.bz2
iced-12c1a3f829c801022d45f1a294d8fc7fa10606e5.zip
Remove redundant `widget` modules in subcrates
Instead, we can define the type aliases just once in the root crate!
Diffstat (limited to 'graphics/src/renderer.rs')
-rw-r--r--graphics/src/renderer.rs30
1 files changed, 30 insertions, 0 deletions
diff --git a/graphics/src/renderer.rs b/graphics/src/renderer.rs
index c32eb471..cb31ea5f 100644
--- a/graphics/src/renderer.rs
+++ b/graphics/src/renderer.rs
@@ -1,8 +1,10 @@
//! Create a renderer from a [`Backend`].
use crate::backend::{self, Backend};
use crate::{Primitive, Vector};
+use iced_native::image;
use iced_native::layout;
use iced_native::renderer;
+use iced_native::svg;
use iced_native::text::{self, Text};
use iced_native::{Background, Element, Font, Point, Rectangle, Size};
@@ -168,3 +170,31 @@ where
});
}
}
+
+impl<B> image::Renderer for Renderer<B>
+where
+ B: Backend + backend::Image,
+{
+ type Handle = image::Handle;
+
+ fn dimensions(&self, handle: &image::Handle) -> (u32, u32) {
+ self.backend().dimensions(handle)
+ }
+
+ fn draw(&mut self, handle: image::Handle, bounds: Rectangle) {
+ self.draw_primitive(Primitive::Image { handle, bounds })
+ }
+}
+
+impl<B> svg::Renderer for Renderer<B>
+where
+ B: Backend + backend::Svg,
+{
+ 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 })
+ }
+}