added a Frame::scale_nonuniform method
This commit is contained in:
parent
a56b25b909
commit
5371fae21a
3 changed files with 20 additions and 2 deletions
|
|
@ -168,12 +168,18 @@ impl Frame {
|
||||||
delegate!(self, frame, frame.rotate(angle));
|
delegate!(self, frame, frame.rotate(angle));
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Applies a scaling to the current transform of the [`Frame`].
|
/// Applies a uniform scaling to the current transform of the [`Frame`].
|
||||||
#[inline]
|
#[inline]
|
||||||
pub fn scale(&mut self, scale: f32) {
|
pub fn scale(&mut self, scale: f32) {
|
||||||
delegate!(self, frame, frame.scale(scale));
|
delegate!(self, frame, frame.scale(scale));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Applies a non-uniform scaling to the current transform of the [`Frame`].
|
||||||
|
#[inline]
|
||||||
|
pub fn scale_nonuniform(&mut self, scale: Vector) {
|
||||||
|
delegate!(self, frame, frame.scale_nonuniform(scale));
|
||||||
|
}
|
||||||
|
|
||||||
pub fn into_geometry(self) -> Geometry {
|
pub fn into_geometry(self) -> Geometry {
|
||||||
match self {
|
match self {
|
||||||
Self::TinySkia(frame) => Geometry::TinySkia(frame.into_primitive()),
|
Self::TinySkia(frame) => Geometry::TinySkia(frame.into_primitive()),
|
||||||
|
|
|
||||||
|
|
@ -158,6 +158,10 @@ impl Frame {
|
||||||
self.transform = self.transform.pre_scale(scale, scale);
|
self.transform = self.transform.pre_scale(scale, scale);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn scale_nonuniform(&mut self, scale: Vector) {
|
||||||
|
self.transform = self.transform.pre_scale(scale.x, scale.y);
|
||||||
|
}
|
||||||
|
|
||||||
pub fn into_primitive(self) -> Primitive {
|
pub fn into_primitive(self) -> Primitive {
|
||||||
Primitive::Clip {
|
Primitive::Clip {
|
||||||
bounds: Rectangle::new(Point::ORIGIN, self.size),
|
bounds: Rectangle::new(Point::ORIGIN, self.size),
|
||||||
|
|
|
||||||
|
|
@ -444,7 +444,7 @@ impl Frame {
|
||||||
self.transforms.current.is_identity = false;
|
self.transforms.current.is_identity = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Applies a scaling to the current transform of the [`Frame`].
|
/// Applies a uniform scaling to the current transform of the [`Frame`].
|
||||||
#[inline]
|
#[inline]
|
||||||
pub fn scale(&mut self, scale: f32) {
|
pub fn scale(&mut self, scale: f32) {
|
||||||
self.transforms.current.raw =
|
self.transforms.current.raw =
|
||||||
|
|
@ -452,6 +452,14 @@ impl Frame {
|
||||||
self.transforms.current.is_identity = false;
|
self.transforms.current.is_identity = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Applies a non-uniform scaling to the current transform of the [`Frame`].
|
||||||
|
#[inline]
|
||||||
|
pub fn scale_nonuniform(&mut self, scale: Vector) {
|
||||||
|
self.transforms.current.raw =
|
||||||
|
self.transforms.current.raw.pre_scale(scale.x, scale.y);
|
||||||
|
self.transforms.current.is_identity = false;
|
||||||
|
}
|
||||||
|
|
||||||
/// Produces the [`Primitive`] representing everything drawn on the [`Frame`].
|
/// Produces the [`Primitive`] representing everything drawn on the [`Frame`].
|
||||||
pub fn into_primitive(self) -> Primitive {
|
pub fn into_primitive(self) -> Primitive {
|
||||||
Primitive::Group {
|
Primitive::Group {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue