compositor: Combine repaint and weston_output_repaint
Fewer repaint functions is better.
This commit is contained in:
parent
a82c4860a1
commit
30c018be3a
@ -766,11 +766,18 @@ out:
|
||||
pixman_region32_fini(&cursor_region);
|
||||
}
|
||||
|
||||
struct weston_frame_callback {
|
||||
struct wl_resource resource;
|
||||
struct wl_list link;
|
||||
};
|
||||
|
||||
static void
|
||||
weston_output_repaint(struct weston_output *output)
|
||||
weston_output_repaint(struct weston_output *output, int msecs)
|
||||
{
|
||||
struct weston_compositor *ec = output->compositor;
|
||||
struct weston_surface *es, solid;
|
||||
struct weston_animation *animation, *next;
|
||||
struct weston_frame_callback *cb, *cnext;
|
||||
pixman_region32_t opaque, new_damage, total_damage,
|
||||
overlap, surface_overlap;
|
||||
|
||||
@ -824,21 +831,7 @@ weston_output_repaint(struct weston_output *output)
|
||||
solid_surface_release(&solid);
|
||||
|
||||
pixman_region32_fini(&total_damage);
|
||||
}
|
||||
|
||||
struct weston_frame_callback {
|
||||
struct wl_resource resource;
|
||||
struct wl_list link;
|
||||
};
|
||||
|
||||
static void
|
||||
repaint(struct weston_output *output, int msecs)
|
||||
{
|
||||
struct weston_compositor *compositor = output->compositor;
|
||||
struct weston_animation *animation, *next;
|
||||
struct weston_frame_callback *cb, *cnext;
|
||||
|
||||
weston_output_repaint(output);
|
||||
output->repaint_needed = 0;
|
||||
output->repaint_scheduled = 1;
|
||||
|
||||
@ -847,8 +840,7 @@ repaint(struct weston_output *output, int msecs)
|
||||
wl_resource_destroy(&cb->resource, 0);
|
||||
}
|
||||
|
||||
wl_list_for_each_safe(animation, next,
|
||||
&compositor->animation_list, link)
|
||||
wl_list_for_each_safe(animation, next, &ec->animation_list, link)
|
||||
animation->frame(animation, output, msecs);
|
||||
}
|
||||
|
||||
@ -859,14 +851,14 @@ idle_repaint(void *data)
|
||||
|
||||
/* An idle repaint may have been cancelled by vt switching away. */
|
||||
if (output->repaint_needed)
|
||||
repaint(output, weston_compositor_get_time());
|
||||
weston_output_repaint(output, weston_compositor_get_time());
|
||||
}
|
||||
|
||||
WL_EXPORT void
|
||||
weston_output_finish_frame(struct weston_output *output, int msecs)
|
||||
{
|
||||
if (output->repaint_needed)
|
||||
repaint(output, msecs);
|
||||
weston_output_repaint(output, msecs);
|
||||
else
|
||||
output->repaint_scheduled = 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user