[librsvg: 19/23] feTile - resolve and render separately
- From: Federico Mena Quintero <federico src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [librsvg: 19/23] feTile - resolve and render separately
- Date: Thu, 11 Mar 2021 23:12:24 +0000 (UTC)
commit ae0888c6db4799eb5f0f244a2f6bd22f70afa29d
Author: Federico Mena Quintero <federico gnome org>
Date: Thu Mar 11 16:38:19 2021 -0600
feTile - resolve and render separately
src/filters/mod.rs | 5 ++---
src/filters/tile.rs | 9 ++++++---
2 files changed, 8 insertions(+), 6 deletions(-)
---
diff --git a/src/filters/mod.rs b/src/filters/mod.rs
index 45c25f29..bb524861 100644
--- a/src/filters/mod.rs
+++ b/src/filters/mod.rs
@@ -52,7 +52,6 @@ pub mod offset;
pub mod tile;
pub mod turbulence;
-use tile::FeTile;
use turbulence::FeTurbulence;
/// Resolved parameters for each filter primitive.
@@ -76,7 +75,7 @@ pub enum PrimitiveParams {
Morphology(morphology::Morphology),
Offset(offset::Offset),
SpecularLighting(lighting::SpecularLighting),
- Tile(Node),
+ Tile(tile::Tile),
Turbulence(Node),
}
@@ -327,7 +326,7 @@ fn render_primitive(
(Element::FeMorphology(_), Morphology(p)) => p.render(ctx, acquired_nodes, draw_ctx),
(Element::FeOffset(_), Offset(p)) => p.render(ctx, acquired_nodes, draw_ctx),
(Element::FeSpecularLighting(_), SpecularLighting(p)) => p.render(ctx, acquired_nodes, draw_ctx),
- (Element::FeTile(ref inner), Tile(node)) =>
FeTile::render(&inner.element_impl, &node, ctx, acquired_nodes, draw_ctx),
+ (Element::FeTile(_), Tile(p)) => p.render(ctx, acquired_nodes, draw_ctx),
(Element::FeTurbulence(ref inner), Turbulence(node)) =>
FeTurbulence::render(&inner.element_impl, &node, ctx, acquired_nodes, draw_ctx),
(_, _) => unreachable!(),
}
diff --git a/src/filters/tile.rs b/src/filters/tile.rs
index 102104b1..9e13dff8 100644
--- a/src/filters/tile.rs
+++ b/src/filters/tile.rs
@@ -9,11 +9,15 @@ use super::context::{FilterContext, FilterInput, FilterOutput, FilterResult};
use super::{FilterEffect, FilterError, Input, Primitive, PrimitiveParams};
/// The `feTile` filter primitive.
+#[derive(Clone)]
pub struct FeTile {
base: Primitive,
in1: Input,
}
+/// Resolved `feTile` primitive for rendering.
+pub type Tile = FeTile;
+
impl Default for FeTile {
/// Constructs a new `Tile` with empty properties.
#[inline]
@@ -35,7 +39,6 @@ impl SetAttributes for FeTile {
impl FeTile {
pub fn render(
&self,
- _node: &Node,
ctx: &FilterContext,
acquired_nodes: &mut AcquiredNodes<'_>,
draw_ctx: &mut DrawingCtx,
@@ -82,7 +85,7 @@ impl FeTile {
}
impl FilterEffect for FeTile {
- fn resolve(&self, node: &Node) -> Result<PrimitiveParams, FilterError> {
- Ok(PrimitiveParams::Tile(node.clone()))
+ fn resolve(&self, _node: &Node) -> Result<PrimitiveParams, FilterError> {
+ Ok(PrimitiveParams::Tile(self.clone()))
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]