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