Browse Source

Limit FPS when upscaling is disabled

pull/464/head
Anders Jenbo 6 years ago
parent
commit
dffc89e41c
  1. 8
      SourceX/dx.cpp
  2. 2
      SourceX/miniwin/ddraw.h
  3. 8
      SourceX/miniwin/misc.cpp

8
SourceX/dx.cpp

@ -14,6 +14,8 @@ int locktbl[256];
static CCritSect sgMemCrit;
HMODULE ghDiabMod;
int refreshDelay;
DWORD refreshDelayTc;
SDL_Window *window;
SDL_Renderer *renderer;
SDL_Texture *texture;
@ -237,6 +239,12 @@ void RenderPresent()
}
SDL_RenderPresent(renderer);
} else {
// no VSync when not using upscaling
int tc = GetTickCount();
if (refreshDelayTc + refreshDelay > tc)
Sleep(tc - refreshDelayTc + refreshDelay);
refreshDelayTc = tc;
if (SDL_UpdateWindowSurface(window) <= -1) {
ErrSdl();
}

2
SourceX/miniwin/ddraw.h

@ -6,6 +6,8 @@
namespace dvl {
extern int refreshDelay;
extern DWORD refreshDelayTc;
extern SDL_Window *window;
extern SDL_Renderer *renderer;
extern SDL_Texture *texture;

8
SourceX/miniwin/misc.cpp

@ -190,6 +190,14 @@ bool SpawnWindow(LPCSTR lpWindowName, int nWidth, int nHeight)
if (SDL_RenderSetLogicalSize(renderer, nWidth, nHeight) <= -1) {
ErrSdl();
}
#endif
} else {
#ifdef USE_SDL1
refreshDelay = 16; // rougly 60hz
#else
SDL_DisplayMode mode;
SDL_GetDisplayMode(0, 0, &mode);
refreshDelay = 1000 / mode.refresh_rate;
#endif
}

Loading…
Cancel
Save