struct S { float2 v; }; void initialize(out S[2] z) { z[0].v = float2(0, 1); z[1].v = float2(2, 1); } half4 main(float2 coords) { float2 x[2]; x[0] = float2( 0, 0); x[1] = float2( 1, 0); float2 y[2]; y[0] = float2( 0, 1); y[1] = float2(-1, 2); S z[2]; initialize(z); return half4(x[0][0] * x[0][1] + z[0].v[0], // R=0 x[1][0] - x[1][1] * z[0].v[1], // G=1 y[0][0] / y[0][1] / z[1].v[0], // B=0 y[1][0] + y[1][1] * z[1].v[1]); // A=1 }