output: fix damage tracking debug mode

We want to damage the whole output in this mode. However if we overwrite
the damaged region after it's useless.

See
8b1220f5a3 (diff-95fe5e5b411cc64a5dc31e2b72669a0d)
This commit is contained in:
Jente Hidskes 2019-05-03 21:07:40 +02:00
parent f23257d170
commit 5af455a905
No known key found for this signature in database
GPG key ID: 04BE5A29F32D91EA

View file

@ -258,20 +258,20 @@ handle_output_damage_frame(struct wl_listener *listener, void *data)
int output_width, output_height;
wlr_output_transformed_resolution(output->wlr_output, &output_width, &output_height);
pixman_region32_t output_damage;
pixman_region32_init(&output_damage);
pixman_region32_t frame_damage;
pixman_region32_init(&frame_damage);
enum wl_output_transform transform = wlr_output_transform_invert(output->wlr_output->transform);
wlr_region_transform(&frame_damage, &output->damage->current, transform, output_width, output_height);
#ifdef DEBUG
if (output->server->debug_damage_tracking) {
pixman_region32_union_rect(&output_damage, &output_damage, 0, 0, output_width, output_height);
pixman_region32_union_rect(&frame_damage, &frame_damage, 0, 0, output_width, output_height);
}
#endif
enum wl_output_transform transform = wlr_output_transform_invert(output->wlr_output->transform);
wlr_region_transform(&output_damage, &output->damage->current, transform, output_width, output_height);
wlr_output_set_damage(output->wlr_output, &output_damage);
pixman_region32_fini(&output_damage);
wlr_output_set_damage(output->wlr_output, &frame_damage);
pixman_region32_fini(&frame_damage);
if (!wlr_output_commit(output->wlr_output)) {
wlr_log(WLR_ERROR, "Could not commit output");