blob: 73c7e3037cb66d5ceaa6db855792d6532c126f54 [file] [log] [blame]
Rex Xucbc426e2015-12-15 16:03:10 +08001#version 450
2
John Kessenich6c292d32016-02-15 20:58:50 -07003flat in int i1;
4flat in ivec2 i2;
5flat in ivec3 i3;
6flat in ivec4 i4;
Rex Xucbc426e2015-12-15 16:03:10 +08007
John Kessenich6c292d32016-02-15 20:58:50 -07008flat in uint u1;
9flat in uvec2 u2;
10flat in uvec3 u3;
11flat in uvec4 u4;
Rex Xucbc426e2015-12-15 16:03:10 +080012
John Kessenich6c292d32016-02-15 20:58:50 -070013in float f1;
14in vec2 f2;
15in vec3 f3;
16in vec4 f4;
Rex Xucbc426e2015-12-15 16:03:10 +080017
18out vec4 fragColor;
19
20void main()
21{
22 ivec4 idata = ivec4(0);
23 idata.x += floatBitsToInt(f1);
24 idata.xy += floatBitsToInt(f2);
25 idata.xyz += floatBitsToInt(f3);
26 idata += floatBitsToInt(f4);
27
28 uvec4 udata = uvec4(0);
29 udata.x += floatBitsToUint(f1);
30 udata.xy += floatBitsToUint(f2);
31 udata.xyz += floatBitsToUint(f3);
32 udata += floatBitsToUint(f4);
33
34 vec4 fdata = vec4(0.0);
35 fdata.x += intBitsToFloat(i1);
36 fdata.xy += intBitsToFloat(i2);
37 fdata.xyz += intBitsToFloat(i3);
38 fdata += intBitsToFloat(i4);
39 fdata.x += uintBitsToFloat(u1);
40 fdata.xy += uintBitsToFloat(u2);
41 fdata.xyz += uintBitsToFloat(u3);
42 fdata += uintBitsToFloat(u4);
43
44 fragColor = (idata == udata) ? fdata : fdata + vec4(0.2);
45}