David Adam : d3drm: Implement D3DRMColorGetAlpha.

Alexandre Julliard julliard at wine.codeweavers.com
Mon May 21 09:40:26 CDT 2007


Module: wine
Branch: master
Commit: d3e8c930e39e621b340bbecfc950f27e60eea2a9
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=d3e8c930e39e621b340bbecfc950f27e60eea2a9

Author: David Adam <David.Adam at math.cnrs.fr>
Date:   Sun May 20 12:27:13 2007 +0200

d3drm: Implement D3DRMColorGetAlpha.

---

 dlls/d3drm/d3drm.spec     |    2 +-
 dlls/d3drm/math.c         |    6 ++++++
 dlls/d3drm/tests/vector.c |    8 ++++++++
 include/d3drmdef.h        |    1 +
 4 files changed, 16 insertions(+), 1 deletions(-)

diff --git a/dlls/d3drm/d3drm.spec b/dlls/d3drm/d3drm.spec
index b7879c4..19df75c 100644
--- a/dlls/d3drm/d3drm.spec
+++ b/dlls/d3drm/d3drm.spec
@@ -1,4 +1,4 @@
-@ stub D3DRMColorGetAlpha
+@ stdcall D3DRMColorGetAlpha(long)
 @ stdcall D3DRMColorGetBlue(long)
 @ stdcall D3DRMColorGetGreen(long)
 @ stdcall D3DRMColorGetRed(long)
diff --git a/dlls/d3drm/math.c b/dlls/d3drm/math.c
index 7acd710..f660de4 100644
--- a/dlls/d3drm/math.c
+++ b/dlls/d3drm/math.c
@@ -34,6 +34,12 @@
 
 WINE_DEFAULT_DEBUG_CHANNEL(d3drm);
 
+/* Determine the alpha part of a color */
+D3DVALUE WINAPI D3DRMColorGetAlpha(D3DCOLOR color)
+{
+    return (RGBA_GETALPHA(color)/255.0);
+}
+
 /* Determine the blue part of a color */
 D3DVALUE WINAPI D3DRMColorGetBlue(D3DCOLOR color)
 {
diff --git a/dlls/d3drm/tests/vector.c b/dlls/d3drm/tests/vector.c
index 7f18eef..82d714b 100644
--- a/dlls/d3drm/tests/vector.c
+++ b/dlls/d3drm/tests/vector.c
@@ -79,6 +79,7 @@ static LPD3DVECTOR (WINAPI * pD3DRMVectorScale)(LPD3DVECTOR, LPD3DVECTOR, D3DVAL
 static LPD3DVECTOR (WINAPI * pD3DRMVectorSubtract)(LPD3DVECTOR, LPD3DVECTOR, LPD3DVECTOR);
 static LPD3DRMQUATERNION (WINAPI * pD3DRMQuaternionFromRotation)(LPD3DRMQUATERNION, LPD3DVECTOR, D3DVALUE);
 static LPD3DRMQUATERNION (WINAPI * pD3DRMQuaternionSlerp)(LPD3DRMQUATERNION, LPD3DRMQUATERNION, LPD3DRMQUATERNION, D3DVALUE);
+static D3DVALUE (WINAPI * pD3DRMColorGetAlpha)(D3DCOLOR);
 static D3DVALUE (WINAPI * pD3DRMColorGetBlue)(D3DCOLOR);
 static D3DVALUE (WINAPI * pD3DRMColorGetGreen)(D3DCOLOR);
 static D3DVALUE (WINAPI * pD3DRMColorGetRed)(D3DCOLOR);
@@ -113,6 +114,7 @@ static BOOL InitFunctionPtrs(void)
     D3DRM_GET_PROC(D3DRMVectorSubtract)
     D3DRM_GET_PROC(D3DRMQuaternionFromRotation)
     D3DRM_GET_PROC(D3DRMQuaternionSlerp)
+    D3DRM_GET_PROC(D3DRMColorGetAlpha)
     D3DRM_GET_PROC(D3DRMColorGetBlue)
     D3DRM_GET_PROC(D3DRMColorGetGreen)
     D3DRM_GET_PROC(D3DRMColorGetRed)
@@ -257,6 +259,12 @@ static void ColorTest(void)
     D3DCOLOR color;
     D3DVALUE expected, got;
 
+/*___________D3DRMColorGetAlpha_________________________*/
+    color=0x0e4921bf;
+    expected=14.0/255.0;
+    got=pD3DRMColorGetAlpha(color);
+    ok((fabs(expected-got)<admit_error),"Expected=%f, Got=%f\n",expected,got);
+
 /*___________D3DRMColorGetBlue__________________________*/
     color=0xc82a1455;
     expected=1.0/3.0;
diff --git a/include/d3drmdef.h b/include/d3drmdef.h
index 73c661f..abe8949 100644
--- a/include/d3drmdef.h
+++ b/include/d3drmdef.h
@@ -54,6 +54,7 @@ LPD3DVECTOR WINAPI D3DRMVectorReflect(LPD3DVECTOR, LPD3DVECTOR, LPD3DVECTOR);
 LPD3DVECTOR WINAPI D3DRMVectorScale(LPD3DVECTOR, LPD3DVECTOR, D3DVALUE);
 LPD3DVECTOR WINAPI D3DRMVectorSubtract(LPD3DVECTOR, LPD3DVECTOR, LPD3DVECTOR);
 
+D3DVALUE WINAPI D3DRMColorGetAlpha(D3DCOLOR);
 D3DVALUE WINAPI D3DRMColorGetBlue(D3DCOLOR);
 D3DVALUE WINAPI D3DRMColorGetGreen(D3DCOLOR);
 D3DVALUE WINAPI D3DRMColorGetRed(D3DCOLOR);




More information about the wine-cvs mailing list