1uniform half4 testInputs; // equals (-1.25, 0, 0.75, 2.25) 2uniform half4 colorGreen, colorRed; 3 4half4 main(float2 coords) { 5 // NOTE: the ES3 spec does not mandate NaN support. This test may not succeed on some GPUs. 6 7 half4 valueIsNaN = 0 / testInputs.yyyy; 8 half4 valueIsNumber = 1 / testInputs; 9 10 return ( (isnan(valueIsNaN.x)) && 11 all(isnan(valueIsNaN.xy)) && 12 all(isnan(valueIsNaN.xyz)) && 13 all(isnan(valueIsNaN.xyzw)) && 14 ! (isnan(valueIsNumber.x)) && 15 !any(isnan(valueIsNumber.xy)) && 16 !any(isnan(valueIsNumber.xyz)) && 17 !any(isnan(valueIsNumber.xyzw))) ? colorGreen : colorRed; 18} 19