src/opengl/util/simple_porter_duff.glsl
changeset 0 1918ee327afb
equal deleted inserted replaced
-1:000000000000 0:1918ee327afb
       
     1 uniform vec2 porterduff_ab;
       
     2 uniform vec3 porterduff_xyz;
       
     3 
       
     4 vec4 composite(vec4 src, vec4 dst)
       
     5 {
       
     6     vec4 result;
       
     7 
       
     8     result.xyz = porterduff_ab.x * src.xyz * dst.a
       
     9                + porterduff_ab.y * dst.xyz * src.a
       
    10                + porterduff_xyz.y * src.xyz * (1.0 - dst.a)
       
    11                + porterduff_xyz.z * dst.xyz * (1.0 - src.a);
       
    12 
       
    13     result.a = dot(porterduff_xyz, vec3(src.a * dst.a, src.a * (1.0 - dst.a), dst.a * (1.0 - src.a)));
       
    14 
       
    15     return result;
       
    16 }