Implement animated transitions for zoom in/out.
diff --git a/src/compositor.h b/src/compositor.h
index e8e8ecf..4d0c939 100644
--- a/src/compositor.h
+++ b/src/compositor.h
@@ -94,16 +94,37 @@
 	int32_t left, right, top, bottom;
 };
 
+struct weston_animation {
+	void (*frame)(struct weston_animation *animation,
+		      struct weston_output *output, uint32_t msecs);
+	int frame_counter;
+	struct wl_list link;
+};
+
+struct weston_spring {
+	double k;
+	double friction;
+	double current;
+	double target;
+	double previous;
+	uint32_t timestamp;
+};
+
 enum {
-	ZOOM_POINTER,
-	ZOOM_TEXT_CURSOR
+	ZOOM_FOCUS_POINTER,
+	ZOOM_FOCUS_TEXT
 };
 
 struct weston_output_zoom {
 	int active;
+	uint32_t type;
 	float increment;
 	float level;
+	float max_level;
+	wl_fixed_t fx, fy;
 	float trans_x, trans_y;
+	struct weston_animation animation_z;
+	struct weston_spring spring_z;
 };
 
 /* bit compatible with drm definitions. */
@@ -228,22 +249,6 @@
 	GLint opaque_uniform;
 };
 
-struct weston_animation {
-	void (*frame)(struct weston_animation *animation,
-		      struct weston_output *output, uint32_t msecs);
-	int frame_counter;
-	struct wl_list link;
-};
-
-struct weston_spring {
-	double k;
-	double friction;
-	double current;
-	double target;
-	double previous;
-	uint32_t timestamp;
-};
-
 enum {
 	WESTON_COMPOSITOR_ACTIVE,
 	WESTON_COMPOSITOR_IDLE,		/* shell->unlock called on activity */