1uniform half4 colorGreen, colorRed, colorBlack, colorWhite, testInputs; 2 3// This test covers mix(vec, vec, bvec). 4// See MixFloatES2 and MixBool for additional forms of mix. 5 6half4 main(float2 coords) { 7 const half4 constBlack = half4(0, 0, 0, 1); 8 const half4 constWhite = half4(1); 9 const half4 constVal = half4(-1.25, 0, 0.75, 2.25); 10 11 const bool4 constTFTF = bool4(true, false, true, false); 12 bool4 FTFT = bool4(colorGreen); 13 bool4 TFTF = FTFT.wzyx; 14 15 return (mix(colorBlack.x, colorWhite.x, FTFT.x) == colorBlack.x && 16 mix(colorBlack.xy, colorWhite.xy, FTFT.xy) == colorBlack.x1 && 17 mix(colorBlack.xyz, colorWhite.xyz, FTFT.xyz) == colorBlack.x1z && 18 mix(colorBlack.xyzw, colorWhite.xyzw, FTFT.xyzw) == colorBlack.x1z1 && 19 mix(colorWhite.x, testInputs.x, TFTF.x) == testInputs.x && 20 mix(colorWhite.xy, testInputs.xy, TFTF.xy) == testInputs.x1 && 21 mix(colorWhite.xyz, testInputs.xyz, TFTF.xyz) == testInputs.x1z && 22 mix(colorWhite.xyzw, testInputs.xyzw, TFTF.xyzw) == testInputs.x1z1 && 23 mix(constWhite.x, constVal.x, constTFTF.x) == constVal.x && 24 mix(constWhite.xy, constVal.xy, constTFTF.xy) == constVal.x1 && 25 mix(constWhite.xyz, constVal.xyz, constTFTF.xyz) == constVal.x1z && 26 mix(constWhite.xyzw, constVal.xyzw, constTFTF.xyzw) == constVal.x1z1) 27 ? colorGreen : colorRed; 28} 29