mirror of
				https://github.com/ciphervance/supercell-wx.git
				synced 2025-11-04 12:00:07 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			50 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			GLSL
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			GLSL
		
	
	
	
	
	
#version 330 core
 | 
						|
 | 
						|
layout (triangles) in;
 | 
						|
layout (triangle_strip, max_vertices = 3) out;
 | 
						|
 | 
						|
uniform float uMapDistance;
 | 
						|
uniform int   uSelectedTime;
 | 
						|
 | 
						|
in VertexData
 | 
						|
{
 | 
						|
   int   threshold;
 | 
						|
   vec3  texCoord;
 | 
						|
   vec4  color;
 | 
						|
   ivec2 timeRange;
 | 
						|
   int   displayed;
 | 
						|
} gsIn[];
 | 
						|
 | 
						|
smooth out vec3 texCoord;
 | 
						|
smooth out vec4 color;
 | 
						|
 | 
						|
void main()
 | 
						|
{
 | 
						|
   if (gsIn[0].displayed != 0 &&
 | 
						|
       (gsIn[0].threshold == 0 ||            // If Threshold: 0 was specified, no threshold
 | 
						|
        uMapDistance == 0 ||                 // If uMapDistance is zero, threshold is disabled
 | 
						|
        (gsIn[0].threshold < 0 && -(gsIn[0].threshold) <= uMapDistance) || // If Threshold is negative and below current map distance
 | 
						|
        gsIn[0].threshold >= uMapDistance || // If Threshold is above current map distance
 | 
						|
        gsIn[0].threshold >= 999) &&         // If Threshold: 999 was specified (or greater), no threshold
 | 
						|
       (gsIn[0].timeRange[0] == 0 ||              // If there is no start time specified
 | 
						|
        (gsIn[0].timeRange[0] <= uSelectedTime && // If the selected time is after the start time
 | 
						|
         uSelectedTime < gsIn[0].timeRange[1])))  // If the selected time is before the end time
 | 
						|
   {
 | 
						|
      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();
 | 
						|
   }
 | 
						|
}
 |