[librsvg: 4/7] filters: pass a Filter reference to the ctx




commit f6d757a6bbe8ad2cbac66f6a532c14afce3600c0
Author: Paolo Borelli <pborelli gnome org>
Date:   Sun Nov 29 14:42:09 2020 +0000

    filters: pass a Filter reference to the ctx

 src/filters/context.rs | 6 ++----
 src/filters/mod.rs     | 3 ++-
 2 files changed, 4 insertions(+), 5 deletions(-)
---
diff --git a/src/filters/context.rs b/src/filters/context.rs
index ab3996a9..23cbadfb 100644
--- a/src/filters/context.rs
+++ b/src/filters/context.rs
@@ -6,7 +6,7 @@ use crate::bbox::BoundingBox;
 use crate::coord_units::CoordUnits;
 use crate::document::AcquiredNodes;
 use crate::drawing_ctx::{DrawingCtx, ViewParams};
-use crate::node::{Node, NodeBorrow};
+use crate::filter::Filter;
 use crate::parsers::CustomIdent;
 use crate::properties::ComputedValues;
 use crate::rect::{IRect, Rect};
@@ -95,7 +95,7 @@ pub struct FilterContext {
 impl FilterContext {
     /// Creates a new `FilterContext`.
     pub fn new(
-        filter_node: &Node,
+        filter: &Filter,
         computed_from_node_being_filtered: &ComputedValues,
         source_surface: SharedImageSurface,
         draw_ctx: &mut DrawingCtx,
@@ -106,8 +106,6 @@ impl FilterContext {
         // However, with userSpaceOnUse it's still possible to create images with a filter.
         let bbox_rect = node_bbox.rect.unwrap_or_default();
 
-        let filter = borrow_element_as!(filter_node, Filter);
-
         let filter_units = filter.get_filter_units();
         let affine = match filter_units {
             CoordUnits::UserSpaceOnUse => draw_transform,
diff --git a/src/filters/mod.rs b/src/filters/mod.rs
index ebc238ee..50b6479c 100644
--- a/src/filters/mod.rs
+++ b/src/filters/mod.rs
@@ -284,8 +284,9 @@ pub fn render(
         return Ok(source_surface);
     }
 
+    let filter = borrow_element_as!(filter_node, Filter);
     let mut filter_ctx = FilterContext::new(
-        filter_node,
+        &filter,
         computed_from_node_being_filtered,
         source_surface,
         draw_ctx,


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