add -nogl parm
This commit is contained in:
parent
f90b6d241f
commit
cac5f9d171
|
@ -1291,11 +1291,18 @@ void D_SRB2Main(void)
|
||||||
// Lactozilla: Does the render mode need to change?
|
// Lactozilla: Does the render mode need to change?
|
||||||
if ((setrenderneeded != 0) && (setrenderneeded != rendermode))
|
if ((setrenderneeded != 0) && (setrenderneeded != rendermode))
|
||||||
{
|
{
|
||||||
CONS_Printf("Switching the renderer...\n");
|
CONS_Printf(M_GetText("Switching the renderer...\n"));
|
||||||
|
Z_PreparePatchFlush();
|
||||||
|
|
||||||
|
// set needpatchflush / needpatchrecache true for D_CheckRendererState
|
||||||
needpatchflush = true;
|
needpatchflush = true;
|
||||||
needpatchrecache = true;
|
needpatchrecache = true;
|
||||||
|
|
||||||
|
// Set cv_renderer to the new render mode
|
||||||
VID_CheckRenderer();
|
VID_CheckRenderer();
|
||||||
SCR_ChangeRendererCVars(setrenderneeded);
|
SCR_ChangeRendererCVars(setrenderneeded);
|
||||||
|
|
||||||
|
// check the renderer's state, and then clear setrenderneeded
|
||||||
D_CheckRendererState();
|
D_CheckRendererState();
|
||||||
setrenderneeded = 0;
|
setrenderneeded = 0;
|
||||||
}
|
}
|
||||||
|
|
28
src/m_menu.c
28
src/m_menu.c
|
@ -310,6 +310,7 @@ static void M_AssignJoystick(INT32 choice);
|
||||||
static void M_ChangeControl(INT32 choice);
|
static void M_ChangeControl(INT32 choice);
|
||||||
|
|
||||||
// Video & Sound
|
// Video & Sound
|
||||||
|
static void M_VideoOptions(INT32 choice);
|
||||||
menu_t OP_VideoOptionsDef, OP_VideoModeDef, OP_ColorOptionsDef;
|
menu_t OP_VideoOptionsDef, OP_VideoModeDef, OP_ColorOptionsDef;
|
||||||
#ifdef HWRENDER
|
#ifdef HWRENDER
|
||||||
static void M_OpenGLOptionsMenu(void);
|
static void M_OpenGLOptionsMenu(void);
|
||||||
|
@ -1031,7 +1032,7 @@ static menuitem_t OP_MainMenu[] =
|
||||||
{IT_SUBMENU | IT_STRING, NULL, "Player 2 Controls...", &OP_P2ControlsDef, 20},
|
{IT_SUBMENU | IT_STRING, NULL, "Player 2 Controls...", &OP_P2ControlsDef, 20},
|
||||||
{IT_CVAR | IT_STRING, NULL, "Controls per key", &cv_controlperkey, 30},
|
{IT_CVAR | IT_STRING, NULL, "Controls per key", &cv_controlperkey, 30},
|
||||||
|
|
||||||
{IT_SUBMENU | IT_STRING, NULL, "Video Options...", &OP_VideoOptionsDef, 50},
|
{IT_CALL | IT_STRING, NULL, "Video Options...", M_VideoOptions, 50},
|
||||||
{IT_SUBMENU | IT_STRING, NULL, "Sound Options...", &OP_SoundOptionsDef, 60},
|
{IT_SUBMENU | IT_STRING, NULL, "Sound Options...", &OP_SoundOptionsDef, 60},
|
||||||
|
|
||||||
{IT_CALL | IT_STRING, NULL, "Server Options...", M_ServerOptions, 80},
|
{IT_CALL | IT_STRING, NULL, "Server Options...", M_ServerOptions, 80},
|
||||||
|
@ -1282,6 +1283,16 @@ static menuitem_t OP_Camera2ExtendedOptionsMenu[] =
|
||||||
{IT_STRING | IT_CVAR, NULL, "Crosshair", &cv_crosshair2, 126},
|
{IT_STRING | IT_CVAR, NULL, "Crosshair", &cv_crosshair2, 126},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum
|
||||||
|
{
|
||||||
|
op_video_resolution = 1,
|
||||||
|
#if (defined (__unix__) && !defined (MSDOS)) || defined (UNIXCOMMON) || defined (HAVE_SDL)
|
||||||
|
op_video_fullscreen,
|
||||||
|
#endif
|
||||||
|
op_video_vsync,
|
||||||
|
op_video_renderer,
|
||||||
|
};
|
||||||
|
|
||||||
static menuitem_t OP_VideoOptionsMenu[] =
|
static menuitem_t OP_VideoOptionsMenu[] =
|
||||||
{
|
{
|
||||||
{IT_HEADER, NULL, "Screen", NULL, 0},
|
{IT_HEADER, NULL, "Screen", NULL, 0},
|
||||||
|
@ -2078,6 +2089,20 @@ menu_t OP_PlaystyleDef = {
|
||||||
0, 0, 0, NULL
|
0, 0, 0, NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static void M_VideoOptions(INT32 choice)
|
||||||
|
{
|
||||||
|
(void)choice;
|
||||||
|
#ifdef HWRENDER
|
||||||
|
if (hwrenderloaded == -1)
|
||||||
|
{
|
||||||
|
OP_VideoOptionsMenu[op_video_renderer].status = (IT_TRANSTEXT | IT_PAIR);
|
||||||
|
OP_VideoOptionsMenu[op_video_renderer].patch = "Renderer";
|
||||||
|
OP_VideoOptionsMenu[op_video_renderer].text = "Software";
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
M_SetupNextMenu(&OP_VideoOptionsDef);
|
||||||
|
}
|
||||||
|
|
||||||
menu_t OP_VideoOptionsDef =
|
menu_t OP_VideoOptionsDef =
|
||||||
{
|
{
|
||||||
|
@ -12005,7 +12030,6 @@ static void M_VideoModeMenu(INT32 choice)
|
||||||
|
|
||||||
static void M_DrawMainVideoMenu(void)
|
static void M_DrawMainVideoMenu(void)
|
||||||
{
|
{
|
||||||
|
|
||||||
M_DrawGenericScrollMenu();
|
M_DrawGenericScrollMenu();
|
||||||
if (itemOn < 8) // where it starts to go offscreen; change this number if you change the layout of the video menu
|
if (itemOn < 8) // where it starts to go offscreen; change this number if you change the layout of the video menu
|
||||||
{
|
{
|
||||||
|
|
14
src/screen.c
14
src/screen.c
|
@ -450,6 +450,20 @@ static int target_renderer = 0;
|
||||||
void SCR_ActuallyChangeRenderer(void)
|
void SCR_ActuallyChangeRenderer(void)
|
||||||
{
|
{
|
||||||
setrenderneeded = target_renderer;
|
setrenderneeded = target_renderer;
|
||||||
|
|
||||||
|
#ifdef HWRENDER
|
||||||
|
// Well, it didn't even load anyway.
|
||||||
|
if ((hwrenderloaded == -1) && (setrenderneeded == render_opengl))
|
||||||
|
{
|
||||||
|
if (M_CheckParm("-nogl"))
|
||||||
|
CONS_Alert(CONS_ERROR, "OpenGL rendering was disabled!\n");
|
||||||
|
else
|
||||||
|
CONS_Alert(CONS_ERROR, "OpenGL never loaded\n");
|
||||||
|
setrenderneeded = 0;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
// setting the same renderer twice WILL crash your game, so let's not, please
|
// setting the same renderer twice WILL crash your game, so let's not, please
|
||||||
if (rendermode == setrenderneeded)
|
if (rendermode == setrenderneeded)
|
||||||
setrenderneeded = 0;
|
setrenderneeded = 0;
|
||||||
|
|
|
@ -1440,7 +1440,7 @@ static SDL_bool Impl_CreateContext(void)
|
||||||
{
|
{
|
||||||
// Renderer-specific stuff
|
// Renderer-specific stuff
|
||||||
#ifdef HWRENDER
|
#ifdef HWRENDER
|
||||||
if (rendermode == render_opengl)
|
if ((rendermode == render_opengl) && (hwrenderloaded != -1))
|
||||||
{
|
{
|
||||||
if (!sdlglcontext)
|
if (!sdlglcontext)
|
||||||
sdlglcontext = SDL_GL_CreateContext(window);
|
sdlglcontext = SDL_GL_CreateContext(window);
|
||||||
|
@ -1478,7 +1478,6 @@ static void VID_CheckGLLoaded(rendermode_t oldrender)
|
||||||
{
|
{
|
||||||
if (hwrenderloaded == -1) // Well, it didn't work the first time anyway.
|
if (hwrenderloaded == -1) // Well, it didn't work the first time anyway.
|
||||||
{
|
{
|
||||||
CONS_Alert(CONS_ERROR, "OpenGL never loaded\n");
|
|
||||||
rendermode = oldrender;
|
rendermode = oldrender;
|
||||||
if (chosenrendermode == render_opengl) // fallback to software
|
if (chosenrendermode == render_opengl) // fallback to software
|
||||||
rendermode = render_soft;
|
rendermode = render_soft;
|
||||||
|
@ -1587,6 +1586,7 @@ static SDL_bool Impl_CreateWindow(SDL_bool fullscreen)
|
||||||
flags |= SDL_WINDOW_BORDERLESS;
|
flags |= SDL_WINDOW_BORDERLESS;
|
||||||
|
|
||||||
#ifdef HWRENDER
|
#ifdef HWRENDER
|
||||||
|
if (hwrenderloaded != -1)
|
||||||
flags |= SDL_WINDOW_OPENGL;
|
flags |= SDL_WINDOW_OPENGL;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -1721,6 +1721,9 @@ void I_StartupGraphics(void)
|
||||||
//SDL_EnableKeyRepeat(SDL_DEFAULT_REPEAT_DELAY>>1,SDL_DEFAULT_REPEAT_INTERVAL<<2);
|
//SDL_EnableKeyRepeat(SDL_DEFAULT_REPEAT_DELAY>>1,SDL_DEFAULT_REPEAT_INTERVAL<<2);
|
||||||
VID_Command_ModeList_f();
|
VID_Command_ModeList_f();
|
||||||
#ifdef HWRENDER
|
#ifdef HWRENDER
|
||||||
|
if (M_CheckParm("-nogl"))
|
||||||
|
hwrenderloaded = -1; // Don't call SDL_GL_LoadLibrary
|
||||||
|
else
|
||||||
I_StartupHardwareGraphics();
|
I_StartupHardwareGraphics();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue