[quake3-commits] r1586 - in trunk/code: client sdl sys
DONOTREPLY at icculus.org
DONOTREPLY at icculus.org
Mon Sep 14 08:34:32 EDT 2009
Author: tma
Date: 2009-09-14 08:34:31 -0400 (Mon, 14 Sep 2009)
New Revision: 1586
Modified:
trunk/code/client/cl_main.c
trunk/code/sdl/sdl_glimp.c
trunk/code/sys/sys_local.h
trunk/code/sys/sys_unix.c
trunk/code/sys/sys_win32.c
Log:
* Fix warning in cl_main.c
* Fix bug #4026 (SDL dx backend doesn't work on some machines)
Modified: trunk/code/client/cl_main.c
===================================================================
--- trunk/code/client/cl_main.c 2009-09-14 01:37:59 UTC (rev 1585)
+++ trunk/code/client/cl_main.c 2009-09-14 12:34:31 UTC (rev 1586)
@@ -2104,7 +2104,7 @@
// The challenge request shall be followed by a client challenge so no malicious server can hijack this connection.
Com_sprintf(data, sizeof(data), "getchallenge %d", clc.challenge);
- NET_OutOfBandPrint(NS_CLIENT, clc.serverAddress, data);
+ NET_OutOfBandPrint(NS_CLIENT, clc.serverAddress, "%s", data);
break;
case CA_CHALLENGING:
Modified: trunk/code/sdl/sdl_glimp.c
===================================================================
--- trunk/code/sdl/sdl_glimp.c 2009-09-14 01:37:59 UTC (rev 1585)
+++ trunk/code/sdl/sdl_glimp.c 2009-09-14 12:34:31 UTC (rev 1586)
@@ -665,31 +665,35 @@
*/
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( );
- // create the window and set up the context
- if( !GLimp_StartDriverAndSetMode( r_mode->integer, r_fullscreen->integer ) )
+ // Create the window and set up the context
+ if( GLimp_StartDriverAndSetMode( r_mode->integer, r_fullscreen->integer ) )
+ goto success;
+
+ // Try again, this time in a platform specific "safe mode"
+ Sys_GLimpSafeInit( );
+
+ if( GLimp_StartDriverAndSetMode( r_mode->integer, r_fullscreen->integer ) )
+ goto success;
+
+ // Finally, try the default screen resolution
+ if( r_mode->integer != R_MODE_FALLBACK )
{
- if( r_mode->integer != R_MODE_FALLBACK )
- {
- ri.Printf( PRINT_ALL, "Setting r_mode %d failed, falling back on r_mode %d\n",
- r_mode->integer, R_MODE_FALLBACK );
- ri.Cvar_Set("r_ext_multisample", "0");
- if( !GLimp_StartDriverAndSetMode( R_MODE_FALLBACK, r_fullscreen->integer ) )
- success = qfalse;
- }
- else
- success = qfalse;
+ ri.Printf( PRINT_ALL, "Setting r_mode %d failed, falling back on r_mode %d\n",
+ r_mode->integer, R_MODE_FALLBACK );
+
+ if( GLimp_StartDriverAndSetMode( R_MODE_FALLBACK, r_fullscreen->integer ) )
+ goto success;
}
- if( !success )
- ri.Error( ERR_FATAL, "GLimp_Init() - could not load OpenGL subsystem\n" );
+ // Nothing worked, give up
+ ri.Error( ERR_FATAL, "GLimp_Init() - could not load OpenGL subsystem\n" );
+success:
// This values force the UI to disable driver selection
glConfig.driverType = GLDRV_ICD;
glConfig.hardwareType = GLHW_GENERIC;
Modified: trunk/code/sys/sys_local.h
===================================================================
--- trunk/code/sys/sys_local.h 2009-09-14 01:37:59 UTC (rev 1585)
+++ trunk/code/sys/sys_local.h 2009-09-14 12:34:31 UTC (rev 1586)
@@ -48,6 +48,7 @@
char *Sys_StripAppBundle( char *pwd );
#endif
+void Sys_GLimpSafeInit( void );
void Sys_GLimpInit( void );
void Sys_PlatformInit( void );
void Sys_SigHandler( int signal );
Modified: trunk/code/sys/sys_unix.c
===================================================================
--- trunk/code/sys/sys_unix.c 2009-09-14 01:37:59 UTC (rev 1585)
+++ trunk/code/sys/sys_unix.c 2009-09-14 12:34:31 UTC (rev 1586)
@@ -518,6 +518,18 @@
/*
==============
+Sys_GLimpSafeInit
+
+Unix specific "safe" GL implementation initialisation
+==============
+*/
+void Sys_GLimpSafeInit( void )
+{
+ // NOP
+}
+
+/*
+==============
Sys_GLimpInit
Unix specific GL implementation initialisation
Modified: trunk/code/sys/sys_win32.c
===================================================================
--- trunk/code/sys/sys_win32.c 2009-09-14 01:37:59 UTC (rev 1585)
+++ trunk/code/sys/sys_win32.c 2009-09-14 12:34:31 UTC (rev 1586)
@@ -583,6 +583,25 @@
/*
==============
+Sys_GLimpSafeInit
+
+Windows specific "safe" GL implementation initialisation
+==============
+*/
+void Sys_GLimpSafeInit( void )
+{
+#ifndef DEDICATED
+ if( !SDL_VIDEODRIVER_externallySet )
+ {
+ // Here, we want to let SDL decide what do to unless
+ // explicitly requested otherwise
+ _putenv( "SDL_VIDEODRIVER=" );
+ }
+#endif
+}
+
+/*
+==============
Sys_GLimpInit
Windows specific GL implementation initialisation
More information about the quake3-commits
mailing list