Restore canvas::Frame API

This commit is contained in:
Héctor Ramón Jiménez 2024-03-22 01:35:14 +01:00
parent b972ebca8f
commit 53a183fe0d
No known key found for this signature in database
GPG key ID: 7CC46565708259A7
22 changed files with 378 additions and 679 deletions

View file

@ -2,7 +2,7 @@ use std::{f32::consts::PI, time::Instant};
use iced::mouse;
use iced::widget::canvas::{
self, stroke, Cache, Canvas, Frame, Geometry, Path, Stroke,
self, stroke, Cache, Canvas, Geometry, Path, Stroke,
};
use iced::{Element, Length, Point, Rectangle, Renderer, Subscription, Theme};

View file

@ -52,9 +52,7 @@ impl Example {
mod bezier {
use iced::mouse;
use iced::widget::canvas::event::{self, Event};
use iced::widget::canvas::{
self, frame, Canvas, Frame, Geometry, Path, Stroke,
};
use iced::widget::canvas::{self, Canvas, Frame, Geometry, Path, Stroke};
use iced::{Element, Length, Point, Rectangle, Renderer, Theme};
#[derive(Default)]
@ -184,7 +182,7 @@ mod bezier {
}
impl Curve {
fn draw_all(curves: &[Curve], frame: &mut impl Frame) {
fn draw_all(curves: &[Curve], frame: &mut Frame) {
let curves = Path::new(|p| {
for curve in curves {
p.move_to(curve.from);
@ -209,7 +207,7 @@ mod bezier {
bounds: Rectangle,
cursor: mouse::Cursor,
) -> Geometry {
let mut frame = frame(renderer, bounds.size());
let mut frame = Frame::new(renderer, bounds.size());
if let Some(cursor_position) = cursor.position_in(bounds) {
match *self {
@ -229,7 +227,7 @@ mod bezier {
};
}
frame.into()
frame.into_geometry()
}
}
}

View file

@ -1,8 +1,6 @@
use iced::alignment;
use iced::mouse;
use iced::widget::canvas::{
stroke, Cache, Frame, Geometry, LineCap, Path, Stroke,
};
use iced::widget::canvas::{stroke, Cache, Geometry, LineCap, Path, Stroke};
use iced::widget::{canvas, container};
use iced::{
Degrees, Element, Font, Length, Point, Rectangle, Renderer, Subscription,

View file

@ -156,7 +156,7 @@ impl Theme {
.into()
}
fn draw(&self, frame: &mut impl Frame, text_color: Color) {
fn draw(&self, frame: &mut Frame, text_color: Color) {
let pad = 20.0;
let box_size = Size {

View file

@ -193,9 +193,7 @@ mod grid {
use iced::touch;
use iced::widget::canvas;
use iced::widget::canvas::event::{self, Event};
use iced::widget::canvas::{
frame, Cache, Canvas, Frame, Geometry, Path, Text,
};
use iced::widget::canvas::{Cache, Canvas, Frame, Geometry, Path, Text};
use iced::{
Color, Element, Length, Point, Rectangle, Renderer, Size, Theme, Vector,
};
@ -548,7 +546,7 @@ mod grid {
});
let overlay = {
let mut frame = frame(renderer, bounds.size());
let mut frame = Frame::new(renderer, bounds.size());
let hovered_cell = cursor.position_in(bounds).map(|position| {
Cell::at(self.project(position, frame.size()))
@ -601,7 +599,7 @@ mod grid {
..text
});
frame.into()
frame.into_geometry()
};
if self.scaling >= 0.2 && self.show_lines {

View file

@ -297,9 +297,7 @@ fn square<'a>(size: impl Into<Length> + Copy) -> Element<'a, Message> {
bounds: Rectangle,
_cursor: mouse::Cursor,
) -> Vec<canvas::Geometry> {
use canvas::Frame;
let mut frame = canvas::frame(renderer, bounds.size());
let mut frame = canvas::Frame::new(renderer, bounds.size());
let palette = theme.extended_palette();
@ -309,7 +307,7 @@ fn square<'a>(size: impl Into<Length> + Copy) -> Element<'a, Message> {
palette.background.strong.color,
);
vec![frame.into()]
vec![frame.into_geometry()]
}
}

View file

@ -6,7 +6,7 @@ use iced::advanced::{self, Clipboard, Layout, Shell, Widget};
use iced::event;
use iced::mouse;
use iced::time::Instant;
use iced::widget::canvas::{self, Frame};
use iced::widget::canvas;
use iced::window::{self, RedrawRequest};
use iced::{
Background, Color, Element, Event, Length, Radians, Rectangle, Renderer,

View file

@ -88,8 +88,6 @@ impl canvas::Program<Message> for Multitouch {
bounds: Rectangle,
_cursor: mouse::Cursor,
) -> Vec<Geometry> {
use canvas::Frame;
let fingerweb = self.cache.draw(renderer, bounds.size(), |frame| {
if self.fingers.len() < 2 {
return;

View file

@ -112,8 +112,6 @@ impl canvas::Program<Message> for SierpinskiGraph {
bounds: Rectangle,
_cursor: mouse::Cursor,
) -> Vec<Geometry> {
use canvas::Frame;
let geom = self.cache.draw(renderer, bounds.size(), |frame| {
frame.stroke(
&canvas::Path::rectangle(Point::ORIGIN, frame.size()),

View file

@ -131,7 +131,6 @@ impl<Message> canvas::Program<Message> for State {
bounds: Rectangle,
_cursor: mouse::Cursor,
) -> Vec<Geometry> {
use canvas::Frame;
use std::f32::consts::PI;
let background =

View file

@ -129,8 +129,6 @@ impl<Message> canvas::Program<Message> for State {
bounds: Rectangle,
_cursor: mouse::Cursor,
) -> Vec<canvas::Geometry> {
use canvas::Frame;
let geometry = self.cache.draw(renderer, bounds.size(), |frame| {
let palette = theme.palette();
let center = bounds.center();