29 lines
1.5 KiB
Plaintext
29 lines
1.5 KiB
Plaintext
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;
|
|
}
|