From 2ccd66d2acd21a0ab627d9ccb72c8ec2513ba25c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20D=C3=B6singer?= Date: Tue, 20 Oct 2009 10:26:06 +0200 Subject: [PATCH 05/10] D3D: Handle the pointsize_min default difference in d3d8 --- dlls/d3d8/device.c | 3 +++ dlls/d3d8/directx.c | 8 +++++++- dlls/wined3d/stateblock.c | 2 +- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/dlls/d3d8/device.c b/dlls/d3d8/device.c index e6c1f5b..50a257d 100644 --- a/dlls/d3d8/device.c +++ b/dlls/d3d8/device.c @@ -587,6 +587,9 @@ static HRESULT WINAPI IDirect3DDevice8Impl_Reset(LPDIRECT3DDEVICE8 iface, D3DPRE wined3d_mutex_lock(); hr = IWineD3DDevice_Reset(This->WineD3DDevice, &localParameters); + if(SUCCEEDED(hr)) { + hr = IWineD3DDevice_SetRenderState(This->WineD3DDevice, WINED3DRS_POINTSIZE_MIN, 0); + } wined3d_mutex_unlock(); pPresentationParameters->BackBufferWidth = localParameters.BackBufferWidth; diff --git a/dlls/d3d8/directx.c b/dlls/d3d8/directx.c index 57ddf56..efcdbd6 100644 --- a/dlls/d3d8/directx.c +++ b/dlls/d3d8/directx.c @@ -412,11 +412,17 @@ static HRESULT WINAPI IDirect3D8Impl_CreateDevice(LPDIRECT3D8 iface, UINT Adapte } hr = IWineD3DDevice_Init3D(object->WineD3DDevice, &localParameters); - wined3d_mutex_unlock(); if (hr != D3D_OK) { + wined3d_mutex_unlock(); FIXME("(%p) D3D Initialization failed for WineD3DDevice %p\n", This, object->WineD3DDevice); goto err; } + hr = IWineD3DDevice_SetRenderState(object->WineD3DDevice, WINED3DRS_POINTSIZE_MIN, 0); + wined3d_mutex_unlock(); + if(FAILED(hr)) { + FIXME("(%p) SetRenderState failed\n", This); + goto err; + } pPresentationParameters->BackBufferWidth = localParameters.BackBufferWidth; pPresentationParameters->BackBufferHeight = localParameters.BackBufferHeight; diff --git a/dlls/wined3d/stateblock.c b/dlls/wined3d/stateblock.c index 5c33609..9082c3d 100644 --- a/dlls/wined3d/stateblock.c +++ b/dlls/wined3d/stateblock.c @@ -1161,7 +1161,7 @@ static HRESULT WINAPI IWineD3DStateBlockImpl_InitStartupStateBlock(IWineD3DStat IWineD3DDevice_SetRenderState(device, WINED3DRS_SOFTWAREVERTEXPROCESSING, FALSE); tmpfloat.f = 1.0f; IWineD3DDevice_SetRenderState(device, WINED3DRS_POINTSIZE, tmpfloat.d); - tmpfloat.f = ((IWineD3DImpl *)This->wineD3DDevice->wineD3D)->dxVersion < 9 ? 0.0f : 1.0f; + tmpfloat.f = 1.0f; IWineD3DDevice_SetRenderState(device, WINED3DRS_POINTSIZE_MIN, tmpfloat.d); IWineD3DDevice_SetRenderState(device, WINED3DRS_POINTSPRITEENABLE, FALSE); IWineD3DDevice_SetRenderState(device, WINED3DRS_POINTSCALEENABLE, FALSE); -- 1.6.4.4