gl-renderer: Don't change the region supplied to output repaint

The core uses this region to clear from the primary plane damage the
area that was repainted. If we add the old buffer damage to that, it
may end up clearing more damage from the primary plane than it was
intended.
This commit is contained in:
Ander Conselvan de Oliveira 2013-03-05 17:30:28 +02:00 committed by Kristian Høgsberg
parent 8ad1982854
commit b605c06e2a

View File

@ -957,6 +957,7 @@ gl_renderer_repaint_output(struct weston_output *output,
EGLBoolean ret;
static int errored;
int32_t width, height, i;
pixman_region32_t total_damage;
width = output->current->width +
output->border.left + output->border.right;
@ -987,10 +988,13 @@ gl_renderer_repaint_output(struct weston_output *output,
&go->buffer_damage[i],
output_damage);
pixman_region32_union(output_damage, output_damage,
&go->buffer_damage[go->current_buffer]);
pixman_region32_init(&total_damage);
pixman_region32_copy(&total_damage,
&go->buffer_damage[go->current_buffer]);
repaint_surfaces(output, output_damage);
repaint_surfaces(output, &total_damage);
pixman_region32_fini(&total_damage);
if (gr->border.texture)
draw_border(output);