Allow optional window resizing.

Fixes Bugzilla #2844.
This commit is contained in:
Ryan C. Gordon 2009-09-14 22:07:34 +00:00
parent 8bb2f9a5f5
commit b096ca1d04
3 changed files with 30 additions and 0 deletions

View file

@ -70,6 +70,8 @@ static cvar_t *in_joystickDebug = NULL;
static cvar_t *in_joystickThreshold = NULL;
static cvar_t *in_joystickNo = NULL;
static int vidRestartTime = 0;
#define CTRL(a) ((a)-'a'+1)
/*
@ -901,6 +903,21 @@ static void IN_ProcessEvents( void )
Sys_Quit( );
break;
case SDL_VIDEORESIZE:
{
char width[32], height[32];
Com_sprintf( width, sizeof(width), "%d", e.resize.w );
Com_sprintf( height, sizeof(height), "%d", e.resize.h );
ri.Cvar_Set( "r_customwidth", width );
ri.Cvar_Set( "r_customheight", height );
ri.Cvar_Set( "r_mode", "-1" );
/* wait until user stops dragging for 1 second, so
we aren't constantly recreating the GL context while
he tries to drag...*/
vidRestartTime = Sys_Milliseconds() + 1000;
}
break;
default:
break;
}
@ -939,6 +956,13 @@ void IN_Frame( void )
}
else
IN_ActivateMouse( );
/* in case we had to delay actual restart of video system... */
if ( (vidRestartTime != 0) && (vidRestartTime < Sys_Milliseconds()) )
{
vidRestartTime = 0;
Cbuf_AddText( "vid_restart" );
}
}
/*