/* =============== GLimp_StartDriverAndSetMode =============== */ static qboolean GLimp_StartDriverAndSetMode(int mode, qboolean fullscreen, qboolean noborder) { rserr_t err; if (!SDL_WasInit(SDL_INIT_VIDEO)) { const char *driverName; if (SDL_Init(SDL_INIT_VIDEO) == -1) { Com_Printf( "SDL_Init( SDL_INIT_VIDEO ) FAILED (%s)\n", SDL_GetError()); return qfalse; } driverName = SDL_GetCurrentVideoDriver(); if (!driverName) { Com_Error( ERR_FATAL, "No video driver initialized" ); return qfalse; } Com_Printf( "SDL using driver \"%s\"\n", driverName ); ri->Cvar_Set( "r_sdlDriver", driverName ); } if (SDL_GetNumVideoDisplays() <= 0) { Com_Error( ERR_FATAL, "SDL_GetNumVideoDisplays() FAILED (%s)", SDL_GetError() ); } if (fullscreen && ri->Cvar_VariableIntegerValue( "in_nograb" ) ) { Com_Printf( "Fullscreen not allowed with in_nograb 1\n"); ri->Cvar_Set( "r_fullscreen", "0" ); r_fullscreen->modified = qfalse; fullscreen = qfalse; } err = GLimp_SetMode(mode, fullscreen, noborder); switch ( err ) { case RSERR_INVALID_FULLSCREEN: Com_Printf( "...WARNING: fullscreen unavailable in this mode\n" ); return qfalse; case RSERR_INVALID_MODE: Com_Printf( "...WARNING: could not set the given mode (%d)\n", mode ); return qfalse; case RSERR_UNKNOWN: Com_Printf( "...ERROR: no display modes could be found.\n" ); return qfalse; default: break; } return qtrue; }
/* =============== GLimp_StartDriverAndSetMode =============== */ static qboolean GLimp_StartDriverAndSetMode(int mode, qboolean fullscreen, qboolean noborder) { int i; rserr_t err; if (!SDL_WasInit(SDL_INIT_VIDEO)) { char *driverName; if (SDL_Init(SDL_INIT_VIDEO) == -1) { Com_Printf( "SDL_Init( SDL_INIT_VIDEO ) FAILED (%s)\n", SDL_GetError()); return qfalse; } if (!SDL_GetNumVideoDrivers()) { Com_Printf( "SDL_GetNumVideoDrivers( ) FAILED (%s)\n", SDL_GetError()); return qfalse; } // // TODO: Prompt the user to choose a specific video driver. driverName = (char *)SDL_GetVideoDriver( 0 ); Com_Printf( "SDL using driver \"%s\"\n", driverName ); ri.Cvar_Set( "r_sdlDriver", driverName ); } if (fullscreen && ri.Cvar_VariableIntegerValue( "in_nograb" ) ) { Com_Printf( "Fullscreen not allowed with in_nograb 1\n"); ri.Cvar_Set( "r_fullscreen", "0" ); r_fullscreen->modified = qfalse; fullscreen = qfalse; } err = GLimp_SetMode(mode, fullscreen, noborder); switch ( err ) { case RSERR_INVALID_FULLSCREEN: Com_Printf( "...WARNING: fullscreen unavailable in this mode\n" ); return qfalse; case RSERR_INVALID_MODE: Com_Printf( "...WARNING: could not set the given mode (%d)\n", mode ); return qfalse; default: break; } return qtrue; }
qboolean GLimp_StartDriverAndSetMode(int mode, qboolean fullscreen, qboolean noborder) { rserr_t err; if (!SDL_WasInit(SDL_INIT_VIDEO)) { char driverName[64]; if (SDL_Init(SDL_INIT_VIDEO) == -1) { ri.Printf(PRINT_ALL, "SDL_Init( SDL_INIT_VIDEO ) FAILED (%s)\n", SDL_GetError()); return qfalse; } SDL_VideoDriverName(driverName, sizeof(driverName) - 1); ri.Printf(PRINT_ALL, "SDL using driver \"%s\"\n", driverName); Cvar_Set("r_sdlDriver", driverName); } if (fullscreen && Cvar_VariableIntegerValue("in_nograb")) { ri.Printf(PRINT_ALL, "Fullscreen not allowed with in_nograb 1\n"); ri.Cvar_Set("r_fullscreen", "0"); r_fullscreen->modified = qfalse; fullscreen = qfalse; } err = GLimp_SetMode(mode, fullscreen, noborder); switch (err) { case RSERR_INVALID_FULLSCREEN: ri.Printf(PRINT_ALL, "Fullscreen unavailable in mode: (%d)\n",mode); return qfalse; case RSERR_INVALID_MODE: ri.Printf(PRINT_ALL, "WARNING: could not set mode: (%d)\n", mode); return qfalse; default: ri.Printf(PRINT_ALL, "Set video mode: (%d)\n", mode); break; } if ( !qglGetString(GL_VENDOR) ) return qfalse; return qtrue; }
/* =============== GLimp_StartDriverAndSetMode =============== */ static qboolean GLimp_StartDriverAndSetMode( int mode, int fullscreen, int noborder ) { rserr_t err; if ( !SDL_WasInit( SDL_INIT_VIDEO ) ) { char driverName[ 64 ]; ri.Printf( PRINT_ALL, "SDL_Init( SDL_INIT_VIDEO )... " ); if ( SDL_Init( SDL_INIT_VIDEO | SDL_INIT_NOPARACHUTE ) == -1 ) { ri.Printf( PRINT_ALL, "SDL_Init(SDL_INIT_VIDEO | SDL_INIT_NOPARACHUTE) FAILED (%s)\n", SDL_GetError() ); return qfalse; } SDL_VideoDriverName( driverName, sizeof( driverName ) - 1 ); ri.Printf( PRINT_ALL, "SDL using driver \"%s\"\n", driverName ); ri.Cvar_Set( "r_sdlDriver", driverName ); } if ( fullscreen && ri.Cvar_VariableIntegerValue( "in_nograb" ) ) { ri.Printf( PRINT_ALL, "Fullscreen not allowed with in_nograb 1\n" ); ri.Cvar_Set( "r_fullscreen", "0" ); r_fullscreen->modified = qfalse; fullscreen = qfalse; } err = GLimp_SetMode( mode, fullscreen, noborder ); switch ( err ) { case RSERR_INVALID_FULLSCREEN: ri.Printf( PRINT_ALL, "...WARNING: fullscreen unavailable in this mode\n" ); return qfalse; case RSERR_INVALID_MODE: ri.Printf( PRINT_ALL, "...WARNING: could not set the given mode (%d)\n", mode ); return qfalse; default: break; } return qtrue; }
/* =============== GLimp_StartDriverAndSetMode =============== */ static qboolean GLimp_StartDriverAndSetMode( void ) { rserr_t err; if (!SDL_WasInit(SDL_INIT_VIDEO)) { const char *driverName; if (SDL_Init(SDL_INIT_VIDEO) != 0) { ri.Printf( PRINT_ALL, "SDL_Init( SDL_INIT_VIDEO ) FAILED (%s)\n", SDL_GetError()); return qfalse; } //SDL_VideoDriverName( driverName, sizeof( driverName ) - 1 ); driverName = SDL_GetCurrentVideoDriver( ); ri.Printf( PRINT_ALL, "SDL using driver \"%s\"\n", driverName ); Cvar_Set( "r_sdlDriver", driverName ); } if (r_fullscreen->integer && Cvar_VariableIntegerValue( "in_nograb" ) ) { ri.Printf( PRINT_ALL, "Fullscreen not allowed with in_nograb 1\n"); ri.Cvar_Set( "r_fullscreen", "0" ); r_fullscreen->modified = qfalse; //fullscreen = qfalse; } err = GLimp_SetMode( ); switch ( err ) { case RSERR_INVALID_FULLSCREEN: ri.Printf( PRINT_ALL, "...WARNING: fullscreen unavailable in this mode\n" ); return qfalse; case RSERR_INVALID_MODE: ri.Printf( PRINT_ALL, "...WARNING: could not set the given mode\n" ); return qfalse; default: break; } return qtrue; }
/** * @brief GLimp_StartDriverAndSetMode * @param[in] glConfig * @param[in] mode * @param[in] fullscreen * @param[in] noborder * @param[in] context * @return */ static qboolean GLimp_StartDriverAndSetMode(glconfig_t *glConfig, int mode, qboolean fullscreen, qboolean noborder, windowContext_t *context) { rserr_t err; if (!SDL_WasInit(SDL_INIT_VIDEO)) { if (SDL_Init(SDL_INIT_VIDEO) < 0) { Com_Printf("SDL_Init( SDL_INIT_VIDEO ) FAILED (%s)\n", SDL_GetError()); return qfalse; } Com_Printf("SDL initialized driver \"%s\"\n", SDL_GetCurrentVideoDriver()); } if (fullscreen && Cvar_VariableIntegerValue("in_nograb")) { Com_Printf("Fullscreen not allowed with in_nograb 1\n"); Cvar_Set("r_fullscreen", "0"); r_fullscreen->modified = qfalse; fullscreen = qfalse; } err = GLimp_SetMode(glConfig, mode, fullscreen, noborder, context); switch (err) { case RSERR_OK: return qtrue; case RSERR_INVALID_FULLSCREEN: Com_Printf("...WARNING: fullscreen unavailable in this mode\n"); break; case RSERR_INVALID_MODE: Com_Printf("...WARNING: could not set the given mode (%d)\n", mode); break; case RSERR_OLD_GL: Com_Error(ERR_VID_FATAL, "Could not create opengl 3 context"); case RSERR_UNKNOWN: // fall through default: Com_Error(ERR_VID_FATAL, "Can't set mode - an unknown error occured"); } return qfalse; }
/* =============== GLimp_StartDriverAndSetMode =============== */ static bool GLimp_StartDriverAndSetMode(int mode, bool fullscreen, bool noborder) { rserr_t err; if (!SDL_WasInit(SDL_INIT_VIDEO)) { const char *driverName; if (SDL_Init(SDL_INIT_VIDEO) == -1) { ri->Printf( PRINT_ALL, "SDL_Init( SDL_INIT_VIDEO ) FAILED (%s)\n", SDL_GetError()); return qfalse; } driverName = SDL_GetCurrentVideoDriver( ); ri->Printf( PRINT_ALL, "SDL using driver \"%s\"\n", driverName ); ri->Cvar_Set( "r_sdlDriver", driverName ); } if (fullscreen && ri->Cvar_VariableIntegerValue( "in_nograb" ) ) { ri->Printf( PRINT_ALL, "Fullscreen not allowed with in_nograb 1\n"); ri->Cvar_Set( "r_fullscreen", "0" ); r_fullscreen->modified = false; fullscreen = false; } err = (rserr_t)GLimp_SetMode(mode, fullscreen, noborder); switch ( err ) { case RSERR_INVALID_FULLSCREEN: ri->Printf( PRINT_ALL, "...WARNING: fullscreen unavailable in this mode\n" ); return false; case RSERR_INVALID_MODE: ri->Printf( PRINT_ALL, "...WARNING: could not set the given mode (%d)\n", mode ); return false; default: break; } return true; }
static qboolean GLimp_StartDriverAndSetMode(int mode, qboolean fullscreen, qboolean noborder) { rserr_t err; if (!SDL_WasInit(SDL_INIT_VIDEO)) { if (SDL_Init(SDL_INIT_VIDEO) < 0) { Ren_Print("SDL_Init( SDL_INIT_VIDEO ) FAILED (%s)\n", SDL_GetError()); return qfalse; } Ren_Print("SDL initialized driver \"%s\"\n", SDL_GetCurrentVideoDriver()); } if (fullscreen && ri.Cvar_VariableIntegerValue("in_nograb")) { Ren_Print("Fullscreen not allowed with in_nograb 1\n"); ri.Cvar_Set("r_fullscreen", "0"); r_fullscreen->modified = qfalse; fullscreen = qfalse; } err = GLimp_SetMode(mode, fullscreen, noborder); switch (err) { case RSERR_INVALID_FULLSCREEN: Ren_Print("...WARNING: fullscreen unavailable in this mode\n"); return qfalse; case RSERR_INVALID_MODE: Ren_Print("...WARNING: could not set the given mode (%d)\n", mode); return qfalse; case RSERR_OLD_GL: ri.Error(ERR_VID_FATAL, "Could not create opengl 3 context"); return qfalse; default: break; } return qtrue; }
/* =============== GLimp_StartDriverAndSetMode =============== */ static bool GLimp_StartDriverAndSetMode( int mode, bool fullscreen, bool noborder ) { rserr_t err; int numDisplays; if ( !SDL_WasInit( SDL_INIT_VIDEO ) ) { const char *driverName; SDL_version v; SDL_GetVersion( &v ); ri.Printf( PRINT_ALL, "SDL_Init( SDL_INIT_VIDEO )... " ); ri.Printf( PRINT_ALL, "Using SDL Version %u.%u.%u\n", v.major, v.minor, v.patch ); if ( SDL_Init( SDL_INIT_VIDEO | SDL_INIT_NOPARACHUTE ) == -1 ) { ri.Printf( PRINT_ALL, "SDL_Init(SDL_INIT_VIDEO | SDL_INIT_NOPARACHUTE) FAILED (%s)\n", SDL_GetError() ); return false; } driverName = SDL_GetCurrentVideoDriver(); if ( !driverName ) { ri.Error( ERR_FATAL, "No video driver initialized\n" ); } ri.Printf( PRINT_ALL, "SDL using driver \"%s\"\n", driverName ); ri.Cvar_Set( "r_sdlDriver", driverName ); } numDisplays = SDL_GetNumVideoDisplays(); if ( numDisplays <= 0 ) { ri.Error( ERR_FATAL, "SDL_GetNumVideoDisplays FAILED (%s)\n", SDL_GetError() ); } AssertCvarRange( r_displayIndex, 0, numDisplays - 1, true ); if ( fullscreen && ri.Cvar_VariableIntegerValue( "in_nograb" ) ) { ri.Printf( PRINT_ALL, "Fullscreen not allowed with in_nograb 1\n" ); ri.Cvar_Set( "r_fullscreen", "0" ); r_fullscreen->modified = false; fullscreen = false; } err = (rserr_t) GLimp_SetMode( mode, fullscreen, noborder ); switch ( err ) { case RSERR_INVALID_FULLSCREEN: ri.Printf( PRINT_ALL, "...WARNING: fullscreen unavailable in this mode\n" ); return false; case RSERR_INVALID_MODE: ri.Printf( PRINT_ALL, "...WARNING: could not set the given mode (%d)\n", mode ); return false; case RSERR_OLD_GL: ri.Printf( PRINT_ALL, "...WARNING: OpenGL too old\n" ); return false; default: break; } return true; }