From 855fcb22c1536a2c2b03c88bffa60eb7cc40ff0a Mon Sep 17 00:00:00 2001 From: Kenneth Graunke Date: Wed, 9 Jun 2010 13:52:32 -0700 Subject: [PATCH] Implement 'acos' builtin. This is tacked on to the end of the 'asin' file because acos calls asin, whech means asin needs to be defined first. Alphabetical order fail. --- builtin_function.cpp | 23 +++++++++++++++++++++++ builtins/110/asin | 23 +++++++++++++++++++++++ 2 files changed, 46 insertions(+) diff --git a/builtin_function.cpp b/builtin_function.cpp index 754a721..083fd31 100644 --- a/builtin_function.cpp +++ b/builtin_function.cpp @@ -196,6 +196,29 @@ static const char *builtins_110_asin = { " (expression vec4 *\n" " (constant float (0.0742610))\n" " (expression vec4 abs (var_ref x))))))))))\n" + ")\n" + "\n" + " (function acos\n" + " (signature float\n" + " (parameters\n" + " (declare (in) float x))\n" + " ((return (expression float - (constant float (1.5707963))\n" + " (call asin ((var_ref x)))))))\n" + " (signature vec2\n" + " (parameters\n" + " (declare (in) vec2 x))\n" + " ((return (expression vec2 - (constant float (1.5707963))\n" + " (call asin ((var_ref x)))))))\n" + " (signature vec3\n" + " (parameters\n" + " (declare (in) vec3 x))\n" + " ((return (expression vec3 - (constant float (1.5707963))\n" + " (call asin ((var_ref x)))))))\n" + " (signature vec4\n" + " (parameters\n" + " (declare (in) vec4 x))\n" + " ((return (expression vec4 - (constant float (1.5707963))\n" + " (call asin ((var_ref x)))))))\n" "))\n" }; diff --git a/builtins/110/asin b/builtins/110/asin index 0c913b6..5e1d167 100644 --- a/builtins/110/asin +++ b/builtins/110/asin @@ -86,4 +86,27 @@ (expression vec4 * (constant float (0.0742610)) (expression vec4 abs (var_ref x)))))))))) +) + + (function acos + (signature float + (parameters + (declare (in) float x)) + ((return (expression float - (constant float (1.5707963)) + (call asin ((var_ref x))))))) + (signature vec2 + (parameters + (declare (in) vec2 x)) + ((return (expression vec2 - (constant float (1.5707963)) + (call asin ((var_ref x))))))) + (signature vec3 + (parameters + (declare (in) vec3 x)) + ((return (expression vec3 - (constant float (1.5707963)) + (call asin ((var_ref x))))))) + (signature vec4 + (parameters + (declare (in) vec4 x)) + ((return (expression vec4 - (constant float (1.5707963)) + (call asin ((var_ref x))))))) )) -- 2.7.4