103 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			GLSL
		
	
	
	
	
	
			
		
		
	
	
			103 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			GLSL
		
	
	
	
	
	
#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;
 | 
						|
}
 |