compositor: Create the inverse of the output matrix

Signed-off-by: Derek Foreman <derekf@osg.samsung.com>
Reviewed-by: Bryce Harrington <b.harrington@samsung.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
diff --git a/src/compositor.c b/src/compositor.c
index 47da818..623dff3 100644
--- a/src/compositor.c
+++ b/src/compositor.c
@@ -4003,6 +4003,8 @@
 				    output->current_scale, 1);
 
 	output->dirty = 0;
+
+	weston_matrix_invert(&output->inverse_matrix, &output->matrix);
 }
 
 static void
diff --git a/src/compositor.h b/src/compositor.h
index 24ed4fc..be32312 100644
--- a/src/compositor.h
+++ b/src/compositor.h
@@ -185,6 +185,8 @@
 
 	/** From global to output buffer coordinates. */
 	struct weston_matrix matrix;
+	/** From output buffer to global coordinates. */
+	struct weston_matrix inverse_matrix;
 
 	struct wl_list animation_list;
 	int32_t x, y, width, height;