]> git.xonotic.org Git - xonotic/darkplaces.git/commitdiff
two improvements to vid_restart in the SDL client: hardware gamma is now
authorhavoc <havoc@d7cf8633-e32d-0410-b094-e92efae38249>
Mon, 22 Jan 2007 19:31:49 +0000 (19:31 +0000)
committerhavoc <havoc@d7cf8633-e32d-0410-b094-e92efae38249>
Mon, 22 Jan 2007 19:31:49 +0000 (19:31 +0000)
restored after vid_restart, and the brief fullscreen window (used to reset
the SDL GL attributes) is now only used during vid_restart, not the initial
client startup

git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@6731 d7cf8633-e32d-0410-b094-e92efae38249

vid_sdl.c

index 8a917822555cd9d84433739569da5f4d6369cb56..af30f9cb7059451baeba06a3eff2be2edc98178e 100644 (file)
--- a/vid_sdl.c
+++ b/vid_sdl.c
@@ -473,6 +473,7 @@ static void VID_OutputVersion()
 int VID_InitMode(int fullscreen, int width, int height, int bpp, int refreshrate, int stereobuffer)
 {
        int i;
+       static int notfirstvideomode = false;
        int flags = SDL_OPENGL;
        const char *drivername;
 
@@ -483,7 +484,9 @@ int VID_InitMode(int fullscreen, int width, int height, int bpp, int refreshrate
                We cant switch from one OpenGL video mode to another.
                Thus we first switch to some stupid 2D mode and then back to OpenGL.
        */
-       SDL_SetVideoMode( 0, 0, 0, 0 );
+       if (notfirstvideomode)
+               SDL_SetVideoMode( 0, 0, 0, 0 );
+       notfirstvideomode = true;
 
        // SDL usually knows best
        drivername = NULL;
@@ -587,6 +590,9 @@ int VID_InitMode(int fullscreen, int width, int height, int bpp, int refreshrate
 
 void VID_Shutdown (void)
 {
+       // this is needed to retry gamma after a vid_restart
+       VID_RestoreSystemGamma();
+
        IN_Activate(false);
        SDL_QuitSubSystem(SDL_INIT_VIDEO);
 }