1 varying mediump vec2 vTexCoord;
2 varying mediump vec2 vMaskTexCoord;
3 uniform sampler2D sTexture;
4 uniform sampler2D sMask;
5 uniform lowp vec4 uColor;
6 uniform lowp vec3 mixColor;
7 uniform lowp float preMultipliedAlpha;
8 uniform mediump float auxiliaryImageAlpha;
12 // Where mask image is transparent, all of background image must show through.
13 // where mask image is opaque, only mask should be shown
14 // where mask is translucent, less of background should be shown.
15 // auxiliaryImageAlpha controls how much of mask is visible
17 mediump vec4 color = texture2D( sTexture, vTexCoord );
18 mediump vec4 mask= texture2D( sMask, vMaskTexCoord );
20 mediump vec3 mixedColor = color.rgb * mix( 1.0-mask.a, 1.0, 1.0-auxiliaryImageAlpha)
21 + mask.rgb*mask.a * auxiliaryImageAlpha;
22 gl_FragColor = vec4(mixedColor,1.0) * uColor * vec4( mixColor, 1.0 );