|  | uniform half4 colorGreen, colorRed; | 
|  |  | 
|  | half4 main(float2) { | 
|  | float4 scalar; | 
|  | float4 array[1]; | 
|  |  | 
|  | // Test swizzled-lvalue assignment on a scalar. | 
|  | scalar         = float4(colorGreen) * 0.5;             // 0,    0.5, 0,    0.5 | 
|  | scalar.a       = 2.0;                                  // 0,    0.5, 0,    2 | 
|  | scalar.g      /= 0.25;                                 // 0,    2,   0,    2 | 
|  | scalar.gba    *= float3x3(0.5);                        // 0,    1,   0,    1 | 
|  | scalar.bgar   += float4(0.25, 0.0, 0.0, 0.75);         // 0.75, 1,   0.25, 1 | 
|  | scalar.r      += scalar.a <= 1.0 ? scalar.b : 0.0;     // 1,    1,   0.25, 1 | 
|  |  | 
|  | // Test swizzled-lvalue assignment on an array element. | 
|  | array[0]       = float4(colorGreen) * 0.5;             // 0,    0.5, 0,    0.5 | 
|  | array[0].a     = 2.0;                                  // 0,    0.5, 0,    2 | 
|  | array[0].g    /= 0.25;                                 // 0,    2,   0,    2 | 
|  | array[0].gba  *= float3x3(0.5);                        // 0,    1,   0,    1 | 
|  | array[0].bgar += float4(0.25, 0.0, 0.0, 0.75);         // 0.75, 1,   0.25, 1 | 
|  | array[0].r    += array[0].a <= 1.0 ? array[0].b : 0.0; // 1,    1,   0.25, 1 | 
|  |  | 
|  | return (scalar == float4(1, 1, 0.25, 1) && array[0] == float4(1, 1, 0.25, 1)) ? colorGreen | 
|  | : colorRed; | 
|  | } |