143 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			143 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
#version 310 es
 | 
						|
precision mediump float;
 | 
						|
flat in int c, d;
 | 
						|
in float x;
 | 
						|
out float color;
 | 
						|
in vec4 v;
 | 
						|
 | 
						|
vec4 foo1(vec4 v1, vec4 v2, int i1)
 | 
						|
{
 | 
						|
    switch (i1)
 | 
						|
    {
 | 
						|
    case 0:
 | 
						|
        return v1;
 | 
						|
    case 2:
 | 
						|
    case 1:
 | 
						|
        return v2;
 | 
						|
    case 3:
 | 
						|
        return v1 * v2;
 | 
						|
    }
 | 
						|
 | 
						|
    return vec4(0.0);
 | 
						|
}
 | 
						|
 | 
						|
vec4 foo2(vec4 v1, vec4 v2, int i1)
 | 
						|
{
 | 
						|
    switch (i1)
 | 
						|
    {
 | 
						|
    case 0:
 | 
						|
        return v1;
 | 
						|
    case 2:
 | 
						|
        return vec4(1.0);
 | 
						|
    case 1:
 | 
						|
        return v2;
 | 
						|
    case 3:
 | 
						|
        return v1 * v2;
 | 
						|
    }
 | 
						|
 | 
						|
    return vec4(0.0);
 | 
						|
}
 | 
						|
 | 
						|
void main()
 | 
						|
{
 | 
						|
    float f;
 | 
						|
    int a[2];
 | 
						|
    int local = c;
 | 
						|
 | 
						|
    switch(++local)
 | 
						|
    {
 | 
						|
    }
 | 
						|
 | 
						|
    switch (c) {
 | 
						|
    case 1:
 | 
						|
        f = sin(x);
 | 
						|
        break;
 | 
						|
    case 2:
 | 
						|
        f = cos(x);
 | 
						|
        break;
 | 
						|
    default:
 | 
						|
        f = tan(x);
 | 
						|
    }
 | 
						|
 | 
						|
    switch (c) {
 | 
						|
    case 1:
 | 
						|
        f += sin(x);
 | 
						|
    case 2:
 | 
						|
        f += cos(x);
 | 
						|
        break;
 | 
						|
    default:
 | 
						|
        f += tan(x);
 | 
						|
    }
 | 
						|
 | 
						|
    switch (c) {
 | 
						|
    case 1:
 | 
						|
        f += sin(x);
 | 
						|
        break;
 | 
						|
    case 2:
 | 
						|
        f += cos(x);
 | 
						|
        break;
 | 
						|
    }
 | 
						|
 | 
						|
    switch (c) {
 | 
						|
    case 1:
 | 
						|
        f += sin(x);
 | 
						|
        break;
 | 
						|
    case 2:
 | 
						|
        switch (d) {
 | 
						|
        case 1:
 | 
						|
            f += x * x * x;
 | 
						|
            break;
 | 
						|
        case 2:
 | 
						|
            f += x * x;
 | 
						|
            break;
 | 
						|
        }
 | 
						|
        break;
 | 
						|
    default:
 | 
						|
        f += tan(x);
 | 
						|
    }
 | 
						|
 | 
						|
    for (int i = 0; i < 10; ++i) {
 | 
						|
        switch (c) {
 | 
						|
        case 1:
 | 
						|
            f += sin(x);
 | 
						|
            for (int j = 20; j < 30; ++j) {
 | 
						|
                ++f;
 | 
						|
                if (f < 100.2)
 | 
						|
                    break;
 | 
						|
            }
 | 
						|
            break;
 | 
						|
        case 2:
 | 
						|
            f += cos(x);
 | 
						|
            break;
 | 
						|
            break;
 | 
						|
        default:
 | 
						|
            f += tan(x);
 | 
						|
        }
 | 
						|
 | 
						|
        if (f < 3.43)
 | 
						|
            break;
 | 
						|
    }
 | 
						|
 | 
						|
    switch (c) {
 | 
						|
    case 1:
 | 
						|
        f += sin(x);
 | 
						|
        break;
 | 
						|
    case 2:
 | 
						|
        // test no statements at end
 | 
						|
    }
 | 
						|
 | 
						|
    color = f + float(local);
 | 
						|
 | 
						|
    color += foo1(v,v,c).y;
 | 
						|
    color += foo2(v,v,c).z;
 | 
						|
 | 
						|
    switch (c) {
 | 
						|
    case 0: break;
 | 
						|
    default:
 | 
						|
    }
 | 
						|
 | 
						|
    switch (c) {
 | 
						|
    default:
 | 
						|
    }
 | 
						|
}
 |