transform: Scale+translate bounds directyl
authorTimm Bäder <mail@baedert.org>
Thu, 2 Jan 2020 09:28:08 +0000 (10:28 +0100)
committerTimm Bäder <mail@baedert.org>
Tue, 7 Jan 2020 16:27:18 +0000 (17:27 +0100)
Make these two code paths look the same.

gsk/gsktransform.c

index 60f1f4a22f54b6c3bf6b00174bcb0182e06c9f67..9db4e4b4e24f8f7f186cc6f64cf1fef9fca26f1e 100644 (file)
@@ -1730,7 +1730,10 @@ gsk_transform_transform_bounds (GskTransform          *self,
         float dx, dy;
 
         gsk_transform_to_translate (self, &dx, &dy);
-        graphene_rect_offset_r (rect, dx, dy, out_rect);
+        out_rect->origin.x = rect->origin.x + dx;
+        out_rect->origin.y = rect->origin.y + dy;
+        out_rect->size.width = rect->size.width;
+        out_rect->size.height = rect->size.height;
       }
     break;
 
@@ -1740,13 +1743,10 @@ gsk_transform_transform_bounds (GskTransform          *self,
 
         gsk_transform_to_affine (self, &scale_x, &scale_y, &dx, &dy);
 
-        *out_rect = *rect;
-        out_rect->origin.x *= scale_x;
-        out_rect->origin.y *= scale_y;
-        out_rect->size.width *= scale_x;
-        out_rect->size.height *= scale_y;
-        out_rect->origin.x += dx;
-        out_rect->origin.y += dy;
+        out_rect->origin.x = (rect->origin.x * scale_x) + dx;
+        out_rect->origin.y = (rect->origin.y * scale_y) + dy;
+        out_rect->size.width = rect->size.width * scale_x;
+        out_rect->size.height = rect->size.height * scale_y;
       }
     break;