| #version 140 | |
| bool u_b; | |
| bvec2 u_b2; | |
| bvec3 u_b3; | |
| bvec4 u_b4; | |
| int u_i; | |
| ivec2 u_i2; | |
| ivec3 u_i3; | |
| ivec4 u_i4; | |
| float u_f; | |
| vec2 u_f2; | |
| vec3 u_f3; | |
| vec4 u_f4; | |
| bool i_b; | |
| bvec2 i_b2; | |
| bvec3 i_b3; | |
| 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); | |
| } |