X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=vid_wgl.c;h=5b5cfd8b677bd2b84780d10f3fb0218fe70a5383;hb=e28da8260480813deb08c7acc7babc814c4918be;hp=13c9b42562835bf3df5f7c45662766f0887062e0;hpb=bd7ed880a8296d698518fe2749e1485a007b4071;p=xonotic%2Fdarkplaces.git diff --git a/vid_wgl.c b/vid_wgl.c index 13c9b425..5b5cfd8b 100644 --- a/vid_wgl.c +++ b/vid_wgl.c @@ -305,9 +305,20 @@ void VID_Finish (void) { HDC hdc; int vid_usemouse; + static int old_vsync = -1; + + if (old_vsync != vid_vsync.integer) + { + old_vsync = bound(0, vid_vsync.integer, 1); + Cvar_SetValueQuick(&vid_vsync, old_vsync); + if (gl_videosyncavailable) + qwglSwapIntervalEXT (old_vsync); + } + if (r_render.integer && !scr_skipupdate) { - qglFinish(); + if (r_speeds.integer || gl_finish.integer) + qglFinish(); hdc = GetDC(mainwindow); SwapBuffers(hdc); ReleaseDC(mainwindow, hdc); @@ -975,10 +986,12 @@ int VID_InitMode (int fullscreen, int width, int height, int bpp) gl_platform = "WGL"; gl_platformextensions = ""; + gl_videosyncavailable = false; + if (qwglGetExtensionsStringARB) gl_platformextensions = qwglGetExtensionsStringARB(hdc); - gl_videosyncavailable = GL_CheckExtension("WGL_EXT_swap_control", wglswapintervalfuncs, NULL, false); + gl_videosyncavailable = GL_CheckExtension("WGL_EXT_swap_control", wglswapintervalfuncs, "-novideosync", false); ReleaseDC(mainwindow, hdc); GL_Init (); @@ -1692,13 +1705,13 @@ void IN_Commands (void) { if ( (buttonstate & (1<