compositor: Store opaque clip for previous frame in weston_surface
diff --git a/src/compositor.h b/src/compositor.h
index 8c57e4f..9f29c4b 100644
--- a/src/compositor.h
+++ b/src/compositor.h
@@ -91,7 +91,8 @@
 	struct weston_mode *current;
 	struct wl_list mode_list;
 
-	void (*repaint)(struct weston_output *output);
+	void (*repaint)(struct weston_output *output,
+			pixman_region32_t *damage);
 	void (*destroy)(struct weston_output *output);
 	void (*assign_planes)(struct weston_output *output);
 
@@ -198,8 +199,8 @@
 	int idle_time;			/* effective timeout, s */
 
 	/* Repaint state. */
-	struct timespec previous_swap;
 	struct wl_array vertices, indices;
+	pixman_region32_t damage;
 
 	uint32_t focus;
 
@@ -260,6 +261,7 @@
 	struct wl_surface surface;
 	struct weston_compositor *compositor;
 	GLuint texture;
+	pixman_region32_t clip;
 	pixman_region32_t damage;
 	pixman_region32_t opaque;
 	pixman_region32_t input;
@@ -341,7 +343,8 @@
 weston_surface_activate(struct weston_surface *surface,
 			struct weston_input_device *device, uint32_t time);
 void
-weston_surface_draw(struct weston_surface *es, struct weston_output *output);
+weston_surface_draw(struct weston_surface *es,
+		    struct weston_output *output, pixman_region32_t *damage);
 
 void
 notify_motion(struct wl_input_device *device,