Skip to content

clutter/stage-cogl: Fix painting the redraw clip with the damage region

Jonas Dreßler requested to merge verdre/mutter:fix-painting-redraw-clip into master

The redraw clip that's painted together with the damage region has to be copied earlier than we do right now. That's because if PAINT_DAMAGE_REGION is enabled, buffer age is disabled and thus use_clipped_redraw is FALSE. That means the redraw_clip is updated and set to the full view-rect. If we copy the queued_redraw_clip after that, it's also going to be set to the full view-rect. So copy the redraw clip a bit earlier to make sure we're actually passing the real redraw clip to paint_damage_region().

Also keep the queued_redraw_clip around a bit longer so it can actually be used by paint_damage_region() and isn't freed before that.

While at it, move paint_damage_region() from swap_framebuffer() into clutter_stage_cogl_redraw_view() so we don't have to pass things to swap_framebuffer() only for debugging.

Fixes #1104 (closed)

Edited by Jonas Dreßler

Merge request reports