[librsvg: 23/27] draw_from_use_node - Compute the use_rect in the caller
- From: Federico Mena Quintero <federico src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [librsvg: 23/27] draw_from_use_node - Compute the use_rect in the caller
- Date: Mon, 10 May 2021 16:06:43 +0000 (UTC)
commit 73e7f080ff1bdd0a8c3e4e068f8d08bac5a12f0e
Author: Federico Mena Quintero <federico gnome org>
Date: Fri May 7 21:43:59 2021 -0500
draw_from_use_node - Compute the use_rect in the caller
This lets us make Use.get_rect private.
src/drawing_ctx.rs | 5 +----
src/structure.rs | 8 ++++++--
2 files changed, 7 insertions(+), 6 deletions(-)
---
diff --git a/src/drawing_ctx.rs b/src/drawing_ctx.rs
index 7884f85b..c73afaf0 100644
--- a/src/drawing_ctx.rs
+++ b/src/drawing_ctx.rs
@@ -1545,6 +1545,7 @@ impl DrawingCtx {
node: &Node,
acquired_nodes: &mut AcquiredNodes<'_>,
values: &ComputedValues,
+ use_rect: Rect,
link: &NodeId,
clipping: bool,
) -> Result<BoundingBox, RenderingError> {
@@ -1588,10 +1589,6 @@ impl DrawingCtx {
}
};
- let view_params = self.get_view_params();
- let params = NormalizeParams::new(values, &view_params);
- let use_rect = borrow_element_as!(node, Use).get_rect(¶ms);
-
// width or height set to 0 disables rendering of the element
// https://www.w3.org/TR/SVG/struct.html#UseElementWidthAttribute
if use_rect.is_empty() {
diff --git a/src/structure.rs b/src/structure.rs
index ac289a4d..fd3a02be 100644
--- a/src/structure.rs
+++ b/src/structure.rs
@@ -250,7 +250,7 @@ pub struct Use {
}
impl Use {
- pub fn get_rect(&self, params: &NormalizeParams) -> Rect {
+ fn get_rect(&self, params: &NormalizeParams) -> Rect {
let x = self.x.to_user(params);
let y = self.y.to_user(params);
let w = self.width.to_user(params);
@@ -304,7 +304,11 @@ impl Draw for Use {
) -> Result<BoundingBox, RenderingError> {
if let Some(link) = self.link.as_ref() {
let values = cascaded.get();
- draw_ctx.draw_from_use_node(node, acquired_nodes, values, link, clipping)
+ let view_params = draw_ctx.get_view_params();
+ let params = NormalizeParams::new(values, &view_params);
+ let rect = self.get_rect(¶ms);
+
+ draw_ctx.draw_from_use_node(node, acquired_nodes, values, rect, link, clipping)
} else {
Ok(draw_ctx.empty_bbox())
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]