Add frame_counter to weston_animation.
This commit is contained in:
committed by
Kristian Høgsberg
parent
9d1b1125fd
commit
d64cf21246
+6
-2
@@ -1060,8 +1060,10 @@ weston_output_repaint(struct weston_output *output, int msecs)
|
|||||||
wl_resource_destroy(&cb->resource);
|
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(animation, output, msecs);
|
||||||
|
animation->frame_counter++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
@@ -1170,9 +1172,11 @@ weston_compositor_fade(struct weston_compositor *compositor, float tint)
|
|||||||
}
|
}
|
||||||
|
|
||||||
weston_surface_damage(compositor->fade.surface);
|
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,
|
wl_list_insert(output->animation_list.prev,
|
||||||
&compositor->fade.animation.link);
|
&compositor->fade.animation.link);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|||||||
@@ -231,6 +231,7 @@ struct weston_shader {
|
|||||||
struct weston_animation {
|
struct weston_animation {
|
||||||
void (*frame)(struct weston_animation *animation,
|
void (*frame)(struct weston_animation *animation,
|
||||||
struct weston_output *output, uint32_t msecs);
|
struct weston_output *output, uint32_t msecs);
|
||||||
|
int frame_counter;
|
||||||
struct wl_list link;
|
struct wl_list link;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -180,6 +180,7 @@ weston_zoom_run(struct weston_surface *surface, GLfloat start, GLfloat stop,
|
|||||||
&zoom->transform.link);
|
&zoom->transform.link);
|
||||||
weston_spring_init(&zoom->spring, 200.0, 0.0, 1.0);
|
weston_spring_init(&zoom->spring, 200.0, 0.0, 1.0);
|
||||||
zoom->spring.friction = 700;
|
zoom->spring.friction = 700;
|
||||||
|
zoom->animation.frame_counter = 0;
|
||||||
zoom->spring.timestamp = weston_compositor_get_time();
|
zoom->spring.timestamp = weston_compositor_get_time();
|
||||||
zoom->animation.frame = weston_zoom_frame;
|
zoom->animation.frame = weston_zoom_frame;
|
||||||
weston_zoom_frame(&zoom->animation, NULL, zoom->spring.timestamp);
|
weston_zoom_frame(&zoom->animation, NULL, zoom->spring.timestamp);
|
||||||
@@ -502,6 +503,7 @@ weston_fade_run(struct weston_surface *surface,
|
|||||||
fade->data = data;
|
fade->data = data;
|
||||||
weston_spring_init(&fade->spring, 200.0, 0, 1.0);
|
weston_spring_init(&fade->spring, 200.0, 0, 1.0);
|
||||||
fade->spring.friction = 700;
|
fade->spring.friction = 700;
|
||||||
|
fade->animation.frame_counter = 0;
|
||||||
fade->spring.timestamp = weston_compositor_get_time();
|
fade->spring.timestamp = weston_compositor_get_time();
|
||||||
fade->animation.frame = weston_fade_frame;
|
fade->animation.frame = weston_fade_frame;
|
||||||
weston_fade_frame(&fade->animation, NULL, fade->spring.timestamp);
|
weston_fade_frame(&fade->animation, NULL, fade->spring.timestamp);
|
||||||
|
|||||||
Reference in New Issue
Block a user