1*c8dee2aaSAndroid Build Coastguard Worker 2*c8dee2aaSAndroid Build Coastguard Workerout vec4 sk_FragColor; 3*c8dee2aaSAndroid Build Coastguard Workeruniform vec4 N; 4*c8dee2aaSAndroid Build Coastguard Workeruniform vec4 I; 5*c8dee2aaSAndroid Build Coastguard Workeruniform vec4 NRef; 6*c8dee2aaSAndroid Build Coastguard Workeruniform vec4 colorGreen; 7*c8dee2aaSAndroid Build Coastguard Workeruniform vec4 colorRed; 8*c8dee2aaSAndroid Build Coastguard Workervec4 main() { 9*c8dee2aaSAndroid Build Coastguard Worker float huge = faceforward(1.0, 1e+30, 1e+30); 10*c8dee2aaSAndroid Build Coastguard Worker vec2 huge2 = faceforward(vec2(1.0), vec2(1e+30), vec2(1e+30)); 11*c8dee2aaSAndroid Build Coastguard Worker vec3 huge3 = faceforward(vec3(1.0), vec3(1e+30), vec3(1e+30)); 12*c8dee2aaSAndroid Build Coastguard Worker vec4 huge4 = faceforward(vec4(1.0), vec4(1e+30), vec4(1e+30)); 13*c8dee2aaSAndroid Build Coastguard Worker vec4 expectedPos = vec4(huge) + huge2.xxxx; 14*c8dee2aaSAndroid Build Coastguard Worker vec4 expectedNeg = huge3.xxxx + huge4.xxxx; 15*c8dee2aaSAndroid Build Coastguard Worker expectedPos = vec4(1.0, 2.0, 3.0, 4.0); 16*c8dee2aaSAndroid Build Coastguard Worker expectedNeg = vec4(-1.0, -2.0, -3.0, -4.0); 17*c8dee2aaSAndroid Build Coastguard Worker return ((((((faceforward(N.x, I.x, NRef.x) == expectedNeg.x && faceforward(N.xy, I.xy, NRef.xy) == expectedNeg.xy) && faceforward(N.xyz, I.xyz, NRef.xyz) == expectedPos.xyz) && faceforward(N, I, NRef) == expectedPos) && -1.0 == expectedNeg.x) && vec2(-1.0, -2.0) == expectedNeg.xy) && vec3(1.0, 2.0, 3.0) == expectedPos.xyz) && vec4(1.0, 2.0, 3.0, 4.0) == expectedPos ? colorGreen : colorRed; 18*c8dee2aaSAndroid Build Coastguard Worker} 19