[PATCH] DDraw: pass proper parameters to CheckDeviceFormat=0A=
Stefan Doesinger
stefan at codeweavers.com
Wed Aug 27 14:03:26 CDT 2008
=0A=
---=0A=
dlls/ddraw/device.c | 46 =
+++++++++++++++++++++++++++++++++++-----------=0A=
1 files changed, 35 insertions(+), 11 deletions(-)=0A=
=0A=
diff --git a/dlls/ddraw/device.c b/dlls/ddraw/device.c=0A=
index 94f3949..84d55e0 100644=0A=
--- a/dlls/ddraw/device.c=0A=
+++ b/dlls/ddraw/device.c=0A=
@@ -1164,6 +1164,7 @@ =
IDirect3DDeviceImpl_7_EnumTextureFormats(IDirect3DDevice7 *iface,=0A=
{=0A=
ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);=0A=
HRESULT hr;=0A=
+ WINED3DDISPLAYMODE mode;=0A=
int i;=0A=
=0A=
WINED3DFORMAT FormatList[] =3D {=0A=
@@ -1202,14 +1203,25 @@ =
IDirect3DDeviceImpl_7_EnumTextureFormats(IDirect3DDevice7 *iface,=0A=
return DDERR_INVALIDPARAMS;=0A=
=0A=
EnterCriticalSection(&ddraw_cs);=0A=
+=0A=
+ memset(&mode, 0, sizeof(mode));=0A=
+ hr =3D IWineD3DDevice_GetDisplayMode(This->ddraw->wineD3DDevice,=0A=
+ 0,=0A=
+ &mode);=0A=
+ if(FAILED(hr)) {=0A=
+ LeaveCriticalSection(&ddraw_cs);=0A=
+ WARN("Cannot get the current adapter format\n");=0A=
+ return hr;=0A=
+ }=0A=
+=0A=
for(i =3D 0; i < sizeof(FormatList) / sizeof(WINED3DFORMAT); i++)=0A=
{=0A=
hr =3D IWineD3D_CheckDeviceFormat(This->ddraw->wineD3D,=0A=
- 0 /* Adapter */,=0A=
- 0 /* DeviceType */,=0A=
- 0 /* AdapterFormat */,=0A=
+ WINED3DADAPTER_DEFAULT,=0A=
+ WINED3DDEVTYPE_HAL,=0A=
+ mode.Format,=0A=
0 /* Usage */,=0A=
- 0 /* ResourceType */,=0A=
+ WINED3DRTYPE_TEXTURE,=0A=
FormatList[i],=0A=
SURFACE_OPENGL);=0A=
if(hr =3D=3D D3D_OK)=0A=
@@ -1234,11 +1246,11 @@ =
IDirect3DDeviceImpl_7_EnumTextureFormats(IDirect3DDevice7 *iface,=0A=
for(i =3D 0; i < sizeof(BumpFormatList) / sizeof(WINED3DFORMAT); =
i++)=0A=
{=0A=
hr =3D IWineD3D_CheckDeviceFormat(This->ddraw->wineD3D,=0A=
- 0 /* Adapter */,=0A=
- 0 /* DeviceType */,=0A=
- 0 /* AdapterFormat */,=0A=
+ WINED3DADAPTER_DEFAULT,=0A=
+ WINED3DDEVTYPE_HAL,=0A=
+ mode.Format,=0A=
=
WINED3DUSAGE_QUERY_LEGACYBUMPMAP,=0A=
- 0 /* ResourceType */,=0A=
+ WINED3DRTYPE_TEXTURE,=0A=
BumpFormatList[i],=0A=
SURFACE_OPENGL);=0A=
if(hr =3D=3D D3D_OK)=0A=
@@ -1317,6 +1329,7 @@ =
IDirect3DDeviceImpl_2_EnumTextureFormats(IDirect3DDevice2 *iface,=0A=
ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice2, iface);=0A=
HRESULT hr;=0A=
int i;=0A=
+ WINED3DDISPLAYMODE mode;=0A=
=0A=
WINED3DFORMAT FormatList[] =3D {=0A=
/* 32 bit */=0A=
@@ -1341,14 +1354,25 @@ =
IDirect3DDeviceImpl_2_EnumTextureFormats(IDirect3DDevice2 *iface,=0A=
return DDERR_INVALIDPARAMS;=0A=
=0A=
EnterCriticalSection(&ddraw_cs);=0A=
+=0A=
+ memset(&mode, 0, sizeof(mode));=0A=
+ hr =3D IWineD3DDevice_GetDisplayMode(This->ddraw->wineD3DDevice,=0A=
+ 0,=0A=
+ &mode);=0A=
+ if(FAILED(hr)) {=0A=
+ LeaveCriticalSection(&ddraw_cs);=0A=
+ WARN("Cannot get the current adapter format\n");=0A=
+ return hr;=0A=
+ }=0A=
+=0A=
for(i =3D 0; i < sizeof(FormatList) / sizeof(WINED3DFORMAT); i++)=0A=
{=0A=
hr =3D IWineD3D_CheckDeviceFormat(This->ddraw->wineD3D,=0A=
0 /* Adapter */,=0A=
- 0 /* DeviceType */,=0A=
- 0 /* AdapterFormat */,=0A=
+ WINED3DDEVTYPE_HAL,=0A=
+ mode.Format,=0A=
0 /* Usage */,=0A=
- 0 /* ResourceType */,=0A=
+ WINED3DRTYPE_TEXTURE,=0A=
FormatList[i],=0A=
SURFACE_OPENGL);=0A=
if(hr =3D=3D D3D_OK)=0A=
-- =0A=
1.5.6.4=0A=
=0A=
------=_NextPart_000_0031_01C909E1.8088A460--
More information about the wine-patches
mailing list