protocol: rename wl_surface_scaler to wl_viewport

This seems like a better name, and will not conflict if someone later
extends wl_surface with a request scaler_set (yeah, unlikely).

This code was written by Jonny Lamb, I just diffed his branches and made
a patch for Weston.

Cc: Jonny Lamb <jonny.lamb@collabora.co.uk>
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
diff --git a/src/compositor.c b/src/compositor.c
index 329ee49..8bb381d 100644
--- a/src/compositor.c
+++ b/src/compositor.c
@@ -483,12 +483,12 @@
 
 	surface->buffer_viewport.transform = WL_OUTPUT_TRANSFORM_NORMAL;
 	surface->buffer_viewport.scale = 1;
-	surface->buffer_viewport.scaler_set = 0;
+	surface->buffer_viewport.viewport_set = 0;
 	surface->pending.buffer_viewport = surface->buffer_viewport;
 	surface->output = NULL;
 	surface->pending.newly_attached = 0;
 
-	surface->surface_scaler_resource = NULL;
+	surface->viewport_resource = NULL;
 
 	pixman_region32_init(&surface->damage);
 	pixman_region32_init(&surface->opaque);
@@ -720,7 +720,7 @@
 scaler_surface_to_buffer(struct weston_surface *surface,
 			 float sx, float sy, float *bx, float *by)
 {
-	if (surface->buffer_viewport.scaler_set) {
+	if (surface->buffer_viewport.viewport_set) {
 		double a, b;
 
 		a = sx / surface->buffer_viewport.dst_width;
@@ -1295,7 +1295,7 @@
 		return;
 	}
 
-	if (surface->buffer_viewport.scaler_set) {
+	if (surface->buffer_viewport.viewport_set) {
 		surface->width = surface->buffer_viewport.dst_width;
 		surface->height = surface->buffer_viewport.dst_height;
 		return;
@@ -2103,7 +2103,7 @@
 
 	/* wl_surface.set_buffer_transform */
 	/* wl_surface.set_buffer_scale */
-	/* wl_surface_scaler.set */
+	/* wl_viewport.set */
 	surface->buffer_viewport = surface->pending.buffer_viewport;
 
 	/* wl_surface.attach */
@@ -2329,7 +2329,7 @@
 
 	/* wl_surface.set_buffer_transform */
 	/* wl_surface.set_buffer_scale */
-	/* wl_surface_scaler.set */
+	/* wl_viewport.set */
 	surface->buffer_viewport = sub->cached.buffer_viewport;
 
 	/* wl_surface.attach */
@@ -3454,41 +3454,41 @@
 }
 
 static void
-destroy_surface_scaler(struct wl_resource *resource)
+destroy_viewport(struct wl_resource *resource)
 {
 	struct weston_surface *surface =
 		wl_resource_get_user_data(resource);
 
-	surface->surface_scaler_resource = NULL;
-	surface->pending.buffer_viewport.scaler_set = 0;
+	surface->viewport_resource = NULL;
+	surface->pending.buffer_viewport.viewport_set = 0;
 }
 
 static void
-surface_scaler_destroy(struct wl_client *client,
-		       struct wl_resource *resource)
+viewport_destroy(struct wl_client *client,
+		 struct wl_resource *resource)
 {
 	wl_resource_destroy(resource);
 }
 
 static void
-surface_scaler_set(struct wl_client *client,
-		   struct wl_resource *resource,
-		   wl_fixed_t src_x,
-		   wl_fixed_t src_y,
-		   wl_fixed_t src_width,
-		   wl_fixed_t src_height,
-		   int32_t dst_width,
-		   int32_t dst_height)
+viewport_set(struct wl_client *client,
+	     struct wl_resource *resource,
+	     wl_fixed_t src_x,
+	     wl_fixed_t src_y,
+	     wl_fixed_t src_width,
+	     wl_fixed_t src_height,
+	     int32_t dst_width,
+	     int32_t dst_height)
 {
 	struct weston_surface *surface =
 		wl_resource_get_user_data(resource);
 
-	assert(surface->surface_scaler_resource != NULL);
+	assert(surface->viewport_resource != NULL);
 
 	if (wl_fixed_to_double(src_width) < 0 ||
 	    wl_fixed_to_double(src_height) < 0) {
 		wl_resource_post_error(resource,
-			WL_SURFACE_SCALER_ERROR_BAD_VALUE,
+			WL_VIEWPORT_ERROR_BAD_VALUE,
 			"source dimensions must be non-negative (%fx%f)",
 			wl_fixed_to_double(src_width),
 			wl_fixed_to_double(src_height));
@@ -3497,13 +3497,13 @@
 
 	if (dst_width <= 0 || dst_height <= 0) {
 		wl_resource_post_error(resource,
-			WL_SURFACE_SCALER_ERROR_BAD_VALUE,
+			WL_VIEWPORT_ERROR_BAD_VALUE,
 			"destination dimensions must be positive (%dx%d)",
 			dst_width, dst_height);
 		return;
 	}
 
-	surface->pending.buffer_viewport.scaler_set = 1;
+	surface->pending.buffer_viewport.viewport_set = 1;
 
 	surface->pending.buffer_viewport.src_x = src_x;
 	surface->pending.buffer_viewport.src_y = src_y;
@@ -3513,9 +3513,9 @@
 	surface->pending.buffer_viewport.dst_height = dst_height;
 }
 
-static const struct wl_surface_scaler_interface surface_scaler_interface = {
-	surface_scaler_destroy,
-	surface_scaler_set
+static const struct wl_viewport_interface viewport_interface = {
+	viewport_destroy,
+	viewport_set
 };
 
 static void
@@ -3526,37 +3526,37 @@
 }
 
 static void
-scaler_get_surface_scaler(struct wl_client *client,
-			  struct wl_resource *scaler,
-			  uint32_t id,
-			  struct wl_resource *surface_resource)
+scaler_get_viewport(struct wl_client *client,
+		    struct wl_resource *scaler,
+		    uint32_t id,
+		    struct wl_resource *surface_resource)
 {
 	struct weston_surface *surface = wl_resource_get_user_data(surface_resource);
 	struct wl_resource *resource;
 
-	if (surface->surface_scaler_resource) {
+	if (surface->viewport_resource) {
 		wl_resource_post_error(scaler,
-			WL_SCALER_ERROR_SCALER_EXISTS,
-			"a surface scaler for that surface already exists");
+			WL_SCALER_ERROR_VIEWPORT_EXISTS,
+			"a viewport for that surface already exists");
 		return;
 	}
 
-	resource = wl_resource_create(client, &wl_surface_scaler_interface,
+	resource = wl_resource_create(client, &wl_viewport_interface,
 				      1, id);
 	if (resource == NULL) {
 		wl_client_post_no_memory(client);
 		return;
 	}
 
-	wl_resource_set_implementation(resource, &surface_scaler_interface,
-				       surface, destroy_surface_scaler);
+	wl_resource_set_implementation(resource, &viewport_interface,
+				       surface, destroy_viewport);
 
-	surface->surface_scaler_resource = resource;
+	surface->viewport_resource = resource;
 }
 
 static const struct wl_scaler_interface scaler_interface = {
 	scaler_destroy,
-	scaler_get_surface_scaler
+	scaler_get_viewport
 };
 
 static void
diff --git a/src/compositor.h b/src/compositor.h
index 9da1e3c..22a485f 100644
--- a/src/compositor.h
+++ b/src/compositor.h
@@ -660,10 +660,10 @@
 	/* wl_surface.set_scaling_factor */
 	int32_t scale;
 
-	/* bool for whether wl_surface_scaler.set has been
+	/* bool for whether wl_viewport.set has been
 	 * called yet (before this is called there is no
 	 * cropping or scaling on the surface) */
-	int scaler_set; /* bool */
+	int viewport_set; /* bool */
 
 	wl_fixed_t src_x, src_y;
 	wl_fixed_t src_width, src_height;
@@ -861,8 +861,8 @@
 	struct weston_buffer_viewport buffer_viewport;
 	int keep_buffer; /* bool for backends to prevent early release */
 
-	/* wl_surface_scaler resource for this surface */
-	struct wl_resource *surface_scaler_resource;
+	/* wl_viewport resource for this surface */
+	struct wl_resource *viewport_resource;
 
 	/* All the pending state, that wl_surface.commit will apply. */
 	struct {
@@ -887,7 +887,7 @@
 
 		/* wl_surface.set_buffer_transform */
 		/* wl_surface.set_scaling_factor */
-		/* wl_surface_scaler.set */
+		/* wl_viewport.set */
 		struct weston_buffer_viewport buffer_viewport;
 	} pending;
 
diff --git a/src/pixman-renderer.c b/src/pixman-renderer.c
index 129affc..26f6f27 100644
--- a/src/pixman-renderer.c
+++ b/src/pixman-renderer.c
@@ -257,23 +257,23 @@
 					   pixman_double_to_fixed ((double)-ev->geometry.y));
 	}
 
-	if (ev->surface->buffer_viewport.scaler_set) {
-		double scaler_x, scaler_y, scaler_width, scaler_height;
+	if (ev->surface->buffer_viewport.viewport_set) {
+		double viewport_x, viewport_y, viewport_width, viewport_height;
 		double ratio_x, ratio_y;
 
-		scaler_x = wl_fixed_to_double(ev->surface->buffer_viewport.src_x);
-		scaler_y = wl_fixed_to_double(ev->surface->buffer_viewport.src_y);
-		scaler_width = wl_fixed_to_double(ev->surface->buffer_viewport.src_width);
-		scaler_height = wl_fixed_to_double(ev->surface->buffer_viewport.src_height);
+		viewport_x = wl_fixed_to_double(ev->surface->buffer_viewport.src_x);
+		viewport_y = wl_fixed_to_double(ev->surface->buffer_viewport.src_y);
+		viewport_width = wl_fixed_to_double(ev->surface->buffer_viewport.src_width);
+		viewport_height = wl_fixed_to_double(ev->surface->buffer_viewport.src_height);
 
-		ratio_x = scaler_width / ev->surface->buffer_viewport.dst_width;
-		ratio_y = scaler_height / ev->surface->buffer_viewport.dst_height;
+		ratio_x = viewport_width / ev->surface->buffer_viewport.dst_width;
+		ratio_y = viewport_height / ev->surface->buffer_viewport.dst_height;
 
 		pixman_transform_scale(&transform, NULL,
 				       pixman_double_to_fixed(ratio_x),
 				       pixman_double_to_fixed(ratio_y));
-		pixman_transform_translate(&transform, NULL, pixman_double_to_fixed(scaler_x),
-							     pixman_double_to_fixed(scaler_y));
+		pixman_transform_translate(&transform, NULL, pixman_double_to_fixed(viewport_x),
+							     pixman_double_to_fixed(viewport_y));
 	}
 
 	pixman_transform_scale(&transform, NULL,