summaryrefslogtreecommitdiff
path: root/src/render/shaders/glsl/ext.frag
blob: 1c614bd3c8a856b8ae5f9a1b72bc23e5f34d99e3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#version 300 es

#define ALLOW_INCLUDES
#extension GL_ARB_shading_language_include : enable
#extension GL_OES_EGL_image_external_essl3 : require

precision                  highp float;
in vec2                    v_texcoord;
uniform samplerExternalOES tex;
uniform float              alpha;

uniform float              radius;
uniform float              roundingPower;
uniform vec2               topLeft;
uniform vec2               fullSize;
#include "rounding.glsl"

uniform int  discardOpaque;
uniform int  discardAlpha;
uniform int  discardAlphaValue;

uniform int  applyTint;
uniform vec3 tint;

layout(location = 0) out vec4 fragColor;
void main() {

    vec4 pixColor = texture(tex, v_texcoord);

    if (discardOpaque == 1 && pixColor[3] * alpha == 1.0)
        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, radius, roundingPower, topLeft, fullSize);

    fragColor = pixColor * alpha;
}