Fix T61733: wrong alpha for sequencer screen, multiply, .. blend modes.
It was copying the alpha from the foreground instead of background image, which is not usually what is needed and inconsistent with the compositor. Differential Revision: https://developer.blender.org/D4371
This commit is contained in:
parent
6e9dca2214
commit
fdee84fd56
Notes:
blender-bot
2023-02-14 10:37:49 +01:00
Referenced by commit bdcc258305
, Fix: VSE colormix blend factor not working
Referenced by issue #61733, The various color blend mode, like Screen, Multipley, Lighten, etc Do not use the correct Alpha channel
|
@ -1318,11 +1318,11 @@ BLI_INLINE void apply_blend_function_byte(
|
|||
rt = out;
|
||||
while (y--) {
|
||||
for (x = xo; x > 0; x--) {
|
||||
achannel = rt2[3];
|
||||
rt2[3] = (unsigned int) achannel * facf0;
|
||||
achannel = rt1[3];
|
||||
rt1[3] = (unsigned int) achannel * facf0;
|
||||
blend_function(rt, rt1, rt2);
|
||||
rt2[3] = achannel;
|
||||
rt[3] = rt2[3];
|
||||
rt1[3] = achannel;
|
||||
rt[3] = rt1[3];
|
||||
rt1 += 4;
|
||||
rt2 += 4;
|
||||
rt += 4;
|
||||
|
@ -1332,11 +1332,11 @@ BLI_INLINE void apply_blend_function_byte(
|
|||
}
|
||||
y--;
|
||||
for (x = xo; x > 0; x--) {
|
||||
achannel = rt2[3];
|
||||
rt2[3] = (unsigned int) achannel * facf1;
|
||||
achannel = rt1[3];
|
||||
rt1[3] = (unsigned int) achannel * facf1;
|
||||
blend_function(rt, rt1, rt2);
|
||||
rt2[3] = achannel;
|
||||
rt[3] = rt2[3];
|
||||
rt1[3] = achannel;
|
||||
rt[3] = rt1[3];
|
||||
rt1 += 4;
|
||||
rt2 += 4;
|
||||
rt += 4;
|
||||
|
@ -1357,11 +1357,11 @@ BLI_INLINE void apply_blend_function_float(
|
|||
rt = out;
|
||||
while (y--) {
|
||||
for (x = xo; x > 0; x--) {
|
||||
achannel = rt2[3];
|
||||
rt2[3] = achannel * facf0;
|
||||
achannel = rt1[3];
|
||||
rt1[3] = achannel * facf0;
|
||||
blend_function(rt, rt1, rt2);
|
||||
rt2[3] = achannel;
|
||||
rt[3] = rt2[3];
|
||||
rt1[3] = achannel;
|
||||
rt[3] = rt1[3];
|
||||
rt1 += 4;
|
||||
rt2 += 4;
|
||||
rt += 4;
|
||||
|
@ -1371,11 +1371,11 @@ BLI_INLINE void apply_blend_function_float(
|
|||
}
|
||||
y--;
|
||||
for (x = xo; x > 0; x--) {
|
||||
achannel = rt2[3];
|
||||
rt2[3] = achannel * facf1;
|
||||
achannel = rt1[3];
|
||||
rt1[3] = achannel * facf1;
|
||||
blend_function(rt, rt1, rt2);
|
||||
rt2[3] = achannel;
|
||||
rt[3] = rt2[3];
|
||||
rt1[3] = achannel;
|
||||
rt[3] = rt1[3];
|
||||
rt1 += 4;
|
||||
rt2 += 4;
|
||||
rt += 4;
|
||||
|
|
Loading…
Reference in New Issue