[librsvg: 77/90] Pass the whole CompositingAffines to the masking code
- From: Federico Mena Quintero <federico src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [librsvg: 77/90] Pass the whole CompositingAffines to the masking code
- Date: Tue, 26 Mar 2019 19:18:33 +0000 (UTC)
commit 39b5cbaa2f9ac439b3ed14ce873069ed47ffb893
Author: Federico Mena Quintero <federico gnome org>
Date: Thu Mar 21 19:28:16 2019 -0600
Pass the whole CompositingAffines to the masking code
It needs a couple of them, so do that in a single argument.
rsvg_internals/src/drawing_ctx.rs | 15 +++++----------
rsvg_internals/src/mask.rs | 10 ++++------
2 files changed, 9 insertions(+), 16 deletions(-)
---
diff --git a/rsvg_internals/src/drawing_ctx.rs b/rsvg_internals/src/drawing_ctx.rs
index 3c7e7710..aad60053 100644
--- a/rsvg_internals/src/drawing_ctx.rs
+++ b/rsvg_internals/src/drawing_ctx.rs
@@ -533,12 +533,7 @@ impl DrawingCtx {
res = res.and_then(|_| {
node.with_impl(|mask: &NodeMask| {
let bbox = dc.bbox;
- mask.generate_cairo_mask(
- &node,
- &affines.for_temporary_surface,
- dc,
- &bbox,
- )
+ mask.generate_cairo_mask(&node, &affines, dc, &bbox)
})
});
} else {
@@ -908,10 +903,10 @@ impl DrawingCtx {
}
}
-struct CompositingAffines {
- affine: cairo::Matrix,
- for_temporary_surface: cairo::Matrix,
- compositing: cairo::Matrix,
+pub struct CompositingAffines {
+ pub affine: cairo::Matrix,
+ pub for_temporary_surface: cairo::Matrix,
+ pub compositing: cairo::Matrix,
}
impl CompositingAffines {
diff --git a/rsvg_internals/src/mask.rs b/rsvg_internals/src/mask.rs
index 78be20af..dddf82f6 100644
--- a/rsvg_internals/src/mask.rs
+++ b/rsvg_internals/src/mask.rs
@@ -4,7 +4,7 @@ use std::cell::Cell;
use crate::attributes::Attribute;
use crate::bbox::BoundingBox;
use crate::coord_units::CoordUnits;
-use crate::drawing_ctx::DrawingCtx;
+use crate::drawing_ctx::{CompositingAffines, DrawingCtx};
use crate::error::RenderingError;
use crate::length::{LengthHorizontal, LengthVertical};
use crate::node::{NodeResult, NodeTrait, RsvgNode};
@@ -13,9 +13,7 @@ use crate::properties::Opacity;
use crate::property_bag::PropertyBag;
use crate::rect::IRect;
use crate::surface_utils::{
- iterators::Pixels,
- shared_surface::SharedImageSurface,
- shared_surface::SurfaceType,
+ iterators::Pixels, shared_surface::SharedImageSurface, shared_surface::SurfaceType,
ImageSurfaceDataExt,
};
use crate::unit_interval::UnitInterval;
@@ -51,7 +49,7 @@ impl NodeMask {
pub fn generate_cairo_mask(
&self,
node: &RsvgNode,
- affine_before_mask: &cairo::Matrix,
+ affines: &CompositingAffines,
draw_ctx: &mut DrawingCtx,
bbox: &BoundingBox,
) -> Result<(), RenderingError> {
@@ -92,7 +90,7 @@ impl NodeMask {
let save_cr = draw_ctx.get_cairo_context();
let mask_cr = cairo::Context::new(&mask_content_surface);
- mask_cr.set_matrix(*affine_before_mask);
+ mask_cr.set_matrix(affines.for_temporary_surface);
mask_cr.transform(node.get_transform());
draw_ctx.set_cairo_context(&mask_cr);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]