diff options
Diffstat (limited to 'source/blender/compositor/operations/COM_AlphaOverKeyOperation.cpp')
-rw-r--r-- | source/blender/compositor/operations/COM_AlphaOverKeyOperation.cpp | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/source/blender/compositor/operations/COM_AlphaOverKeyOperation.cpp b/source/blender/compositor/operations/COM_AlphaOverKeyOperation.cpp index 406a98f81e9..6cc9aae4553 100644 --- a/source/blender/compositor/operations/COM_AlphaOverKeyOperation.cpp +++ b/source/blender/compositor/operations/COM_AlphaOverKeyOperation.cpp @@ -27,7 +27,7 @@ AlphaOverKeyOperation::AlphaOverKeyOperation() : MixBaseOperation() /* pass */ } -void AlphaOverKeyOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler) +void AlphaOverKeyOperation::executePixel(float output[4], float x, float y, PixelSampler sampler) { float inputColor1[4]; float inputOverColor[4]; @@ -38,18 +38,18 @@ void AlphaOverKeyOperation::executePixel(float *outputValue, float x, float y, P this->m_inputColor2Operation->read(inputOverColor, x, y, sampler); if (inputOverColor[3] <= 0.0f) { - copy_v4_v4(outputValue, inputColor1); + copy_v4_v4(output, inputColor1); } else if (value[0] == 1.0f && inputOverColor[3] >= 1.0f) { - copy_v4_v4(outputValue, inputOverColor); + copy_v4_v4(output, inputOverColor); } else { float premul = value[0] * inputOverColor[3]; float mul = 1.0f - premul; - outputValue[0] = (mul * inputColor1[0]) + premul * inputOverColor[0]; - outputValue[1] = (mul * inputColor1[1]) + premul * inputOverColor[1]; - outputValue[2] = (mul * inputColor1[2]) + premul * inputOverColor[2]; - outputValue[3] = (mul * inputColor1[3]) + value[0] * inputOverColor[3]; + output[0] = (mul * inputColor1[0]) + premul * inputOverColor[0]; + output[1] = (mul * inputColor1[1]) + premul * inputOverColor[1]; + output[2] = (mul * inputColor1[2]) + premul * inputOverColor[2]; + output[3] = (mul * inputColor1[3]) + value[0] * inputOverColor[3]; } } |