[PATCH weston v2 05/16] rpi-renderer: minimal fix to zoom coordinates

Pekka Paalanen ppaalanen at gmail.com
Tue Mar 10 06:01:36 PDT 2015


From: Pekka Paalanen <pekka.paalanen at collabora.co.uk>

The patch "zoom: Use pixels instead of GL coordinates" changed the
meaning of weston_output_zoom::trans_x,trans_y from GL coordinate system
to global coordinates.

This patch is a minimal untested change to the rpi-renderer to try and
follow up on that change.

Signed-off-by: Pekka Paalanen <pekka.paalanen at collabora.co.uk>
---
 src/rpi-renderer.c | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/src/rpi-renderer.c b/src/rpi-renderer.c
index 94d0424..b6cf125 100644
--- a/src/rpi-renderer.c
+++ b/src/rpi-renderer.c
@@ -1325,10 +1325,11 @@ output_compute_matrix(struct weston_output *base)
 {
 	struct rpir_output *output = to_rpir_output(base);
 	struct weston_matrix *matrix = &output->matrix;
+#ifdef SURFACE_TRANSFORM
 	const float half_w = 0.5f * base->width;
 	const float half_h = 0.5f * base->height;
+#endif
 	float mag;
-	float dx, dy;
 
 	weston_matrix_init(matrix);
 	weston_matrix_translate(matrix, -base->x, -base->y, 0.0f);
@@ -1370,13 +1371,10 @@ output_compute_matrix(struct weston_output *base)
 #endif
 
 	if (base->zoom.active) {
-		/* The base->zoom stuff is in GL coordinate system */
 		mag = 1.0f / (1.0f - base->zoom.spring_z.current);
-		dx = -(base->zoom.trans_x + 1.0f) * half_w;
-		dy = -(base->zoom.trans_y + 1.0f) * half_h;
-		weston_matrix_translate(matrix, dx, dy, 0.0f);
+		weston_matrix_translate(matrix, base->zoom.trans_x,
+					base->zoom.trans_y, 0.0f);
 		weston_matrix_scale(matrix, mag, mag, 1.0f);
-		weston_matrix_translate(matrix, half_w, half_h, 0.0f);
 	}
 }
 
-- 
2.0.5



More information about the wayland-devel mailing list