diff options
author | 2024-06-21 10:41:17 +0100 | |
---|---|---|
committer | 2024-09-10 23:44:04 +0200 | |
commit | ec39390c23cd46a115bb0528abdb2c5527f1272a (patch) | |
tree | 104c7209bc2c37cdd332b31d8308237461a22a63 /graphics | |
parent | abd323181d613f1dc69b6cbe885dce556f427de2 (diff) | |
download | iced-ec39390c23cd46a115bb0528abdb2c5527f1272a.tar.gz iced-ec39390c23cd46a115bb0528abdb2c5527f1272a.tar.bz2 iced-ec39390c23cd46a115bb0528abdb2c5527f1272a.zip |
Add stroke_rectangle
This method should be able to leverage performance improvements in lyon's
`tessellate_rectangle` over `tessellate_path`.
Diffstat (limited to 'graphics')
-rw-r--r-- | graphics/src/geometry/frame.rs | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/graphics/src/geometry/frame.rs b/graphics/src/geometry/frame.rs index b5f2f139..3dee7e75 100644 --- a/graphics/src/geometry/frame.rs +++ b/graphics/src/geometry/frame.rs @@ -65,6 +65,17 @@ where self.raw.stroke(path, stroke); } + /// Draws the stroke of an axis-aligned rectangle with the provided style + /// given its top-left corner coordinate and its `Size` on the [`Frame`] . + pub fn stroke_rectangle<'a>( + &mut self, + top_left: Point, + size: Size, + stroke: impl Into<Stroke<'a>>, + ) { + self.raw.stroke_rectangle(top_left, size, stroke); + } + /// Draws the characters of the given [`Text`] on the [`Frame`], filling /// them with the given color. /// @@ -200,6 +211,12 @@ pub trait Backend: Sized { fn paste(&mut self, frame: Self); fn stroke<'a>(&mut self, path: &Path, stroke: impl Into<Stroke<'a>>); + fn stroke_rectangle<'a>( + &mut self, + top_left: Point, + size: Size, + stroke: impl Into<Stroke<'a>>, + ); fn fill(&mut self, path: &Path, fill: impl Into<Fill>); fn fill_text(&mut self, text: impl Into<Text>); @@ -248,6 +265,13 @@ impl Backend for () { fn paste(&mut self, _frame: Self) {} fn stroke<'a>(&mut self, _path: &Path, _stroke: impl Into<Stroke<'a>>) {} + fn stroke_rectangle<'a>( + &mut self, + _top_left: Point, + _size: Size, + _stroke: impl Into<Stroke<'a>>, + ) { + } fn fill(&mut self, _path: &Path, _fill: impl Into<Fill>) {} fn fill_text(&mut self, _text: impl Into<Text>) {} |