Switches with both uniform and varying "switch" expressions are supported. Switch statements with varying expressions and very large numbers of labels may not perform well; some issues to be filed shortly will track opportunities for improving these.
25 lines
484 B
Plaintext
25 lines
484 B
Plaintext
|
|
export uniform int width() { return programCount; }
|
|
|
|
int switchit(int a, uniform int b) {
|
|
int r = 0;
|
|
switch (a) {
|
|
case 3:
|
|
r = 1;
|
|
break;
|
|
default:
|
|
r = 0;
|
|
}
|
|
return r;
|
|
}
|
|
|
|
export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) {
|
|
int a = aFOO[programIndex];
|
|
int x = switchit(a, b);
|
|
RET[programIndex] = x;
|
|
}
|
|
|
|
export void result(uniform float RET[]) {
|
|
RET[programIndex] = (programIndex == 2) ? 1 : 0;
|
|
}
|