mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-24 17:30:12 +01:00
Implement "sin" and "cos" builtins via new expression operators.
This commit is contained in:
parent
6a9b1e1f06
commit
57e7da173e
4 changed files with 55 additions and 0 deletions
21
builtins/110/cos
Normal file
21
builtins/110/cos
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
((function cos
|
||||
(signature float
|
||||
(parameters
|
||||
(declare (in) float angle))
|
||||
((return (expression float cos (var_ref angle)))))
|
||||
|
||||
(signature vec2
|
||||
(parameters
|
||||
(declare (in) vec2 angle))
|
||||
((return (expression vec2 cos (var_ref angle)))))
|
||||
|
||||
(signature vec3
|
||||
(parameters
|
||||
(declare (in) vec3 angle))
|
||||
((return (expression vec3 cos (var_ref angle)))))
|
||||
|
||||
(signature vec4
|
||||
(parameters
|
||||
(declare (in) vec4 angle))
|
||||
((return (expression vec4 cos (var_ref angle)))))
|
||||
))
|
||||
21
builtins/110/sin
Normal file
21
builtins/110/sin
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
((function sin
|
||||
(signature float
|
||||
(parameters
|
||||
(declare (in) float angle))
|
||||
((return (expression float sin (var_ref angle)))))
|
||||
|
||||
(signature vec2
|
||||
(parameters
|
||||
(declare (in) vec2 angle))
|
||||
((return (expression vec2 sin (var_ref angle)))))
|
||||
|
||||
(signature vec3
|
||||
(parameters
|
||||
(declare (in) vec3 angle))
|
||||
((return (expression vec3 sin (var_ref angle)))))
|
||||
|
||||
(signature vec4
|
||||
(parameters
|
||||
(declare (in) vec4 angle))
|
||||
((return (expression vec4 sin (var_ref angle)))))
|
||||
))
|
||||
5
ir.cpp
5
ir.cpp
|
|
@ -73,6 +73,9 @@ ir_expression::get_num_operands(ir_expression_operation op)
|
|||
1, /* ir_unop_ceil */
|
||||
1, /* ir_unop_floor */
|
||||
|
||||
1, /* ir_unop_sin */
|
||||
1, /* ir_unop_cos */
|
||||
|
||||
2, /* ir_binop_add */
|
||||
2, /* ir_binop_sub */
|
||||
2, /* ir_binop_mul */
|
||||
|
|
@ -131,6 +134,8 @@ static const char *const operator_strs[] = {
|
|||
"trunc",
|
||||
"ceil",
|
||||
"floor",
|
||||
"sin",
|
||||
"cos",
|
||||
"+",
|
||||
"-",
|
||||
"*",
|
||||
|
|
|
|||
8
ir.h
8
ir.h
|
|
@ -449,6 +449,14 @@ enum ir_expression_operation {
|
|||
ir_unop_floor,
|
||||
/*@}*/
|
||||
|
||||
/**
|
||||
* \name Trigonometric operations.
|
||||
*/
|
||||
/*@{*/
|
||||
ir_unop_sin,
|
||||
ir_unop_cos,
|
||||
/*@}*/
|
||||
|
||||
ir_binop_add,
|
||||
ir_binop_sub,
|
||||
ir_binop_mul,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue