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.
22 lines
376 B
Plaintext
22 lines
376 B
Plaintext
|
|
export uniform int width() { return programCount; }
|
|
|
|
struct Foo {
|
|
int a;
|
|
uniform float b;
|
|
};
|
|
|
|
void update(varying float<3> * uniform vp) {
|
|
vp->x = 0;
|
|
}
|
|
|
|
export void f_f(uniform float RET[], uniform float aFOO[]) {
|
|
float<3> v = { 1, 2, 3 };
|
|
update(&v);
|
|
RET[programIndex] = v.x;
|
|
}
|
|
|
|
export void result(uniform float RET[]) {
|
|
RET[programIndex] = 0;
|
|
}
|