[PATCH] Implement D3DXVec2Dot with a test

David Adam David.Adam at math.cnrs.fr
Fri Oct 5 15:58:11 CDT 2007


---
 dlls/d3dx8/d3dx8.spec   |    1 +
 dlls/d3dx8/math.c       |    5 +++++
 dlls/d3dx8/tests/math.c |    6 +++++-
 include/d3dx8math.h     |    1 +
 4 files changed, 12 insertions(+), 1 deletions(-)

diff --git a/dlls/d3dx8/d3dx8.spec b/dlls/d3dx8/d3dx8.spec
index a7119a5..24f2cc8 100644
--- a/dlls/d3dx8/d3dx8.spec
+++ b/dlls/d3dx8/d3dx8.spec
@@ -10,6 +10,7 @@
 @ stub D3DXVec2Transform
 @ stub D3DXVec2TransformCoord
 @ stub D3DXVec2TransformNormal
+@ stdcall D3DXVec2Dot(ptr ptr)
 @ stdcall D3DXVec2Add(ptr ptr ptr)
 @ stub D3DXVec3Normalize
 @ stub D3DXVec3Hermite
diff --git a/dlls/d3dx8/math.c b/dlls/d3dx8/math.c
index 3324408..b189234 100644
--- a/dlls/d3dx8/math.c
+++ b/dlls/d3dx8/math.c
@@ -34,6 +34,11 @@ LPD3DXVECTOR2 D3DXVec2Add(LPD3DXVECTOR2 pOut, CONST LPD3D=
XVECTOR2 pv1, CONST LPD
     return pOut;
 }
=20
+FLOAT D3DXVec2Dot(CONST LPD3DXVECTOR2 pv1, CONST LPD3DXVECTOR2 pv2)
+{
+    return ((pv1->x) * (pv2->x) + (pv1->y) * (pv2->y));
+}
+
 FLOAT D3DXVec2Length(CONST LPD3DXVECTOR2 pv)
 {
     return sqrt(D3DXVec2LengthSq(pv));
diff --git a/dlls/d3dx8/tests/math.c b/dlls/d3dx8/tests/math.c
index 5297743..a927589 100644
--- a/dlls/d3dx8/tests/math.c
+++ b/dlls/d3dx8/tests/math.c
@@ -27,7 +27,7 @@
 static void Vector2Test(void)
 {
     D3DXVECTOR2 expected, result, u, vec1, vec2;
-    FLOAT modulus, long2;
+    FLOAT modulus, long2, pDot;
=20
     u.x=3D3.0f; u.y=3D4.0f;
     vec1.x=3D8.0f; vec1.y=3D-2.0f;
@@ -38,6 +38,10 @@ static void Vector2Test(void)
     expected.x=3D4.0f; expected.y=3D5.0f;
     expect_vec2(result,expected);
=20
+/*__________________Vect2Dot___________________________*/
+    pDot=3DD3DXVec2Dot(&vec1,&vec2);
+    ok((pDot =3D=3D -46.0f), "Expected -46.0f, Got %f\n", pDot);
+
 /*__________________Vect2LengthSq_______________________*/
     modulus=3DD3DXVec2Length(&u);
     ok((modulus =3D=3D 5.0f), "Expected 5.0f, Got %f\n", modulus);
diff --git a/include/d3dx8math.h b/include/d3dx8math.h
index 9f4af1d..ced5769 100644
--- a/include/d3dx8math.h
+++ b/include/d3dx8math.h
@@ -60,6 +60,7 @@ typedef struct D3DXCOLOR
 } D3DXCOLOR, *LPD3DXCOLOR;
=20
 LPD3DXVECTOR2 D3DXVec2Add(LPD3DXVECTOR2, CONST LPD3DXVECTOR2, CONST LPD3DXV=
ECTOR2);
+FLOAT D3DXVec2Dot(CONST LPD3DXVECTOR2, CONST LPD3DXVECTOR2);
 FLOAT D3DXVec2Length(CONST LPD3DXVECTOR2);
 FLOAT D3DXVec2LengthSq(CONST LPD3DXVECTOR2);
 LPD3DXVECTOR2 D3DXVec2Maximize(LPD3DXVECTOR2, CONST LPD3DXVECTOR2, CONST LP=
D3DXVECTOR2);
--=20
1.5.2.4


--=_74sjrkldj58o--



More information about the wine-patches mailing list