summaryrefslogtreecommitdiff
path: root/builtins
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2010-05-19 14:01:33 -0700
committerEric Anholt <eric@anholt.net>2010-06-01 15:15:05 -0700
commit5b9ac87941a11c72a220ba14c25cf0f8bc5acffa (patch)
tree476f8cf8e317b9bfa8ab344f3d369d5f97146a14 /builtins
parentda46e5f5345ed2fa9c74d135267f3d5729c04ed1 (diff)
builtins: Add support for reflect().
Fixes glsl-orangebook-ch06.frag parsing.
Diffstat (limited to 'builtins')
-rw-r--r--builtins/110/reflect58
1 files changed, 58 insertions, 0 deletions
diff --git a/builtins/110/reflect b/builtins/110/reflect
new file mode 100644
index 0000000..8238fdc
--- /dev/null
+++ b/builtins/110/reflect
@@ -0,0 +1,58 @@
+((function reflect
+ (signature float
+ (parameters
+ (declare (in) float i)
+ (declare (in) float n))
+ ((return (expression float -
+ (var_ref i)
+ (expression float *
+ (constant float (2.0))
+ (expression float *
+ (expression float dot
+ (var_ref n)
+ (var_ref i))
+ (var_ref n)))))))
+
+ (signature vec2
+ (parameters
+ (declare (in) vec2 i)
+ (declare (in) vec2 n))
+ ((return (expression vec2 -
+ (var_ref i)
+ (expression vec2 *
+ (constant float (2.0))
+ (expression vec2 *
+ (expression float dot
+ (var_ref n)
+ (var_ref i))
+ (var_ref n)))))))
+
+ (signature vec3
+ (parameters
+ (declare (in) vec3 i)
+ (declare (in) vec3 n))
+ ((return (expression vec3 -
+ (var_ref i)
+ (expression vec3 *
+ (constant float (2.0))
+ (expression vec3 *
+ (expression float dot
+ (var_ref n)
+ (var_ref i))
+ (var_ref n)))))))
+
+ (signature vec4
+ (parameters
+ (declare (in) vec4 i)
+ (declare (in) vec4 n))
+ ((return (expression vec4 -
+ (var_ref i)
+ (expression vec4 *
+ (constant float (2.0))
+ (expression vec4 *
+ (expression float dot
+ (var_ref n)
+ (var_ref i))
+ (var_ref n)))))))
+
+))