From 7389b2b9ce1660e9e7d54fb01f06bee75b3d33ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?T=C3=96R=C3=96K=20Attila?= Date: Fri, 22 Oct 2021 01:53:15 +0200 Subject: [PATCH] web/canvas: Convert CanvasPattern transformation matrix from Twips to regular numbers The reason this did not cause problems so far was that it was far more common to fall back to the SVG backend right before this piece of code. --- render/canvas/src/lib.rs | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/render/canvas/src/lib.rs b/render/canvas/src/lib.rs index 8ee7eaad0..c0407da3d 100644 --- a/render/canvas/src/lib.rs +++ b/render/canvas/src/lib.rs @@ -1443,12 +1443,14 @@ fn swf_shape_to_canvas_commands( let matrix = matrix_factory.create_svg_matrix(); - matrix.set_a(a.a.to_f32()); - matrix.set_b(a.b.to_f32()); - matrix.set_c(a.c.to_f32()); - matrix.set_d(a.d.to_f32()); - matrix.set_e(a.tx.get() as f32); - matrix.set_f(a.ty.get() as f32); + // The `1.0 / 20.0` in `bounds_viewbox_matrix` does not + // affect this, so we have to do it manually here. + matrix.set_a(a.a.to_f32() / 20.0); + matrix.set_b(a.b.to_f32() / 20.0); + matrix.set_c(a.c.to_f32() / 20.0); + matrix.set_d(a.d.to_f32() / 20.0); + matrix.set_e(a.tx.get() as f32 / 20.0); + matrix.set_f(a.ty.get() as f32 / 20.0); bitmap_pattern.set_transform(&matrix);