#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); }