aboutsummaryrefslogtreecommitdiffstats
path: root/code/sys/sys_win32.c
diff options
context:
space:
mode:
authortma <tma@edf5b092-35ff-0310-97b2-ce42778d08ea>2008-08-08 21:35:33 +0000
committertma <tma@edf5b092-35ff-0310-97b2-ce42778d08ea>2008-08-08 21:35:33 +0000
commit29ed69737c5b5719649d1988217f6bbeb565de1a (patch)
tree69b785b5175748159803f01f9c0719d751edcefe /code/sys/sys_win32.c
parentd4a09221a37805a2530a41b62f0a283f5ff7f654 (diff)
downloadioquake3-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.c46
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
}