/*** cogl_fixed_fragment_shader_variables_start ***/

/* There is no default precision for floats in fragment shaders in
   GLES 2 so we need to define one */
precision highp float;

/*** cogl_fixed_fragment_shader_inputs ***/

/* Inputs from the vertex shader */
varying vec4       frag_color;
varying float      fog_amount;

/*** cogl_fixed_fragment_shader_texturing_options ***/

/* Texturing options */

/*** cogl_fixed_fragment_shader_fogging_options ***/

/* Fogging options */
uniform vec4       fog_color;

/* Alpha test options */
uniform float      alpha_test_ref;

/*** cogl_fixed_fragment_shader_main_declare ***/

void
main (void)
{
  /*** cogl_fixed_fragment_shader_main_start ***/


  /*** cogl_fixed_fragment_shader_fog ***/

  /* Mix the calculated color with the fog color */
  gl_FragColor.rgb = mix (fog_color.rgb, gl_FragColor.rgb, fog_amount);

  /* Alpha testing */

  /*** cogl_fixed_fragment_shader_alpha_never ***/
  discard;
  /*** cogl_fixed_fragment_shader_alpha_less ***/
  if (gl_FragColor.a >= alpha_test_ref)
    discard;
  /*** cogl_fixed_fragment_shader_alpha_equal ***/
  if (gl_FragColor.a != alpha_test_ref)
    discard;
  /*** cogl_fixed_fragment_shader_alpha_lequal ***/
  if (gl_FragColor.a > alpha_test_ref)
    discard;
  /*** cogl_fixed_fragment_shader_alpha_greater ***/
  if (gl_FragColor.a <= alpha_test_ref)
    discard;
  /*** cogl_fixed_fragment_shader_alpha_notequal ***/
  if (gl_FragColor.a == alpha_test_ref)
    discard;
  /*** cogl_fixed_fragment_shader_alpha_gequal ***/
  if (gl_FragColor.a < alpha_test_ref)
    discard;

  /*** cogl_fixed_fragment_shader_end ***/
}