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 */