Fix T102256: Gamma Cross blend mode causes stripes

Function `do_gammacross_effect_float` processed one color channel per
loop iteration instead of whole pixel.
This commit is contained in:
Richard Antalik 2022-11-09 21:59:33 +01:00
parent bfc7653490
commit cebea62b47
Notes: blender-bot 2023-02-14 19:45:25 +01:00
Referenced by issue #102256, VSE Gamma Cross blend mode causes stripes
1 changed files with 7 additions and 4 deletions

View File

@ -704,10 +704,13 @@ static void do_gammacross_effect_float(
for (int i = 0; i < y; i++) {
for (int j = 0; j < x; j++) {
*rt = gammaCorrect(mfac * invGammaCorrect(*rt1) + fac * invGammaCorrect(*rt2));
rt1++;
rt2++;
rt++;
rt[0] = gammaCorrect(mfac * invGammaCorrect(rt1[0]) + fac * invGammaCorrect(rt2[0]));
rt[1] = gammaCorrect(mfac * invGammaCorrect(rt1[1]) + fac * invGammaCorrect(rt2[1]));
rt[2] = gammaCorrect(mfac * invGammaCorrect(rt1[2]) + fac * invGammaCorrect(rt2[2]));
rt[3] = gammaCorrect(mfac * invGammaCorrect(rt1[3]) + fac * invGammaCorrect(rt2[3]));
rt1 += 4;
rt2+=4;
rt+=4;
}
}
}