| ((function faceforward |
| (signature float |
| (parameters |
| (declare (in) float N) |
| (declare (in) float I) |
| (declare (in) float Nref)) |
| ((if (expression bool < (expression float dot (var_ref Nref) (var_ref I)) (constant float (0))) |
| ((return (var_ref N))) |
| ((return (expression float neg (var_ref N))))))) |
| |
| (signature vec2 |
| (parameters |
| (declare (in) vec2 N) |
| (declare (in) vec2 I) |
| (declare (in) vec2 Nref)) |
| ((if (expression bool < (expression float dot (var_ref Nref) (var_ref I)) (constant float (0))) |
| ((return (var_ref N))) |
| ((return (expression vec2 neg (var_ref N))))))) |
| |
| (signature vec3 |
| (parameters |
| (declare (in) vec3 N) |
| (declare (in) vec3 I) |
| (declare (in) vec3 Nref)) |
| ((if (expression bool < (expression float dot (var_ref Nref) (var_ref I)) (constant float (0))) |
| ((return (var_ref N))) |
| ((return (expression vec3 neg (var_ref N))))))) |
| |
| (signature vec4 |
| (parameters |
| (declare (in) vec4 N) |
| (declare (in) vec4 I) |
| (declare (in) vec4 Nref)) |
| ((if (expression bool < (expression float dot (var_ref Nref) (var_ref I)) (constant float (0))) |
| ((return (var_ref N))) |
| ((return (expression vec4 neg (var_ref N))))))) |
| )) |