forked from AuroraMiddleware/gtk
gsk: Handle 2D transforms better
For 2D transforms, we can read the scale factors more directly off the matrix. This should eventually be moved out into a function to decompose a 2D transform into scale + rotation + skew + translation.
This commit is contained in:
parent
27d662f1aa
commit
6a60214e8c
@ -453,10 +453,21 @@ extract_matrix_metadata (GskNglRenderModelview *modelview)
|
||||
&modelview->dx, &modelview->dy);
|
||||
break;
|
||||
|
||||
case GSK_TRANSFORM_CATEGORY_2D:
|
||||
{
|
||||
float xx, xy, yx, yy, 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);
|
||||
}
|
||||
break;
|
||||
|
||||
case GSK_TRANSFORM_CATEGORY_UNKNOWN:
|
||||
case GSK_TRANSFORM_CATEGORY_ANY:
|
||||
case GSK_TRANSFORM_CATEGORY_3D:
|
||||
case GSK_TRANSFORM_CATEGORY_2D:
|
||||
{
|
||||
graphene_vec3_t col1;
|
||||
graphene_vec3_t col2;
|
||||
|
Loading…
Reference in New Issue
Block a user