Rex Xu | cbc426e | 2015-12-15 16:03:10 +0800 | [diff] [blame] | 1 | #version 450
|
| 2 |
|
John Kessenich | 6c292d3 | 2016-02-15 20:58:50 -0700 | [diff] [blame] | 3 | flat in int i1;
|
| 4 | flat in ivec2 i2;
|
| 5 | flat in ivec3 i3;
|
| 6 | flat in ivec4 i4;
|
Rex Xu | cbc426e | 2015-12-15 16:03:10 +0800 | [diff] [blame] | 7 |
|
John Kessenich | 6c292d3 | 2016-02-15 20:58:50 -0700 | [diff] [blame] | 8 | flat in uint u1;
|
| 9 | flat in uvec2 u2;
|
| 10 | flat in uvec3 u3;
|
| 11 | flat in uvec4 u4;
|
Rex Xu | cbc426e | 2015-12-15 16:03:10 +0800 | [diff] [blame] | 12 |
|
John Kessenich | 6c292d3 | 2016-02-15 20:58:50 -0700 | [diff] [blame] | 13 | in float f1;
|
| 14 | in vec2 f2;
|
| 15 | in vec3 f3;
|
| 16 | in vec4 f4;
|
Rex Xu | cbc426e | 2015-12-15 16:03:10 +0800 | [diff] [blame] | 17 |
|
| 18 | out vec4 fragColor;
|
| 19 |
|
| 20 | void 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 | } |