summaryrefslogtreecommitdiffstats
path: root/native/src/widget/image.rs
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón <hector0193@gmail.com>2019-10-23 04:52:51 +0200
committerLibravatar GitHub <noreply@github.com>2019-10-23 04:52:51 +0200
commit4769272122e8cd0a4d666bb06c00cb27f8cad3c4 (patch)
tree68e513170347d804f55b3743f1fd960bbf700950 /native/src/widget/image.rs
parente95e656fcd780264f7a3c9a2ba3d0bd471d4894e (diff)
parent99e1a3780a1ea3ccb173d1fb4cbe889bb08b9643 (diff)
downloadiced-4769272122e8cd0a4d666bb06c00cb27f8cad3c4.tar.gz
iced-4769272122e8cd0a4d666bb06c00cb27f8cad3c4.tar.bz2
iced-4769272122e8cd0a4d666bb06c00cb27f8cad3c4.zip
Merge pull request #22 from hecrj/basic-renderer
Basic `wgpu` renderer
Diffstat (limited to 'native/src/widget/image.rs')
-rw-r--r--native/src/widget/image.rs28
1 files changed, 12 insertions, 16 deletions
diff --git a/native/src/widget/image.rs b/native/src/widget/image.rs
index 81f99acb..6255a7b5 100644
--- a/native/src/widget/image.rs
+++ b/native/src/widget/image.rs
@@ -1,17 +1,16 @@
//! Display images in your user interface.
-use crate::{Element, Hasher, Layout, MouseCursor, Node, Point, Widget};
+use crate::{Element, Hasher, Layout, Node, Point, Widget};
use std::hash::Hash;
pub use iced_core::Image;
-impl<I, Message, Renderer> Widget<Message, Renderer> for Image<I>
+impl<Message, Renderer> Widget<Message, Renderer> for Image
where
- Renderer: self::Renderer<I>,
- I: Clone,
+ Renderer: self::Renderer,
{
- fn node(&self, renderer: &mut Renderer) -> Node {
+ fn node(&self, renderer: &Renderer) -> Node {
renderer.node(&self)
}
@@ -20,10 +19,8 @@ where
renderer: &mut Renderer,
layout: Layout<'_>,
_cursor_position: Point,
- ) -> MouseCursor {
- renderer.draw(&self, layout);
-
- MouseCursor::OutOfBounds
+ ) -> Renderer::Output {
+ renderer.draw(&self, layout)
}
fn hash_layout(&self, state: &mut Hasher) {
@@ -40,27 +37,26 @@ where
///
/// [`Image`]: struct.Image.html
/// [renderer]: ../../renderer/index.html
-pub trait Renderer<I> {
+pub trait Renderer: crate::Renderer {
/// Creates a [`Node`] for the provided [`Image`].
///
/// You should probably keep the original aspect ratio, if possible.
///
/// [`Node`]: ../../struct.Node.html
/// [`Image`]: struct.Image.html
- fn node(&mut self, image: &Image<I>) -> Node;
+ fn node(&self, image: &Image) -> Node;
/// Draws an [`Image`].
///
/// [`Image`]: struct.Image.html
- fn draw(&mut self, image: &Image<I>, layout: Layout<'_>);
+ fn draw(&mut self, image: &Image, layout: Layout<'_>) -> Self::Output;
}
-impl<'a, I, Message, Renderer> From<Image<I>> for Element<'a, Message, Renderer>
+impl<'a, Message, Renderer> From<Image> for Element<'a, Message, Renderer>
where
- Renderer: self::Renderer<I>,
- I: Clone + 'a,
+ Renderer: self::Renderer,
{
- fn from(image: Image<I>) -> Element<'a, Message, Renderer> {
+ fn from(image: Image) -> Element<'a, Message, Renderer> {
Element::new(image)
}
}