Fixing wrong blending rect methods
Using Color.blend function instead of custom code
Fixed clang_format
Removed unnecessary help
(cherry picked from commit b211a86ebe
)
This commit is contained in:
parent
c63c902c74
commit
a6d8773d0b
1 changed files with 10 additions and 12 deletions
|
@ -2223,12 +2223,11 @@ 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);
|
||||
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));
|
||||
set_pixel(dst_x, dst_y, dc);
|
||||
if (sc.a != 0) {
|
||||
Color dc = get_pixel(dst_x, dst_y);
|
||||
dc = dc.blend(sc);
|
||||
set_pixel(dst_x, dst_y, dc);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2285,12 +2284,11 @@ 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);
|
||||
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));
|
||||
set_pixel(dst_x, dst_y, dc);
|
||||
if (sc.a != 0) {
|
||||
Color dc = get_pixel(dst_x, dst_y);
|
||||
dc = dc.blend(sc);
|
||||
set_pixel(dst_x, dst_y, dc);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue