[librsvg: 3/23] New enum PrimitiveParams, with the resolved parameters for each filter primitive
- From: Federico Mena Quintero <federico src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [librsvg: 3/23] New enum PrimitiveParams, with the resolved parameters for each filter primitive
- Date: Thu, 11 Mar 2021 23:12:24 +0000 (UTC)
commit 8dd0751faf9ce97136383aa9bf168ec20ffb1104
Author: Federico Mena Quintero <federico gnome org>
Date: Thu Mar 11 11:51:05 2021 -0600
New enum PrimitiveParams, with the resolved parameters for each filter primitive
We will resolve all the parameters that each primitive needs, and put
them in this enum. Upcoming changes:
* Each primitive will be able to extract a PrimitiveParams for itself.
* Static dispatch for rendering primitives, based on this enum.
* Later, synthesize PrimitiveParams not from feFoo elements, but from
filter functions in the SVG2 `filter` property.
src/filters/mod.rs | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
---
diff --git a/src/filters/mod.rs b/src/filters/mod.rs
index 321df341..856b43a9 100644
--- a/src/filters/mod.rs
+++ b/src/filters/mod.rs
@@ -65,6 +65,31 @@ pub mod offset;
pub mod tile;
pub mod turbulence;
+/// Resolved parameters for each filter primitive.
+///
+/// These gather all the data that a primitive may need during rendering:
+/// the `feFoo` element's attributes, any computed values from its properties,
+/// and parameters extracted from the element's children (for example,
+/// `feMerge` gathers info from its `feMergNode` children).
+pub enum PrimitiveParams {
+ Blend(Node),
+ ColorMatrix(Node),
+ ComponentTransfer(Node),
+ Composite(Node),
+ ConvolveMatrix(Node),
+ DiffuseLighting(Node),
+ DisplacementMap(Node),
+ Flood(Node),
+ GaussianBlur(Node),
+ Image(Node),
+ Merge(Node),
+ Morphology(Node),
+ Offset(Node),
+ SpecularLighting(Node),
+ Tile(Node),
+ Turbulence(Node),
+}
+
/// The base filter primitive node containing common properties.
struct Primitive {
x: Option<Length<Horizontal>>,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]