[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