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.
15 lines
242 B
Plaintext
15 lines
242 B
Plaintext
// Illegal to assign to type "uniform struct Bar" in type "uniform struct Foo" due to element "a" with type "const varying int32"
|
|
|
|
struct Bar {
|
|
const int a;
|
|
};
|
|
|
|
struct Foo {
|
|
struct Bar b;
|
|
};
|
|
|
|
void foo(Foo f) {
|
|
Foo g;
|
|
g = f;
|
|
}
|