supercell-wx/scwx-qt/gl/threshold.geom

41 lines
991 B
GLSL

#version 330 core
layout (triangles) in;
layout (triangle_strip, max_vertices = 3) out;
uniform float uMapDistance;
in VertexData
{
int threshold;
vec2 texCoord;
vec4 color;
} gsIn[];
smooth out vec2 texCoord;
smooth out vec4 color;
void main()
{
if (gsIn[0].threshold <= 0 || // If Threshold: 0 was specified, no threshold
gsIn[0].threshold >= uMapDistance || // If Threshold is above current map distance
gsIn[0].threshold >= 999) // If Threshold: 999 was specified (or greater), no threshold
{
gl_Position = gl_in[0].gl_Position;
texCoord = gsIn[0].texCoord;
color = gsIn[0].color;
EmitVertex();
gl_Position = gl_in[1].gl_Position;
texCoord = gsIn[1].texCoord;
color = gsIn[1].color;
EmitVertex();
gl_Position = gl_in[2].gl_Position;
texCoord = gsIn[2].texCoord;
color = gsIn[2].color;
EmitVertex();
EndPrimitive();
}
}