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