compositor: Store modes in physical units

We changed the protocol to always list modes in physical pixel
units (not scaled). And we removed the scaled mode flag. This
just updates the DRM and X11 compositors and the gl and pixman renderers
to handle this.
diff --git a/src/compositor-drm.c b/src/compositor-drm.c
index 4435162..4222e57 100644
--- a/src/compositor-drm.c
+++ b/src/compositor-drm.c
@@ -449,7 +449,6 @@
 	    buffer->width != output->base.current->width ||
 	    buffer->height != output->base.current->height ||
 	    output->base.transform != es->buffer_transform ||
-	    output->base.scale != es->buffer_scale ||
 	    es->transform.enabled)
 		return NULL;
 
@@ -1249,7 +1248,7 @@
 }
 
 static struct drm_mode *
-drm_output_add_mode(struct drm_output *output, drmModeModeInfo *info, int scale)
+drm_output_add_mode(struct drm_output *output, drmModeModeInfo *info)
 {
 	struct drm_mode *mode;
 	uint64_t refresh;
@@ -1258,15 +1257,9 @@
 	if (mode == NULL)
 		return NULL;
 
-	if (info->hdisplay % scale != 0 ||
-	    info->vdisplay % scale) {
-		weston_log("Mode %dx%d not multiple of scale %d\n", info->hdisplay, info->vdisplay, scale);
-		return NULL;
-	}
-
 	mode->base.flags = 0;
-	mode->base.width = info->hdisplay / scale;
-	mode->base.height = info->vdisplay / scale;
+	mode->base.width = info->hdisplay;
+	mode->base.height = info->vdisplay;
 
 	/* Calculate higher precision (mHz) refresh rate */
 	refresh = (info->clock * 1000000LL / info->htotal +
@@ -1282,9 +1275,6 @@
 	mode->base.refresh = refresh;
 	mode->mode_info = *info;
 
-	if (scale != 1)
-		mode->base.flags |= WL_OUTPUT_MODE_SCALED;
-
 	if (info->type & DRM_MODE_TYPE_PREFERRED)
 		mode->base.flags |= WL_OUTPUT_MODE_PREFERRED;
 
@@ -1446,8 +1436,8 @@
 	int i, flags;
 
 	output->surface = gbm_surface_create(ec->gbm,
-					     output->base.current->width * output->base.scale,
-					     output->base.current->height * output->base.scale,
+					     output->base.current->width,
+					     output->base.current->height,
 					     GBM_FORMAT_XRGB8888,
 					     GBM_BO_USE_SCANOUT |
 					     GBM_BO_USE_RENDERING);
@@ -1491,12 +1481,12 @@
 	/* FIXME error checking */
 
 	for (i = 0; i < ARRAY_LENGTH(output->dumb); i++) {
-		output->dumb[i] = drm_fb_create_dumb(c, w * output->base.scale, h * output->base.scale);
+		output->dumb[i] = drm_fb_create_dumb(c, w, h);
 		if (!output->dumb[i])
 			goto err;
 
 		output->image[i] =
-			pixman_image_create_bits(PIXMAN_x8r8g8b8, w * output->base.scale, h * output->base.scale,
+			pixman_image_create_bits(PIXMAN_x8r8g8b8, w, h,
 						 output->dumb[i]->map,
 						 output->dumb[i]->stride);
 		if (!output->image[i])
@@ -1507,7 +1497,7 @@
 		goto err;
 
 	pixman_region32_init_rect(&output->previous_damage,
-				  output->base.x, output->base.y, w, h);
+				  output->base.x, output->base.y, output->base.width, output->base.height);
 
 	return 0;
 
@@ -1839,8 +1829,7 @@
 	}
 
 	for (i = 0; i < connector->count_modes; i++) {
-		drm_mode = drm_output_add_mode(output, 
-					       &connector->modes[i], scale);
+		drm_mode = drm_output_add_mode(output, &connector->modes[i]);
 		if (!drm_mode)
 			goto err_free;
 	}
@@ -1858,8 +1847,8 @@
 
 	wl_list_for_each(drm_mode, &output->base.mode_list, base.link) {
 		if (config == OUTPUT_CONFIG_MODE &&
-		    width == drm_mode->base.width * scale &&
-		    height == drm_mode->base.height * scale)
+		    width == drm_mode->base.width &&
+		    height == drm_mode->base.height)
 			configured = drm_mode;
 		if (!memcmp(&crtc_mode, &drm_mode->mode_info, sizeof crtc_mode))
 			current = drm_mode;
@@ -1868,13 +1857,13 @@
 	}
 
 	if (config == OUTPUT_CONFIG_MODELINE) {
-		configured = drm_output_add_mode(output, &modeline, scale);
+		configured = drm_output_add_mode(output, &modeline);
 		if (!configured)
 			goto err_free;
 	}
 
 	if (current == NULL && crtc_mode.clock != 0) {
-		current = drm_output_add_mode(output, &crtc_mode, scale);
+		current = drm_output_add_mode(output, &crtc_mode);
 		if (!current)
 			goto err_free;
 	}