mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 09:42:45 +00:00 
			
		
		
		
	LibWeb: Only paint the background image on integer steps
This avoids excessive over painting.
This commit is contained in:
		
							parent
							
								
									c4ef4fcd72
								
							
						
					
					
						commit
						c491ab7523
					
				
					 1 changed files with 6 additions and 1 deletions
				
			
		|  | @ -261,13 +261,18 @@ void paint_background(PaintContext& context, Layout::NodeWithStyleAndBoxModelMet | |||
| 
 | ||||
|         float initial_image_x = image_rect.x(); | ||||
|         float image_y = image_rect.y(); | ||||
|         Optional<Gfx::IntRect> last_int_image_rect; | ||||
| 
 | ||||
|         while (image_y < clip_rect.bottom()) { | ||||
|             image_rect.set_y(image_y); | ||||
| 
 | ||||
|             float image_x = initial_image_x; | ||||
|             while (image_x < clip_rect.right()) { | ||||
|                 image_rect.set_x(image_x); | ||||
|                 painter.draw_scaled_bitmap(image_rect.to_rounded<int>(), image, image.rect(), 1.0f, Gfx::Painter::ScalingMode::BilinearBlend); | ||||
|                 auto int_image_rect = image_rect.to_rounded<int>(); | ||||
|                 if (int_image_rect != last_int_image_rect) | ||||
|                     painter.draw_scaled_bitmap(int_image_rect, image, image.rect(), 1.0f, Gfx::Painter::ScalingMode::BilinearBlend); | ||||
|                 last_int_image_rect = int_image_rect; | ||||
|                 if (!repeat_x) | ||||
|                     break; | ||||
|                 image_x += x_step; | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 MacDue
						MacDue