[librsvg: 8/20] feComponentTransfer: shorten code by implementing Default and Clone for its parameters
- From: Federico Mena Quintero <federico src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [librsvg: 8/20] feComponentTransfer: shorten code by implementing Default and Clone for its parameters
- Date: Wed, 17 Mar 2021 19:08:05 +0000 (UTC)
commit 601b54f43573c0137b086b97417170d4fad97467
Author: Federico Mena Quintero <federico gnome org>
Date: Tue Mar 16 13:04:50 2021 -0600
feComponentTransfer: shorten code by implementing Default and Clone for its parameters
src/filters/component_transfer.rs | 29 ++++++++++-------------------
1 file changed, 10 insertions(+), 19 deletions(-)
---
diff --git a/src/filters/component_transfer.rs b/src/filters/component_transfer.rs
index 3580f4cf..82ecd959 100644
--- a/src/filters/component_transfer.rs
+++ b/src/filters/component_transfer.rs
@@ -20,32 +20,23 @@ use super::context::{FilterContext, FilterOutput, FilterResult};
use super::{FilterEffect, FilterError, Input, Primitive, PrimitiveParams, ResolvedPrimitive};
/// The `feComponentTransfer` filter primitive.
+#[derive(Default)]
pub struct FeComponentTransfer {
base: Primitive,
- in1: Input,
+ params: ComponentTransfer,
}
/// Resolved `feComponentTransfer` primitive for rendering.
+#[derive(Clone, Default)]
pub struct ComponentTransfer {
in1: Input,
functions: Functions,
color_interpolation_filters: ColorInterpolationFilters,
}
-impl Default for FeComponentTransfer {
- /// Constructs a new `ComponentTransfer` with empty properties.
- #[inline]
- fn default() -> FeComponentTransfer {
- FeComponentTransfer {
- base: Default::default(),
- in1: Default::default(),
- }
- }
-}
-
impl SetAttributes for FeComponentTransfer {
fn set_attributes(&mut self, attrs: &Attributes) -> ElementResult {
- self.in1 = self.base.parse_one_input(attrs)?;
+ self.params.in1 = self.base.parse_one_input(attrs)?;
Ok(())
}
}
@@ -92,7 +83,7 @@ struct FunctionParameters {
offset: f64,
}
-#[derive(Debug, PartialEq)]
+#[derive(Clone, Debug, Default, PartialEq)]
struct Functions {
r: FeFuncR,
g: FeFuncG,
@@ -381,13 +372,13 @@ impl FilterEffect for FeComponentTransfer {
let cascaded = CascadedValues::new_from_node(node);
let values = cascaded.get();
+ let mut params = self.params.clone();
+ params.functions = get_functions(node)?;
+ params.color_interpolation_filters = values.color_interpolation_filters();
+
Ok((
self.base.clone(),
- PrimitiveParams::ComponentTransfer(ComponentTransfer {
- in1: self.in1.clone(),
- functions: get_functions(node)?,
- color_interpolation_filters: values.color_interpolation_filters(),
- }),
+ PrimitiveParams::ComponentTransfer(params),
))
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]