зеркало из https://github.com/stride3d/xkslang.git
143 строки
2.1 KiB
JavaScript
143 строки
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:
|
|
}
|
|
}
|