3 attribute mediump vec3 aPosition;
4 attribute mediump vec2 aTexCoord;
6 uniform mediump mat4 uMvpMatrix;
7 uniform lowp vec4 uColor;
8 uniform lowp vec4 uTextColor;
10 varying mediump vec2 vTexCoord;
13 uniform lowp vec4 uGradientColor;
14 uniform mediump vec4 uGradientLine;
15 uniform mediump vec2 uInvTextSize;
17 varying lowp vec4 vColor;
22 gl_Position = uMvpMatrix * vec4(aPosition, 1.0);
23 vTexCoord = aTexCoord;
26 lowp float f = dot( aPosition.xy * uInvTextSize - uGradientLine.xy, uGradientLine.zw );
27 vColor = mix(uTextColor, uGradientColor, f);
35 #extension GL_OES_standard_derivatives : enable
37 uniform mediump sampler2D sTexture;
38 uniform lowp vec4 uColor;
39 uniform mediump float uSmoothing;
41 varying mediump vec2 vTexCoord;
44 varying lowp vec4 vColor;
46 uniform lowp vec4 uTextColor;
51 // sample distance field
52 mediump float distance = texture2D(sTexture, vTexCoord).a;
54 mediump float smoothWidth = fwidth(distance) * 0.8;
57 lowp vec4 color = clamp(vColor, 0.0, 1.0);
59 lowp vec4 color = uTextColor;
62 // adjust fragment alpha by sampled distance
63 color.a *= smoothstep(uSmoothing - smoothWidth, uSmoothing + smoothWidth, distance);
65 // final color multiplied by Actor color
66 gl_FragColor = uColor * color;