diff options
author | 2022-03-09 14:10:15 +0700 | |
---|---|---|
committer | 2022-03-09 14:10:15 +0700 | |
commit | 12c1a3f829c801022d45f1a294d8fc7fa10606e5 (patch) | |
tree | 05cc7a7981f13063831e7397129ea30a14a6d97a /graphics/src/renderer.rs | |
parent | 7d9ab71790ba0395681490f3af4d3899bb09ab09 (diff) | |
download | iced-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.rs | 30 |
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 }) + } +} |