123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- #version 310 es
- precision mediump float;
- flat in uvec2 t;
- in float f;
- in vec2 tc;
- flat in uvec4 v;
- flat in int i;
- bool b;
- out uvec4 c;
- uniform mediump usampler2D usampler;
- void main()
- {
- int count = 1;
- uint u = t.y + 3u;
- const uint cu1 = 0xFFFFFFFFU;
- const uint cu2 = -1u; // 0xFFFFFFFF
- const uint cu3 = 1U;
- const uint cu4 = 1u;
- if (cu1 == cu2)
- count *= 2; // 2
- if (cu3 == cu4)
- count *= 3; // 6
- if (cu2 == cu3)
- count *= 5; // not done
- const int cshiftedii = 0xFFFFFFFF >> 10;
- const uint cushiftedui = 0xFFFFFFFFu >> 10;
- const int cshiftediu = 0xFFFFFFFF >> 10u;
- const uint cushifteduu = 0xFFFFFFFFu >> 10u;
- if (cshiftedii == cshiftediu)
- count *= 7; // 42
- if (cushiftedui == cushifteduu)
- count *= 11; // 462
- if (cshiftedii == int(cushiftedui))
- count *= 13; // not done
- int shiftedii = 0xFFFFFFFF >> 10;
- uint shiftedui = 0xFFFFFFFFu >> 10;
- int shiftediu = 0xFFFFFFFF >> 10u;
- uint shifteduu = 0xFFFFFFFFu >> 10u;
- if (shiftedii == shiftediu)
- c = texture(usampler, tc);
- if (shiftedui == shifteduu)
- c = texture(usampler, tc + float(1u));
- if (shiftedii == int(shiftedui))
- c = texture(usampler, tc - vec2(2u));
- if (t.x > 4u) {
- float af = float(u);
- bool ab = bool(u);
- int ai = int(u);
- c += uvec4(uint(af), uint(ab), uint(ai), count);
- }
- const uint cmask1 = 0x0A1u;
- const uint cmask2 = 0xA10u;
- const uint cmask3 = cmask1 << 4;
- const uint cmask4 = 0xAB1u;
- if (cmask3 == cmask2)
- count *= 17; // 7854
- if ((cmask3 & cmask1) != 0u)
- count *= 19; // not done
- if ((cmask1 | cmask3) == cmask4)
- count *= 23; // 180642
- if ((cmask1 ^ cmask4) == 0xA10u)
- count *= 27; // 4877334
- uint mask1 = 0x0A1u;
- uint mask2 = 0xA10u;
- uint mask3 = mask1 << 4;
- uint mask4 = 0xAB1u;
- if (mask3 == mask2)
- count *= 2; // 9754668
- if ((mask3 & mask1) != 0u)
- count *= 3; // not done
- if ((mask1 | mask3) == mask4)
- count *= 5; // 48773340
- if ((mask1 ^ mask4) == 0xA10u)
- count *= 7; // 341413380
- c += uvec4(count);
- #define UINT_MAX 4294967295u
- c.x += UINT_MAX;
- }
|