mirror of
				https://gitlab.freedesktop.org/wlroots/wlroots.git
				synced 2025-11-03 09:01:40 -05:00 
			
		
		
		
	wlr_scene: Reset damage ring bounds every frame
This fixes damage issues when a output state attempts to change the transformed size in some way
This commit is contained in:
		
							parent
							
								
									4391845910
								
							
						
					
					
						commit
						96b95bf775
					
				
					 1 changed files with 3 additions and 3 deletions
				
			
		| 
						 | 
					@ -1215,9 +1215,6 @@ static void scene_node_output_update(struct wlr_scene_node *node,
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void scene_output_update_geometry(struct wlr_scene_output *scene_output) {
 | 
					static void scene_output_update_geometry(struct wlr_scene_output *scene_output) {
 | 
				
			||||||
	int 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_add_whole(&scene_output->damage_ring);
 | 
						wlr_damage_ring_add_whole(&scene_output->damage_ring);
 | 
				
			||||||
	wlr_output_schedule_frame(scene_output->output);
 | 
						wlr_output_schedule_frame(scene_output->output);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1703,6 +1700,9 @@ bool wlr_scene_output_build_state(struct wlr_scene_output *scene_output,
 | 
				
			||||||
		pixman_region32_fini(&acc_damage);
 | 
							pixman_region32_fini(&acc_damage);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						wlr_damage_ring_set_bounds(&scene_output->damage_ring,
 | 
				
			||||||
 | 
							render_data.trans_width, render_data.trans_height);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (!wlr_output_configure_primary_swapchain(output, state, &output->swapchain)) {
 | 
						if (!wlr_output_configure_primary_swapchain(output, state, &output->swapchain)) {
 | 
				
			||||||
		return false;
 | 
							return false;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue