1uniform half4 colorGreen; 2 3inline void outParameterWrite(out half4 x) { 4 x = colorGreen; 5} 6 7inline void outParameterWriteIndirect(out half4 c) { 8 outParameterWrite(c); 9} 10 11inline void inoutParameterWrite(inout half4 x) { 12 x *= x; 13} 14 15inline void inoutParameterWriteIndirect(inout half4 x) { 16 inoutParameterWrite(x); 17} 18 19inline void inoutParameterRead(inout half4 x) { 20 half4 scratch = x * x; 21} 22 23inline void inoutParameterIgnore(inout half4 x) { 24 half4 scratch = colorGreen * colorGreen; 25} 26 27half4 main(float2 coords) { 28 half4 c; 29 30 // These functions write to their `out` param. 31 outParameterWrite(c); 32 outParameterWriteIndirect(c); 33 inoutParameterWrite(c); 34 inoutParameterWriteIndirect(c); 35 36 // These functions don't write to their `out` param. 37 inoutParameterRead(c); 38 inoutParameterIgnore(c); 39 40 return c; 41} 42