Implement "cross" builtin.

This commit is contained in:
Kenneth Graunke 2010-05-03 21:29:01 -07:00 committed by Ian Romanick
parent d9bda3c29d
commit 6a9b1e1f06
1 changed files with 17 additions and 0 deletions

17
builtins/110/cross Normal file
View File

@ -0,0 +1,17 @@
((function cross
(signature vec3
(parameters
(declare (in) vec3 arg0)
(declare (in) vec3 arg1))
((declare () vec3 t)
(assign (constant bool (1)) (swiz x (var_ref t))
(expression float - (expression float * (swiz y (var_ref arg0)) (swiz z (var_ref arg1)))
(expression float * (swiz y (var_ref arg1)) (swiz z (var_ref arg0)))))
(assign (constant bool (1)) (swiz y (var_ref t))
(expression float - (expression float * (swiz z (var_ref arg0)) (swiz x (var_ref arg1)))
(expression float * (swiz z (var_ref arg1)) (swiz x (var_ref arg0)))))
(assign (constant bool (1)) (swiz z (var_ref t))
(expression float - (expression float * (swiz x (var_ref arg0)) (swiz y (var_ref arg1)))
(expression float * (swiz x (var_ref arg1)) (swiz y (var_ref arg0)))))
(return (var_ref t))))
))