| 
						
						
							
								
							
						
						
					 | 
					 | 
					@ -555,8 +555,7 @@ texture_transformed_surface(struct weston_surface *es) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					} | 
					 | 
					 | 
					 | 
					} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					static void | 
					 | 
					 | 
					 | 
					static void | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					weston_surface_draw(struct weston_surface *es, | 
					 | 
					 | 
					 | 
					weston_surface_draw(struct weston_surface *es, struct weston_output *output) | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							  struct weston_output *output, pixman_region32_t *clip) | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					{ | 
					 | 
					 | 
					 | 
					{ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						struct weston_compositor *ec = es->compositor; | 
					 | 
					 | 
					 | 
						struct weston_compositor *ec = es->compositor; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						GLfloat *v; | 
					 | 
					 | 
					 | 
						GLfloat *v; | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -566,7 +565,9 @@ weston_surface_draw(struct weston_surface *es, | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						pixman_region32_init_rect(&repaint, | 
					 | 
					 | 
					 | 
						pixman_region32_init_rect(&repaint, | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
									  es->x, es->y, es->width, es->height); | 
					 | 
					 | 
					 | 
									  es->x, es->y, es->width, es->height); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						pixman_region32_intersect(&repaint, &repaint, clip); | 
					 | 
					 | 
					 | 
						pixman_region32_intersect(&repaint, &repaint, &output->region); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						pixman_region32_intersect(&repaint, &repaint, &es->damage); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						if (!pixman_region32_not_empty(&repaint)) | 
					 | 
					 | 
					 | 
						if (!pixman_region32_not_empty(&repaint)) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							return; | 
					 | 
					 | 
					 | 
							return; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -699,6 +700,8 @@ fade_output(struct weston_output *output, | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						surface.texture = GL_NONE; | 
					 | 
					 | 
					 | 
						surface.texture = GL_NONE; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						surface.transform = NULL; | 
					 | 
					 | 
					 | 
						surface.transform = NULL; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						surface.alpha = compositor->current_alpha; | 
					 | 
					 | 
					 | 
						surface.alpha = compositor->current_alpha; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						pixman_region32_init(&surface.damage); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						pixman_region32_copy(&surface.damage, region); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						if (tint <= 1.0) | 
					 | 
					 | 
					 | 
						if (tint <= 1.0) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							surface.visual = WESTON_ARGB_VISUAL; | 
					 | 
					 | 
					 | 
							surface.visual = WESTON_ARGB_VISUAL; | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -709,7 +712,9 @@ fade_output(struct weston_output *output, | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						glUniformMatrix4fv(compositor->solid_shader.proj_uniform, | 
					 | 
					 | 
					 | 
						glUniformMatrix4fv(compositor->solid_shader.proj_uniform, | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								   1, GL_FALSE, output->matrix.d); | 
					 | 
					 | 
					 | 
								   1, GL_FALSE, output->matrix.d); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						glUniform4fv(compositor->solid_shader.color_uniform, 1, color); | 
					 | 
					 | 
					 | 
						glUniform4fv(compositor->solid_shader.color_uniform, 1, color); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						weston_surface_draw(&surface, output, region); | 
					 | 
					 | 
					 | 
						weston_surface_draw(&surface, output); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						pixman_region32_fini(&surface.damage); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					} | 
					 | 
					 | 
					 | 
					} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					static void | 
					 | 
					 | 
					 | 
					static void | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -784,7 +789,7 @@ weston_output_repaint(struct weston_output *output) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					{ | 
					 | 
					 | 
					 | 
					{ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						struct weston_compositor *ec = output->compositor; | 
					 | 
					 | 
					 | 
						struct weston_compositor *ec = output->compositor; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						struct weston_surface *es; | 
					 | 
					 | 
					 | 
						struct weston_surface *es; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						pixman_region32_t opaque, new_damage, total_damage, repaint; | 
					 | 
					 | 
					 | 
						pixman_region32_t opaque, new_damage, total_damage; | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						output->prepare_render(output); | 
					 | 
					 | 
					 | 
						output->prepare_render(output); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -832,17 +837,10 @@ weston_output_repaint(struct weston_output *output) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							if (es->width < output->current->width || | 
					 | 
					 | 
					 | 
							if (es->width < output->current->width || | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							    es->height < output->current->height) | 
					 | 
					 | 
					 | 
							    es->height < output->current->height) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								glClear(GL_COLOR_BUFFER_BIT); | 
					 | 
					 | 
					 | 
								glClear(GL_COLOR_BUFFER_BIT); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							weston_surface_draw(es, output, &total_damage); | 
					 | 
					 | 
					 | 
							weston_surface_draw(es, output); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						} else { | 
					 | 
					 | 
					 | 
						} else { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							wl_list_for_each_reverse(es, &ec->surface_list, link) { | 
					 | 
					 | 
					 | 
							wl_list_for_each_reverse(es, &ec->surface_list, link) | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								pixman_region32_init(&repaint); | 
					 | 
					 | 
					 | 
								weston_surface_draw(es, output); | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								pixman_region32_intersect(&repaint, &output->region, | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
											  &es->damage); | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								weston_surface_draw(es, output, &repaint); | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								pixman_region32_subtract(&es->damage, | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
											 &es->damage, &output->region); | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								pixman_region32_fini(&repaint); | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							} | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						} | 
					 | 
					 | 
					 | 
						} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						if (ec->fade.spring.current > 0.001) | 
					 | 
					 | 
					 | 
						if (ec->fade.spring.current > 0.001) | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					 | 
					
  |