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