mirror of
https://github.com/yawut/SDL.git
synced 2026-08-27 19:24:30 -05:00
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).
This commit is contained in:
@@ -1323,11 +1323,7 @@ SDL_Surface *DX5_SetVideoMode(_THIS, SDL_Surface *current,
|
||||
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 @@ SDL_Surface *DX5_SetVideoMode(_THIS, SDL_Surface *current,
|
||||
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) ) {
|
||||
|
||||
Reference in New Issue
Block a user