summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFederico Mena Quintero <federico@gnome.org>2021-01-25 15:46:13 -0600
committerFederico Mena Quintero <federico@gnome.org>2021-01-25 15:46:13 -0600
commitbde810bd093019e0a93225138a008c0bdc102d85 (patch)
treef7ceb4cb7ba783b9e13484716d3aa2fb5cc14494
parent3ce71af391daf8283a647a4ced5ed7c087a9e912 (diff)
downloadlibrsvg-bde810bd093019e0a93225138a008c0bdc102d85.tar.gz
rsvg-convert: Extract function to compute the natural size of the requested input
-rw-r--r--src/bin/rsvg-convert.rs10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/bin/rsvg-convert.rs b/src/bin/rsvg-convert.rs
index db7f2c7a..6ce42c32 100644
--- a/src/bin/rsvg-convert.rs
+++ b/src/bin/rsvg-convert.rs
@@ -397,8 +397,8 @@ impl Converter {
};
}
- fn create_surface(&self, renderer: &CairoRenderer, input: &Input) -> Surface {
- let (natural_width, natural_height) = renderer
+ fn natural_size(&self, renderer: &CairoRenderer, input: &Input) -> (f64, f64) {
+ renderer
.legacy_layer_size(self.export_id.as_deref())
.unwrap_or_else(|e| match e {
RenderingError::IdNotFound => exit!(
@@ -407,7 +407,11 @@ impl Converter {
self.export_id.as_deref().unwrap()
),
_ => exit!("Error rendering SVG {}: {}", input, e),
- });
+ })
+ }
+
+ fn create_surface(&self, renderer: &CairoRenderer, input: &Input) -> Surface {
+ let (natural_width, natural_height) = self.natural_size(renderer, input);
let strategy = match (self.width, self.height) {
// when w and h are not specified, scale to the requested zoom (if any)