ChangeSet ID: 21133 CVSROOT: /opt/cvs-commit Module name: wine Changes by: julliard(a)winehq.org 2005/11/07 05:12:38 Modified files: dlls/wined3d : device.c Log message: Oliver Stieber <oliver_stieber(a)yahoo.co.uk> Prevent SetFVF from clearing down the vertex declaration of the FVF is zero. This is required for Prince of Persia, The sands of time. Patch: http://cvs.winehq.org/patch.py?id=21133 Old revision New revision Changes Path 1.93 1.94 +10 -6 wine/dlls/wined3d/device.c Index: wine/dlls/wined3d/device.c diff -u -p wine/dlls/wined3d/device.c:1.93 wine/dlls/wined3d/device.c:1.94 --- wine/dlls/wined3d/device.c:1.93 7 Nov 2005 11:12:38 -0000 +++ wine/dlls/wined3d/device.c 7 Nov 2005 11:12:38 -0000 @@ -1650,6 +1650,7 @@ UINT WINAPI IWineD3DDeviceImpl_GetAvaila *****/ HRESULT WINAPI IWineD3DDeviceImpl_SetFVF(IWineD3DDevice *iface, DWORD fvf) { IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *)iface; + HRESULT hr = D3D_OK; /* Update the current state block */ This->updateStateBlock->fvf = fvf; @@ -1657,13 +1658,16 @@ HRESULT WINAPI IWineD3DDeviceImpl_SetFVF This->updateStateBlock->set.fvf = TRUE; TRACE("(%p) : FVF Shader FVF set to %lx\n", This, fvf); - /* clear down the vertex declaration - NOTE: Axis and Allies doesn't work properly otherwise - (may be a stateblock problem though!) - */ - /* No difference if recording or not */ - return IWineD3DDevice_SetVertexDeclaration(iface, NULL); + if (0 != fvf) { + /* clear down the vertex declaration + NOTE: Axis and Allies doesn't work properly otherwise + (may be a stateblock problem though!) + */ + hr = IWineD3DDevice_SetVertexDeclaration(iface, NULL); + } + + return hr; }
participants (1)
-
Alexandre Julliard