diff options
Diffstat (limited to 'src/compositor.c')
-rw-r--r-- | src/compositor.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/src/compositor.c b/src/compositor.c index 0a7dea3..69ad60e 100644 --- a/src/compositor.c +++ b/src/compositor.c @@ -505,7 +505,7 @@ transform_vertex(struct weston_surface *surface, t.f[2] = 0.0; t.f[3] = 1.0; - weston_matrix_transform(&surface->transform.cached.matrix, &t); + weston_matrix_transform(&surface->transform.matrix, &t); /* XXX: assumes last row of matrix is [0 0 * 1] */ @@ -544,8 +544,8 @@ texture_transformed_surface(struct weston_surface *es) static void weston_surface_update_transform(struct weston_surface *surface) { - struct weston_matrix *matrix = &surface->transform.cached.matrix; - struct weston_matrix *inverse = &surface->transform.cached.inverse; + struct weston_matrix *matrix = &surface->transform.matrix; + struct weston_matrix *inverse = &surface->transform.inverse; struct weston_transform *tform; if (!surface->transform.dirty) @@ -564,9 +564,7 @@ weston_surface_update_transform(struct weston_surface *surface) wl_list_for_each(tform, &surface->transform.list, link) weston_matrix_multiply(matrix, &tform->matrix); - weston_matrix_init(inverse); - wl_list_for_each_reverse(tform, &surface->transform.list, link) - weston_matrix_multiply(inverse, &tform->inverse); + weston_matrix_invert(inverse, matrix); } WL_EXPORT void |