From 03b34931383e701c39c653a7662a616fe21a0947 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Thu, 14 Oct 2021 16:07:22 +0700 Subject: Remove trait-specific draw logic in `iced_native` --- examples/custom_widget/src/main.rs | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) (limited to 'examples/custom_widget/src') diff --git a/examples/custom_widget/src/main.rs b/examples/custom_widget/src/main.rs index c9ad1905..648e7295 100644 --- a/examples/custom_widget/src/main.rs +++ b/examples/custom_widget/src/main.rs @@ -11,8 +11,7 @@ mod circle { // implemented by `iced_wgpu` and other renderers. use iced_graphics::{Backend, Defaults, Primitive, Renderer}; use iced_native::{ - layout, mouse, Background, Color, Element, Hasher, Layout, Length, - Point, Rectangle, Size, Widget, + layout, Element, Hasher, Layout, Length, Point, Rectangle, Size, Widget, }; pub struct Circle { @@ -55,20 +54,20 @@ mod circle { &self, _renderer: &mut Renderer, _defaults: &Defaults, - layout: Layout<'_>, + _layout: Layout<'_>, _cursor_position: Point, _viewport: &Rectangle, - ) -> (Primitive, mouse::Interaction) { - ( - Primitive::Quad { - bounds: layout.bounds(), - background: Background::Color(Color::BLACK), - border_radius: self.radius, - border_width: 0.0, - border_color: Color::TRANSPARENT, - }, - mouse::Interaction::default(), - ) + ) { + // ( + // Primitive::Quad { + // bounds: layout.bounds(), + // background: Background::Color(Color::BLACK), + // border_radius: self.radius, + // border_width: 0.0, + // border_color: Color::TRANSPARENT, + // }, + // mouse::Interaction::default(), + // ) } } -- cgit From edea093350e1b576e2b7db50c525e7fa5c3bea9f Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Mon, 18 Oct 2021 15:19:04 +0700 Subject: Move `Defaults` from `iced_graphics` to `iced_native` --- examples/custom_widget/src/main.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'examples/custom_widget/src') diff --git a/examples/custom_widget/src/main.rs b/examples/custom_widget/src/main.rs index 648e7295..c8188f10 100644 --- a/examples/custom_widget/src/main.rs +++ b/examples/custom_widget/src/main.rs @@ -9,7 +9,8 @@ mod circle { // 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_graphics::{Backend, Defaults, Primitive, Renderer}; + use iced_graphics::renderer::{self, Renderer}; + use iced_graphics::Backend; use iced_native::{ layout, Element, Hasher, Layout, Length, Point, Rectangle, Size, Widget, }; @@ -53,7 +54,7 @@ mod circle { fn draw( &self, _renderer: &mut Renderer, - _defaults: &Defaults, + _style: &renderer::Style, _layout: Layout<'_>, _cursor_position: Point, _viewport: &Rectangle, -- cgit From 95acc1deb89c4e75b513edb0f4d53b83c7f75b30 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Mon, 18 Oct 2021 15:49:28 +0700 Subject: Implement `Widget::draw` for `custom_widget` example --- examples/custom_widget/src/main.rs | 40 ++++++++++++++++++-------------------- 1 file changed, 19 insertions(+), 21 deletions(-) (limited to 'examples/custom_widget/src') diff --git a/examples/custom_widget/src/main.rs b/examples/custom_widget/src/main.rs index c8188f10..78a4339e 100644 --- a/examples/custom_widget/src/main.rs +++ b/examples/custom_widget/src/main.rs @@ -9,10 +9,11 @@ mod circle { // 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_graphics::renderer::{self, Renderer}; - use iced_graphics::Backend; + use iced_native::layout::{self, Layout}; + use iced_native::renderer; use iced_native::{ - layout, Element, Hasher, Layout, Length, Point, Rectangle, Size, Widget, + Background, Color, Element, Hasher, Length, Point, Rectangle, Size, + Widget, }; pub struct Circle { @@ -25,9 +26,9 @@ mod circle { } } - impl Widget> for Circle + impl Widget for Circle where - B: Backend, + Renderer: renderer::Renderer, { fn width(&self) -> Length { Length::Shrink @@ -39,7 +40,7 @@ mod circle { fn layout( &self, - _renderer: &Renderer, + _renderer: &Renderer, _limits: &layout::Limits, ) -> layout::Node { layout::Node::new(Size::new(self.radius * 2.0, self.radius * 2.0)) @@ -53,30 +54,27 @@ mod circle { fn draw( &self, - _renderer: &mut Renderer, + renderer: &mut Renderer, _style: &renderer::Style, - _layout: Layout<'_>, + layout: Layout<'_>, _cursor_position: Point, _viewport: &Rectangle, ) { - // ( - // Primitive::Quad { - // bounds: layout.bounds(), - // background: Background::Color(Color::BLACK), - // border_radius: self.radius, - // border_width: 0.0, - // border_color: Color::TRANSPARENT, - // }, - // mouse::Interaction::default(), - // ) + renderer.fill_rectangle(renderer::Quad { + bounds: layout.bounds(), + background: Background::Color(Color::BLACK), + border_radius: self.radius, + border_width: 0.0, + border_color: Color::TRANSPARENT, + }); } } - impl<'a, Message, B> Into>> for Circle + impl<'a, Message, Renderer> Into> for Circle where - B: Backend, + Renderer: renderer::Renderer, { - fn into(self) -> Element<'a, Message, Renderer> { + fn into(self) -> Element<'a, Message, Renderer> { Element::new(self) } } -- cgit From 023aded2772f0cd6abd716fe5c8624d5d22e21fa Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Thu, 4 Nov 2021 19:22:29 +0700 Subject: Rename `fill_rectangle` to `fill_quad` in `Renderer` --- examples/custom_widget/src/main.rs | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) (limited to 'examples/custom_widget/src') diff --git a/examples/custom_widget/src/main.rs b/examples/custom_widget/src/main.rs index 78a4339e..b32cb83d 100644 --- a/examples/custom_widget/src/main.rs +++ b/examples/custom_widget/src/main.rs @@ -12,8 +12,7 @@ mod circle { use iced_native::layout::{self, Layout}; use iced_native::renderer; use iced_native::{ - Background, Color, Element, Hasher, Length, Point, Rectangle, Size, - Widget, + Color, Element, Hasher, Length, Point, Rectangle, Size, Widget, }; pub struct Circle { @@ -60,13 +59,15 @@ mod circle { _cursor_position: Point, _viewport: &Rectangle, ) { - renderer.fill_rectangle(renderer::Quad { - bounds: layout.bounds(), - background: Background::Color(Color::BLACK), - border_radius: self.radius, - border_width: 0.0, - border_color: Color::TRANSPARENT, - }); + renderer.fill_quad( + renderer::Quad { + bounds: layout.bounds(), + border_radius: self.radius, + border_width: 0.0, + border_color: Color::TRANSPARENT, + }, + Color::BLACK, + ); } } -- cgit