glsl: Add front-end support for GLSL 1.30's roundEven built-in.
authorKenneth Graunke <kenneth@whitecape.org>
Thu, 14 Oct 2010 20:40:26 +0000 (13:40 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Thu, 14 Oct 2010 22:59:47 +0000 (15:59 -0700)
Implemented using the op-code introduced in the previous commit.

src/glsl/builtins/ir/roundEven [new file with mode: 0644]
src/glsl/builtins/profiles/130.frag
src/glsl/builtins/profiles/130.vert

diff --git a/src/glsl/builtins/ir/roundEven b/src/glsl/builtins/ir/roundEven
new file mode 100644 (file)
index 0000000..a9c99b6
--- /dev/null
@@ -0,0 +1,21 @@
+((function roundEven
+   (signature float
+     (parameters
+       (declare (in) float arg0))
+     ((return (expression float round_even (var_ref arg0)))))
+
+   (signature vec2
+     (parameters
+       (declare (in) vec2 arg0))
+     ((return (expression vec2 round_even (var_ref arg0)))))
+
+   (signature vec3
+     (parameters
+       (declare (in) vec3 arg0))
+     ((return (expression vec3 round_even (var_ref arg0)))))
+
+   (signature vec4
+     (parameters
+       (declare (in) vec4 arg0))
+     ((return (expression vec4 round_even (var_ref arg0)))))
+))
index 51ee35ec0908e1204df9cfa30f13091cbbe6692b..c8b6319ae62f65f9b0ea55a9ac72ddfd344a914c 100644 (file)
@@ -148,6 +148,11 @@ vec2  trunc(vec2  x);
 vec3  trunc(vec3  x);
 vec4  trunc(vec4  x);
 
+float roundEven(float x);
+vec2  roundEven(vec2  x);
+vec3  roundEven(vec3  x);
+vec4  roundEven(vec4  x);
+
 float ceil(float x);
 vec2  ceil(vec2  x);
 vec3  ceil(vec3  x);
index d5674c27e2c96e937a08fac6343613b08fb3a468..9d1056f282f346d5aae4066d967fef0fa422c84e 100644 (file)
@@ -148,6 +148,11 @@ vec2  trunc(vec2  x);
 vec3  trunc(vec3  x);
 vec4  trunc(vec4  x);
 
+float roundEven(float x);
+vec2  roundEven(vec2  x);
+vec3  roundEven(vec3  x);
+vec4  roundEven(vec4  x);
+
 float ceil(float x);
 vec2  ceil(vec2  x);
 vec3  ceil(vec3  x);