diff options
author | Richard Antalik <richardantalik@gmail.com> | 2022-11-09 23:59:33 +0300 |
---|---|---|
committer | Richard Antalik <richardantalik@gmail.com> | 2022-11-09 23:59:33 +0300 |
commit | cebea62b4770295ae35d98e1e9e85a457bc05922 (patch) | |
tree | 50d6963d4245f14bb31058f2a8cf55bc51fec6c7 /source | |
parent | bfc7653490f6a7f8f6e916fccefee63f1ff94699 (diff) |
Fix T102256: Gamma Cross blend mode causes stripes
Function `do_gammacross_effect_float` processed one color channel per
loop iteration instead of whole pixel.
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/sequencer/intern/effects.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/source/blender/sequencer/intern/effects.c b/source/blender/sequencer/intern/effects.c index 8469876ba25..6dd75031f3b 100644 --- a/source/blender/sequencer/intern/effects.c +++ b/source/blender/sequencer/intern/effects.c @@ -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; } } } |