diff --git a/basegraph.cpp b/basegraph.cpp index 6e4c70ad..b40fe24b 100644 --- a/basegraph.cpp +++ b/basegraph.cpp @@ -1063,10 +1063,16 @@ void saveHighQualityShot(const char *fname, const char *caption, int fade) { bool setfsize = true; +bool vsync_off; + void do_setfsize() { vid.fsize = min(vid.yres * fontscale/ 3200, vid.xres * fontscale/ 4800), setfsize = false; } +void disable_vsync() { + SDL_GL_SetAttribute( SDL_GL_SWAP_CONTROL, 0 ); + } + #if CAP_SDL void setvideomode() { @@ -1085,6 +1091,7 @@ void setvideomode() { if(vid.usingGL) { flags = SDL_OPENGL | SDL_HWSURFACE | SDL_GL_DOUBLEBUFFER; SDL_GL_SetAttribute(SDL_GL_STENCIL_SIZE, 1); + if(vsync_off) disable_vsync(); #if !ISWEB if(vid.antialias & AA_MULTI) { SDL_GL_SetAttribute(SDL_GL_MULTISAMPLEBUFFERS, 1); diff --git a/commandline.cpp b/commandline.cpp index 5950ab7f..7328e6f8 100644 --- a/commandline.cpp +++ b/commandline.cpp @@ -74,6 +74,10 @@ int arg::readCommon() { else if(argis("-font")) { PHASE(1); shift(); fontpath = args(); } else if(argis("-picload")) { PHASE(3); shift(); mapeditor::loadPicFile(args()); } #endif + else if(argis("-vsync_off")) { + vsync_off = true; + if(curphase == 3) setvideomode(); + } else if(argis("-canvas")) { PHASE(2); firstland = specialland = laCanvas;