blob: 3fceea2c3b88f05523de1b8479ab344d8c872354 [file] [log] [blame]
uniform half4 colorGreen, colorRed, colorBlack, colorWhite, testInputs;
// This test covers mix(vec, vec, bvec).
// See MixFloatES2 and MixBool for additional forms of mix.
half4 main(float2 coords) {
const half4 constBlack = half4(0, 0, 0, 1);
const half4 constWhite = half4(1);
const half4 constVal = half4(-1.25, 0, 0.75, 2.25);
const bool4 constTFTF = bool4(true, false, true, false);
bool4 FTFT = bool4(colorGreen);
bool4 TFTF = FTFT.wzyx;
return (mix(colorBlack.x, colorWhite.x, FTFT.x) == colorBlack.x &&
mix(colorBlack.xy, colorWhite.xy, FTFT.xy) == colorBlack.x1 &&
mix(colorBlack.xyz, colorWhite.xyz, FTFT.xyz) == colorBlack.x1z &&
mix(colorBlack.xyzw, colorWhite.xyzw, FTFT.xyzw) == colorBlack.x1z1 &&
mix(colorWhite.x, testInputs.x, TFTF.x) == testInputs.x &&
mix(colorWhite.xy, testInputs.xy, TFTF.xy) == testInputs.x1 &&
mix(colorWhite.xyz, testInputs.xyz, TFTF.xyz) == testInputs.x1z &&
mix(colorWhite.xyzw, testInputs.xyzw, TFTF.xyzw) == testInputs.x1z1 &&
mix(constWhite.x, constVal.x, constTFTF.x) == constVal.x &&
mix(constWhite.xy, constVal.xy, constTFTF.xy) == constVal.x1 &&
mix(constWhite.xyz, constVal.xyz, constTFTF.xyz) == constVal.x1z &&
mix(constWhite.xyzw, constVal.xyzw, constTFTF.xyzw) == constVal.x1z1)
? colorGreen : colorRed;
}