d3drm: Implement D3DRMColorGetGreen.
diff --git a/dlls/d3drm/d3drm.spec b/dlls/d3drm/d3drm.spec
index 1c937b0..e98aae8 100644
--- a/dlls/d3drm/d3drm.spec
+++ b/dlls/d3drm/d3drm.spec
@@ -1,6 +1,6 @@
@ stub D3DRMColorGetAlpha
@ stub D3DRMColorGetBlue
-@ stub D3DRMColorGetGreen
+@ stdcall D3DRMColorGetGreen(long)
@ stdcall D3DRMColorGetRed(long)
@ stub D3DRMCreateColorRGB
@ stub D3DRMCreateColorRGBA
diff --git a/dlls/d3drm/math.c b/dlls/d3drm/math.c
index 7153eaa..786f6c1 100644
--- a/dlls/d3drm/math.c
+++ b/dlls/d3drm/math.c
@@ -34,6 +34,12 @@
WINE_DEFAULT_DEBUG_CHANNEL(d3drm);
+/* Determine the green part of a color */
+D3DVALUE WINAPI D3DRMColorGetGreen(D3DCOLOR color)
+{
+ return (RGBA_GETGREEN(color)/255.0);
+}
+
/* Determine the red part of a color */
D3DVALUE WINAPI D3DRMColorGetRed(D3DCOLOR color)
{
diff --git a/dlls/d3drm/tests/vector.c b/dlls/d3drm/tests/vector.c
index 582c993..a5f073e 100644
--- a/dlls/d3drm/tests/vector.c
+++ b/dlls/d3drm/tests/vector.c
@@ -79,6 +79,7 @@
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 * pD3DRMColorGetGreen)(D3DCOLOR);
static D3DVALUE (WINAPI * pD3DRMColorGetRed)(D3DCOLOR);
#define D3DRM_GET_PROC(func) \
@@ -111,6 +112,7 @@
D3DRM_GET_PROC(D3DRMVectorSubtract)
D3DRM_GET_PROC(D3DRMQuaternionFromRotation)
D3DRM_GET_PROC(D3DRMQuaternionSlerp)
+ D3DRM_GET_PROC(D3DRMColorGetGreen)
D3DRM_GET_PROC(D3DRMColorGetRed)
return TRUE;
@@ -253,6 +255,12 @@
D3DCOLOR color;
D3DVALUE expected, got;
+/*___________D3DRMColorGetGreen_________________________*/
+ color=0xad971203;
+ expected=6.0/85.0;
+ got=pD3DRMColorGetGreen(color);
+ ok((fabs(expected-got)<admit_error),"Expected=%f, Got=%f\n",expected,got);
+
/*___________D3DRMColorGetRed__________________________*/
color=0xb62d7a1c;
expected=3.0/17.0;
diff --git a/include/d3drmdef.h b/include/d3drmdef.h
index 3bdec69..19fb15c 100644
--- a/include/d3drmdef.h
+++ b/include/d3drmdef.h
@@ -54,6 +54,7 @@
LPD3DVECTOR WINAPI D3DRMVectorScale(LPD3DVECTOR, LPD3DVECTOR, D3DVALUE);
LPD3DVECTOR WINAPI D3DRMVectorSubtract(LPD3DVECTOR, LPD3DVECTOR, LPD3DVECTOR);
+D3DVALUE WINAPI D3DRMColorGetGreen(D3DCOLOR);
D3DVALUE WINAPI D3DRMColorGetRed(D3DCOLOR);
#if defined(__cplusplus)