]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - vid_wgl.c
-Changed the dpv buffer to 1 MB.
[xonotic/darkplaces.git] / vid_wgl.c
index 4726150ced845d16d9b6b7f2f2f4eecf03860949..b76da3d608cb2935c81f64d2ba30200449132bc3 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)
+       vid_usevsync = vid_vsync.integer && !cls.timedemo && gl_videosyncavailable;
+       if (vid_usingvsync != vid_usevsync && gl_videosyncavailable)
        {
-               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)
-       {
-               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;
@@ -694,7 +693,18 @@ int VID_GetGamma(unsigned short *ramps)
 
 static HINSTANCE gldll;
 
-int GL_OpenLibrary(const char *name)
+static void GL_CloseLibrary(void)
+{
+       FreeLibrary(gldll);
+       gldll = 0;
+       gl_driver[0] = 0;
+       qwglGetProcAddress = NULL;
+       gl_extensions = "";
+       gl_platform = "";
+       gl_platformextensions = "";
+}
+
+static int GL_OpenLibrary(const char *name)
 {
        Con_Printf("Loading OpenGL driver %s\n", name);
        GL_CloseLibrary();
@@ -707,17 +717,6 @@ int GL_OpenLibrary(const char *name)
        return true;
 }
 
-void GL_CloseLibrary(void)
-{
-       FreeLibrary(gldll);
-       gldll = 0;
-       gl_driver[0] = 0;
-       qwglGetProcAddress = NULL;
-       gl_extensions = "";
-       gl_platform = "";
-       gl_platformextensions = "";
-}
-
 void *GL_GetProcAddress(const char *name)
 {
        void *p = NULL;
@@ -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;