Merge pull request #2954 from semiversus/fix_scaling_artifacts

Fix `svg` scaling in `iced_tiny_skia`
This commit is contained in:
Héctor 2025-11-26 00:38:25 +01:00 committed by GitHub
commit 9de2261230
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 8 additions and 5 deletions

View file

@ -627,7 +627,7 @@ impl Engine {
self.vector_pipeline.draw(
&svg.handle,
svg.color,
physical_bounds,
*bounds,
svg.opacity,
_pixels,
transform,

View file

@ -42,17 +42,20 @@ impl Pipeline {
if let Some(image) = self.cache.borrow_mut().draw(
handle,
color,
Size::new(bounds.width as u32, bounds.height as u32),
Size::new(
(bounds.width * transform.sx) as u32,
(bounds.height * transform.sy) as u32,
),
) {
pixels.draw_pixmap(
bounds.x as i32,
bounds.y as i32,
(bounds.x * transform.sx) as i32,
(bounds.y * transform.sy) as i32,
image,
&tiny_skia::PixmapPaint {
opacity,
..tiny_skia::PixmapPaint::default()
},
transform,
Transform::default(),
clip_mask,
);
}