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.
13 lines
368 B
Plaintext
13 lines
368 B
Plaintext
// Can't convert from type "varying float" to type "uniform float" for initializer
|
|
|
|
struct Point {
|
|
uniform float x, y, z;
|
|
};
|
|
|
|
export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) {
|
|
float a = aFOO[programIndex];
|
|
uniform Point * uniform buf = uniform new uniform Point(a, b, 1234.);
|
|
RET[programIndex] = buf->y;
|
|
delete buf;
|
|
}
|