106 lines
2.6 KiB
GLSL
106 lines
2.6 KiB
GLSL
#version 300 es
|
|
in uvec2 badu; // ERROR
|
|
flat in uvec2 t;
|
|
in highp float f;
|
|
in highp vec2 tc;
|
|
in bool bad; // ERROR
|
|
uniform uvec4 v;
|
|
uniform int i;
|
|
uniform bool b;
|
|
|
|
out uvec4 c;
|
|
|
|
uniform lowp usampler2D usampler;
|
|
|
|
void main()
|
|
{
|
|
int count = 1;
|
|
|
|
uint u = t.y + 3u;
|
|
const uint cu1error = 0xFFFFFFFF; // ERROR
|
|
const uint cu1 = 0xFFFFFFFFU;
|
|
const uint cu2 = -1u; // 0xFFFFFFFF
|
|
const uint cu3 = 1U;
|
|
const uint cu4error = 1; // ERROR
|
|
const uint cu4 = 1u;
|
|
|
|
if (cu1 == cu2)
|
|
count *= 2; // done
|
|
if (cu3 == cu4)
|
|
count *= 3; // done
|
|
if (cu2 == cu3)
|
|
count *= 5; // not done
|
|
|
|
const uint cushiftediierror = 0xFFFFFFFF >> 10; // ERROR
|
|
const int cshiftedii = 0xFFFFFFFF >> 10;
|
|
const uint cushiftedui = 0xFFFFFFFFu >> 10;
|
|
const uint cushiftediuerror = 0xFFFFFFFF >> 10u; // ERROR
|
|
const int cshiftediu = 0xFFFFFFFF >> 10u;
|
|
const uint cushifteduu = 0xFFFFFFFFu >> 10u;
|
|
|
|
if (cshiftedii == cshiftediu)
|
|
count *= 7; // done
|
|
if (cushiftedui == cushifteduu)
|
|
count *= 11; // done
|
|
if (cshiftedii == int(cushiftedui))
|
|
count *= 13; // not done
|
|
|
|
uint shiftediierror = 0xFFFFFFFF >> 10; // ERROR
|
|
int shiftedii = 0xFFFFFFFF >> 10;
|
|
uint shiftedui = 0xFFFFFFFFu >> 10;
|
|
uint shiftediuerror = 0xFFFFFFFF >> 10u; // ERROR
|
|
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; // done
|
|
|
|
if ((cmask3 & cmask1) != 0u)
|
|
count *= 19; // not done
|
|
|
|
if ((cmask1 | cmask3) == cmask4)
|
|
count *= 23; // done
|
|
|
|
if ((cmask1 ^ cmask4) == 0xA10u)
|
|
count *= 27; // done
|
|
|
|
uint mask1 = 0x0A1u;
|
|
uint mask2 = 0xA10u;
|
|
uint mask3 = mask1 << 4;
|
|
uint mask4 = 0xAB1u;
|
|
|
|
if (mask3 == mask2)
|
|
count *= 100;
|
|
|
|
if ((mask3 & mask1) != 0u)
|
|
count *= 101;
|
|
|
|
if ((mask1 | mask3) == mask4)
|
|
count *= 102;
|
|
|
|
if ((mask1 ^ mask4) == 0xA10u)
|
|
count *= 103;
|
|
|
|
c += uvec4(count);
|
|
}
|