From de001045663a3d792fc51d4ea0576f7620f93592 Mon Sep 17 00:00:00 2001 From: Mew Pur Pur <85438892+MewPurPur@users.noreply.github.com> Date: Mon, 22 Jan 2024 11:52:37 +0200 Subject: [PATCH] svg_loader: Add missing implementation of skewX and skewY in transform-list --- src/loaders/svg/tvgSvgLoader.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/loaders/svg/tvgSvgLoader.cpp b/src/loaders/svg/tvgSvgLoader.cpp index cc25deea..f12b3df5 100644 --- a/src/loaders/svg/tvgSvgLoader.cpp +++ b/src/loaders/svg/tvgSvgLoader.cpp @@ -786,6 +786,16 @@ static Matrix* _parseTransformationMatrix(const char* value) if (ptCount == 2) sy = points[1]; Matrix tmp = { sx, 0, 0, 0, sy, 0, 0, 0, 1 }; _matrixCompose(matrix, &tmp, matrix); + } else if (state == MatrixState::SkewX) { + if (ptCount != 1) goto error; + auto deg = tanf(points[0] * (M_PI / 180.0)); + Matrix tmp = { 1, deg, 0, 0, 1, 0, 0, 0, 1 }; + _matrixCompose(matrix, &tmp, matrix); + } else if (state == MatrixState::SkewY) { + if (ptCount != 1) goto error; + auto deg = tanf(points[0] * (M_PI / 180.0)); + Matrix tmp = { 1, 0, 0, deg, 1, 0, 0, 0, 1 }; + _matrixCompose(matrix, &tmp, matrix); } } return matrix;