aboutsummaryrefslogtreecommitdiffstats
path: root/src/jogl/classes/jogamp/opengl/util/glsl/fixedfunc/shaders/mgl_alphatest.fp
blob: 2b64cdeb83eef96230d22d16139fd459724a5849 (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

void alphaTest(inout vec4 color) {
    if( MGL_GREATER == mgl_AlphaTestFunc ) {
        if ( color.a <= mgl_AlphaTestRef ) {
            DISCARD(color);
        }
    } else if( MGL_LESS == mgl_AlphaTestFunc ) {
        if ( color.a >= mgl_AlphaTestRef ) {
            DISCARD(color);
        }
    } else if( MGL_LEQUAL == mgl_AlphaTestFunc ) {
        if ( color.a > mgl_AlphaTestRef ) {
            DISCARD(color);
        }
    } else if( MGL_GEQUAL == mgl_AlphaTestFunc ) {
        if ( color.a < mgl_AlphaTestRef ) {
            DISCARD(color);
        }
    } else if( MGL_EQUAL == mgl_AlphaTestFunc ) {
        if ( abs( color.a - mgl_AlphaTestRef ) > EPSILON ) {
            DISCARD(color);
        }
    } else if( MGL_NOTEQUAL == mgl_AlphaTestFunc ) {
        if ( abs( color.a - mgl_AlphaTestRef ) <= EPSILON ) {
            DISCARD(color);
        }
    } else if( MGL_NEVER == mgl_AlphaTestFunc ) {
        DISCARD(color);
    } /* else if( MGL_ALWAYS == mgl_AlphaTestFunc ) {
      // NOP
    } */
}