wlr_damage_ring_set_bounds: Ignore duplicate size requests

This commit is contained in:
Alexander Orzechowski 2023-06-13 20:58:26 -04:00 committed by Simon Ser
parent 3896b6b107
commit 4391845910
2 changed files with 10 additions and 5 deletions

View file

@ -1218,6 +1218,7 @@ static void scene_output_update_geometry(struct wlr_scene_output *scene_output)
int width, height; int width, height;
wlr_output_transformed_resolution(scene_output->output, &width, &height); wlr_output_transformed_resolution(scene_output->output, &width, &height);
wlr_damage_ring_set_bounds(&scene_output->damage_ring, width, height); wlr_damage_ring_set_bounds(&scene_output->damage_ring, width, height);
wlr_damage_ring_add_whole(&scene_output->damage_ring);
wlr_output_schedule_frame(scene_output->output); wlr_output_schedule_frame(scene_output->output);
scene_node_output_update(&scene_output->scene->tree.node, scene_node_output_update(&scene_output->scene->tree.node,

View file

@ -29,12 +29,16 @@ void wlr_damage_ring_finish(struct wlr_damage_ring *ring) {
void wlr_damage_ring_set_bounds(struct wlr_damage_ring *ring, void wlr_damage_ring_set_bounds(struct wlr_damage_ring *ring,
int32_t width, int32_t height) { int32_t width, int32_t height) {
if (width == 0 || height == 0) { if (width == 0 || height == 0) {
ring->width = INT_MAX; width = INT_MAX;
ring->height = INT_MAX; height = INT_MAX;
} else {
ring->width = width;
ring->height = height;
} }
if (ring->width == width && ring->height == height) {
return;
}
ring->width = width;
ring->height = height;
wlr_damage_ring_add_whole(ring); wlr_damage_ring_add_whole(ring);
} }