1uniform half4 colorGreen, colorRed; 2 3half4 main(float2) { 4 float4 scalar; 5 float4 array[1]; 6 7 // Test swizzled-lvalue assignment on a scalar. 8 scalar = float4(colorGreen) * 0.5; // 0, 0.5, 0, 0.5 9 scalar.a = 2.0; // 0, 0.5, 0, 2 10 scalar.g /= 0.25; // 0, 2, 0, 2 11 scalar.gba *= float3x3(0.5); // 0, 1, 0, 1 12 scalar.bgar += float4(0.25, 0.0, 0.0, 0.75); // 0.75, 1, 0.25, 1 13 scalar.r += scalar.a <= 1.0 ? scalar.b : 0.0; // 1, 1, 0.25, 1 14 15 // Test swizzled-lvalue assignment on an array element. 16 array[0] = float4(colorGreen) * 0.5; // 0, 0.5, 0, 0.5 17 array[0].a = 2.0; // 0, 0.5, 0, 2 18 array[0].g /= 0.25; // 0, 2, 0, 2 19 array[0].gba *= float3x3(0.5); // 0, 1, 0, 1 20 array[0].bgar += float4(0.25, 0.0, 0.0, 0.75); // 0.75, 1, 0.25, 1 21 array[0].r += array[0].a <= 1.0 ? array[0].b : 0.0; // 1, 1, 0.25, 1 22 23 return (scalar == float4(1, 1, 0.25, 1) && array[0] == float4(1, 1, 0.25, 1)) ? colorGreen 24 : colorRed; 25} 26