1uniform half2x2 testMatrix2x2; // equals (1, 2, 3, 4) 2uniform half4 colorGreen, colorRed; 3 4half4 main(float2 coords) { 5 half4 infiniteValue = half4(testMatrix2x2) / colorGreen.r; 6 half4 finiteValue = half4(testMatrix2x2) / colorGreen.g; 7 8 return ( (isinf(infiniteValue.x)) && 9 all(isinf(infiniteValue.xy)) && 10 all(isinf(infiniteValue.xyz)) && 11 all(isinf(infiniteValue.xyzw)) && 12 ! (isinf(finiteValue .x)) && 13 !any(isinf(finiteValue .xy)) && 14 !any(isinf(finiteValue .xyz)) && 15 !any(isinf(finiteValue .xyzw))) ? colorGreen : colorRed; 16} 17