• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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