diff options
| author | tma <tma@edf5b092-35ff-0310-97b2-ce42778d08ea> | 2008-08-09 13:20:00 +0000 | 
|---|---|---|
| committer | tma <tma@edf5b092-35ff-0310-97b2-ce42778d08ea> | 2008-08-09 13:20:00 +0000 | 
| commit | 2dd6f14b027fece75b79673a23a8b1b8f6793c1e (patch) | |
| tree | 6ac8b7a5a70836aaded9125389c4f538ff8969f2 | |
| parent | 29ed69737c5b5719649d1988217f6bbeb565de1a (diff) | |
| download | ioquake3-aero-2dd6f14b027fece75b79673a23a8b1b8f6793c1e.tar.gz ioquake3-aero-2dd6f14b027fece75b79673a23a8b1b8f6793c1e.zip  | |
* Always show the mouse cursor when the mouse is disabled
* Rename IN_StartupJoystick to IN_InitJoystick, add IN_ShutdownJoystick
* Add IN_Restart, which avoids calling IN_DeactivateMouse at the wrong time
* Call IN_Restart when changing r_fullscreen
* Add CVAR_ROM r_sdlDriver for easy checking of the SDL driver in use
* Random README tweaks
git-svn-id: svn://svn.icculus.org/quake3/trunk@1441 edf5b092-35ff-0310-97b2-ce42778d08ea
| -rw-r--r-- | code/null/null_input.c | 3 | ||||
| -rw-r--r-- | code/sdl/sdl_glimp.c | 5 | ||||
| -rw-r--r-- | code/sdl/sdl_input.c | 65 | ||||
| -rw-r--r-- | code/sys/sys_local.h | 1 | ||||
| -rw-r--r-- | code/sys/sys_main.c | 3 | 
5 files changed, 57 insertions, 20 deletions
diff --git a/code/null/null_input.c b/code/null/null_input.c index 4edb1cb..f0c89c4 100644 --- a/code/null/null_input.c +++ b/code/null/null_input.c @@ -30,6 +30,9 @@ void IN_Frame (void) {  void IN_Shutdown( void ) {  } +void IN_Restart( void ) { +} +  void Sys_SendKeyEvents (void) {  } diff --git a/code/sdl/sdl_glimp.c b/code/sdl/sdl_glimp.c index 3135ebb..40c1e6d 100644 --- a/code/sdl/sdl_glimp.c +++ b/code/sdl/sdl_glimp.c @@ -78,6 +78,7 @@ typedef enum  static SDL_Surface *screen = NULL;  cvar_t *r_allowSoftwareGL; // Don't abort out if a hardware visual can't be obtained +cvar_t *r_sdlDriver;  void (APIENTRYP qglActiveTextureARB) (GLenum texture);  void (APIENTRYP qglClientActiveTextureARB) (GLenum texture); @@ -423,6 +424,7 @@ static qboolean GLimp_StartDriverAndSetMode( int mode, qboolean fullscreen )  		SDL_VideoDriverName( driverName, sizeof( driverName ) - 1 );  		ri.Printf( PRINT_ALL, "SDL using driver \"%s\"\n", driverName ); +		Cvar_Set( "r_sdlDriver", driverName );  	}  	if (fullscreen && Cvar_VariableIntegerValue( "in_nograb" ) ) @@ -642,6 +644,7 @@ void GLimp_Init( void )  	qboolean success = qtrue;  	r_allowSoftwareGL = ri.Cvar_Get( "r_allowSoftwareGL", "0", CVAR_LATCH ); +	r_sdlDriver = ri.Cvar_Get( "r_sdlDriver", "", CVAR_ROM );  	Sys_GLimpInit( ); @@ -732,6 +735,8 @@ void GLimp_EndFrame( void )  		if( !sdlToggled )  			Cbuf_AddText( "vid_restart" ); +		IN_Restart( ); +  		r_fullscreen->modified = qfalse;  	}  } diff --git a/code/sdl/sdl_input.c b/code/sdl/sdl_input.c index 6287f8e..3fa093a 100644 --- a/code/sdl/sdl_input.c +++ b/code/sdl/sdl_input.c @@ -323,7 +323,15 @@ IN_DeactivateMouse  */  static void IN_DeactivateMouse( void )  { -	if (!mouseAvailable || !SDL_WasInit( SDL_INIT_VIDEO ) ) +	if( !SDL_WasInit( SDL_INIT_VIDEO ) ) +		return; + +	// Always show the cursor when the mouse is disabled, +	// but not when fullscreen +	if( !r_fullscreen->integer ) +		SDL_ShowCursor( 1 ); + +	if( !mouseAvailable )  		return;  #ifdef MACOS_X_ACCELERATION_HACK @@ -349,7 +357,6 @@ static void IN_DeactivateMouse( void )  	{  		SDL_WM_GrabInput( SDL_GRAB_OFF );  		SDL_WarpMouse( glConfig.vidWidth / 2, glConfig.vidHeight / 2 ); -		SDL_ShowCursor( 1 );  		mouseActive = qfalse;  	} @@ -398,10 +405,10 @@ struct  /*  =============== -IN_StartupJoystick +IN_InitJoystick  ===============  */ -static void IN_StartupJoystick( void ) +static void IN_InitJoystick( void )  {  	int i = 0;  	int total = 0; @@ -452,8 +459,22 @@ static void IN_StartupJoystick( void )  	Com_DPrintf( "Balls: %d\n", SDL_JoystickNumBalls(stick) );  	SDL_JoystickEventState(SDL_QUERY); +} -	return; +/* +=============== +IN_ShutdownJoystick +=============== +*/ +static void IN_ShutdownJoystick( void ) +{ +	if (stick) +	{ +		SDL_JoystickClose(stick); +		stick = NULL; +	} + +	SDL_QuitSubSystem(SDL_INIT_JOYSTICK);  }  /* @@ -773,18 +794,22 @@ void IN_Init(void)  	in_disablemacosxmouseaccel = Cvar_Get ("in_disablemacosxmouseaccel", "1", CVAR_ARCHIVE);  #endif -	Cvar_Set( "cl_platformSensitivity", "1.0" ); -  	SDL_EnableUNICODE(1);  	SDL_EnableKeyRepeat(SDL_DEFAULT_REPEAT_DELAY, SDL_DEFAULT_REPEAT_INTERVAL);  	keyRepeatEnabled = qtrue; -	if (in_mouse->value) +	if( in_mouse->value ) +	{  		mouseAvailable = qtrue; +		IN_ActivateMouse( ); +	}  	else +	{ +		IN_DeactivateMouse( );  		mouseAvailable = qfalse; +	} -	IN_StartupJoystick( ); +	IN_InitJoystick( );  	Com_DPrintf ("------------------------------------\n");  } @@ -793,17 +818,21 @@ void IN_Init(void)  IN_Shutdown  ===============  */ -void IN_Shutdown(void) +void IN_Shutdown( void )  { -	IN_DeactivateMouse(); - +	IN_DeactivateMouse( );  	mouseAvailable = qfalse; -	if (stick) -	{ -		SDL_JoystickClose(stick); -		stick = NULL; -	} +	IN_ShutdownJoystick( ); +} -	SDL_QuitSubSystem(SDL_INIT_JOYSTICK); +/* +=============== +IN_Restart +=============== +*/ +void IN_Restart( void ) +{ +	IN_ShutdownJoystick( ); +	IN_Init( );  } diff --git a/code/sys/sys_local.h b/code/sys/sys_local.h index 353d360..a114c79 100644 --- a/code/sys/sys_local.h +++ b/code/sys/sys_local.h @@ -32,6 +32,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA  void IN_Init( void );  void IN_Frame( void );  void IN_Shutdown( void ); +void IN_Restart( void );  // Console  void CON_Shutdown( void ); diff --git a/code/sys/sys_main.c b/code/sys/sys_main.c index 483d3f8..be9e2f0 100644 --- a/code/sys/sys_main.c +++ b/code/sys/sys_main.c @@ -112,8 +112,7 @@ Restart the input subsystem  */  void Sys_In_Restart_f( void )  { -	IN_Shutdown(); -	IN_Init(); +	IN_Restart( );  }  /*  | 
