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