1
0
mirror of https://github.com/FunkyFr3sh/cnc-ddraw.git synced 2025-03-15 06:04:49 +01:00

allow Sleep hack with GDI renderer

This commit is contained in:
FunkyFr3sh 2018-10-25 04:05:44 +02:00
parent a8165c4112
commit b9eda0f6af
3 changed files with 14 additions and 13 deletions

View File

@ -2,7 +2,7 @@
#define vxstr(a,b,c,d) str(a##.##b##.##c##.##d)
#define str(s) #s
#define VERSION 1,2,2,1
#define VERSION 1,2,2,2
1 VERSIONINFO
FILEVERSION VERSION

View File

@ -1101,15 +1101,15 @@ HRESULT WINAPI DirectDrawCreate(GUID FAR* lpGUID, LPDIRECTDRAW FAR* lplpDD, IUnk
"fullscreen=false\n"
"; bits per pixel, possible values: 16, 24 and 32, 0 = auto\n"
"bpp=0\n"
"; Run in windowed mode rather than going fullscreen\n"
"windowed=false\n"
"; show window borders in windowed mode\n"
"border=true\n"
"; maintain aspect ratio\n"
"maintas=false\n"
"; use letter- or windowboxing to make a best fit\n"
"; use letter- or windowboxing to make a best fit (Integer Scaling)\n"
"boxing=false\n"
"; real rendering rate, -1 = screen rate, 0 = unlimited (GDI), 0 = 125 (OpenGL / Direct3D), n = cap\n"
"; Note: maxfps+GDI renderer can be used to slow the game speed down, maxfps+OpenGL/Direct3D will not slow it down\n"
"; real rendering rate, -1 = screen rate, 0 = unlimited, n = cap (OpenGL / Direct3D only)\n"
"maxfps=0\n"
"; vertical synchronization, enable if you get tearing (OpenGL / Direct3D only)\n"
"vsync=false\n"
@ -1134,6 +1134,8 @@ HRESULT WINAPI DirectDrawCreate(GUID FAR* lpGUID, LPDIRECTDRAW FAR* lplpDD, IUnk
"devmode=false\n"
"; preliminary libretro shader support - e.g. cubic.glsl (OpenGL only) https://github.com/libretro/glsl-shaders\n"
"shader=\n"
"; Sleep for X ms after drawing each frame (Slows down scrollrate on C&C95 / Prevents visual glitches on Carmageddon)\n"
"sleep=0\n"
, fh);
fclose(fh);

View File

@ -179,11 +179,11 @@ HRESULT __stdcall ddraw_surface_Blt(IDirectDrawSurfaceImpl *This, LPRECT lpDestR
}
else
{
if (ddraw->sleep > 0)
Sleep(ddraw->sleep);
else
SwitchToThread();
SwitchToThread();
}
if (ddraw->sleep > 0)
Sleep(ddraw->sleep);
}
return DD_OK;
@ -271,12 +271,11 @@ HRESULT __stdcall ddraw_surface_Flip(IDirectDrawSurfaceImpl *This, LPDIRECTDRAWS
}
else
{
if (ddraw->sleep > 0)
Sleep(ddraw->sleep);
else
SwitchToThread();
SwitchToThread();
}
if (ddraw->sleep > 0)
Sleep(ddraw->sleep);
}
return DD_OK;