diff --git a/dlls/d3drm/d3drm.spec b/dlls/d3drm/d3drm.spec index b7879c444e1..19df75cebfd 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 7acd710aff7..f660de4695b 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 7f18eefba5c..82d714b38d5 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)