mirror of
				https://github.com/godotengine/godot.git
				synced 2025-11-04 07:31:16 +00:00 
			
		
		
		
	Merge pull request #39200 from azagaya/fix-blend-2
Fixing wrong blending rect methods
This commit is contained in:
		
						commit
						ec1bf96e41
					
				
					 1 changed files with 10 additions and 12 deletions
				
			
		| 
						 | 
				
			
			@ -2539,14 +2539,13 @@ void Image::blend_rect(const Ref<Image> &p_src, const Rect2 &p_src_rect, const P
 | 
			
		|||
			int dst_y = dest_rect.position.y + i;
 | 
			
		||||
 | 
			
		||||
			Color sc = img->get_pixel(src_x, src_y);
 | 
			
		||||
			if (sc.a != 0) {
 | 
			
		||||
				Color dc = get_pixel(dst_x, dst_y);
 | 
			
		||||
			dc.r = (double)(sc.a * sc.r + dc.a * (1.0 - sc.a) * dc.r);
 | 
			
		||||
			dc.g = (double)(sc.a * sc.g + dc.a * (1.0 - sc.a) * dc.g);
 | 
			
		||||
			dc.b = (double)(sc.a * sc.b + dc.a * (1.0 - sc.a) * dc.b);
 | 
			
		||||
			dc.a = (double)(sc.a + dc.a * (1.0 - sc.a));
 | 
			
		||||
				dc = dc.blend(sc);
 | 
			
		||||
				set_pixel(dst_x, dst_y, dc);
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Image::blend_rect_mask(const Ref<Image> &p_src, const Ref<Image> &p_mask, const Rect2 &p_src_rect, const Point2 &p_dest) {
 | 
			
		||||
| 
						 | 
				
			
			@ -2594,15 +2593,14 @@ void Image::blend_rect_mask(const Ref<Image> &p_src, const Ref<Image> &p_mask, c
 | 
			
		|||
				int dst_y = dest_rect.position.y + i;
 | 
			
		||||
 | 
			
		||||
				Color sc = img->get_pixel(src_x, src_y);
 | 
			
		||||
				if (sc.a != 0) {
 | 
			
		||||
					Color dc = get_pixel(dst_x, dst_y);
 | 
			
		||||
				dc.r = (double)(sc.a * sc.r + dc.a * (1.0 - sc.a) * dc.r);
 | 
			
		||||
				dc.g = (double)(sc.a * sc.g + dc.a * (1.0 - sc.a) * dc.g);
 | 
			
		||||
				dc.b = (double)(sc.a * sc.b + dc.a * (1.0 - sc.a) * dc.b);
 | 
			
		||||
				dc.a = (double)(sc.a + dc.a * (1.0 - sc.a));
 | 
			
		||||
					dc = dc.blend(sc);
 | 
			
		||||
					set_pixel(dst_x, dst_y, dc);
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Image::fill(const Color &c) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue