{
transform = NULL;
}
- if (gsk_transform_get_category (transform) >= GSK_TRANSFORM_CATEGORY_2D_TRANSLATE)
+
+ if (gsk_transform_get_category (transform) >= GSK_TRANSFORM_CATEGORY_2D_AFFINE)
{
- float dx, dy;
+ graphene_point_t transformed_p;
- gsk_transform_to_translate (transform, &dx, &dy);
- graphene_point3d_init (&res, x + dx, y + dy, 0.);
+ gsk_transform_transform_point (transform,
+ &(graphene_point_t) { x, y },
+ &transformed_p);
+ graphene_point3d_init (&res, transformed_p.x, transformed_p.y, 0.);
}
else
{