From 40f45d7b7e35dd4937abe6b5ce16b6256b4f1eeb Mon Sep 17 00:00:00 2001 From: shan Date: Thu, 29 Sep 2022 10:52:58 -0700 Subject: Adds linear gradient support to 2D meshes in the canvas widget. --- graphics/src/widget/canvas.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'graphics/src/widget/canvas.rs') diff --git a/graphics/src/widget/canvas.rs b/graphics/src/widget/canvas.rs index 88403fd7..09aad98d 100644 --- a/graphics/src/widget/canvas.rs +++ b/graphics/src/widget/canvas.rs @@ -5,6 +5,7 @@ //! and more! pub mod event; +pub mod gradient; pub mod path; mod cache; @@ -19,12 +20,13 @@ mod text; pub use cache::Cache; pub use cursor::Cursor; pub use event::Event; -pub use fill::{Fill, FillRule}; +pub use fill::{Fill, FillRule, FillStyle}; pub use frame::Frame; pub use geometry::Geometry; +pub use gradient::Gradient; pub use path::Path; pub use program::Program; -pub use stroke::{LineCap, LineDash, LineJoin, Stroke}; +pub use stroke::{LineCap, LineDash, LineJoin, Stroke, StrokeStyle}; pub use text::Text; use crate::{Backend, Primitive, Renderer}; -- cgit From 5d0fffc626928177239336757507b986b081b878 Mon Sep 17 00:00:00 2001 From: shan Date: Fri, 30 Sep 2022 10:27:00 -0700 Subject: Fixed some importing issues since you can use a Shader::Gradient outside a Canvas widget, where it was previously only accessible. --- graphics/src/widget/canvas.rs | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) (limited to 'graphics/src/widget/canvas.rs') diff --git a/graphics/src/widget/canvas.rs b/graphics/src/widget/canvas.rs index 09aad98d..95c962af 100644 --- a/graphics/src/widget/canvas.rs +++ b/graphics/src/widget/canvas.rs @@ -5,7 +5,6 @@ //! and more! pub mod event; -pub mod gradient; pub mod path; mod cache; @@ -23,7 +22,6 @@ pub use event::Event; pub use fill::{Fill, FillRule, FillStyle}; pub use frame::Frame; pub use geometry::Geometry; -pub use gradient::Gradient; pub use path::Path; pub use program::Program; pub use stroke::{LineCap, LineDash, LineJoin, Stroke, StrokeStyle}; @@ -47,16 +45,12 @@ use std::marker::PhantomData; /// If you want to get a quick overview, here's how we can draw a simple circle: /// /// ```no_run -/// # mod iced { -/// # pub mod widget { -/// # pub use iced_graphics::widget::canvas; -/// # } -/// # pub use iced_native::{Color, Rectangle, Theme}; -/// # } -/// use iced::widget::canvas::{self, Canvas, Cursor, Fill, Frame, Geometry, Path, Program}; -/// use iced::{Color, Rectangle, Theme}; -/// /// // First, we define the data we need for drawing +/// use iced_graphics::{Color, Rectangle}; +/// use iced_graphics::widget::Canvas; +/// use iced_graphics::widget::canvas::{Cursor, Frame, Geometry, Path, Program}; +/// use iced_style::Theme; +/// /// #[derive(Debug)] /// struct Circle { /// radius: f32, -- cgit From 6e7b3ced0b1daf368e44e181ecdb4ae529877eb6 Mon Sep 17 00:00:00 2001 From: shan Date: Tue, 4 Oct 2022 18:24:46 -0700 Subject: Reworked wgpu buffers, updated glow side to have proper transform location storage, attempting to fix visibility modifiers, implemented some of the feedback received in initial PR. --- graphics/src/widget/canvas.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'graphics/src/widget/canvas.rs') diff --git a/graphics/src/widget/canvas.rs b/graphics/src/widget/canvas.rs index 95c962af..f6929e97 100644 --- a/graphics/src/widget/canvas.rs +++ b/graphics/src/widget/canvas.rs @@ -19,12 +19,12 @@ mod text; pub use cache::Cache; pub use cursor::Cursor; pub use event::Event; -pub use fill::{Fill, FillRule, FillStyle}; +pub use fill::{Fill, FillRule, Style}; pub use frame::Frame; pub use geometry::Geometry; pub use path::Path; pub use program::Program; -pub use stroke::{LineCap, LineDash, LineJoin, Stroke, StrokeStyle}; +pub use stroke::{LineCap, LineDash, LineJoin, Stroke}; pub use text::Text; use crate::{Backend, Primitive, Renderer}; -- cgit From 30432cbade3d9b25c4df62656a7494db3f4ea82a Mon Sep 17 00:00:00 2001 From: shan Date: Wed, 5 Oct 2022 10:49:58 -0700 Subject: Readjusted namespaces, removed Geometry example as it's no longer relevant. --- graphics/src/widget/canvas.rs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'graphics/src/widget/canvas.rs') diff --git a/graphics/src/widget/canvas.rs b/graphics/src/widget/canvas.rs index f6929e97..6ed3a12f 100644 --- a/graphics/src/widget/canvas.rs +++ b/graphics/src/widget/canvas.rs @@ -9,17 +9,17 @@ pub mod path; mod cache; mod cursor; -mod fill; mod frame; mod geometry; mod program; -mod stroke; mod text; +pub mod fill; +pub mod stroke; pub use cache::Cache; pub use cursor::Cursor; pub use event::Event; -pub use fill::{Fill, FillRule, Style}; +pub use fill::{Fill, FillRule}; pub use frame::Frame; pub use geometry::Geometry; pub use path::Path; @@ -37,6 +37,8 @@ use iced_native::{ Clipboard, Element, Length, Point, Rectangle, Shell, Size, Vector, Widget, }; +pub use crate::gradient::Gradient; + use std::marker::PhantomData; /// A widget capable of drawing 2D graphics. -- cgit From 1eb8d972ba60592da7bfc27fe7ec80138e64dd7b Mon Sep 17 00:00:00 2001 From: shan Date: Wed, 5 Oct 2022 16:07:43 -0700 Subject: Reduced memory transfer of OpenGL gradient uniform upload. Rearranged gradient uniforms on OpenGL side to be more performant. --- graphics/src/widget/canvas.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'graphics/src/widget/canvas.rs') diff --git a/graphics/src/widget/canvas.rs b/graphics/src/widget/canvas.rs index 6ed3a12f..4a2c5b2d 100644 --- a/graphics/src/widget/canvas.rs +++ b/graphics/src/widget/canvas.rs @@ -28,6 +28,7 @@ pub use stroke::{LineCap, LineDash, LineJoin, Stroke}; pub use text::Text; use crate::{Backend, Primitive, Renderer}; +pub use crate::gradient::Gradient; use iced_native::layout::{self, Layout}; use iced_native::mouse; @@ -37,8 +38,6 @@ use iced_native::{ Clipboard, Element, Length, Point, Rectangle, Shell, Size, Vector, Widget, }; -pub use crate::gradient::Gradient; - use std::marker::PhantomData; /// A widget capable of drawing 2D graphics. -- cgit From 9c7bf417ac9c1ac72bcc55aa3cd5e8eb962243a2 Mon Sep 17 00:00:00 2001 From: shan Date: Thu, 6 Oct 2022 16:57:38 -0700 Subject: Added support for gradients to respect current frame transform. --- graphics/src/widget/canvas.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'graphics/src/widget/canvas.rs') diff --git a/graphics/src/widget/canvas.rs b/graphics/src/widget/canvas.rs index 4a2c5b2d..fe0f618f 100644 --- a/graphics/src/widget/canvas.rs +++ b/graphics/src/widget/canvas.rs @@ -9,12 +9,12 @@ pub mod path; mod cache; mod cursor; -mod frame; mod geometry; mod program; mod text; pub mod fill; pub mod stroke; +pub(crate) mod frame; pub use cache::Cache; pub use cursor::Cursor; -- cgit From 12a87c54eb68b992676060c80e518ffb29445cfc Mon Sep 17 00:00:00 2001 From: shan Date: Fri, 7 Oct 2022 11:41:50 -0700 Subject: Added support for relative positioning of gradient fills. Addressed some PR feedback. --- graphics/src/widget/canvas.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'graphics/src/widget/canvas.rs') diff --git a/graphics/src/widget/canvas.rs b/graphics/src/widget/canvas.rs index fe0f618f..ea8af8c2 100644 --- a/graphics/src/widget/canvas.rs +++ b/graphics/src/widget/canvas.rs @@ -28,7 +28,7 @@ pub use stroke::{LineCap, LineDash, LineJoin, Stroke}; pub use text::Text; use crate::{Backend, Primitive, Renderer}; -pub use crate::gradient::Gradient; +pub use crate::gradient::{Gradient, Position, Location}; use iced_native::layout::{self, Layout}; use iced_native::mouse; -- cgit From 3e600fe7754645ffdfca595060273b1e96c9a162 Mon Sep 17 00:00:00 2001 From: shan Date: Fri, 7 Oct 2022 13:10:37 -0700 Subject: Adjusted reexports for clarity. --- graphics/src/widget/canvas.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'graphics/src/widget/canvas.rs') diff --git a/graphics/src/widget/canvas.rs b/graphics/src/widget/canvas.rs index ea8af8c2..36c17906 100644 --- a/graphics/src/widget/canvas.rs +++ b/graphics/src/widget/canvas.rs @@ -28,7 +28,7 @@ pub use stroke::{LineCap, LineDash, LineJoin, Stroke}; pub use text::Text; use crate::{Backend, Primitive, Renderer}; -pub use crate::gradient::{Gradient, Position, Location}; +pub use crate::gradient::{self, Gradient}; use iced_native::layout::{self, Layout}; use iced_native::mouse; -- cgit From b95745340441835bd25b5cadc2342254631f8c05 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Thu, 3 Nov 2022 04:35:16 +0100 Subject: Run `cargo fmt` --- graphics/src/widget/canvas.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'graphics/src/widget/canvas.rs') diff --git a/graphics/src/widget/canvas.rs b/graphics/src/widget/canvas.rs index ea2efcc1..b9ccb721 100644 --- a/graphics/src/widget/canvas.rs +++ b/graphics/src/widget/canvas.rs @@ -9,12 +9,12 @@ pub mod path; mod cache; mod cursor; +pub mod fill; +pub(crate) mod frame; mod geometry; mod program; -mod text; -pub mod fill; pub mod stroke; -pub(crate) mod frame; +mod text; pub use cache::Cache; pub use cursor::Cursor; @@ -27,8 +27,8 @@ pub use program::Program; pub use stroke::{LineCap, LineDash, LineJoin, Stroke}; pub use text::Text; -use crate::{Backend, Primitive, Renderer}; pub use crate::gradient::{self, Gradient}; +use crate::{Backend, Primitive, Renderer}; use iced_native::layout::{self, Layout}; use iced_native::mouse; -- cgit From e9e26577916ed35b016c08df381b5f616f9e43d5 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Thu, 3 Nov 2022 05:57:22 +0100 Subject: Refactor imports in `widget::canvas` in `iced_graphics` --- graphics/src/widget/canvas.rs | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'graphics/src/widget/canvas.rs') diff --git a/graphics/src/widget/canvas.rs b/graphics/src/widget/canvas.rs index b9ccb721..2d74268f 100644 --- a/graphics/src/widget/canvas.rs +++ b/graphics/src/widget/canvas.rs @@ -3,17 +3,16 @@ //! A [`Canvas`] widget can be used to draw different kinds of 2D shapes in a //! [`Frame`]. It can be used for animation, data visualization, game graphics, //! and more! - pub mod event; +pub mod fill; pub mod path; +pub mod stroke; mod cache; mod cursor; -pub mod fill; -pub(crate) mod frame; +mod frame; mod geometry; mod program; -pub mod stroke; mod text; pub use cache::Cache; -- cgit From a8c3b2ddf7812d9466d6c7037ec921230d34683d Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Thu, 3 Nov 2022 05:59:13 +0100 Subject: Fix documentation example of `Canvas` ... so it makes sense when seen from the `iced` crate. --- graphics/src/widget/canvas.rs | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'graphics/src/widget/canvas.rs') diff --git a/graphics/src/widget/canvas.rs b/graphics/src/widget/canvas.rs index 2d74268f..1e4868dc 100644 --- a/graphics/src/widget/canvas.rs +++ b/graphics/src/widget/canvas.rs @@ -45,12 +45,16 @@ use std::marker::PhantomData; /// If you want to get a quick overview, here's how we can draw a simple circle: /// /// ```no_run -/// // First, we define the data we need for drawing -/// use iced_graphics::{Color, Rectangle}; -/// use iced_graphics::widget::Canvas; -/// use iced_graphics::widget::canvas::{Cursor, Frame, Geometry, Path, Program}; -/// use iced_style::Theme; +/// # mod iced { +/// # pub mod widget { +/// # pub use iced_graphics::widget::canvas; +/// # } +/// # pub use iced_native::{Color, Rectangle, Theme}; +/// # } +/// use iced::widget::canvas::{self, Canvas, Cursor, Fill, Frame, Geometry, Path, Program}; +/// use iced::{Color, Rectangle, Theme}; /// +/// // First, we define the data we need for drawing /// #[derive(Debug)] /// struct Circle { /// radius: f32, -- cgit From 75b05ed42d212366b15fc6dc2b53496f2a1d850b Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Thu, 3 Nov 2022 06:00:32 +0100 Subject: Move re-export in `widget::canvas` in `iced_graphics` --- graphics/src/widget/canvas.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'graphics/src/widget/canvas.rs') diff --git a/graphics/src/widget/canvas.rs b/graphics/src/widget/canvas.rs index 1e4868dc..a14940d9 100644 --- a/graphics/src/widget/canvas.rs +++ b/graphics/src/widget/canvas.rs @@ -15,6 +15,7 @@ mod geometry; mod program; mod text; +pub use crate::gradient::{self, Gradient}; pub use cache::Cache; pub use cursor::Cursor; pub use event::Event; @@ -26,7 +27,6 @@ pub use program::Program; pub use stroke::{LineCap, LineDash, LineJoin, Stroke}; pub use text::Text; -pub use crate::gradient::{self, Gradient}; use crate::{Backend, Primitive, Renderer}; use iced_native::layout::{self, Layout}; -- cgit