Swap buffers with damage

This commit is contained in:
emersion 2018-02-09 22:54:14 +01:00
parent 34489dca16
commit bf6d245400
No known key found for this signature in database
GPG key ID: 0FDE7BE0E88F5E48
11 changed files with 80 additions and 33 deletions

View file

@ -507,8 +507,14 @@ bool wlr_output_swap_buffers(struct wlr_output *output, struct timespec *when,
}
}
// TODO: provide `damage` (not `render_damage`) to backend
if (!output->impl->swap_buffers(output)) {
// Transform damage into renderer coordinates, ie. upside down
enum wl_output_transform transform = wlr_output_transform_compose(
wlr_output_transform_invert(output->transform),
WL_OUTPUT_TRANSFORM_FLIPPED_180);
wlr_region_transform(&render_damage, &render_damage, transform, width,
height);
if (!output->impl->swap_buffers(output, damage ? &render_damage : NULL)) {
return false;
}