skia2/resources/sksl/shared/StructsInFunctions.sksl

31 lines
503 B
Plaintext
Raw Normal View History

/*#pragma settings NoInline*/
uniform half4 colorRed, colorGreen;
struct S { float x; int y; };
S returns_a_struct() {
S s;
s.x = 1;
s.y = 2;
return s;
}
float accepts_a_struct(S s) {
return s.x + float(s.y);
}
void modifies_a_struct(inout S s) {
s.x++;
s.y++;
}
half4 main() {
S s = returns_a_struct();
float x = accepts_a_struct(s);
modifies_a_struct(s);
bool valid = (x == 3) && (s.x == 2) && (s.y == 3);
return valid ? colorGreen : colorRed;
}