app: fix non-premultiplied case in GimpOperationNormalMode

This commit is contained in:
Michael Natterer
2012-04-06 21:53:16 +02:00
parent 7fbbefd6f0
commit 1f9606e200

View File

@ -152,10 +152,10 @@ gimp_operation_normal_mode_process (GeglOperation *operation,
{ {
while (samples--) while (samples--)
{ {
out[RED] = in[RED] * (1.0 - aux[ALPHA]) + aux[RED] * aux[ALPHA]; out[0] = aux[0] * aux[3] + in[0] * in[3] * (1.0 - aux[3]);
out[GREEN] = in[GREEN] * (1.0 - aux[ALPHA]) + aux[GREEN] * aux[ALPHA]; out[1] = aux[1] * aux[3] + in[1] * in[3] * (1.0 - aux[3]);
out[BLUE] = in[BLUE] * (1.0 - aux[ALPHA]) + aux[BLUE] * aux[ALPHA]; out[2] = aux[2] * aux[3] + in[2] * in[3] * (1.0 - aux[3]);
out[ALPHA] = in[ALPHA] + aux[ALPHA] * (1.0 - in[ALPHA]); out[3] = aux[3] + in[3] - aux[3] * in[3];
in += 4; in += 4;
aux += 4; aux += 4;