#version 310 es | |
precision mediump float; | |
uniform int c, d; | |
in float x; | |
out float color; | |
uniform 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: | |
} | |
} |