Module: wine Branch: master Commit: 89043af09f88925d33df02324d89d55af0ce6094 URL: http://source.winehq.org/git/wine.git/?a=commit;h=89043af09f88925d33df02324d...
Author: Paul Gofman gofmanp@gmail.com Date: Fri May 19 14:56:35 2017 +0300
d3dx9: Add 'atan' preshader opcode.
Signed-off-by: Paul Gofman gofmanp@gmail.com Signed-off-by: Matteo Bruni mbruni@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/d3dx9_36/preshader.c | 3 +++ dlls/d3dx9_36/tests/effect.c | 2 ++ 2 files changed, 5 insertions(+)
diff --git a/dlls/d3dx9_36/preshader.c b/dlls/d3dx9_36/preshader.c index 05618b9..72f6ff5 100644 --- a/dlls/d3dx9_36/preshader.c +++ b/dlls/d3dx9_36/preshader.c @@ -39,6 +39,7 @@ enum pres_ops PRESHADER_OP_COS, PRESHADER_OP_ASIN, PRESHADER_OP_ACOS, + PRESHADER_OP_ATAN, PRESHADER_OP_MIN, PRESHADER_OP_MAX, PRESHADER_OP_LT, @@ -129,6 +130,7 @@ static double pres_log(double *args, int n) } static double pres_asin(double *args, int n) {return to_signed_nan(asin(args[0]));} static double pres_acos(double *args, int n) {return to_signed_nan(acos(args[0]));} +static double pres_atan(double *args, int n) {return atan(args[0]);}
#define PRES_OPCODE_MASK 0x7ff00000 #define PRES_OPCODE_SHIFT 20 @@ -164,6 +166,7 @@ static const struct op_info pres_op_info[] = {0x109, "cos", 1, 0, pres_cos}, /* PRESHADER_OP_COS */ {0x10a, "asin", 1, 0, pres_asin}, /* PRESHADER_OP_ASIN */ {0x10b, "acos", 1, 0, pres_acos}, /* PRESHADER_OP_ACOS */ + {0x10c, "atan", 1, 0, pres_atan}, /* PRESHADER_OP_ATAN */ {0x200, "min", 2, 0, pres_min}, /* PRESHADER_OP_MIN */ {0x201, "max", 2, 0, pres_max}, /* PRESHADER_OP_MAX */ {0x202, "lt", 2, 0, pres_lt }, /* PRESHADER_OP_LT */ diff --git a/dlls/d3dx9_36/tests/effect.c b/dlls/d3dx9_36/tests/effect.c index b8c5737..ffdb1dd 100644 --- a/dlls/d3dx9_36/tests/effect.c +++ b/dlls/d3dx9_36/tests/effect.c @@ -4560,6 +4560,8 @@ static void test_effect_preshader_ops(IDirect3DDevice9 *device) {-0.3f, 4.0f, -2.2f, 3.402823466e+38f}, {1.0f, 2.0f, -3.0f, 4.0f}}, {"acos", 0x10b00001, 1, {0x3ff01006, 0xffc00000, 0xffc00000, 0xffc00000}, {-0.3f, 4.0f, -2.2f, 3.402823466e+38f}, {1.0f, 2.0f, -3.0f, 4.0f}}, + {"atan", 0x10c00001, 1, {0xbe9539d4, 0x3fa9b465, 0xbf927420, 0x3fc90fdb}, + {-0.3f, 4.0f, -2.2f, 3.402823466e+38f}, {1.0f, 2.0f, -3.0f, 4.0f}}, {"0 * INF", 0x20500004, 2, {0xffc00000, 0xffc00000, 0xc0d33334, 0x7f800000}, {0.0f, -0.0f, -2.2f, 3.402823466e+38f}, {INFINITY, INFINITY, 3.0f, 4.0f}}, };