1
0
Fork 0

Move dddraw detection to a configure option. Requested by DosFreak.

Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@4056
This commit is contained in:
Peter Veenstra 2017-10-10 13:51:13 +00:00
parent 339fb9f808
commit ee8d976ebc
3 changed files with 37 additions and 18 deletions

View file

@ -99,7 +99,7 @@ extern char** environ;
#define WIN32_LEAN_AND_MEAN
#endif
#include <windows.h>
#if (HAVE_DDRAW_H)
#if C_DDRAW
#include <ddraw.h>
struct private_hwdata {
LPDIRECTDRAWSURFACE3 dd_surface;
@ -189,7 +189,7 @@ struct SDL_Block {
#endif
struct {
SDL_Surface * surface;
#if (HAVE_DDRAW_H) && defined(WIN32)
#if C_DDRAW
RECT rect;
#endif
} blit;
@ -380,7 +380,7 @@ check_surface:
else if (flags & GFX_LOVE_16) testbpp=16;
else if (flags & GFX_LOVE_32) testbpp=32;
else testbpp=0;
#if (HAVE_DDRAW_H) && defined(WIN32)
#if C_DDRAW
check_gotbpp:
#endif
if (sdl.desktop.fullscreen) gotbpp=SDL_VideoModeOK(640,480,testbpp,SDL_FULLSCREEN|SDL_HWSURFACE|SDL_HWPALETTE);
@ -403,7 +403,7 @@ check_gotbpp:
}
flags |= GFX_CAN_RANDOM;
break;
#if (HAVE_DDRAW_H) && defined(WIN32)
#if C_DDRAW
case SCREEN_SURFACE_DDRAW:
if (!(flags&(GFX_CAN_15|GFX_CAN_16|GFX_CAN_32))) goto check_surface;
if (flags & GFX_LOVE_15) testbpp=15;
@ -613,7 +613,7 @@ dosurface:
}
}
break;
#if (HAVE_DDRAW_H) && defined(WIN32)
#if C_DDRAW
case SCREEN_SURFACE_DDRAW:
if (flags & GFX_CAN_15) bpp=15;
if (flags & GFX_CAN_16) bpp=16;
@ -887,7 +887,7 @@ bool GFX_StartUpdate(Bit8u * & pixels,Bitu & pitch) {
}
sdl.updating=true;
return true;
#if (HAVE_DDRAW_H) && defined(WIN32)
#if C_DDRAW
case SCREEN_SURFACE_DDRAW:
if (SDL_LockSurface(sdl.blit.surface)) {
// LOG_MSG("SDL Lock failed");
@ -923,7 +923,7 @@ bool GFX_StartUpdate(Bit8u * & pixels,Bitu & pitch) {
void GFX_EndUpdate( const Bit16u *changedLines ) {
#if (HAVE_DDRAW_H) && defined(WIN32)
#if C_DDRAW
int ret;
#endif
if (!sdl.updating)
@ -964,7 +964,7 @@ void GFX_EndUpdate( const Bit16u *changedLines ) {
SDL_UpdateRects( sdl.surface, rectCount, sdl.updateRects );
}
break;
#if (HAVE_DDRAW_H) && defined(WIN32)
#if C_DDRAW
case SCREEN_SURFACE_DDRAW:
SDL_UnlockSurface(sdl.blit.surface);
ret=IDirectDrawSurface3_Blt(
@ -1273,7 +1273,7 @@ static void GUI_StartUp(Section * sec) {
if (output == "surface") {
sdl.desktop.want_type=SCREEN_SURFACE;
#if (HAVE_DDRAW_H) && defined(WIN32)
#if C_DDRAW
} else if (output == "ddraw") {
sdl.desktop.want_type=SCREEN_SURFACE_DDRAW;
#endif
@ -1681,7 +1681,7 @@ void Config_Add_SDL() {
#if C_OPENGL
"opengl", "openglnb",
#endif
#if (HAVE_DDRAW_H) && defined(WIN32)
#if C_DDRAW
"ddraw",
#endif
0 };