Add frame_counter to weston_animation.

This commit is contained in:
Scott Moreau 2012-06-08 19:40:54 -06:00 committed by Kristian Høgsberg
parent 9d1b1125fd
commit d64cf21246
3 changed files with 9 additions and 2 deletions

View File

@ -1060,8 +1060,10 @@ weston_output_repaint(struct weston_output *output, int msecs)
wl_resource_destroy(&cb->resource);
}
wl_list_for_each_safe(animation, next, &output->animation_list, link)
wl_list_for_each_safe(animation, next, &output->animation_list, link) {
animation->frame(animation, output, msecs);
animation->frame_counter++;
}
}
static int
@ -1170,9 +1172,11 @@ weston_compositor_fade(struct weston_compositor *compositor, float tint)
}
weston_surface_damage(compositor->fade.surface);
if (wl_list_empty(&compositor->fade.animation.link))
if (wl_list_empty(&compositor->fade.animation.link)) {
compositor->fade.animation.frame_counter = 0;
wl_list_insert(output->animation_list.prev,
&compositor->fade.animation.link);
}
}
static void

View File

@ -231,6 +231,7 @@ struct weston_shader {
struct weston_animation {
void (*frame)(struct weston_animation *animation,
struct weston_output *output, uint32_t msecs);
int frame_counter;
struct wl_list link;
};

View File

@ -180,6 +180,7 @@ weston_zoom_run(struct weston_surface *surface, GLfloat start, GLfloat stop,
&zoom->transform.link);
weston_spring_init(&zoom->spring, 200.0, 0.0, 1.0);
zoom->spring.friction = 700;
zoom->animation.frame_counter = 0;
zoom->spring.timestamp = weston_compositor_get_time();
zoom->animation.frame = weston_zoom_frame;
weston_zoom_frame(&zoom->animation, NULL, zoom->spring.timestamp);
@ -502,6 +503,7 @@ weston_fade_run(struct weston_surface *surface,
fade->data = data;
weston_spring_init(&fade->spring, 200.0, 0, 1.0);
fade->spring.friction = 700;
fade->animation.frame_counter = 0;
fade->spring.timestamp = weston_compositor_get_time();
fade->animation.frame = weston_fade_frame;
weston_fade_frame(&fade->animation, NULL, fade->spring.timestamp);