[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