[librsvg: 3/10] rect: add from_size to RectangleExt
- From: Federico Mena Quintero <federico src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [librsvg: 3/10] rect: add from_size to RectangleExt
- Date: Mon, 25 Nov 2019 01:59:23 +0000 (UTC)
commit be65eed880c2a1621f2d9ca9f7737477115e7544
Author: Paolo Borelli <pborelli gnome org>
Date: Sun Nov 24 14:46:09 2019 +0100
rect: add from_size to RectangleExt
Use it for pattern. Also note that we already have vars for
scaled width and height.
rsvg_internals/src/marker.rs | 6 ++----
rsvg_internals/src/pattern.rs | 7 +------
rsvg_internals/src/rect.rs | 10 ++++++++++
3 files changed, 13 insertions(+), 10 deletions(-)
---
diff --git a/rsvg_internals/src/marker.rs b/rsvg_internals/src/marker.rs
index e181d865..1dbc41b7 100644
--- a/rsvg_internals/src/marker.rs
+++ b/rsvg_internals/src/marker.rs
@@ -1,7 +1,6 @@
use std::f64::consts::*;
use std::ops::Deref;
-use cairo::Rectangle;
use cssparser::{CowRcStr, Parser, Token};
use markup5ever::{expanded_name, local_name, namespace_url, ns};
@@ -159,7 +158,7 @@ impl Marker {
let params = if let Some(vbox) = self.vbox {
let (_, _, w, h) = self.aspect.compute(
&vbox,
- &Rectangle::new(0.0, 0.0, marker_width, marker_height),
+ &cairo::Rectangle::from_size(marker_width, marker_height),
);
if vbox.width.approx_eq_cairo(0.0) || vbox.height.approx_eq_cairo(0.0) {
@@ -588,8 +587,7 @@ fn emit_marker_by_name(
line_width: f64,
clipping: bool,
) -> Result<BoundingBox, RenderingError> {
- if let Ok(acquired) = draw_ctx.acquire_node(name, &[NodeType::Marker])
- {
+ if let Ok(acquired) = draw_ctx.acquire_node(name, &[NodeType::Marker]) {
let node = acquired.get();
node.borrow().get_impl::<Marker>().render(
diff --git a/rsvg_internals/src/pattern.rs b/rsvg_internals/src/pattern.rs
index f68b81a8..f4383700 100644
--- a/rsvg_internals/src/pattern.rs
+++ b/rsvg_internals/src/pattern.rs
@@ -322,12 +322,7 @@ impl AsPaintSource for ResolvedPattern {
// If there is a vbox, use that
let (mut x, mut y, w, h) = preserve_aspect_ratio.compute(
&vbox,
- &cairo::Rectangle::new(
- 0.0,
- 0.0,
- pattern_width * bbwscale,
- pattern_height * bbhscale,
- ),
+ &cairo::Rectangle::from_size(scaled_width, scaled_height),
);
x -= vbox.x * w / vbox.width;
diff --git a/rsvg_internals/src/rect.rs b/rsvg_internals/src/rect.rs
index 08c07b0b..85c17a54 100644
--- a/rsvg_internals/src/rect.rs
+++ b/rsvg_internals/src/rect.rs
@@ -4,6 +4,7 @@ use crate::float_eq_cairo::ApproxEqCairo;
pub trait RectangleExt {
fn new(x: f64, y: f64, width: f64, height: f64) -> cairo::Rectangle;
+ fn from_size(width: f64, height: f64) -> cairo::Rectangle;
fn is_empty(&self) -> bool;
fn intersect(&self, rect: &cairo::Rectangle) -> cairo::Rectangle;
fn union(&self, rect: &cairo::Rectangle) -> cairo::Rectangle;
@@ -21,6 +22,15 @@ impl RectangleExt for cairo::Rectangle {
}
}
+ fn from_size(width: f64, height: f64) -> cairo::Rectangle {
+ cairo::Rectangle {
+ x: 0.0,
+ y: 0.0,
+ width,
+ height,
+ }
+ }
+
fn is_empty(&self) -> bool {
self.width.approx_eq_cairo(0.0) || self.height.approx_eq_cairo(0.0)
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]