From af386fd0a3de432337ee9cdaa4d3661e98bd4105 Mon Sep 17 00:00:00 2001 From: Alec Deason Date: Sat, 10 Jun 2023 13:18:42 -0700 Subject: Upgrade resvg to 0.34 and tiny_skia to 0.10 --- tiny_skia/src/vector.rs | 48 ++++++++++++++++++++++++++++++------------------ 1 file changed, 30 insertions(+), 18 deletions(-) (limited to 'tiny_skia/src/vector.rs') diff --git a/tiny_skia/src/vector.rs b/tiny_skia/src/vector.rs index a3f3c2e3..194fc52d 100644 --- a/tiny_skia/src/vector.rs +++ b/tiny_skia/src/vector.rs @@ -1,6 +1,7 @@ use crate::core::svg::{Data, Handle}; use crate::core::{Color, Rectangle, Size}; +use bytemuck::cast; use resvg::usvg; use rustc_hash::{FxHashMap, FxHashSet}; @@ -130,30 +131,41 @@ impl Cache { let mut image = tiny_skia::Pixmap::new(size.width, size.height)?; - resvg::render( - tree, - if size.width > size.height { - resvg::FitTo::Width(size.width) - } else { - resvg::FitTo::Height(size.height) - }, - tiny_skia::Transform::default(), - image.as_mut(), - )?; + let tree_size = tree.size.to_int_size(); + let target_size; + if size.width > size.height { + target_size = tree_size.scale_to_width(size.width); + } else { + target_size = tree_size.scale_to_height(size.height); + } + let transform; + if let Some(target_size) = target_size { + let tree_size = tree_size.to_size(); + let target_size = target_size.to_size(); + transform = tiny_skia::Transform::from_scale( + target_size.width() / tree_size.width(), + target_size.height() / tree_size.height(), + ); + } else { + transform = tiny_skia::Transform::default(); + } + + resvg::Tree::from_usvg(tree).render(transform, &mut image.as_mut()); if let Some([r, g, b, _]) = key.color { // Apply color filter for pixel in bytemuck::cast_slice_mut::(image.data_mut()) { - *pixel = tiny_skia::ColorU8::from_rgba( - b, - g, - r, - (*pixel >> 24) as u8, - ) - .premultiply() - .get(); + *pixel = cast( + tiny_skia::ColorU8::from_rgba( + b, + g, + r, + (*pixel >> 24) as u8, + ) + .premultiply(), + ); } } else { // Swap R and B channels for `softbuffer` presentation -- cgit From 9f73ee3206c69a2db79cfb5d596b60926a829218 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Wed, 12 Jul 2023 09:03:24 +0200 Subject: Fix import consistency for `bytemuck` --- tiny_skia/src/vector.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'tiny_skia/src/vector.rs') diff --git a/tiny_skia/src/vector.rs b/tiny_skia/src/vector.rs index 194fc52d..9836fb0a 100644 --- a/tiny_skia/src/vector.rs +++ b/tiny_skia/src/vector.rs @@ -1,7 +1,6 @@ use crate::core::svg::{Data, Handle}; use crate::core::{Color, Rectangle, Size}; -use bytemuck::cast; use resvg::usvg; use rustc_hash::{FxHashMap, FxHashSet}; @@ -157,7 +156,7 @@ impl Cache { for pixel in bytemuck::cast_slice_mut::(image.data_mut()) { - *pixel = cast( + *pixel = bytemuck::cast( tiny_skia::ColorU8::from_rgba( b, g, -- cgit From 6502cf1111380c66f96bf5677425a902c4662ef5 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Wed, 12 Jul 2023 09:07:20 +0200 Subject: Improve code style in `vector` modules --- tiny_skia/src/vector.rs | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) (limited to 'tiny_skia/src/vector.rs') diff --git a/tiny_skia/src/vector.rs b/tiny_skia/src/vector.rs index 9836fb0a..433ca0f5 100644 --- a/tiny_skia/src/vector.rs +++ b/tiny_skia/src/vector.rs @@ -131,23 +131,24 @@ impl Cache { let mut image = tiny_skia::Pixmap::new(size.width, size.height)?; let tree_size = tree.size.to_int_size(); - let target_size; - if size.width > size.height { - target_size = tree_size.scale_to_width(size.width); + + let target_size = if size.width > size.height { + tree_size.scale_to_width(size.width) } else { - target_size = tree_size.scale_to_height(size.height); - } - let transform; - if let Some(target_size) = target_size { + tree_size.scale_to_height(size.height) + }; + + let transform = if let Some(target_size) = target_size { let tree_size = tree_size.to_size(); let target_size = target_size.to_size(); - transform = tiny_skia::Transform::from_scale( + + tiny_skia::Transform::from_scale( target_size.width() / tree_size.width(), target_size.height() / tree_size.height(), - ); + ) } else { - transform = tiny_skia::Transform::default(); - } + tiny_skia::Transform::default() + }; resvg::Tree::from_usvg(tree).render(transform, &mut image.as_mut()); -- cgit