New function that creates a matrix that can transform buffer co-ordinates
to output co-ordinates (or the inverse of that matrix).
---
 src/compositor.c | 19 +++++++++++++++++++
 src/compositor.h |  6 +++++-
 2 files changed, 24 insertions(+), 1 deletion(-)

diff --git a/src/compositor.c b/src/compositor.c
index d629bd7..36fd7cc 100644
--- a/src/compositor.c
+++ b/src/compositor.c
@@ -845,6 +845,25 @@ weston_surface_to_buffer_rect(struct weston_surface 
*surface,
 }
 
 WL_EXPORT void
+weston_view_to_output_matrix(struct weston_view *view,
+                            struct weston_output *op,
+                            bool inverse,
+                            struct weston_matrix *matrix)
+{
+       *matrix = view->surface->buffer_to_surface_matrix;
+       if (view->transform.enabled)
+               weston_matrix_multiply(matrix, &view->transform.matrix);
+       else
+               weston_matrix_translate(matrix,
+                                       view->geometry.x,
+                                       view->geometry.y, 0);
+       weston_matrix_multiply(matrix, &op->matrix);
+
+       if (inverse)
+               weston_matrix_invert(matrix, matrix);
+}
+
+WL_EXPORT void
 weston_view_move_to_plane(struct weston_view *view,
                             struct weston_plane *plane)
 {
diff --git a/src/compositor.h b/src/compositor.h
index 8e2cf47..b375262 100644
--- a/src/compositor.h
+++ b/src/compositor.h
@@ -1005,7 +1005,11 @@ weston_surface_to_buffer(struct weston_surface *surface,
 pixman_box32_t
 weston_surface_to_buffer_rect(struct weston_surface *surface,
                              pixman_box32_t rect);
-
+void
+weston_view_to_output_matrix(struct weston_view *view,
+                            struct weston_output *op,
+                            bool inverse,
+                            struct weston_matrix *matrix);
 void
 weston_spring_init(struct weston_spring *spring,
                   double k, double current, double target);
-- 
2.1.1

_______________________________________________
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to