diff options
author | tma <tma@edf5b092-35ff-0310-97b2-ce42778d08ea> | 2008-08-08 21:35:33 +0000 |
---|---|---|
committer | tma <tma@edf5b092-35ff-0310-97b2-ce42778d08ea> | 2008-08-08 21:35:33 +0000 |
commit | 29ed69737c5b5719649d1988217f6bbeb565de1a (patch) | |
tree | 69b785b5175748159803f01f9c0719d751edcefe /code/sys/sys_win32.c | |
parent | d4a09221a37805a2530a41b62f0a283f5ff7f654 (diff) | |
download | ioquake3-aero-29ed69737c5b5719649d1988217f6bbeb565de1a.tar.gz ioquake3-aero-29ed69737c5b5719649d1988217f6bbeb565de1a.zip |
* Add Sys_GLimpInit for platform specific GLimp initialisation
* Move Unix specific signal handlers to Sys_PlatformInit
* (Windows only) Don't set the SDL video driver if SDL_VIDEODRIVER is already
set externally
* (Windows only) Use the "windib" SDL video driver if in_mouse is set to -1
git-svn-id: svn://svn.icculus.org/quake3/trunk@1440 edf5b092-35ff-0310-97b2-ce42778d08ea
Diffstat (limited to 'code/sys/sys_win32.c')
-rw-r--r-- | code/sys/sys_win32.c | 46 |
1 files changed, 44 insertions, 2 deletions
diff --git a/code/sys/sys_win32.c b/code/sys/sys_win32.c index 79998dc..eeee856 100644 --- a/code/sys/sys_win32.c +++ b/code/sys/sys_win32.c @@ -577,6 +577,40 @@ void Sys_ErrorDialog( const char *error ) } } +#ifndef DEDICATED +static qboolean SDL_VIDEODRIVER_externallySet = qfalse; +#endif + +/* +============== +Sys_GLimpInit + +Windows specific GL implementation initialisation +============== +*/ +void Sys_GLimpInit( void ) +{ +#ifndef DEDICATED + if( !SDL_VIDEODRIVER_externallySet ) + { + // It's a little bit weird having in_mouse control the + // video driver, but from ioq3's point of view they're + // virtually the same except for the mouse input anyway + if( Cvar_VariableIntegerValue( "in_mouse" ) == -1 ) + { + // Use the windib SDL backend, which is closest to + // the behaviour of idq3 with in_mouse set to -1 + _putenv( "SDL_VIDEODRIVER=windib" ); + } + else + { + // Use the DirectX SDL backend + _putenv( "SDL_VIDEODRIVER=directx" ); + } + } +#endif +} + /* ============== Sys_PlatformInit @@ -587,7 +621,15 @@ Windows specific initialisation void Sys_PlatformInit( void ) { #ifndef DEDICATED - // Force the DirectX SDL backend to be used - _putenv( "SDL_VIDEODRIVER=directx" ); + const char *SDL_VIDEODRIVER = getenv( "SDL_VIDEODRIVER" ); + + if( SDL_VIDEODRIVER ) + { + Com_Printf( "SDL_VIDEODRIVER is externally set to \"%s\", " + "in_mouse -1 will have no effect\n", SDL_VIDEODRIVER ); + SDL_VIDEODRIVER_externallySet = qtrue; + } + else + SDL_VIDEODRIVER_externallySet = qfalse; #endif } |