]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - vid_wgl.c
modified q3msurface_t to use a surfmesh (although not cleanly)
[xonotic/darkplaces.git] / vid_wgl.c
index 4726150ced845d16d9b6b7f2f2f4eecf03860949..1595e798afa9ec42efceb7b436cecaa3ab7142d4 100644 (file)
--- a/vid_wgl.c
+++ b/vid_wgl.c
@@ -76,7 +76,10 @@ static dllfunction_t wglswapintervalfuncs[] =
 static DEVMODE gdevmode;
 static qboolean vid_initialized = false;
 static qboolean vid_wassuspended = false;
-static int vid_usingmouse;
+static qboolean vid_usingmouse = false;
+static qboolean vid_usingvsync = false;
+static qboolean vid_usemouse = false;
+static qboolean vid_usevsync = false;
 static HICON hIcon;
 
 HWND mainwindow;
@@ -302,22 +305,11 @@ void VID_GetWindowSize (int *x, int *y, int *width, int *height)
 
 void VID_Finish (void)
 {
-       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 && !vid_hidden)
+       vid_usevsync = vid_vsync.integer && !cls.timedemo && gl_videosyncavailable;
+       if (vid_usingvsync != vid_usevsync && gl_videosyncavailable)
        {
-               if (r_speeds.integer || gl_finish.integer)
-                       qglFinish();
-               SwapBuffers(baseDC);
+               vid_usingvsync = vid_usevsync;
+               qwglSwapIntervalEXT (vid_usevsync);
        }
 
 // handle the mouse state when windowed if that's changed
@@ -346,6 +338,13 @@ void VID_Finish (void)
                        IN_ShowMouse();
                }
        }
+
+       if (r_render.integer && !vid_hidden)
+       {
+               if (r_speeds.integer || gl_finish.integer)
+                       qglFinish();
+               SwapBuffers(baseDC);
+       }
 }
 
 //==========================================================================
@@ -561,7 +560,7 @@ LONG WINAPI MainWndProc (HWND hWnd, UINT uMsg, WPARAM  wParam, LPARAM lParam)
                        window_y = (int) HIWORD(lParam);
                        VID_UpdateWindowStatus ();
                        break;
-       
+
                case WM_KEYDOWN:
                case WM_SYSKEYDOWN:
                        down = true;
@@ -1001,6 +1000,8 @@ int VID_InitMode (int fullscreen, int width, int height, int bpp)
 
        //vid_menudrawfn = VID_MenuDraw;
        //vid_menukeyfn = VID_MenuKey;
+       vid_usingmouse = false;
+       vid_usingvsync = false;
        vid_hidden = false;
        vid_initialized = true;