[1/3] d3drm: Implement IDirect3DRMLight_[Get|Set]Type

André Hentschel nerv at dawncrow.de
Sun May 27 08:38:51 CDT 2012


This series implements light interface stubs which causes my test app to stop early.
---
 dlls/d3drm/light.c       |   11 +++++++----
 dlls/d3drm/tests/d3drm.c |    6 +++---
 2 files changed, 10 insertions(+), 7 deletions(-)

diff --git a/dlls/d3drm/light.c b/dlls/d3drm/light.c
index 82ec825..620fb97 100644
--- a/dlls/d3drm/light.c
+++ b/dlls/d3drm/light.c
@@ -32,6 +32,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(d3drm);
 typedef struct {
     IDirect3DRMLight IDirect3DRMLight_iface;
     LONG ref;
+    D3DRMLIGHTTYPE type;
 } IDirect3DRMLightImpl;
 
 static inline IDirect3DRMLightImpl *impl_from_IDirect3DRMLight(IDirect3DRMLight *iface)
@@ -174,9 +175,11 @@ static HRESULT WINAPI IDirect3DRMLightImpl_SetType(IDirect3DRMLight* iface, D3DR
 {
     IDirect3DRMLightImpl *This = impl_from_IDirect3DRMLight(iface);
 
-    FIXME("(%p/%p)->(%u): stub\n", iface, This, type);
+    TRACE("(%p/%p)->(%u)\n", iface, This, type);
 
-    return E_NOTIMPL;
+    This->type = type;
+
+    return D3DRM_OK;
 }
 
 static HRESULT WINAPI IDirect3DRMLightImpl_SetColor(IDirect3DRMLight* iface, D3DCOLOR color)
@@ -322,9 +325,9 @@ static D3DRMLIGHTTYPE WINAPI IDirect3DRMLightImpl_GetType(IDirect3DRMLight* ifac
 {
     IDirect3DRMLightImpl *This = impl_from_IDirect3DRMLight(iface);
 
-    FIXME("(%p/%p)->(): stub\n", iface, This);
+    TRACE("(%p/%p)->()\n", iface, This);
 
-    return D3DRMLIGHT_AMBIENT;
+    return This->type;
 }
 
 static HRESULT WINAPI IDirect3DRMLightImpl_SetEnableFrame(IDirect3DRMLight* iface,
diff --git a/dlls/d3drm/tests/d3drm.c b/dlls/d3drm/tests/d3drm.c
index 5bbd363..16db2c2 100644
--- a/dlls/d3drm/tests/d3drm.c
+++ b/dlls/d3drm/tests/d3drm.c
@@ -839,15 +839,15 @@ static void test_Light(void)
     ok(hr == D3DRM_OK, "Cannot get IDirect3DRMLight interface (hr = %x)\n", hr);
 
     type = IDirect3DRMLight_GetType(pLight);
-    todo_wine ok(type == D3DRMLIGHT_SPOT, "wrong type (%u)\n", type);
+    ok(type == D3DRMLIGHT_SPOT, "wrong type (%u)\n", type);
 
     color = IDirect3DRMLight_GetColor(pLight);
     todo_wine ok(color == 0xff7f7f7f, "wrong color (%x)\n", color);
 
     hr = IDirect3DRMLight_SetType(pLight, D3DRMLIGHT_POINT);
-    todo_wine ok(hr == D3DRM_OK, "Cannot set type (hr = %x)\n", hr);
+    ok(hr == D3DRM_OK, "Cannot set type (hr = %x)\n", hr);
     type = IDirect3DRMLight_GetType(pLight);
-    todo_wine ok(type == D3DRMLIGHT_POINT, "wrong type (%u)\n", type);
+    ok(type == D3DRMLIGHT_POINT, "wrong type (%u)\n", type);
 
     hr = IDirect3DRMLight_SetColor(pLight, 0xff180587);
     todo_wine ok(hr == D3DRM_OK, "Cannot set color (hr = %x)\n", hr);
-- 

Best Regards, André Hentschel


More information about the wine-patches mailing list