 2f21fccee9
			
		
	
	
		2f21fccee9
		
	
	
	
	
		
			
			git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@31512 e7fa87d3-cd2b-0410-9028-fcbf551c1848
		
			
				
	
	
		
			113 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			GLSL
		
	
	
	
	
	
			
		
		
	
	
			113 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			GLSL
		
	
	
	
	
	
| #version 130
 | |
| 
 | |
| uniform bool  u_b;
 | |
| uniform bvec2 u_b2;
 | |
| uniform bvec3 u_b3;
 | |
| uniform bvec4 u_b4;
 | |
| 
 | |
| uniform int   u_i;
 | |
| uniform ivec2 u_i2;
 | |
| uniform ivec3 u_i3;
 | |
| uniform ivec4 u_i4;
 | |
|  
 | |
| uniform float u_f;
 | |
| uniform vec2 u_f2;
 | |
| uniform vec3 u_f3;
 | |
| uniform vec4 u_f4;
 | |
| 
 | |
| uniform bool  i_b;
 | |
| uniform bvec2 i_b2;
 | |
| uniform bvec3 i_b3;
 | |
| uniform bvec4 i_b4;
 | |
| 
 | |
| flat in int   i_i;
 | |
| flat in ivec2 i_i2;
 | |
| flat in ivec3 i_i3;
 | |
| flat in ivec4 i_i4;
 | |
| 
 | |
| in float i_f;
 | |
| in vec2 i_f2;
 | |
| in vec3 i_f3;
 | |
| in vec4 i_f4;
 | |
| 
 | |
| void main()
 | |
| {
 | |
|     bool   b = bool(u_i) ^^ bool(u_f);
 | |
|     bvec2 b2 = bvec2(u_i, u_f);
 | |
|     bvec3 b3 = bvec3(u_i, u_f, i_i);
 | |
|     bvec4 b4 = bvec4(u_i, u_f, i_i, i_f);
 | |
| 
 | |
|     int    i = int(u_f)    + int(b);
 | |
|     ivec2 i2 = ivec2(u_f2) + ivec2(b2);
 | |
|     ivec3 i3 = ivec3(u_f3) + ivec3(b3);
 | |
|     ivec4 i4 = ivec4(u_f4) + ivec4(b4);
 | |
| 
 | |
|     float f = i;
 | |
|     vec2 f2 = i2;
 | |
|     vec3 f3 = i3;
 | |
|     vec4 f4 = i4;
 | |
| 
 | |
|     f  += (float(i) + float(b));
 | |
|     f2 -= vec2(i2) + vec2(b2);
 | |
|     f3 /= vec3(i3) + vec3(b3);
 | |
|     f4 += vec4(i4) + vec4(b4);
 | |
| 
 | |
|     f4 += vec4(bvec4(i_i4));
 | |
|     f4 += vec4(bvec4(u_f4));
 | |
|     
 | |
|     f  += f                 - i;
 | |
|     f2 += vec2(f, i)       + i2;
 | |
|     f3 += i3 + vec3(f, i, f);
 | |
|     f4 += vec4(b, i, f, i) + i4;
 | |
|     
 | |
|     f2 += vec2(f, i)       * i;
 | |
|     f3 += vec3(f, i, f)    + i;
 | |
|     f4 += i - vec4(b, i, f, i);
 | |
| 
 | |
|     i2 += ivec2(f, i);
 | |
|     i3 += ivec3(f, i, f);
 | |
|     i4 += ivec4(b, i, f, i);
 | |
| 
 | |
|     if (f < i || i < f ||
 | |
|         f2 == i2 ||
 | |
|         i3 != f3)
 | |
|         f = (b ? i : f2.x) + (b2.x ? f3.x : i2.y);
 | |
| 
 | |
|     gl_FragColor = 
 | |
|         b || 
 | |
|         b2.x ||
 | |
|         b2.y ||
 | |
|         b3.x ||
 | |
|         b3.y ||
 | |
|         b3.z ||
 | |
|         b4.x ||
 | |
|         b4.y ||
 | |
|         b4.z ||
 | |
|         b4.w ? vec4(
 | |
|         i  +
 | |
|         i2.x +
 | |
|         i2.y +
 | |
|         i3.x +
 | |
|         i3.y +
 | |
|         i3.z +
 | |
|         i4.x +
 | |
|         i4.y +
 | |
|         i4.z +
 | |
|         i4.w +
 | |
|         f  +
 | |
|         f2.x +
 | |
|         f2.y +
 | |
|         f3.x +
 | |
|         f3.y +
 | |
|         f3.z +
 | |
|         f4.x +
 | |
|         f4.y +
 | |
|         f4.z +
 | |
|         f4.w) : vec4(1.0);
 | |
| 
 | |
|     // with constants...
 | |
|     ivec4 cv2 = ivec4(1.0);
 | |
|     bvec4 cv5 = bvec4(cv2);
 | |
|     gl_FragColor += float(cv5);
 | |
| }
 |