while( SDL_PollEvent( &event ) )
switch( event.type ) {
case SDL_QUIT:
- Sys_Quit();
+ Sys_Quit(0);
break;
case SDL_KEYDOWN:
case SDL_KEYUP:
version->major, version->minor, version->patch );
}
-int VID_InitMode(int fullscreen, int width, int height, int bpp, int refreshrate)
+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;
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;
SDL_GL_SetAttribute (SDL_GL_BLUE_SIZE, 1);
SDL_GL_SetAttribute (SDL_GL_DEPTH_SIZE, 16);
}
+ if (stereobuffer)
+ SDL_GL_SetAttribute (SDL_GL_STEREO, 1);
screen = SDL_SetVideoMode(width, height, bpp, flags);
if (screen == NULL)
void VID_Shutdown (void)
{
+ // this is needed to retry gamma after a vid_restart
+ VID_RestoreSystemGamma();
+
IN_Activate(false);
SDL_QuitSubSystem(SDL_INIT_VIDEO);
}