diff options
Diffstat (limited to 'examples/geometry')
| -rw-r--r-- | examples/geometry/Cargo.toml | 2 | ||||
| -rw-r--r-- | examples/geometry/src/main.rs | 142 | 
2 files changed, 77 insertions, 67 deletions
diff --git a/examples/geometry/Cargo.toml b/examples/geometry/Cargo.toml index 9df52454..34eec4fb 100644 --- a/examples/geometry/Cargo.toml +++ b/examples/geometry/Cargo.toml @@ -8,4 +8,4 @@ publish = false  [dependencies]  iced = { path = "../.." }  iced_native = { path = "../../native" } -iced_wgpu = { path = "../../wgpu" } +iced_graphics = { path = "../../graphics" } diff --git a/examples/geometry/src/main.rs b/examples/geometry/src/main.rs index 13a687ab..f650b2c1 100644 --- a/examples/geometry/src/main.rs +++ b/examples/geometry/src/main.rs @@ -10,13 +10,13 @@ mod rainbow {      // Of course, you can choose to make the implementation renderer-agnostic,      // if you wish to, by creating your own `Renderer` trait, which could be      // implemented by `iced_wgpu` and other renderers. -    use iced_native::{ -        layout, Element, Hasher, Layout, Length, MouseCursor, Point, Size, -        Widget, -    }; -    use iced_wgpu::{ +    use iced_graphics::{          triangle::{Mesh2D, Vertex2D}, -        Defaults, Primitive, Renderer, +        Backend, Defaults, Primitive, Renderer, +    }; +    use iced_native::{ +        layout, mouse, Element, Hasher, Layout, Length, Point, Rectangle, Size, +        Vector, Widget,      };      pub struct Rainbow; @@ -27,7 +27,10 @@ mod rainbow {          }      } -    impl<Message> Widget<Message, Renderer> for Rainbow { +    impl<Message, B> Widget<Message, Renderer<B>> for Rainbow +    where +        B: Backend, +    {          fn width(&self) -> Length {              Length::Fill          } @@ -38,7 +41,7 @@ mod rainbow {          fn layout(              &self, -            _renderer: &Renderer, +            _renderer: &Renderer<B>,              limits: &layout::Limits,          ) -> layout::Node {              let size = limits.width(Length::Fill).resolve(Size::ZERO); @@ -50,11 +53,12 @@ mod rainbow {          fn draw(              &self, -            _renderer: &mut Renderer, +            _renderer: &mut Renderer<B>,              _defaults: &Defaults,              layout: Layout<'_>,              cursor_position: Point, -        ) -> (Primitive, MouseCursor) { +            _viewport: &Rectangle, +        ) -> (Primitive, mouse::Interaction) {              let b = layout.bounds();              // R O Y G B I V @@ -85,66 +89,72 @@ mod rainbow {              let posn_l = [0.0, b.height / 2.0];              ( -                Primitive::Mesh2D { -                    origin: Point::new(b.x, b.y), -                    buffers: Mesh2D { -                        vertices: vec![ -                            Vertex2D { -                                position: posn_center, -                                color: [1.0, 1.0, 1.0, 1.0], -                            }, -                            Vertex2D { -                                position: posn_tl, -                                color: color_r, -                            }, -                            Vertex2D { -                                position: posn_t, -                                color: color_o, -                            }, -                            Vertex2D { -                                position: posn_tr, -                                color: color_y, -                            }, -                            Vertex2D { -                                position: posn_r, -                                color: color_g, -                            }, -                            Vertex2D { -                                position: posn_br, -                                color: color_gb, -                            }, -                            Vertex2D { -                                position: posn_b, -                                color: color_b, -                            }, -                            Vertex2D { -                                position: posn_bl, -                                color: color_i, -                            }, -                            Vertex2D { -                                position: posn_l, -                                color: color_v, -                            }, -                        ], -                        indices: vec![ -                            0, 1, 2, // TL -                            0, 2, 3, // T -                            0, 3, 4, // TR -                            0, 4, 5, // R -                            0, 5, 6, // BR -                            0, 6, 7, // B -                            0, 7, 8, // BL -                            0, 8, 1, // L -                        ], -                    }, +                Primitive::Translate { +                    translation: Vector::new(b.x, b.y), +                    content: Box::new(Primitive::Mesh2D { +                        size: b.size(), +                        buffers: Mesh2D { +                            vertices: vec![ +                                Vertex2D { +                                    position: posn_center, +                                    color: [1.0, 1.0, 1.0, 1.0], +                                }, +                                Vertex2D { +                                    position: posn_tl, +                                    color: color_r, +                                }, +                                Vertex2D { +                                    position: posn_t, +                                    color: color_o, +                                }, +                                Vertex2D { +                                    position: posn_tr, +                                    color: color_y, +                                }, +                                Vertex2D { +                                    position: posn_r, +                                    color: color_g, +                                }, +                                Vertex2D { +                                    position: posn_br, +                                    color: color_gb, +                                }, +                                Vertex2D { +                                    position: posn_b, +                                    color: color_b, +                                }, +                                Vertex2D { +                                    position: posn_bl, +                                    color: color_i, +                                }, +                                Vertex2D { +                                    position: posn_l, +                                    color: color_v, +                                }, +                            ], +                            indices: vec![ +                                0, 1, 2, // TL +                                0, 2, 3, // T +                                0, 3, 4, // TR +                                0, 4, 5, // R +                                0, 5, 6, // BR +                                0, 6, 7, // B +                                0, 7, 8, // BL +                                0, 8, 1, // L +                            ], +                        }, +                    }),                  }, -                MouseCursor::OutOfBounds, +                mouse::Interaction::default(),              )          }      } -    impl<'a, Message> Into<Element<'a, Message, Renderer>> for Rainbow { -        fn into(self) -> Element<'a, Message, Renderer> { +    impl<'a, Message, B> Into<Element<'a, Message, Renderer<B>>> for Rainbow +    where +        B: Backend, +    { +        fn into(self) -> Element<'a, Message, Renderer<B>> {              Element::new(self)          }      } @@ -156,7 +166,7 @@ use iced::{  };  use rainbow::Rainbow; -pub fn main() { +pub fn main() -> iced::Result {      Example::run(Settings::default())  }  | 
