[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