diff --git a/resources/shaders/common.glsl b/resources/shaders/common.glsl index 17f454f..e7f4e03 100644 --- a/resources/shaders/common.glsl +++ b/resources/shaders/common.glsl @@ -121,8 +121,8 @@ void setOutputColor(vec4 outColor) { cogl_color_out = outColor; } // The Shell.GLSLEffect uses straight alpha blending. This helper method allows // compositing color values in the shader in the same way. vec4 alphaOver(vec4 under, vec4 over) { - float alpha = over.a + under.a * (1.0 - over.a); - return vec4((over.rgb * over.a + under.rgb * under.a * (1.0 - over.a)) / alpha, alpha); + float alpha = mix(under.a, 1.0, over.a); + return vec4(mix(under.rgb * under.a, over.rgb, over.a) / alpha, alpha); } // ------------------------------------------------------------------------- color helpers