David Adam : ddraw: Only ddraw checks wether one can give a null pointer to SetMaterial.
Alexandre Julliard
julliard at winehq.org
Fri Aug 22 04:44:04 CDT 2008
Module: wine
Branch: master
Commit: bb67a925d69b50c2b3f61666c5347ab0902da8b7
URL: http://source.winehq.org/git/wine.git/?a=commit;h=bb67a925d69b50c2b3f61666c5347ab0902da8b7
Author: David Adam <david.adam.cnrs at gmail.com>
Date: Thu Aug 21 18:54:27 2008 +0200
ddraw: Only ddraw checks wether one can give a null pointer to SetMaterial.
---
dlls/ddraw/device.c | 1 +
dlls/ddraw/tests/d3d.c | 9 +++++++++
dlls/wined3d/device.c | 2 --
3 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/dlls/ddraw/device.c b/dlls/ddraw/device.c
index b154ce4..edcb88f 100644
--- a/dlls/ddraw/device.c
+++ b/dlls/ddraw/device.c
@@ -5543,6 +5543,7 @@ IDirect3DDeviceImpl_7_SetMaterial(IDirect3DDevice7 *iface,
HRESULT hr;
TRACE("(%p)->(%p): Relay!\n", This, Mat);
+ if (!Mat) return DDERR_INVALIDPARAMS;
/* Note: D3DMATERIAL7 is compatible with WINED3DMATERIAL */
EnterCriticalSection(&ddraw_cs);
hr = IWineD3DDevice_SetMaterial(This->wineD3DDevice,
diff --git a/dlls/ddraw/tests/d3d.c b/dlls/ddraw/tests/d3d.c
index 37c0a8e..221a95b 100644
--- a/dlls/ddraw/tests/d3d.c
+++ b/dlls/ddraw/tests/d3d.c
@@ -2735,6 +2735,14 @@ static void DeviceLoadTest()
}
}
+static void SetMaterialTest(void)
+{
+ HRESULT rc;
+
+ rc =IDirect3DDevice7_SetMaterial(lpD3DDevice, NULL);
+ ok(rc == DDERR_INVALIDPARAMS, "Expected DDERR_INVALIDPARAMS, got %x\n", rc);
+}
+
START_TEST(d3d)
{
init_function_pointers();
@@ -2752,6 +2760,7 @@ START_TEST(d3d)
SceneTest();
LimitTest();
D3D7EnumTest();
+ SetMaterialTest();
CapsTest();
VertexBufferDescTest();
D3D7_OldRenderStateTest();
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
index d247d65..350c6d5 100644
--- a/dlls/wined3d/device.c
+++ b/dlls/wined3d/device.c
@@ -3144,8 +3144,6 @@ static HRESULT WINAPI IWineD3DDeviceImpl_GetClipStatus(IWineD3DDevice *iface,
static HRESULT WINAPI IWineD3DDeviceImpl_SetMaterial(IWineD3DDevice *iface, CONST WINED3DMATERIAL* pMaterial) {
IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *)iface;
- if (!pMaterial) return WINED3DERR_INVALIDCALL;
-
This->updateStateBlock->changed.material = TRUE;
This->updateStateBlock->material = *pMaterial;
More information about the wine-cvs
mailing list