/*#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; | |
} |