gsk: Extract scales properly from 2D transforms
authorMatthias Clasen <mclasen@redhat.com>
Mon, 1 May 2023 17:28:27 +0000 (13:28 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Mon, 1 May 2023 17:45:20 +0000 (13:45 -0400)
We have the code to do it properly.

gsk/gl/gskglrenderjob.c

index 96637054d239d11a62817c342efb170ad0ed230d..7fa6408fc2d2b467c0bb084a84a3c5d0aba24492 100644 (file)
@@ -466,13 +466,14 @@ extract_matrix_metadata (GskGLRenderModelview *modelview)
 
     case GSK_TRANSFORM_CATEGORY_2D:
       {
-        float xx, xy, yx, yy, dx, dy;
+        float skew_x, skew_y, angle, dx, dy;
 
-        gsk_transform_to_2d (modelview->transform,
-                             &xx, &xy, &yx, &yy, &dx, &dy);
-
-        modelview->scale_x = sqrtf (xx * xx + xy * xy);
-        modelview->scale_y = sqrtf (yx * yx + yy * yy);
+        gsk_transform_to_2d_components (modelview->transform,
+                                        &skew_x, &skew_y,
+                                        &modelview->scale_x, &modelview->scale_y,
+                                        &angle, &dx, &dy);
+        modelview->dx = 0;
+        modelview->dy = 0;
       }
       break;