xref: /aosp_15_r20/external/skia/tests/sksl/intrinsics/IsNan.glsl (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1*c8dee2aaSAndroid Build Coastguard Worker
2*c8dee2aaSAndroid Build Coastguard Workerout vec4 sk_FragColor;
3*c8dee2aaSAndroid Build Coastguard Workeruniform vec4 testInputs;
4*c8dee2aaSAndroid Build Coastguard Workeruniform vec4 colorGreen;
5*c8dee2aaSAndroid Build Coastguard Workeruniform vec4 colorRed;
6*c8dee2aaSAndroid Build Coastguard Workervec4 main() {
7*c8dee2aaSAndroid Build Coastguard Worker    vec4 valueIsNaN = 0.0 / testInputs.yyyy;
8*c8dee2aaSAndroid Build Coastguard Worker    vec4 valueIsNumber = 1.0 / testInputs;
9*c8dee2aaSAndroid Build Coastguard Worker    return ((((((isnan(valueIsNaN.x) && all(isnan(valueIsNaN.xy))) && all(isnan(valueIsNaN.xyz))) && all(isnan(valueIsNaN))) && !isnan(valueIsNumber.x)) && !any(isnan(valueIsNumber.xy))) && !any(isnan(valueIsNumber.xyz))) && !any(isnan(valueIsNumber)) ? colorGreen : colorRed;
10*c8dee2aaSAndroid Build Coastguard Worker}
11