[gtk/offscreen-fixes: 2/3] Add some more transform tests




commit 809299f9e48662c731123181d54f4fc66891aca4
Author: Matthias Clasen <mclasen redhat com>
Date:   Thu May 13 06:47:46 2021 -0400

    Add some more transform tests
    
    Test that gsk_transform_to_affine works.

 testsuite/gsk/transform.c | 44 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 44 insertions(+)
---
diff --git a/testsuite/gsk/transform.c b/testsuite/gsk/transform.c
index caf9f72b69..b87699d5c7 100644
--- a/testsuite/gsk/transform.c
+++ b/testsuite/gsk/transform.c
@@ -524,6 +524,49 @@ test_axis_aligned (void)
   gsk_transform_unref (transform);
 }
 
+static void
+test_to_affine (void)
+{
+  GskTransform *transform;
+  float sx, sy, dx, dy;
+
+  transform = gsk_transform_scale (NULL, 10.0, 5.0);
+  gsk_transform_to_affine (transform, &sx, &sy, &dx, &dy);
+  gsk_transform_unref (transform);
+
+  g_assert_cmpfloat (sx, ==, 10.0);
+  g_assert_cmpfloat (sy, ==, 5.0);
+  g_assert_cmpfloat (dx, ==, 0.0);
+  g_assert_cmpfloat (dy, ==, 0.0);
+
+  transform = gsk_transform_translate (NULL, &GRAPHENE_POINT_INIT (10.0, 5.0));
+  gsk_transform_to_affine (transform, &sx, &sy, &dx, &dy);
+  gsk_transform_unref (transform);
+
+  g_assert_cmpfloat (sx, ==, 1.0);
+  g_assert_cmpfloat (sy, ==, 1.0);
+  g_assert_cmpfloat (dx, ==, 10.0);
+  g_assert_cmpfloat (dy, ==, 5.0);
+
+  transform = gsk_transform_translate (gsk_transform_scale (NULL, 2.0, 3.0), &GRAPHENE_POINT_INIT (10.0, 
5.0));
+  gsk_transform_to_affine (transform, &sx, &sy, &dx, &dy);
+  gsk_transform_unref (transform);
+
+  g_assert_cmpfloat (sx, ==, 2.0);
+  g_assert_cmpfloat (sy, ==, 3.0);
+  g_assert_cmpfloat (dx, ==, 2.0 * 10.0);
+  g_assert_cmpfloat (dy, ==, 3.0 * 5.0);
+
+  transform = gsk_transform_scale (gsk_transform_translate (NULL, &GRAPHENE_POINT_INIT (10.0, 5.0)), 2.0, 
3.0);
+  gsk_transform_to_affine (transform, &sx, &sy, &dx, &dy);
+  gsk_transform_unref (transform);
+
+  g_assert_cmpfloat (sx, ==, 2.0);
+  g_assert_cmpfloat (sy, ==, 3.0);
+  g_assert_cmpfloat (dx, ==, 10.0);
+  g_assert_cmpfloat (dy, ==, 5.0);
+}
+
 int
 main (int   argc,
       char *argv[])
@@ -537,6 +580,7 @@ main (int   argc,
   g_test_add_func ("/transform/invert", test_invert);
   g_test_add_func ("/transform/print-parse", test_print_parse);
   g_test_add_func ("/transform/check-axis-aligneness", test_axis_aligned);
+  g_test_add_func ("/transform/to-affine", test_to_affine);
 
   return g_test_run ();
 }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]