[librsvg] element: add Element::as_filter_effect()
- From: Paolo Borelli <pborelli src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [librsvg] element: add Element::as_filter_effect()
- Date: Sat, 4 Apr 2020 11:03:14 +0000 (UTC)
commit 06a59ac2b02af627b36319d0518ef322fc67d478
Author: Paolo Borelli <pborelli gnome org>
Date: Sat Apr 4 12:39:22 2020 +0200
element: add Element::as_filter_effect()
This was the last user of get_element_trait() and makes code
shorter and clearer
rsvg_internals/src/element.rs | 8 ++++----
rsvg_internals/src/filters/mod.rs | 9 ++-------
2 files changed, 6 insertions(+), 11 deletions(-)
---
diff --git a/rsvg_internals/src/element.rs b/rsvg_internals/src/element.rs
index 1617225d..c142fab4 100644
--- a/rsvg_internals/src/element.rs
+++ b/rsvg_internals/src/element.rs
@@ -187,10 +187,6 @@ impl Element {
self.element_type
}
- pub fn get_element_trait(&self) -> &dyn ElementTrait {
- self.element_impl.as_ref()
- }
-
pub fn get_impl<T: ElementTrait>(&self) -> &T {
if let Some(t) = (&self.element_impl).downcast_ref::<T>() {
t
@@ -371,6 +367,10 @@ impl Element {
Ok(draw_ctx.empty_bbox())
}
}
+
+ pub fn as_filter_effect(&self) -> Option<&dyn FilterEffect> {
+ self.element_impl.as_filter_effect()
+ }
}
impl fmt::Display for Element {
diff --git a/rsvg_internals/src/filters/mod.rs b/rsvg_internals/src/filters/mod.rs
index b6fb027d..c161df56 100644
--- a/rsvg_internals/src/filters/mod.rs
+++ b/rsvg_internals/src/filters/mod.rs
@@ -288,12 +288,7 @@ pub fn render(
!in_error
})
// Keep only filter primitives (those that implement the Filter trait)
- .filter(|c| {
- c.borrow_element()
- .get_element_trait()
- .as_filter_effect()
- .is_some()
- })
+ .filter(|c| c.borrow_element().as_filter_effect().is_some())
// Check if the node wants linear RGB.
.map(|c| {
let linear_rgb = {
@@ -308,7 +303,7 @@ pub fn render(
for (c, linear_rgb) in primitives {
let elt = c.borrow_element();
- let filter = elt.get_element_trait().as_filter_effect().unwrap();
+ let filter = elt.as_filter_effect().unwrap();
let mut render = |filter_ctx: &mut FilterContext| {
if let Err(err) = filter
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]