| #version 450 | |
| flat in int i1; | |
| flat in ivec2 i2; | |
| flat in ivec3 i3; | |
| flat in ivec4 i4; | |
| flat in uint u1; | |
| flat in uvec2 u2; | |
| flat in uvec3 u3; | |
| flat in uvec4 u4; | |
| in float f1; | |
| in vec2 f2; | |
| in vec3 f3; | |
| in vec4 f4; | |
| out vec4 fragColor; | |
| void main() | |
| { | |
| ivec4 idata = ivec4(0); | |
| idata.x += floatBitsToInt(f1); | |
| idata.xy += floatBitsToInt(f2); | |
| idata.xyz += floatBitsToInt(f3); | |
| idata += floatBitsToInt(f4); | |
| uvec4 udata = uvec4(0); | |
| udata.x += floatBitsToUint(f1); | |
| udata.xy += floatBitsToUint(f2); | |
| udata.xyz += floatBitsToUint(f3); | |
| udata += floatBitsToUint(f4); | |
| vec4 fdata = vec4(0.0); | |
| fdata.x += intBitsToFloat(i1); | |
| fdata.xy += intBitsToFloat(i2); | |
| fdata.xyz += intBitsToFloat(i3); | |
| fdata += intBitsToFloat(i4); | |
| fdata.x += uintBitsToFloat(u1); | |
| fdata.xy += uintBitsToFloat(u2); | |
| fdata.xyz += uintBitsToFloat(u3); | |
| fdata += uintBitsToFloat(u4); | |
| fragColor = (idata == udata) ? fdata : fdata + vec4(0.2); | |
| } |