!!argb constcolour=0
!!samps 1

layout(constant_id = 0) const int alphatest = 4;

layout(push_constant) uniform pushintf
{
	vec4 colour;	
} push;

//this shader is present for support for gles/gl3core contexts
//it is single-texture-with-vertex-colours, and doesn't do anything special.
//beware that a few things use this, including apparently fonts and bloom rescaling.
//its really not meant to do anything special.

#include "sys/defs.h"

layout(location=0) varying vec2 tc;
layout(location=1) varying vec4 vc;

#ifdef VERTEX_SHADER
void main ()
{
	tc = v_texcoord;
	if (arg_constcolour)
		vc = push.colour;
	else
		vc = v_colour;
	gl_Position = ftetransform();
}
#endif

#ifdef FRAGMENT_SHADER
void main ()
{
	vec4 fc = texture2D(s_t0, tc) * vc;
	if (alphatest == 4)
		discard;
	if (alphatest == 3)
	{
		if (fc.a < 0.5)
			discard;
	}
	else if (alphatest == 2)
	{
		if (fc.a <= 0)
			discard;
	}
	else if (alphatest == 1)
	{
		if (fc.a >= 0.5)
			discard;
	}
	gl_FragColor = fc;
}
#endif
