Now, if rate qualifiers aren't used to specify otherwise, varying pointers point to uniform types by default. As before, uniform pointers point to varying types by default. float *foo; // varying pointer to uniform float float * uniform foo; // uniform pointer to varying float These defaults seem to require the least amount of explicit uniform/varying qualifiers for most common cases, though TBD if it would be easier to have a single rule that e.g. the pointed-to type is always uniform by default.
25 lines
616 B
Plaintext
25 lines
616 B
Plaintext
|
|
export uniform int width() { return programCount; }
|
|
|
|
void update(varying float<2> * vp) {
|
|
vp->y = 0;
|
|
}
|
|
|
|
export void f_f(uniform float RET[], uniform float aFOO[]) {
|
|
float<2> v[programCount];
|
|
for (uniform int i = 0; i < programCount; ++i) {
|
|
v[i].x = 2*i;
|
|
v[i].y = 2*i+1;
|
|
}
|
|
|
|
int index = aFOO[programIndex] - 1;
|
|
update(&v[programIndex]);
|
|
//CO for (uniform int i = 0; i < programCount; ++i)
|
|
//CO print("%: % %\n", i, v[i].x, v[i].y);
|
|
RET[programIndex] = v[programIndex].x;
|
|
}
|
|
|
|
export void result(uniform float RET[]) {
|
|
RET[programIndex] = 2*programIndex;
|
|
}
|