[librsvg: 3/10] rect: add from_size to RectangleExt



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]