summaryrefslogtreecommitdiffstats
path: root/examples/bezier_tool
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2024-03-21 23:30:36 +0100
committerLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2024-03-21 23:30:36 +0100
commitb972ebca8f8c23d2df1b45bb26038789766a5a65 (patch)
treedd6b0a68a7f6b0dfbf21e708f51fea93746385d0 /examples/bezier_tool
parent3d17cf8790a18bd0dfe968739c9802833c0bb647 (diff)
downloadiced-b972ebca8f8c23d2df1b45bb26038789766a5a65.tar.gz
iced-b972ebca8f8c23d2df1b45bb26038789766a5a65.tar.bz2
iced-b972ebca8f8c23d2df1b45bb26038789766a5a65.zip
Restore `canvas::Program` API
Diffstat (limited to 'examples/bezier_tool')
-rw-r--r--examples/bezier_tool/src/main.rs20
1 files changed, 11 insertions, 9 deletions
diff --git a/examples/bezier_tool/src/main.rs b/examples/bezier_tool/src/main.rs
index e51f2a31..31d1e29c 100644
--- a/examples/bezier_tool/src/main.rs
+++ b/examples/bezier_tool/src/main.rs
@@ -52,7 +52,9 @@ impl Example {
mod bezier {
use iced::mouse;
use iced::widget::canvas::event::{self, Event};
- use iced::widget::canvas::{self, frame, Canvas, Frame, Path, Stroke};
+ use iced::widget::canvas::{
+ self, frame, Canvas, Frame, Geometry, Path, Stroke,
+ };
use iced::{Element, Length, Point, Rectangle, Renderer, Theme};
#[derive(Default)]
@@ -138,11 +140,11 @@ mod bezier {
fn draw(
&self,
state: &Self::State,
- renderer: &mut Renderer,
+ renderer: &Renderer,
_theme: &Theme,
bounds: Rectangle,
cursor: mouse::Cursor,
- ) {
+ ) -> Vec<Geometry> {
let content =
self.state.cache.draw(renderer, bounds.size(), |frame| {
Curve::draw_all(self.curves, frame);
@@ -153,10 +155,10 @@ mod bezier {
);
});
- renderer.draw_geometry([content]);
-
if let Some(pending) = state {
- pending.draw(renderer, bounds, cursor);
+ vec![content, pending.draw(renderer, bounds, cursor)]
+ } else {
+ vec![content]
}
}
@@ -203,10 +205,10 @@ mod bezier {
impl Pending {
fn draw(
&self,
- renderer: &mut Renderer,
+ renderer: &Renderer,
bounds: Rectangle,
cursor: mouse::Cursor,
- ) {
+ ) -> Geometry {
let mut frame = frame(renderer, bounds.size());
if let Some(cursor_position) = cursor.position_in(bounds) {
@@ -227,7 +229,7 @@ mod bezier {
};
}
- renderer.draw_geometry([frame]);
+ frame.into()
}
}
}