1
0
mirror of synced 2025-02-17 11:18:33 +01:00

Fix multiply blending mode.

This commit is contained in:
Jennifer Taylor 2021-08-09 20:20:09 +00:00
parent 73a36e17c2
commit 41a1114469
2 changed files with 10 additions and 6 deletions

View File

@ -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],
)

View File

@ -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,
};
}