// special simple version of colorGen.inc using for 1st stage: CSND (material color processing)

uniform	vec4	u_mgen;
uniform	vec4	u_mparm;

#ifndef GLSL_CGEN_CONST
	#define	GLSL_CGEN_CONST				0.0
	#define	GLSL_CGEN_LIGHTING_DIFFUSE		1.0
	#define	GLSL_CGEN_VERTEX			2.0

	#define	GLSL_AGEN_CONST				0.0
	#define	GLSL_AGEN_VERTEX			2.0
	#define	GLSL_AGEN_ONE_MINUS_VERTEX		3.0
	#define	GLSL_AGEN_VERTEX_COLOR			4.0
	#define	GLSL_AGEN_ONE_MINUS_VERTEX_COLOR	5.0
#endif

vec4 colorGenMat (in vec3 glVertex)
{
	vec4 col;
	if (u_mgen.x == GLSL_CGEN_CONST)
		col = u_mparm;
	else
		col = vec4(1.0);

	if (u_mgen.y >= GLSL_AGEN_CONST)
	{
		if (u_mgen.y == GLSL_AGEN_CONST)
			col.a = u_mparm.a;
		if (u_mgen.y == GLSL_AGEN_VERTEX)
			col.a = attr_Color.a;
		if (u_mgen.y == GLSL_AGEN_ONE_MINUS_VERTEX)
			col.a = 1.0 - attr_Color.a;
		if (u_mgen.y == GLSL_AGEN_VERTEX_COLOR)
			col.a = (attr_Color.r + attr_Color.g + attr_Color.b) * 0.33333;
		if (u_mgen.y == GLSL_AGEN_ONE_MINUS_VERTEX_COLOR)
			col.a = 1.0 - (attr_Color.r + attr_Color.g + attr_Color.b) * 0.33333;
	}

	return col;
}
