renderer-view: Use common helper function to transform matrices

To deduplicate some code. Tested with all eight possible values.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2468>
This commit is contained in:
Robert Mader 2022-08-26 15:42:03 +02:00 committed by Marge Bot
parent d3b81d70f0
commit 2a87eb6226

View File

@ -80,42 +80,8 @@ meta_renderer_view_get_offscreen_transformation_matrix (ClutterStageView *view,
MetaRendererView *renderer_view = META_RENDERER_VIEW (view); MetaRendererView *renderer_view = META_RENDERER_VIEW (view);
graphene_matrix_init_identity (matrix); graphene_matrix_init_identity (matrix);
meta_monitor_transform_transform_matrix (
switch (renderer_view->transform) meta_monitor_transform_invert (renderer_view->transform), matrix);
{
case META_MONITOR_TRANSFORM_NORMAL:
break;
case META_MONITOR_TRANSFORM_90:
graphene_matrix_translate (matrix, &GRAPHENE_POINT3D_INIT (0, -1, 0));
graphene_matrix_rotate (matrix, 90, graphene_vec3_z_axis ());
break;
case META_MONITOR_TRANSFORM_180:
graphene_matrix_translate (matrix, &GRAPHENE_POINT3D_INIT (-1, -1, 0));
graphene_matrix_rotate (matrix, 180, graphene_vec3_z_axis ());
break;
case META_MONITOR_TRANSFORM_270:
graphene_matrix_translate (matrix, &GRAPHENE_POINT3D_INIT (-1, 0, 0));
graphene_matrix_rotate (matrix, 270, graphene_vec3_z_axis ());
break;
case META_MONITOR_TRANSFORM_FLIPPED:
graphene_matrix_translate (matrix, &GRAPHENE_POINT3D_INIT (-1, 0, 0));
graphene_matrix_scale (matrix, -1, 1, 1);
break;
case META_MONITOR_TRANSFORM_FLIPPED_90:
graphene_matrix_rotate (matrix, 90, graphene_vec3_z_axis ());
graphene_matrix_scale (matrix, -1, 1, 1);
break;
case META_MONITOR_TRANSFORM_FLIPPED_180:
graphene_matrix_translate (matrix, &GRAPHENE_POINT3D_INIT (0, -1, 0));
graphene_matrix_rotate (matrix, 180, graphene_vec3_z_axis ());
graphene_matrix_scale (matrix, -1, 1, 1);
break;
case META_MONITOR_TRANSFORM_FLIPPED_270:
graphene_matrix_translate (matrix, &GRAPHENE_POINT3D_INIT (-1, -1, 0));
graphene_matrix_rotate (matrix, 270, graphene_vec3_z_axis ());
graphene_matrix_scale (matrix, -1, 1, 1);
break;
}
} }
static void static void