Introduce draw_with_bounds to canvas::Cache
Also: - Change `Rectangle::INFINITE` to have coordinates at `f32::NEG_INFINITY` - Change `Frame::with_clip` to _not_ adjust the coordinate system - Rename `Size::INFINITY` to `INFINITE`
This commit is contained in:
parent
c1f7345ceb
commit
f2aa570aac
13 changed files with 56 additions and 45 deletions
|
|
@ -105,13 +105,8 @@ pub struct Frame {
|
|||
}
|
||||
|
||||
impl Frame {
|
||||
/// Creates a new [`Frame`] with the given [`Size`].
|
||||
pub fn new(size: Size) -> Frame {
|
||||
Self::with_clip(Rectangle::with_size(size))
|
||||
}
|
||||
|
||||
/// Creates a new [`Frame`] with the given clip bounds.
|
||||
pub fn with_clip(bounds: Rectangle) -> Frame {
|
||||
pub fn new(bounds: Rectangle) -> Frame {
|
||||
Frame {
|
||||
clip_bounds: bounds,
|
||||
buffers: BufferStack::new(),
|
||||
|
|
@ -120,9 +115,7 @@ impl Frame {
|
|||
text: Vec::new(),
|
||||
transforms: Transforms {
|
||||
previous: Vec::new(),
|
||||
current: Transform(lyon::math::Transform::translation(
|
||||
bounds.x, bounds.y,
|
||||
)),
|
||||
current: Transform(lyon::math::Transform::identity()),
|
||||
},
|
||||
fill_tessellator: tessellation::FillTessellator::new(),
|
||||
stroke_tessellator: tessellation::StrokeTessellator::new(),
|
||||
|
|
@ -409,7 +402,7 @@ impl geometry::frame::Backend for Frame {
|
|||
}
|
||||
|
||||
fn draft(&mut self, clip_bounds: Rectangle) -> Frame {
|
||||
Frame::with_clip(clip_bounds)
|
||||
Frame::new(clip_bounds)
|
||||
}
|
||||
|
||||
fn paste(&mut self, frame: Frame) {
|
||||
|
|
|
|||
|
|
@ -760,8 +760,8 @@ impl graphics::geometry::Renderer for Renderer {
|
|||
type Geometry = Geometry;
|
||||
type Frame = geometry::Frame;
|
||||
|
||||
fn new_frame(&self, size: core::Size) -> Self::Frame {
|
||||
geometry::Frame::new(size)
|
||||
fn new_frame(&self, bounds: Rectangle) -> Self::Frame {
|
||||
geometry::Frame::new(bounds)
|
||||
}
|
||||
|
||||
fn draw_geometry(&mut self, geometry: Self::Geometry) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue