damage_ring: Remove wlr_damage_ring_set_bounds

This wasn't that great:
1. Now that damage ring tracks damage across actual wlr_buffer objects,
   it can use the buffer size to do any sort of cropping that needs to
   happen.
2. The damage ring size really should be the size of the transformed
   size of the output. Compositors currently have to call
   `wlr_damage_ring_set_bounds()` where it might not be clear when to
   call the function. Compositors can just check against the actual
   output bounds that they care about when processing the damage.

Fixes: #3891
This commit is contained in:
Alexander Orzechowski 2024-08-26 18:50:14 -04:00 committed by Kirill Primak
parent 6202580b7b
commit 79e063035c
3 changed files with 1 additions and 41 deletions

View file

@ -1518,10 +1518,6 @@ static void scene_node_output_update(struct wlr_scene_node *node,
static void scene_output_update_geometry(struct wlr_scene_output *scene_output,
bool force_update) {
int ring_width, ring_height;
wlr_output_transformed_resolution(scene_output->output, &ring_width, &ring_height);
wlr_damage_ring_set_bounds(&scene_output->damage_ring, ring_width, ring_height);
scene_output_damage_whole(scene_output);
scene_node_output_update(&scene_output->scene->tree.node,
@ -2021,9 +2017,6 @@ bool wlr_scene_output_build_state(struct wlr_scene_output *scene_output,
struct render_list_entry *list_data = list_con.render_list->data;
int list_len = list_con.render_list->size / sizeof(*list_data);
wlr_damage_ring_set_bounds(&scene_output->damage_ring,
render_data.trans_width, render_data.trans_height);
if (debug_damage == WLR_SCENE_DEBUG_DAMAGE_RERENDER) {
scene_output_damage_whole(scene_output);
}