Implement "fract" builtin.

This commit is contained in:
Kenneth Graunke
2010-05-03 20:59:09 -07:00
committed by Ian Romanick
parent a4b7b5a654
commit d9bda3c29d
+34
View File
@@ -0,0 +1,34 @@
((function fract
(signature float
(parameters
(declare (in) float x))
((return (expression float - (var_ref x) (expression float floor (var_ref x))))))
(signature vec2
(parameters
(declare (in) vec2 x))
((declare () vec2 t)
(assign (constant bool (1)) (swiz x (var_ref t)) (expression float - (swiz x (var_ref x)) (expression float floor (swiz x (var_ref x)))))
(assign (constant bool (1)) (swiz y (var_ref t)) (expression float - (swiz y (var_ref x)) (expression float floor (swiz y (var_ref x)))))
(return (var_ref t))))
(signature vec3
(parameters
(declare (in) vec3 x))
((declare () vec3 t)
(assign (constant bool (1)) (swiz x (var_ref t)) (expression float - (swiz x (var_ref x)) (expression float floor (swiz x (var_ref x)))))
(assign (constant bool (1)) (swiz y (var_ref t)) (expression float - (swiz y (var_ref x)) (expression float floor (swiz y (var_ref x)))))
(assign (constant bool (1)) (swiz z (var_ref t)) (expression float - (swiz z (var_ref x)) (expression float floor (swiz z (var_ref x)))))
(return (var_ref t))))
(signature vec4
(parameters
(declare (in) vec4 x))
((declare () vec4 t)
(assign (constant bool (1)) (swiz x (var_ref t)) (expression float - (swiz x (var_ref x)) (expression float floor (swiz x (var_ref x)))))
(assign (constant bool (1)) (swiz y (var_ref t)) (expression float - (swiz y (var_ref x)) (expression float floor (swiz y (var_ref x)))))
(assign (constant bool (1)) (swiz z (var_ref t)) (expression float - (swiz z (var_ref x)) (expression float floor (swiz z (var_ref x)))))
(assign (constant bool (1)) (swiz w (var_ref t)) (expression float - (swiz w (var_ref x)) (expression float floor (swiz w (var_ref x)))))
(return (var_ref t))))
))