Restore canvas::Frame API
This commit is contained in:
parent
b972ebca8f
commit
53a183fe0d
22 changed files with 378 additions and 679 deletions
|
|
@ -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};
|
||||
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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()]
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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()),
|
||||
|
|
|
|||
|
|
@ -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 =
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue