diff --git a/common/defaults.h b/common/defaults.h index 367355e8..e0201c5d 100644 --- a/common/defaults.h +++ b/common/defaults.h @@ -147,7 +147,7 @@ Default build-depended cvar and constant values #endif #ifndef DEFAULT_RENDERER - #define DEFAULT_RENDERER "ref_gl" + #define DEFAULT_RENDERER "gl" #endif #if TARGET_OS_IPHONE diff --git a/engine/client/ref_common.c b/engine/client/ref_common.c index 12d5920b..8dab5d38 100644 --- a/engine/client/ref_common.c +++ b/engine/client/ref_common.c @@ -481,21 +481,38 @@ void R_Shutdown( void ) ref.initialized = false; } +void R_GetRendererName( char *dest, size_t size, const char *refdll ) +{ + Q_snprintf( dest, size, "%sref_%s.%s", +#ifdef OS_LIB_PREFIX + OS_LIB_PREFIX, +#else + "", +#endif + refdll, OS_LIB_EXT ); +} + qboolean R_Init( void ) { - char refdll[64]; + string refopt, refdll; - refdll[0] = 0; - - if( !Sys_GetParmFromCmdLine( "-ref", refdll ) ) + if( !Sys_GetParmFromCmdLine( "-ref", refopt ) ) { - Q_snprintf( refdll, sizeof( refdll ), "%s%s.%s", -#ifdef OS_LIB_PREFIX - OS_LIB_PREFIX, -#else - "", -#endif - DEFAULT_RENDERER, OS_LIB_EXT ); + // compile-time defaults + R_GetRendererName( refdll, sizeof( refdll ), DEFAULT_RENDERER ); + Con_Printf( "Loading default renderer: %s\n", refdll ); + } + else if( !Q_strstr( refopt, va( ".%s", OS_LIB_EXT ) ) ) + { + // shortened renderer name + R_GetRendererName( refdll, sizeof( refdll ), refopt ); + Con_Printf( "Loading renderer by short name: %s\n", refdll ); + } + else + { + // full path + Q_strcpy( refdll, refopt ); + Con_Printf( "Loading renderer: %s\n", refdll ); } gl_vsync = Cvar_Get( "gl_vsync", "0", FCVAR_ARCHIVE, "enable vertical syncronization" );