John Stiles | dec5ff2 | 2021-08-25 13:54:34 -0400 | [diff] [blame^] | 1 | uniform half4 testInputs; // equals (-1.25, 0, 0.75, 2.25) |
| 2 | uniform half4 colorGreen, colorRed; |
| 3 | |
| 4 | half4 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 | } |