From d26cc4c68d472d6b295999f02d48d262855421f1 Mon Sep 17 00:00:00 2001 From: "Spencer C. Imbleau" Date: Thu, 18 Apr 2024 20:32:34 -0400 Subject: [PATCH 1/5] fix: viewBox --- CHANGELOG.md | 8 ++++++++ src/lib.rs | 11 +++++++++-- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 530a0c2..7d38a32 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,14 @@ Subheadings to categorize changes are `added, changed, deprecated, removed, fixe ## Unreleased +### changed + +- Updated usvg to 0.41 + +### fixed + +- The image viewBox is now properly translated + ## 0.1 (2024-03-11) - Initial release diff --git a/src/lib.rs b/src/lib.rs index 7027860..2a4ea6c 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -56,7 +56,7 @@ pub fn render_tree(scene: &mut Scene, svg: &usvg::Tree) { render_tree_with::<_, Infallible>( scene, svg, - &usvg::Transform::identity(), + &svg.view_box().to_transform(svg.size()), &mut default_error_handler, ) .unwrap_or_else(|e| match e {}); @@ -74,7 +74,13 @@ pub fn render_tree_with Result<(), E>, E>( ts: &usvg::Transform, error_handler: &mut F, ) -> Result<(), E> { - render_tree_impl(scene, svg, &svg.view_box(), ts, error_handler) + render_tree_impl( + scene, + svg, + &svg.view_box(), + &ts.pre_concat(svg.view_box().to_transform(svg.size())), + error_handler, + ) } fn render_tree_impl Result<(), E>, E>( @@ -101,6 +107,7 @@ fn render_tree_impl Result<(), E>, E>( ); let (view_box_transform, clip) = geom::view_box_to_transform_with_clip(view_box, svg.size().to_int_size()); + let view_box_transform = view_box_transform.pre_concat(svg.view_box().to_transform(svg.size())); if let Some(clip) = clip { scene.push_layer( BlendMode { From b50f5d3066a02be9ffd63e04f1c958c81b74a6f8 Mon Sep 17 00:00:00 2001 From: "Spencer C. Imbleau" Date: Thu, 18 Apr 2024 20:36:58 -0400 Subject: [PATCH 2/5] fix: working viewBox --- src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib.rs b/src/lib.rs index 2a4ea6c..93841dd 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -56,7 +56,7 @@ pub fn render_tree(scene: &mut Scene, svg: &usvg::Tree) { render_tree_with::<_, Infallible>( scene, svg, - &svg.view_box().to_transform(svg.size()), + &usvg::Transform::identity(), &mut default_error_handler, ) .unwrap_or_else(|e| match e {}); From f39b063350c5dcee1fd71b9a76219022958f7978 Mon Sep 17 00:00:00 2001 From: "Spencer C. Imbleau" Date: Thu, 18 Apr 2024 20:38:22 -0400 Subject: [PATCH 3/5] refactor: cleanup --- src/lib.rs | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 93841dd..09930a5 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -74,13 +74,7 @@ pub fn render_tree_with Result<(), E>, E>( ts: &usvg::Transform, error_handler: &mut F, ) -> Result<(), E> { - render_tree_impl( - scene, - svg, - &svg.view_box(), - &ts.pre_concat(svg.view_box().to_transform(svg.size())), - error_handler, - ) + render_tree_impl(scene, svg, &svg.view_box(), ts, error_handler) } fn render_tree_impl Result<(), E>, E>( @@ -90,6 +84,7 @@ fn render_tree_impl Result<(), E>, E>( ts: &usvg::Transform, error_handler: &mut F, ) -> Result<(), E> { + let ts = &ts.pre_concat(view_box.to_transform(svg.size())); let transform = to_affine(ts); scene.push_layer( BlendMode { From 74484a23557589fd95e9c9a3b4aa3aa95e7049fb Mon Sep 17 00:00:00 2001 From: "Spencer C. Imbleau" Date: Thu, 18 Apr 2024 22:18:59 -0400 Subject: [PATCH 4/5] fix: remove function call --- src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib.rs b/src/lib.rs index 09930a5..d2f2e51 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -102,7 +102,7 @@ fn render_tree_impl Result<(), E>, E>( ); let (view_box_transform, clip) = geom::view_box_to_transform_with_clip(view_box, svg.size().to_int_size()); - let view_box_transform = view_box_transform.pre_concat(svg.view_box().to_transform(svg.size())); + let view_box_transform = view_box_transform.pre_concat(view_box.to_transform(svg.size())); if let Some(clip) = clip { scene.push_layer( BlendMode { From 7334eeddef309d5a302b321f4d46313fc2efb2dc Mon Sep 17 00:00:00 2001 From: "Spencer C. Imbleau" Date: Fri, 19 Apr 2024 09:17:22 -0400 Subject: [PATCH 5/5] Update CHANGELOG.md Co-authored-by: Daniel McNab <36049421+DJMcNab@users.noreply.github.com> --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7d38a32..eca8401 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,7 +12,7 @@ Subheadings to categorize changes are `added, changed, deprecated, removed, fixe ### changed -- Updated usvg to 0.41 +- Updated `usvg` to 0.41 ### fixed