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.
21 lines
450 B
Plaintext
21 lines
450 B
Plaintext
|
|
export uniform int width() { return programCount; }
|
|
|
|
|
|
|
|
void foo(varying float * uniform a) {
|
|
*a = 0;
|
|
}
|
|
|
|
export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) {
|
|
float a = aFOO[programIndex];
|
|
float x[10];
|
|
uniform int i;
|
|
cfor (i = 0; i < 10; ++i)
|
|
x[i] = a*b;
|
|
foo(&x[b]);
|
|
RET[programIndex] = x[5] + x[9];
|
|
}
|
|
|
|
export void result(uniform float RET[]) { RET[programIndex] = 5 * (programIndex+1); }
|