Implement "step" builtin.

This commit is contained in:
Kenneth Graunke
2010-04-30 15:18:07 -07:00
committed by Ian Romanick
parent 9287ecc3aa
commit a2b63d3ed1
+68
View File
@@ -0,0 +1,68 @@
((function step
(signature float
(parameters
(declare (in) float edge)
(declare (in) float x))
((return (expression float b2f (expression bool < (var_ref x) (var_ref edge))))))
(signature vec2
(parameters
(declare (in) float edge)
(declare (in) vec2 x))
((declare () vec2 t)
(assign (constant bool (1)) (swiz x (var_ref t)) (expression float b2f (expression bool < (swiz x (var_ref x))(var_ref edge))))
(assign (constant bool (1)) (swiz y (var_ref t)) (expression float b2f (expression bool < (swiz y (var_ref x))(var_ref edge))))
(return (var_ref t))))
(signature vec3
(parameters
(declare (in) float edge)
(declare (in) vec3 x))
((declare () vec3 t)
(assign (constant bool (1)) (swiz x (var_ref t)) (expression float b2f (expression bool < (swiz x (var_ref x))(var_ref edge))))
(assign (constant bool (1)) (swiz y (var_ref t)) (expression float b2f (expression bool < (swiz y (var_ref x))(var_ref edge))))
(assign (constant bool (1)) (swiz z (var_ref t)) (expression float b2f (expression bool < (swiz z (var_ref x))(var_ref edge))))
(return (var_ref t))))
(signature vec4
(parameters
(declare (in) float edge)
(declare (in) vec4 x))
((declare () vec4 t)
(assign (constant bool (1)) (swiz x (var_ref t)) (expression float b2f (expression bool < (swiz x (var_ref x))(var_ref edge))))
(assign (constant bool (1)) (swiz y (var_ref t)) (expression float b2f (expression bool < (swiz y (var_ref x))(var_ref edge))))
(assign (constant bool (1)) (swiz z (var_ref t)) (expression float b2f (expression bool < (swiz z (var_ref x))(var_ref edge))))
(assign (constant bool (1)) (swiz w (var_ref t)) (expression float b2f (expression bool < (swiz w (var_ref x))(var_ref edge))))
(return (var_ref t))))
(signature vec2
(parameters
(declare (in) vec2 edge)
(declare (in) vec2 x))
((declare () vec2 t)
(assign (constant bool (1)) (swiz x (var_ref t)) (expression float b2f (expression bool < (swiz x (var_ref x))(swiz x (var_ref edge)))))
(assign (constant bool (1)) (swiz y (var_ref t)) (expression float b2f (expression bool < (swiz y (var_ref x))(swiz y (var_ref edge)))))
(return (var_ref t))))
(signature vec3
(parameters
(declare (in) vec3 edge)
(declare (in) vec3 x))
((declare () vec3 t)
(assign (constant bool (1)) (swiz x (var_ref t)) (expression float b2f (expression bool < (swiz x (var_ref x))(swiz x (var_ref edge)))))
(assign (constant bool (1)) (swiz y (var_ref t)) (expression float b2f (expression bool < (swiz y (var_ref x))(swiz y (var_ref edge)))))
(assign (constant bool (1)) (swiz z (var_ref t)) (expression float b2f (expression bool < (swiz z (var_ref x))(swiz z (var_ref edge)))))
(return (var_ref t))))
(signature vec4
(parameters
(declare (in) vec4 edge)
(declare (in) vec4 x))
((declare () vec4 t)
(assign (constant bool (1)) (swiz x (var_ref t)) (expression float b2f (expression bool < (swiz x (var_ref x))(swiz x (var_ref edge)))))
(assign (constant bool (1)) (swiz y (var_ref t)) (expression float b2f (expression bool < (swiz y (var_ref x))(swiz y (var_ref edge)))))
(assign (constant bool (1)) (swiz z (var_ref t)) (expression float b2f (expression bool < (swiz y (var_ref x))(swiz z (var_ref edge)))))
(assign (constant bool (1)) (swiz w (var_ref t)) (expression float b2f (expression bool < (swiz w (var_ref x))(swiz w (var_ref edge)))))
(return (var_ref t))))
))