[librsvg: 1/15] render_to_viewport() - New primitive, intended for rendering the SVG document



commit 9eb2d22e63555bc112738fe2f756d638640abbaf
Author: Federico Mena Quintero <federico gnome org>
Date:   Fri Mar 29 10:17:15 2019 -0600

    render_to_viewport() - New primitive, intended for rendering the SVG document
    
    The idea is that this will pay attention to the caller's viewport and
    the SVG's intrinsic dimensions.
    
    This commit changes all calls to render_element_to_viewport(), that had
    None as element id, into using render_to_viewport() instead.
    
    render_element_to_viewport() will change semantics as per #448 later.

 librsvg_crate/examples/proportional.rs   |  3 +--
 librsvg_crate/examples/render_to_file.rs |  3 +--
 librsvg_crate/src/lib.rs                 |  8 ++++++++
 librsvg_crate/tests/utils/mod.rs         |  2 +-
 rsvg_internals/src/handle.rs             | 10 ++++++++++
 5 files changed, 21 insertions(+), 5 deletions(-)
---
diff --git a/librsvg_crate/examples/proportional.rs b/librsvg_crate/examples/proportional.rs
index abd94508..6c4480fd 100644
--- a/librsvg_crate/examples/proportional.rs
+++ b/librsvg_crate/examples/proportional.rs
@@ -34,9 +34,8 @@ fn main() {
     let surface = cairo::ImageSurface::create(cairo::Format::ARgb32, width, height).unwrap();
     let cr = cairo::Context::new(&surface);
     renderer
-        .render_element_to_viewport(
+        .render_to_viewport(
             &cr,
-            None,
             &cairo::Rectangle {
                 x: 0.0,
                 y: 0.0,
diff --git a/librsvg_crate/examples/render_to_file.rs b/librsvg_crate/examples/render_to_file.rs
index 38c4bd07..9d57b747 100644
--- a/librsvg_crate/examples/render_to_file.rs
+++ b/librsvg_crate/examples/render_to_file.rs
@@ -13,9 +13,8 @@ fn main() {
     let surface = cairo::SvgSurface::new(width, height, output);
     let cr = cairo::Context::new(&surface);
     renderer
-        .render_element_to_viewport(
+        .render_to_viewport(
             &cr,
-            None,
             &cairo::Rectangle {
                 x: 0.0,
                 y: 0.0,
diff --git a/librsvg_crate/src/lib.rs b/librsvg_crate/src/lib.rs
index 33286d6d..d150f9ef 100644
--- a/librsvg_crate/src/lib.rs
+++ b/librsvg_crate/src/lib.rs
@@ -409,6 +409,14 @@ impl<'a> CairoRenderer<'a> {
             .map(|(i, l)| (i.into(), l.into()))
     }
 
+    pub fn render_to_viewport(
+        &self,
+        cr: &cairo::Context,
+        viewport: &cairo::Rectangle,
+    ) -> Result<(), RenderingError> {
+        self.handle.0.render_to_viewport(cr, viewport, self.dpi, false)
+    }
+
     pub fn render_element_to_viewport(
         &self,
         cr: &cairo::Context,
diff --git a/librsvg_crate/tests/utils/mod.rs b/librsvg_crate/tests/utils/mod.rs
index 51d4abd9..1f09ea91 100644
--- a/librsvg_crate/tests/utils/mod.rs
+++ b/librsvg_crate/tests/utils/mod.rs
@@ -43,7 +43,7 @@ pub fn render_to_viewport<F: FnOnce(&cairo::Context)>(
     let res = {
         let cr = cairo::Context::new(&output);
         cr_transform(&cr);
-        Ok(renderer.render_element_to_viewport(&cr, None, &viewport)?)
+        Ok(renderer.render_to_viewport(&cr, &viewport)?)
     };
 
     res.and_then(|_| Ok(SharedImageSurface::new(output, SurfaceType::SRgb)?))
diff --git a/rsvg_internals/src/handle.rs b/rsvg_internals/src/handle.rs
index 7f1064fe..78a7b2a1 100644
--- a/rsvg_internals/src/handle.rs
+++ b/rsvg_internals/src/handle.rs
@@ -323,6 +323,16 @@ impl Handle {
         self.render_element_to_viewport(cr, id, &viewport, dpi, is_testing)
     }
 
+    pub fn render_to_viewport(
+        &self,
+        cr: &cairo::Context,
+        viewport: &cairo::Rectangle,
+        dpi: Dpi,
+        is_testing: bool,
+    ) -> Result<(), RenderingError> {
+        self.render_element_to_viewport(cr, None, viewport, dpi, is_testing)
+    }
+
     pub fn render_element_to_viewport(
         &self,
         cr: &cairo::Context,


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]