[librsvg/attribute-parsers-737: 12/26] filters::Primitive - use set_attribute()
- From: Federico Mena Quintero <federico src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [librsvg/attribute-parsers-737: 12/26] filters::Primitive - use set_attribute()
- Date: Fri, 21 Oct 2022 01:06:07 +0000 (UTC)
commit fa3f951158a472cd19682bd52311144748a7f889
Author: Federico Mena Quintero <federico gnome org>
Date: Thu Oct 20 14:36:12 2022 -0500
filters::Primitive - use set_attribute()
We can finally pass a session here.
src/filters/blend.rs | 4 ++--
src/filters/color_matrix.rs | 4 ++--
src/filters/component_transfer.rs | 4 ++--
src/filters/composite.rs | 4 ++--
src/filters/convolve_matrix.rs | 4 ++--
src/filters/displacement_map.rs | 4 ++--
src/filters/flood.rs | 4 ++--
src/filters/gaussian_blur.rs | 4 ++--
src/filters/image.rs | 4 ++--
src/filters/lighting.rs | 8 +++----
src/filters/merge.rs | 4 ++--
src/filters/mod.rs | 46 +++++++++++++++++++++++++++------------
src/filters/morphology.rs | 4 ++--
src/filters/offset.rs | 4 ++--
src/filters/tile.rs | 4 ++--
src/filters/turbulence.rs | 4 ++--
16 files changed, 64 insertions(+), 46 deletions(-)
---
diff --git a/src/filters/blend.rs b/src/filters/blend.rs
index 2928fdfa2..3b6ac4370 100644
--- a/src/filters/blend.rs
+++ b/src/filters/blend.rs
@@ -60,8 +60,8 @@ pub struct Blend {
}
impl SetAttributes for FeBlend {
- fn set_attributes(&mut self, attrs: &Attributes, _session: &Session) -> ElementResult {
- let (in1, in2) = self.base.parse_two_inputs(attrs)?;
+ fn set_attributes(&mut self, attrs: &Attributes, session: &Session) -> ElementResult {
+ let (in1, in2) = self.base.parse_two_inputs(attrs, session)?;
self.params.in1 = in1;
self.params.in2 = in2;
diff --git a/src/filters/color_matrix.rs b/src/filters/color_matrix.rs
index c3c2b5385..d19d7743c 100644
--- a/src/filters/color_matrix.rs
+++ b/src/filters/color_matrix.rs
@@ -64,8 +64,8 @@ impl Default for ColorMatrix {
#[rustfmt::skip]
impl SetAttributes for FeColorMatrix {
- fn set_attributes(&mut self, attrs: &Attributes, _session: &Session) -> ElementResult {
- self.params.in1 = self.base.parse_one_input(attrs)?;
+ fn set_attributes(&mut self, attrs: &Attributes, session: &Session) -> ElementResult {
+ self.params.in1 = self.base.parse_one_input(attrs, session)?;
// First, determine the operation type.
let mut operation_type = Default::default();
diff --git a/src/filters/component_transfer.rs b/src/filters/component_transfer.rs
index 31027e6c5..6237bbc60 100644
--- a/src/filters/component_transfer.rs
+++ b/src/filters/component_transfer.rs
@@ -41,8 +41,8 @@ pub struct ComponentTransfer {
}
impl SetAttributes for FeComponentTransfer {
- fn set_attributes(&mut self, attrs: &Attributes, _session: &Session) -> ElementResult {
- self.params.in1 = self.base.parse_one_input(attrs)?;
+ fn set_attributes(&mut self, attrs: &Attributes, session: &Session) -> ElementResult {
+ self.params.in1 = self.base.parse_one_input(attrs, session)?;
Ok(())
}
}
diff --git a/src/filters/composite.rs b/src/filters/composite.rs
index 1b6904202..c0724b62b 100644
--- a/src/filters/composite.rs
+++ b/src/filters/composite.rs
@@ -54,8 +54,8 @@ pub struct Composite {
}
impl SetAttributes for FeComposite {
- fn set_attributes(&mut self, attrs: &Attributes, _session: &Session) -> ElementResult {
- let (in1, in2) = self.base.parse_two_inputs(attrs)?;
+ fn set_attributes(&mut self, attrs: &Attributes, session: &Session) -> ElementResult {
+ let (in1, in2) = self.base.parse_two_inputs(attrs, session)?;
self.params.in1 = in1;
self.params.in2 = in2;
diff --git a/src/filters/convolve_matrix.rs b/src/filters/convolve_matrix.rs
index 54a390c86..cceb03155 100644
--- a/src/filters/convolve_matrix.rs
+++ b/src/filters/convolve_matrix.rs
@@ -70,8 +70,8 @@ impl Default for ConvolveMatrix {
}
impl SetAttributes for FeConvolveMatrix {
- fn set_attributes(&mut self, attrs: &Attributes, _session: &Session) -> ElementResult {
- self.params.in1 = self.base.parse_one_input(attrs)?;
+ fn set_attributes(&mut self, attrs: &Attributes, session: &Session) -> ElementResult {
+ self.params.in1 = self.base.parse_one_input(attrs, session)?;
for (attr, value) in attrs.iter() {
match attr.expanded() {
diff --git a/src/filters/displacement_map.rs b/src/filters/displacement_map.rs
index c88b4eec5..14f43c45e 100644
--- a/src/filters/displacement_map.rs
+++ b/src/filters/displacement_map.rs
@@ -50,8 +50,8 @@ pub struct DisplacementMap {
}
impl SetAttributes for FeDisplacementMap {
- fn set_attributes(&mut self, attrs: &Attributes, _session: &Session) -> ElementResult {
- let (in1, in2) = self.base.parse_two_inputs(attrs)?;
+ fn set_attributes(&mut self, attrs: &Attributes, session: &Session) -> ElementResult {
+ let (in1, in2) = self.base.parse_two_inputs(attrs, session)?;
self.params.in1 = in1;
self.params.in2 = in2;
diff --git a/src/filters/flood.rs b/src/filters/flood.rs
index 4a596e92d..40e20592b 100644
--- a/src/filters/flood.rs
+++ b/src/filters/flood.rs
@@ -25,8 +25,8 @@ pub struct Flood {
}
impl SetAttributes for FeFlood {
- fn set_attributes(&mut self, attrs: &Attributes, _session: &Session) -> ElementResult {
- self.base.parse_no_inputs(attrs)
+ fn set_attributes(&mut self, attrs: &Attributes, session: &Session) -> ElementResult {
+ self.base.parse_no_inputs(attrs, session)
}
}
diff --git a/src/filters/gaussian_blur.rs b/src/filters/gaussian_blur.rs
index 3d4fe9ae0..bbdaf9316 100644
--- a/src/filters/gaussian_blur.rs
+++ b/src/filters/gaussian_blur.rs
@@ -46,8 +46,8 @@ pub struct GaussianBlur {
}
impl SetAttributes for FeGaussianBlur {
- fn set_attributes(&mut self, attrs: &Attributes, _session: &Session) -> ElementResult {
- self.params.in1 = self.base.parse_one_input(attrs)?;
+ fn set_attributes(&mut self, attrs: &Attributes, session: &Session) -> ElementResult {
+ self.params.in1 = self.base.parse_one_input(attrs, session)?;
for (attr, value) in attrs.iter() {
if let expanded_name!("", "stdDeviation") = attr.expanded() {
diff --git a/src/filters/image.rs b/src/filters/image.rs
index 65ddf759c..ea24a4058 100644
--- a/src/filters/image.rs
+++ b/src/filters/image.rs
@@ -116,8 +116,8 @@ impl Image {
}
impl SetAttributes for FeImage {
- fn set_attributes(&mut self, attrs: &Attributes, _session: &Session) -> ElementResult {
- self.base.parse_no_inputs(attrs)?;
+ fn set_attributes(&mut self, attrs: &Attributes, session: &Session) -> ElementResult {
+ self.base.parse_no_inputs(attrs, session)?;
for (attr, value) in attrs.iter() {
match attr.expanded() {
diff --git a/src/filters/lighting.rs b/src/filters/lighting.rs
index 3d4c73a5a..e173f1201 100644
--- a/src/filters/lighting.rs
+++ b/src/filters/lighting.rs
@@ -333,8 +333,8 @@ fn transform_dist(t: Transform, d: f64) -> f64 {
}
impl SetAttributes for FeDiffuseLighting {
- fn set_attributes(&mut self, attrs: &Attributes, _session: &Session) -> ElementResult {
- self.params.in1 = self.base.parse_one_input(attrs)?;
+ fn set_attributes(&mut self, attrs: &Attributes, session: &Session) -> ElementResult {
+ self.params.in1 = self.base.parse_one_input(attrs, session)?;
for (attr, value) in attrs.iter() {
match attr.expanded() {
@@ -378,8 +378,8 @@ impl DiffuseLighting {
}
impl SetAttributes for FeSpecularLighting {
- fn set_attributes(&mut self, attrs: &Attributes, _session: &Session) -> ElementResult {
- self.params.in1 = self.base.parse_one_input(attrs)?;
+ fn set_attributes(&mut self, attrs: &Attributes, session: &Session) -> ElementResult {
+ self.params.in1 = self.base.parse_one_input(attrs, session)?;
for (attr, value) in attrs.iter() {
match attr.expanded() {
diff --git a/src/filters/merge.rs b/src/filters/merge.rs
index e2e9be658..0b3a13a3c 100644
--- a/src/filters/merge.rs
+++ b/src/filters/merge.rs
@@ -52,8 +52,8 @@ impl Default for FeMerge {
}
impl SetAttributes for FeMerge {
- fn set_attributes(&mut self, attrs: &Attributes, _session: &Session) -> ElementResult {
- self.base.parse_no_inputs(attrs)
+ fn set_attributes(&mut self, attrs: &Attributes, session: &Session) -> ElementResult {
+ self.base.parse_no_inputs(attrs, session)
}
}
diff --git a/src/filters/mod.rs b/src/filters/mod.rs
index b7b545b78..b4949387c 100644
--- a/src/filters/mod.rs
+++ b/src/filters/mod.rs
@@ -8,7 +8,7 @@ use std::time::Instant;
use crate::bbox::BoundingBox;
use crate::document::AcquiredNodes;
use crate::drawing_ctx::DrawingCtx;
-use crate::element::{Draw, ElementResult, SetAttributes};
+use crate::element::{set_attribute, Draw, ElementResult, SetAttributes};
use crate::error::{ElementError, ParseError, RenderingError};
use crate::filter::UserSpaceFilter;
use crate::length::*;
@@ -16,6 +16,7 @@ use crate::node::Node;
use crate::paint_server::UserSpacePaintSource;
use crate::parsers::{CustomIdent, Parse, ParseValue};
use crate::properties::ColorInterpolationFilters;
+use crate::session::Session;
use crate::surface_utils::shared_surface::{SharedImageSurface, SurfaceType};
use crate::transform::Transform;
use crate::xml::Attributes;
@@ -206,19 +207,28 @@ impl Primitive {
fn parse_standard_attributes(
&mut self,
attrs: &Attributes,
+ session: &Session,
) -> Result<(Input, Input), ElementError> {
let mut input_1 = Input::Unspecified;
let mut input_2 = Input::Unspecified;
for (attr, value) in attrs.iter() {
match attr.expanded() {
- expanded_name!("", "x") => self.x = attr.parse(value)?,
- expanded_name!("", "y") => self.y = attr.parse(value)?,
- expanded_name!("", "width") => self.width = attr.parse(value)?,
- expanded_name!("", "height") => self.height = attr.parse(value)?,
- expanded_name!("", "result") => self.result = attr.parse(value)?,
- expanded_name!("", "in") => input_1 = attr.parse(value)?,
- expanded_name!("", "in2") => input_2 = attr.parse(value)?,
+ expanded_name!("", "x") => set_attribute(&mut self.x, attr.parse(value), session),
+ expanded_name!("", "y") => set_attribute(&mut self.y, attr.parse(value), session),
+ expanded_name!("", "width") => {
+ set_attribute(&mut self.width, attr.parse(value), session)
+ }
+ expanded_name!("", "height") => {
+ set_attribute(&mut self.height, attr.parse(value), session)
+ }
+ expanded_name!("", "result") => {
+ set_attribute(&mut self.result, attr.parse(value), session)
+ }
+ expanded_name!("", "in") => set_attribute(&mut input_1, attr.parse(value), session),
+ expanded_name!("", "in2") => {
+ set_attribute(&mut input_2, attr.parse(value), session)
+ }
_ => (),
}
}
@@ -226,18 +236,26 @@ impl Primitive {
Ok((input_1, input_2))
}
- pub fn parse_no_inputs(&mut self, attrs: &Attributes) -> ElementResult {
- let (_, _) = self.parse_standard_attributes(attrs)?;
+ pub fn parse_no_inputs(&mut self, attrs: &Attributes, session: &Session) -> ElementResult {
+ let (_, _) = self.parse_standard_attributes(attrs, session)?;
Ok(())
}
- pub fn parse_one_input(&mut self, attrs: &Attributes) -> Result<Input, ElementError> {
- let (input_1, _) = self.parse_standard_attributes(attrs)?;
+ pub fn parse_one_input(
+ &mut self,
+ attrs: &Attributes,
+ session: &Session,
+ ) -> Result<Input, ElementError> {
+ let (input_1, _) = self.parse_standard_attributes(attrs, session)?;
Ok(input_1)
}
- pub fn parse_two_inputs(&mut self, attrs: &Attributes) -> Result<(Input, Input), ElementError> {
- self.parse_standard_attributes(attrs)
+ pub fn parse_two_inputs(
+ &mut self,
+ attrs: &Attributes,
+ session: &Session,
+ ) -> Result<(Input, Input), ElementError> {
+ self.parse_standard_attributes(attrs, session)
}
}
diff --git a/src/filters/morphology.rs b/src/filters/morphology.rs
index 8a6c0725a..f440afa41 100644
--- a/src/filters/morphology.rs
+++ b/src/filters/morphology.rs
@@ -51,8 +51,8 @@ pub struct Morphology {
}
impl SetAttributes for FeMorphology {
- fn set_attributes(&mut self, attrs: &Attributes, _session: &Session) -> ElementResult {
- self.params.in1 = self.base.parse_one_input(attrs)?;
+ fn set_attributes(&mut self, attrs: &Attributes, session: &Session) -> ElementResult {
+ self.params.in1 = self.base.parse_one_input(attrs, session)?;
for (attr, value) in attrs.iter() {
match attr.expanded() {
diff --git a/src/filters/offset.rs b/src/filters/offset.rs
index d60542a54..20f3b19c7 100644
--- a/src/filters/offset.rs
+++ b/src/filters/offset.rs
@@ -33,8 +33,8 @@ pub struct Offset {
}
impl SetAttributes for FeOffset {
- fn set_attributes(&mut self, attrs: &Attributes, _session: &Session) -> ElementResult {
- self.params.in1 = self.base.parse_one_input(attrs)?;
+ fn set_attributes(&mut self, attrs: &Attributes, session: &Session) -> ElementResult {
+ self.params.in1 = self.base.parse_one_input(attrs, session)?;
for (attr, value) in attrs.iter() {
match attr.expanded() {
diff --git a/src/filters/tile.rs b/src/filters/tile.rs
index 45549a71e..4255443af 100644
--- a/src/filters/tile.rs
+++ b/src/filters/tile.rs
@@ -28,8 +28,8 @@ pub struct Tile {
}
impl SetAttributes for FeTile {
- fn set_attributes(&mut self, attrs: &Attributes, _session: &Session) -> ElementResult {
- self.params.in1 = self.base.parse_one_input(attrs)?;
+ fn set_attributes(&mut self, attrs: &Attributes, session: &Session) -> ElementResult {
+ self.params.in1 = self.base.parse_one_input(attrs, session)?;
Ok(())
}
}
diff --git a/src/filters/turbulence.rs b/src/filters/turbulence.rs
index cb962c45c..3800161f1 100644
--- a/src/filters/turbulence.rs
+++ b/src/filters/turbulence.rs
@@ -75,8 +75,8 @@ impl Default for Turbulence {
}
impl SetAttributes for FeTurbulence {
- fn set_attributes(&mut self, attrs: &Attributes, _session: &Session) -> ElementResult {
- self.base.parse_no_inputs(attrs)?;
+ fn set_attributes(&mut self, attrs: &Attributes, session: &Session) -> ElementResult {
+ self.base.parse_no_inputs(attrs, session)?;
for (attr, value) in attrs.iter() {
match attr.expanded() {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]