{
struct android_output *output = to_android_output(base);
struct android_compositor *compositor = output->compositor;
+ struct weston_plane *primary_plane = &compositor->base.primary_plane;
struct wl_event_loop *loop;
compositor->base.renderer->repaint_output(&output->base, damage);
+ pixman_region32_subtract(&primary_plane->damage,
+ &primary_plane->damage, damage);
+
/* FIXME: does Android have a way to signal page flip done? */
loop = wl_display_get_event_loop(compositor->base.wl_display);
wl_event_loop_add_idle(loop, android_finish_frame, output);
ec->renderer->repaint_output(&output->base, damage);
+ pixman_region32_subtract(&ec->primary_plane.damage,
+ &ec->primary_plane.damage, damage);
+
bo = gbm_surface_lock_front_buffer(output->surface);
if (!bo) {
weston_log("failed to lock front buffer: %m\n");
wl_callback_add_listener(callback, &frame_listener, output);
ec->renderer->repaint_output(&output->base, damage);
+
+ pixman_region32_subtract(&ec->primary_plane.damage,
+ &ec->primary_plane.damage, damage);
+
}
static void
ec->renderer->repaint_output(output_base, damage);
+ pixman_region32_subtract(&ec->primary_plane.damage,
+ &ec->primary_plane.damage, damage);
+
wl_event_source_timer_update(output->finish_frame_timer, 10);
}
pixman_region32_init(&output_damage);
pixman_region32_intersect(&output_damage,
&ec->primary_plane.damage, &output->region);
- pixman_region32_subtract(&ec->primary_plane.damage,
- &ec->primary_plane.damage, &output->region);
if (output->dirty)
weston_output_update_matrix(output);