37 lines
789 B
GLSL
37 lines
789 B
GLSL
|
|
#extension GL_ARB_shading_language_include : enable
|
||
|
|
precision highp float;
|
||
|
|
varying vec2 v_texcoord; // is in 0-1
|
||
|
|
uniform sampler2D tex;
|
||
|
|
uniform float alpha;
|
||
|
|
|
||
|
|
#include "rounding.glsl"
|
||
|
|
|
||
|
|
uniform int discardOpaque;
|
||
|
|
uniform int discardAlpha;
|
||
|
|
uniform float discardAlphaValue;
|
||
|
|
|
||
|
|
uniform int applyTint;
|
||
|
|
uniform vec3 tint;
|
||
|
|
|
||
|
|
void main() {
|
||
|
|
|
||
|
|
vec4 pixColor = texture2D(tex, v_texcoord);
|
||
|
|
|
||
|
|
if (discardOpaque == 1 && pixColor[3] * alpha == 1.0)
|
||
|
|
discard;
|
||
|
|
|
||
|
|
if (discardAlpha == 1 && pixColor[3] <= discardAlphaValue)
|
||
|
|
discard;
|
||
|
|
|
||
|
|
if (applyTint == 1) {
|
||
|
|
pixColor[0] = pixColor[0] * tint[0];
|
||
|
|
pixColor[1] = pixColor[1] * tint[1];
|
||
|
|
pixColor[2] = pixColor[2] * tint[2];
|
||
|
|
}
|
||
|
|
|
||
|
|
if (radius > 0.0)
|
||
|
|
pixColor = rounding(pixColor);
|
||
|
|
|
||
|
|
gl_FragColor = pixColor * alpha;
|
||
|
|
}
|