compositor: Add surface-to-buffer and buffer-to-surface matrices

Add matrix representations of these two transformations. Future patches
will leverage these to simplify the coordinate transformation code.

[Pekka: commit message]
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-By: Derek Foreman <derekf@osg.samsung.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
diff --git a/src/compositor.h b/src/compositor.h
index 207767e..ead03ae 100644
--- a/src/compositor.h
+++ b/src/compositor.h
@@ -926,6 +926,12 @@
 	/* All the pending state, that wl_surface.commit will apply. */
 	struct weston_surface_state pending;
 
+	/* Matrices representating of the full transformation between
+	 * buffer and surface coordinates.  These matrices are updated
+	 * using the weston_surface_build_buffer_matrix function. */
+	struct weston_matrix buffer_to_surface_matrix;
+	struct weston_matrix surface_to_buffer_matrix;
+
 	/*
 	 * If non-NULL, this function will be called on
 	 * wl_surface::commit after a new buffer has been set up for