screenshooter: Move buffer assembly to client side
diff --git a/src/screenshooter.c b/src/screenshooter.c
index 7ba475d..90dd497 100644
--- a/src/screenshooter.c
+++ b/src/screenshooter.c
@@ -43,16 +43,15 @@
 };
 
 static void
-copy_bgra_yflip(uint8_t *dst, uint8_t *src, int height,
-		int dst_stride, int src_stride)
+copy_bgra_yflip(uint8_t *dst, uint8_t *src, int height, int stride)
 {
 	uint8_t *end;
 
-	end = dst + height * dst_stride;
+	end = dst + height * stride;
 	while (dst < end) {
-		memcpy(dst, src, src_stride);
-		dst += dst_stride;
-		src -= src_stride;
+		memcpy(dst, src, stride);
+		dst += stride;
+		src -= stride;
 	}
 }
 
@@ -74,16 +73,15 @@
 }
 
 static void
-copy_rgba_yflip(uint8_t *dst, uint8_t *src, int height,
-		int dst_stride, int src_stride)
+copy_rgba_yflip(uint8_t *dst, uint8_t *src, int height, int stride)
 {
 	uint8_t *end;
 
-	end = dst + height * dst_stride;
+	end = dst + height * stride;
 	while (dst < end) {
-		copy_row_swap_RB(dst, src, src_stride);
-		dst += dst_stride;
-		src -= src_stride;
+		copy_row_swap_RB(dst, src, stride);
+		dst += stride;
+		src -= stride;
 	}
 }
 
@@ -93,24 +91,20 @@
 {
 	struct screenshooter_read_pixels *r =
 		(struct screenshooter_read_pixels *) base;
-	int32_t buffer_stride, output_stride;
+	int32_t stride;
 	uint8_t *d, *s;
 
-	buffer_stride = wl_shm_buffer_get_stride(r->buffer);
-	output_stride = output->current->width * 4;
+	stride = wl_shm_buffer_get_stride(r->buffer);
 
-	d = wl_shm_buffer_get_data(r->buffer) +
-		output->y * buffer_stride + output->x * 4;
-	s = r->base.data + output_stride * (output->current->height - 1);
+	d = wl_shm_buffer_get_data(r->buffer);
+	s = r->base.data + stride * (r->buffer->height - 1);
 
 	switch (output->compositor->read_format) {
 	case GL_BGRA_EXT:
-		copy_bgra_yflip(d, s, output->current->height,
-				buffer_stride, output_stride);
+		copy_bgra_yflip(d, s, output->current->height, stride);
 		break;
 	case GL_RGBA:
-		copy_rgba_yflip(d, s, output->current->height,
-				buffer_stride, output_stride);
+		copy_rgba_yflip(d, s, output->current->height, stride);
 		break;
 	default:
 		break;