Skip to content

Commit

Permalink
* Always show the mouse cursor when the mouse is disabled
Browse files Browse the repository at this point in the history
* 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
  • Loading branch information
timangus committed Aug 9, 2008
1 parent d4d5527 commit c29417b
Show file tree
Hide file tree
Showing 5 changed files with 57 additions and 20 deletions.
3 changes: 3 additions & 0 deletions code/null/null_input.c
Expand Up @@ -30,6 +30,9 @@ void IN_Frame (void) {
void IN_Shutdown( void ) {
}

void IN_Restart( void ) {
}

void Sys_SendKeyEvents (void) {
}

5 changes: 5 additions & 0 deletions code/sdl/sdl_glimp.c
Expand Up @@ -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);
Expand Down Expand Up @@ -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" ) )
Expand Down Expand Up @@ -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( );

Expand Down Expand Up @@ -732,6 +735,8 @@ void GLimp_EndFrame( void )
if( !sdlToggled )
Cbuf_AddText( "vid_restart" );

IN_Restart( );

r_fullscreen->modified = qfalse;
}
}
Expand Down
65 changes: 47 additions & 18 deletions code/sdl/sdl_input.c
Expand Up @@ -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
Expand All @@ -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;
}
Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -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);
}

/*
Expand Down Expand Up @@ -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");
}

Expand All @@ -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( );
}
1 change: 1 addition & 0 deletions code/sys/sys_local.h
Expand Up @@ -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 );
Expand Down
3 changes: 1 addition & 2 deletions code/sys/sys_main.c
Expand Up @@ -112,8 +112,7 @@ Restart the input subsystem
*/
void Sys_In_Restart_f( void )
{
IN_Shutdown();
IN_Init();
IN_Restart( );
}

/*
Expand Down

0 comments on commit c29417b

Please sign in to comment.