[librsvg: 42/90] NodeClipPath.to_cairo_context(): Don't take an affine; use the cr's



commit c4694418db3f4e77bbc813a04e8e17b7ed562210
Author: Federico Mena Quintero <federico gnome org>
Date:   Thu Mar 14 18:49:08 2019 -0600

    NodeClipPath.to_cairo_context(): Don't take an affine; use the cr's

 rsvg_internals/src/clip_path.rs   |  2 --
 rsvg_internals/src/drawing_ctx.rs | 10 +++++-----
 2 files changed, 5 insertions(+), 7 deletions(-)
---
diff --git a/rsvg_internals/src/clip_path.rs b/rsvg_internals/src/clip_path.rs
index fa0e2310..1c5e6669 100644
--- a/rsvg_internals/src/clip_path.rs
+++ b/rsvg_internals/src/clip_path.rs
@@ -31,7 +31,6 @@ impl NodeClipPath {
     pub fn to_cairo_context(
         &self,
         node: &RsvgNode,
-        affine_before_clip: &cairo::Matrix,
         draw_ctx: &mut DrawingCtx,
         bbox: &BoundingBox,
     ) -> Result<(), RenderingError> {
@@ -41,7 +40,6 @@ impl NodeClipPath {
 
         draw_ctx.with_saved_matrix(&mut |dc| {
             let cr = dc.get_cairo_context();
-            cr.set_matrix(*affine_before_clip);
 
             if clip_units == ClipPathUnits(CoordUnits::ObjectBoundingBox) {
                 if bbox.rect.is_none() {
diff --git a/rsvg_internals/src/drawing_ctx.rs b/rsvg_internals/src/drawing_ctx.rs
index 4e3d6e27..b2d42ecf 100644
--- a/rsvg_internals/src/drawing_ctx.rs
+++ b/rsvg_internals/src/drawing_ctx.rs
@@ -404,14 +404,13 @@ impl DrawingCtx {
 
     fn clip_to_node(
         &mut self,
-        affine: &cairo::Matrix,
         clip_node: Option<RsvgNode>,
     ) -> Result<(), RenderingError> {
         if let Some(clip_node) = clip_node {
             let orig_bbox = self.bbox;
 
             let res = clip_node.with_impl(|clip_path: &NodeClipPath| {
-                clip_path.to_cairo_context(&clip_node, affine, self, &orig_bbox)
+                clip_path.to_cairo_context(&clip_node, self, &orig_bbox)
             });
 
             // FIXME: this is an EPIC HACK to keep the clipping context from
@@ -455,7 +454,7 @@ impl DrawingCtx {
                 let (clip_in_user_space, clip_in_object_space) =
                     dc.get_clip_in_user_and_object_space(clip_uri);
 
-                dc.clip_to_node(&affine, clip_in_user_space)?;
+                dc.clip_to_node(clip_in_user_space)?;
 
                 let needs_temporary_surface = !(opacity == 1.0
                     && filter.is_none()
@@ -475,7 +474,7 @@ impl DrawingCtx {
                     cr.set_matrix(affine);
 
                     dc.cr_stack.push(dc.cr.clone());
-                    dc.cr = cr.clone();
+                    dc.cr = cr;
 
                     let prev_bbox = dc.bbox;
                     dc.bbox = BoundingBox::new(&affine);
@@ -498,7 +497,8 @@ impl DrawingCtx {
                     dc.cr.identity_matrix();
                     dc.cr.set_source_surface(&source_surface, 0.0, 0.0);
 
-                    dc.clip_to_node(&affine, clip_in_object_space)?;
+                    dc.cr.set_matrix(affine);
+                    dc.clip_to_node(clip_in_object_space)?;
 
                     if let Some(mask) = mask {
                         if let Some(acquired) =


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]