Module: wine Branch: master Commit: 1b94a5eefde0871bc4eacd664a54e295c977f9a8 URL: http://source.winehq.org/git/wine.git/?a=commit;h=1b94a5eefde0871bc4eacd664a...
Author: Stefan Dösinger stefan@codeweavers.com Date: Mon May 7 19:42:07 2007 +0200
ddraw: Fix stupid bug when setting surface client memory.
---
dlls/ddraw/surface.c | 15 +++++++-------- 1 files changed, 7 insertions(+), 8 deletions(-)
diff --git a/dlls/ddraw/surface.c b/dlls/ddraw/surface.c index 220444d..d0c93d7 100644 --- a/dlls/ddraw/surface.c +++ b/dlls/ddraw/surface.c @@ -2001,12 +2001,6 @@ IDirectDrawSurfaceImpl_SetSurfaceDesc(IDirectDrawSurface7 *iface, if(!DDSD) return DDERR_INVALIDPARAMS;
- if (DDSD->dwFlags & DDSD_LPSURFACE && DDSD->lpSurface) - { - ERR("Setting the surface memory isn't supported yet\n"); - return DDERR_INVALIDPARAMS; - - } if (DDSD->dwFlags & DDSD_PIXELFORMAT) { newFormat = PixelFormat_DD2WineD3D(&DDSD->u4.ddpfPixelFormat); @@ -2047,14 +2041,19 @@ IDirectDrawSurfaceImpl_SetSurfaceDesc(IDirectDrawSurface7 *iface, DDCKEY_SRCBLT, (WINEDDCOLORKEY *) &DDSD->ddckCKSrcBlt); } - if (DDSD->dwFlags & DDSD_LPSURFACE) + if (DDSD->dwFlags & DDSD_LPSURFACE && DDSD->lpSurface) { hr = IWineD3DSurface_SetMem(This->WineD3DSurface, DDSD->lpSurface); if(hr != WINED3D_OK) { /* No need for a trace here, wined3d does that for us */ - return hr; + switch(hr) + { + case WINED3DERR_INVALIDCALL: return DDERR_INVALIDPARAMS; + default: break; /* Go on */ + } } + }
This->surface_desc = *DDSD;