Fix multiply blending mode.
This commit is contained in:
parent
73a36e17c2
commit
41a1114469
@ -111,10 +111,12 @@ def blend_multiply(
|
||||
# source alpha is always 255.
|
||||
|
||||
# Calculate final color blending.
|
||||
src_alpha = src[3] / 255.0
|
||||
src_remainder = 1.0 - src_alpha
|
||||
return (
|
||||
clamp(255 * ((dest[0] / 255.0) * (src[0] / 255.0))),
|
||||
clamp(255 * ((dest[1] / 255.0) * (src[1] / 255.0))),
|
||||
clamp(255 * ((dest[2] / 255.0) * (src[2] / 255.0))),
|
||||
clamp((255 * ((dest[0] / 255.0) * (src[0] / 255.0) * src_alpha)) + (dest[0] * src_remainder)),
|
||||
clamp((255 * ((dest[1] / 255.0) * (src[1] / 255.0) * src_alpha)) + (dest[1] * src_remainder)),
|
||||
clamp((255 * ((dest[2] / 255.0) * (src[2] / 255.0) * src_alpha)) + (dest[2] * src_remainder)),
|
||||
dest[3],
|
||||
)
|
||||
|
||||
|
@ -185,10 +185,12 @@ extern "C"
|
||||
// source alpha is always 255.
|
||||
|
||||
// Calculate final color blending.
|
||||
float src_alpha = src.a / 255.0;
|
||||
float src_remainder = 1.0 - src_alpha;
|
||||
return (intcolor_t){
|
||||
clamp(255 * ((dest.r / 255.0) * (src.r / 255.0))),
|
||||
clamp(255 * ((dest.g / 255.0) * (src.g / 255.0))),
|
||||
clamp(255 * ((dest.b / 255.0) * (src.b / 255.0))),
|
||||
clamp((255 * ((dest.r / 255.0) * (src.r / 255.0) * src_alpha)) + (dest.r * src_remainder)),
|
||||
clamp((255 * ((dest.g / 255.0) * (src.g / 255.0) * src_alpha)) + (dest.g * src_remainder)),
|
||||
clamp((255 * ((dest.b / 255.0) * (src.b / 255.0) * src_alpha)) + (dest.b * src_remainder)),
|
||||
dest.a,
|
||||
};
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user