diff --git a/app/operations/gimpoperationburnmode.c b/app/operations/gimpoperationburnmode.c index 4cebfdfe4a..e3bcab55b2 100644 --- a/app/operations/gimpoperationburnmode.c +++ b/app/operations/gimpoperationburnmode.c @@ -109,9 +109,9 @@ gimp_operation_burn_mode_process_pixels (gfloat *in, for (b = RED; b < ALPHA; b++) { gfloat comp = (1.0 - in[b]) / layer[b]; - comp = CLAMP (1.0 - comp, 0.0, 1.0); out[b] = comp * ratio + in[b] * (1.0 - ratio); + out[b] = CLAMP (1.0 - out[b], 0.0, 1.0); } } else diff --git a/app/operations/gimpoperationdividemode.c b/app/operations/gimpoperationdividemode.c index 70dbf64bbe..5f93d3077e 100644 --- a/app/operations/gimpoperationdividemode.c +++ b/app/operations/gimpoperationdividemode.c @@ -109,9 +109,9 @@ gimp_operation_divide_mode_process_pixels (gfloat *in, for (b = RED; b < ALPHA; b++) { gfloat comp = (4294967296.0 / 4294967295.0 * in[b]) / (1.0 / 4294967295.0 + layer[b]); - comp = CLAMP (comp, 0.0, 1.0); out[b] = comp * ratio + in[b] * (1.0 - ratio); + out[b] = CLAMP (out[b], 0.0, 1.0); } } else diff --git a/app/operations/gimpoperationgrainextractmode.c b/app/operations/gimpoperationgrainextractmode.c index 79ee12f431..9c4041db0f 100644 --- a/app/operations/gimpoperationgrainextractmode.c +++ b/app/operations/gimpoperationgrainextractmode.c @@ -109,9 +109,9 @@ gimp_operation_grain_extract_mode_process_pixels (gfloat *in, for (b = RED; b < ALPHA; b++) { gfloat comp = in[b] - layer[b] + 0.5; - comp = CLAMP (comp, 0.0, 1.0); out[b] = comp * ratio + in[b] * (1.0 - ratio); + out[b] = CLAMP (out[b], 0.0, 1.0); } } else diff --git a/app/operations/gimpoperationgrainmergemode.c b/app/operations/gimpoperationgrainmergemode.c index f4d7eca5b7..e3feade0a7 100644 --- a/app/operations/gimpoperationgrainmergemode.c +++ b/app/operations/gimpoperationgrainmergemode.c @@ -109,9 +109,9 @@ gimp_operation_grain_merge_mode_process_pixels (gfloat *in, for (b = RED; b < ALPHA; b++) { gfloat comp = in[b] + layer[b] - 0.5; - comp = CLAMP (comp, 0.0, 1.0); out[b] = comp * ratio + in[b] * (1.0 - ratio); + out[b] = CLAMP (out[b], 0.0, 1.0); } } else diff --git a/app/operations/gimpoperationmultiplymode.c b/app/operations/gimpoperationmultiplymode.c index a3907eace1..992a907c68 100644 --- a/app/operations/gimpoperationmultiplymode.c +++ b/app/operations/gimpoperationmultiplymode.c @@ -109,9 +109,8 @@ gimp_operation_multiply_mode_process_pixels (gfloat *in, for (b = RED; b < ALPHA; b++) { gfloat comp = layer[b] * in[b]; - comp = CLAMP (comp, 0.0, 1.0); - out[b] = comp * ratio + in[b] * (1.0 - ratio); + out[b] = CLAMP (out[b], 0.0, 1.0); } } else diff --git a/app/operations/gimpoperationsubtractmode.c b/app/operations/gimpoperationsubtractmode.c index bb9f10e9e4..0d86bf8446 100644 --- a/app/operations/gimpoperationsubtractmode.c +++ b/app/operations/gimpoperationsubtractmode.c @@ -109,9 +109,8 @@ gimp_operation_subtract_mode_process_pixels (gfloat *in, for (b = RED; b < ALPHA; b++) { gfloat comp = in[b] - layer[b]; - comp = (comp < 0) ? 0 : comp; - out[b] = comp * ratio + in[b] * (1.0 - ratio); + out[b] = CLAMP(out[b], 0.0, 1.0); } } else