[librsvg: 4/10] Start sketching the FilterFunction type for shorthand filters
- From: Federico Mena Quintero <federico src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [librsvg: 4/10] Start sketching the FilterFunction type for shorthand filters
- Date: Thu, 29 Apr 2021 00:06:46 +0000 (UTC)
commit c7cd4e5c7212231239efa34896d391946fc5eca1
Author: Federico Mena Quintero <federico gnome org>
Date: Wed Apr 28 13:28:08 2021 -0500
Start sketching the FilterFunction type for shorthand filters
Makefile.am | 1 +
src/filter.rs | 5 ++++-
src/filter_func.rs | 14 ++++++++++++++
src/lib.rs | 1 +
4 files changed, 20 insertions(+), 1 deletion(-)
---
diff --git a/Makefile.am b/Makefile.am
index e9dc3347..439ced85 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -48,6 +48,7 @@ LIBRSVG_SRC = \
src/drawing_ctx.rs \
src/element.rs \
src/error.rs \
+ src/filter_func.rs \
src/filter.rs \
src/filters/blend.rs \
src/filters/bounds.rs \
diff --git a/src/filter.rs b/src/filter.rs
index 3123f9f9..8a26e416 100644
--- a/src/filter.rs
+++ b/src/filter.rs
@@ -9,6 +9,7 @@ use crate::document::{AcquiredNodes, NodeId};
use crate::drawing_ctx::{DrawingCtx, ViewParams};
use crate::element::{Draw, Element, ElementResult, SetAttributes};
use crate::error::ValueErrorKind;
+use crate::filter_func::FilterFunction;
use crate::filters::{extract_filter_from_filter_node, FilterResolveError, FilterSpec};
use crate::length::*;
use crate::node::NodeBorrow;
@@ -105,7 +106,7 @@ impl Draw for Filter {}
#[derive(Debug, Clone, PartialEq)]
pub enum FilterValue {
Url(NodeId),
- // TODO: add functions from https://www.w3.org/TR/filter-effects-1/#filter-functions
+ Function(FilterFunction),
}
impl FilterValue {
@@ -122,6 +123,8 @@ impl FilterValue {
node_id,
node_being_filtered_name,
),
+
+ FilterValue::Function(ref func) => func.to_filter_spec(),
}
}
}
diff --git a/src/filter_func.rs b/src/filter_func.rs
new file mode 100644
index 00000000..5b664aff
--- /dev/null
+++ b/src/filter_func.rs
@@ -0,0 +1,14 @@
+use crate::filters::{FilterResolveError, FilterSpec};
+
+/// CSS Filter functions from the Filter Effects Module Level 1
+///
+/// https://www.w3.org/TR/filter-effects/#filter-functions
+#[derive(Debug, Clone, PartialEq)]
+pub enum FilterFunction {
+}
+
+impl FilterFunction {
+ pub fn to_filter_spec(&self) -> Result<FilterSpec, FilterResolveError> {
+ unimplemented!()
+ }
+}
diff --git a/src/lib.rs b/src/lib.rs
index f2012763..694dca76 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -195,6 +195,7 @@ mod drawing_ctx;
mod element;
mod error;
mod filter;
+mod filter_func;
pub mod filters;
mod font_props;
mod gradient;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]