[PATCH] Implement D3DXVec2Scale with a test
David Adam
David.Adam at math.cnrs.fr
Fri Oct 5 16:18:09 CDT 2007
---
dlls/d3dx8/d3dx8.spec | 1 +
dlls/d3dx8/math.c | 7 +++++++
dlls/d3dx8/tests/math.c | 12 +++++++++---
include/d3dx8math.h | 1 +
4 files changed, 18 insertions(+), 3 deletions(-)
diff --git a/dlls/d3dx8/d3dx8.spec b/dlls/d3dx8/d3dx8.spec
index 24f2cc8..2a82dcf 100644
--- a/dlls/d3dx8/d3dx8.spec
+++ b/dlls/d3dx8/d3dx8.spec
@@ -1,4 +1,5 @@
@ stdcall D3DXVec2Subtract(ptr ptr ptr)
+@ stdcall D3DXVec2Scale(ptr ptr long)
@ stub D3DXVec2Normalize
@ stdcall D3DXVec2Minimize(ptr ptr ptr)
@ stdcall D3DXVec2Maximize(ptr ptr ptr)
diff --git a/dlls/d3dx8/math.c b/dlls/d3dx8/math.c
index b189234..be3f283 100644
--- a/dlls/d3dx8/math.c
+++ b/dlls/d3dx8/math.c
@@ -63,6 +63,13 @@ LPD3DXVECTOR2 D3DXVec2Minimize(LPD3DXVECTOR2 pOut, CONST =
LPD3DXVECTOR2 pv1, CONS
return pOut;
}
=20
+LPD3DXVECTOR2 D3DXVec2Scale(LPD3DXVECTOR2 pOut, CONST LPD3DXVECTOR2 pv, FLO=
AT s )
+{
+ pOut->x=3D (pv->x) * s;
+ pOut->y=3D (pv->y) * s;
+ return pOut;
+}
+
LPD3DXVECTOR2 D3DXVec2Subtract(LPD3DXVECTOR2 pOut, CONST LPD3DXVECTOR2 pv1,=
CONST LPD3DXVECTOR2 pv2)
{
pOut->x=3D pv1->x - pv2->x;
diff --git a/dlls/d3dx8/tests/math.c b/dlls/d3dx8/tests/math.c
index a927589..5115b33 100644
--- a/dlls/d3dx8/tests/math.c
+++ b/dlls/d3dx8/tests/math.c
@@ -27,11 +27,12 @@
static void Vector2Test(void)
{
D3DXVECTOR2 expected, result, u, vec1, vec2;
- FLOAT modulus, long2, pDot;
+ FLOAT modulus, long2, pDot, sca;
=20
u.x=3D3.0f; u.y=3D4.0f;
vec1.x=3D8.0f; vec1.y=3D-2.0f;
vec2.x=3D-4.0f; vec2.y=3D7.0f;
+ sca=3D2.3f;
=20
/*__________________Vect2Add____________________________*/
D3DXVec2Add(&result,&vec1,&vec2);
@@ -55,12 +56,17 @@ static void Vector2Test(void)
expected.x=3D8.0f; expected.y=3D7.0f;
expect_vec2(result,expected);
=20
-/*__________________Vect2Minimize_________________________*/
+/*__________________Vect2Minimize________________________*/
D3DXVec2Minimize(&result,&vec1,&vec2);
expected.x=3D-4.0f; expected.y=3D-2.0f;
expect_vec2(result,expected);
=20
-/*__________________Vect2Subtract__________________________*/
+/*__________________Vect2Scale__________________________*/
+ D3DXVec2Scale(&result,&vec1,sca);
+ expected.x=3D18.4f; expected.y=3D-4.6f;
+ expect_vec2(result,expected);
+
+/*__________________Vect2Subtract________________________*/
D3DXVec2Subtract(&result,&vec1,&vec2);
expected.x=3D12.0f; expected.y=3D-9.0f;
expect_vec2(result,expected);
diff --git a/include/d3dx8math.h b/include/d3dx8math.h
index ced5769..a73c1c6 100644
--- a/include/d3dx8math.h
+++ b/include/d3dx8math.h
@@ -65,6 +65,7 @@ FLOAT D3DXVec2Length(CONST LPD3DXVECTOR2);
FLOAT D3DXVec2LengthSq(CONST LPD3DXVECTOR2);
LPD3DXVECTOR2 D3DXVec2Maximize(LPD3DXVECTOR2, CONST LPD3DXVECTOR2, CONST LP=
D3DXVECTOR2);
LPD3DXVECTOR2 D3DXVec2Minimize(LPD3DXVECTOR2, CONST LPD3DXVECTOR2, CONST LP=
D3DXVECTOR2);
+LPD3DXVECTOR2 D3DXVec2Scale(LPD3DXVECTOR2, CONST LPD3DXVECTOR2, FLOAT);
LPD3DXVECTOR2 D3DXVec2Subtract(LPD3DXVECTOR2, CONST LPD3DXVECTOR2, CONST LP=
D3DXVECTOR2);
=20
#endif
--=20
1.5.2.4
--=_5o8n40cwyigw--
More information about the wine-patches
mailing list