[librsvg: 88/90] Handle.render_cairo_sub() - implement in terms of render_element_to_viewport()
- From: Federico Mena Quintero <federico src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [librsvg: 88/90] Handle.render_cairo_sub() - implement in terms of render_element_to_viewport()
- Date: Tue, 26 Mar 2019 19:19:28 +0000 (UTC)
commit b8937c3b86b36f0f517aac7b05fa814063e823ac
Author: Federico Mena Quintero <federico gnome org>
Date: Tue Mar 26 09:18:47 2019 -0600
Handle.render_cairo_sub() - implement in terms of render_element_to_viewport()
rsvg_internals/src/handle.rs | 30 +++++++-----------------------
1 file changed, 7 insertions(+), 23 deletions(-)
---
diff --git a/rsvg_internals/src/handle.rs b/rsvg_internals/src/handle.rs
index 825ea364..39d98b17 100644
--- a/rsvg_internals/src/handle.rs
+++ b/rsvg_internals/src/handle.rs
@@ -553,36 +553,20 @@ impl Handle {
check_cairo_context(cr)?;
self.check_is_loaded()?;
- let node = if let Some(id) = id {
- Some(self.lookup_node(id).map_err(RenderingError::InvalidId)?)
- } else {
- None
- };
-
let dimensions = self.get_dimensions()?;
- let root = self.get_root();
-
if dimensions.width == 0 || dimensions.height == 0 {
// nothing to render
return Ok(());
}
- cr.save();
- let mut draw_ctx = self.create_drawing_ctx_for_node(
- cr,
- &cairo::Rectangle {
- x: 0.0,
- y: 0.0,
- width: f64::from(dimensions.width),
- height: f64::from(dimensions.height),
- },
- node.as_ref(),
- false,
- );
- let res = draw_ctx.draw_node_from_stack(&root.get_cascaded_values(), &root, false);
- cr.restore();
+ let viewport = cairo::Rectangle {
+ x: 0.0,
+ y: 0.0,
+ width: f64::from(dimensions.width),
+ height: f64::from(dimensions.height),
+ };
- res
+ self.render_element_to_viewport(cr, id, &viewport)
}
pub fn render_element_to_viewport(
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]