summaryrefslogtreecommitdiffstats
path: root/src/glsl
diff options
context:
space:
mode:
Diffstat (limited to 'src/glsl')
-rw-r--r--src/glsl/builtin_function.cpp88
1 files changed, 88 insertions, 0 deletions
diff --git a/src/glsl/builtin_function.cpp b/src/glsl/builtin_function.cpp
index f65f91f6b79..a919aff8acb 100644
--- a/src/glsl/builtin_function.cpp
+++ b/src/glsl/builtin_function.cpp
@@ -1857,6 +1857,50 @@ static const char *builtin_mod =
"))\n"
""
;
+static const char *builtin_modf =
+ "((function modf\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in) float x)\n"
+ " (declare (out) float i))\n"
+ " ((declare () float t)\n"
+ " (assign (constant bool (1)) (x) (var_ref t)\n"
+ " (expression float trunc (var_ref x)))\n"
+ " (assign (constant bool (1)) (x) (var_ref i) (var_ref t))\n"
+ " (return (expression float - (var_ref x) (var_ref t)))))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in) vec2 x)\n"
+ " (declare (out) vec2 i))\n"
+ " ((declare () vec2 t)\n"
+ " (assign (constant bool (1)) (xy) (var_ref t)\n"
+ " (expression vec2 trunc (var_ref x)))\n"
+ " (assign (constant bool (1)) (xy) (var_ref i) (var_ref t))\n"
+ " (return (expression vec2 - (var_ref x) (var_ref t)))))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in) vec3 x)\n"
+ " (declare (out) vec3 i))\n"
+ " ((declare () vec3 t)\n"
+ " (assign (constant bool (1)) (xyz) (var_ref t)\n"
+ " (expression vec3 trunc (var_ref x)))\n"
+ " (assign (constant bool (1)) (xyz) (var_ref i) (var_ref t))\n"
+ " (return (expression vec3 - (var_ref x) (var_ref t)))))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in) vec4 x)\n"
+ " (declare (out) vec4 i))\n"
+ " ((declare () vec4 t)\n"
+ " (assign (constant bool (1)) (xyzw) (var_ref t)\n"
+ " (expression vec4 trunc (var_ref x)))\n"
+ " (assign (constant bool (1)) (xyzw) (var_ref i) (var_ref t))\n"
+ " (return (expression vec4 - (var_ref x) (var_ref t)))))\n"
+ "))\n"
+ ""
+;
static const char *builtin_noise1 =
"((function noise1\n"
" (signature float\n"
@@ -13419,6 +13463,27 @@ static const char *prototypes_for_130_frag =
" (declare (in) vec4 x)\n"
" (declare (in) vec4 y))\n"
" ()))\n"
+ "(function modf\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in) float x)\n"
+ " (declare (out) float i))\n"
+ " ())\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in) vec2 x)\n"
+ " (declare (out) vec2 i))\n"
+ " ())\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in) vec3 x)\n"
+ " (declare (out) vec3 i))\n"
+ " ())\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in) vec4 x)\n"
+ " (declare (out) vec4 i))\n"
+ " ()))\n"
"(function min\n"
" (signature float\n"
" (parameters\n"
@@ -15946,6 +16011,7 @@ static const char *functions_for_130_frag [] = {
builtin_min,
builtin_mix,
builtin_mod,
+ builtin_modf,
builtin_noise1,
builtin_noise2,
builtin_noise3,
@@ -16536,6 +16602,27 @@ static const char *prototypes_for_130_vert =
" (declare (in) vec4 x)\n"
" (declare (in) vec4 y))\n"
" ()))\n"
+ "(function modf\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in) float x)\n"
+ " (declare (out) float i))\n"
+ " ())\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in) vec2 x)\n"
+ " (declare (out) vec2 i))\n"
+ " ())\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in) vec3 x)\n"
+ " (declare (out) vec3 i))\n"
+ " ())\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in) vec4 x)\n"
+ " (declare (out) vec4 i))\n"
+ " ()))\n"
"(function min\n"
" (signature float\n"
" (parameters\n"
@@ -19014,6 +19101,7 @@ static const char *functions_for_130_vert [] = {
builtin_min,
builtin_mix,
builtin_mod,
+ builtin_modf,
builtin_noise1,
builtin_noise2,
builtin_noise3,