# HG changeset patch # User Sam Lantinga # Date 1088141090 0 # Node ID fd4a6847ddc06aca2c3668ddd4cbf3380bb6d03e # Parent c3c8739f7844c2418cc345a74b4778b89ec8730a Date: Thu, 24 Jun 2004 15:13:40 +0300 (EEST) From: Martin_Storsj� Subject: Small patches for SDL/win32 I've tried playing with running SDL compiled for Windows with Wine (and WineX) under Linux. It didn't originally work too well, but I somehow managed to make it work. Most of the fixes was patches to Wine(X), but I also found something in video/windx5/SDL_dx5video.c which, as far as I can tell, actually is a bug in SDL. The result from the COM method Release, which returns the new reference count, is compared to DD_OK. Because QueryInterface is called immediately before, the reference count shouldn't be DD_OK (== 0). diff -r c3c8739f7844 -r fd4a6847ddc0 src/video/windx5/SDL_dx5video.c --- a/src/video/windx5/SDL_dx5video.c Thu May 27 22:57:30 2004 +0000 +++ b/src/video/windx5/SDL_dx5video.c Fri Jun 25 05:24:50 2004 +0000 @@ -1323,11 +1323,7 @@ SetDDerror("DirectDrawSurface::QueryInterface", result); return(NULL); } - result = IDirectDrawSurface_Release(dd_surface1); - if ( result != DD_OK ) { - SetDDerror("DirectDrawSurface::Release", result); - return(NULL); - } + IDirectDrawSurface_Release(dd_surface1); /* Get the format of the primary DirectDraw surface */ memset(&ddsd, 0, sizeof(ddsd)); @@ -1335,7 +1331,7 @@ ddsd.dwFlags = DDSD_PIXELFORMAT|DDSD_CAPS; result = IDirectDrawSurface3_GetSurfaceDesc(SDL_primary, &ddsd); if ( result != DD_OK ) { - SetDDerror("DirectDrawSurface::Release", result); + SetDDerror("DirectDrawSurface::GetSurfaceDesc", result); return(NULL); } if ( ! (ddsd.ddpfPixelFormat.dwFlags&DDPF_RGB) ) {