mirror of
https://github.com/ZDoom/gzdoom-gles.git
synced 2025-02-27 13:41:06 +00:00
- store the last found OpenGL version in the INI so that modern GL related options can be removed when running old hardware with software rendering.
This commit is contained in:
parent
4a5fe65ce8
commit
762ba13cd9
4 changed files with 15 additions and 1 deletions
|
@ -132,6 +132,7 @@ extern void M_SetDefaultMode ();
|
||||||
extern void G_NewInit ();
|
extern void G_NewInit ();
|
||||||
extern void SetupPlayerClasses ();
|
extern void SetupPlayerClasses ();
|
||||||
extern void HUD_InitHud();
|
extern void HUD_InitHud();
|
||||||
|
void gl_PatchMenu(); // remove modern OpenGL options on old hardware.
|
||||||
void DeinitMenus();
|
void DeinitMenus();
|
||||||
const FIWADInfo *D_FindIWAD(TArray<FString> &wadfiles, const char *iwad, const char *basewad);
|
const FIWADInfo *D_FindIWAD(TArray<FString> &wadfiles, const char *iwad, const char *basewad);
|
||||||
|
|
||||||
|
@ -2639,6 +2640,7 @@ void D_DoomMain (void)
|
||||||
}
|
}
|
||||||
|
|
||||||
V_Init2();
|
V_Init2();
|
||||||
|
gl_PatchMenu();
|
||||||
UpdateJoystickMenu(NULL);
|
UpdateJoystickMenu(NULL);
|
||||||
|
|
||||||
v = Args->CheckValue ("-loadgame");
|
v = Args->CheckValue ("-loadgame");
|
||||||
|
|
|
@ -53,6 +53,7 @@
|
||||||
|
|
||||||
|
|
||||||
CVAR(Bool, gl_lights_additive, false, CVAR_ARCHIVE | CVAR_GLOBALCONFIG)
|
CVAR(Bool, gl_lights_additive, false, CVAR_ARCHIVE | CVAR_GLOBALCONFIG)
|
||||||
|
CVAR(Bool, gl_legacy_mode, false, CVAR_ARCHIVE | CVAR_GLOBALCONFIG | CVAR_NOSET)
|
||||||
|
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
//
|
//
|
||||||
|
@ -64,6 +65,7 @@ CVAR(Bool, gl_lights_additive, false, CVAR_ARCHIVE | CVAR_GLOBALCONFIG)
|
||||||
void gl_PatchMenu()
|
void gl_PatchMenu()
|
||||||
{
|
{
|
||||||
// Radial fog and Doom lighting are not available without full shader support.
|
// Radial fog and Doom lighting are not available without full shader support.
|
||||||
|
if (!gl_legacy_mode) return;
|
||||||
|
|
||||||
FOptionValues **opt = OptionValues.CheckKey("LightingModes");
|
FOptionValues **opt = OptionValues.CheckKey("LightingModes");
|
||||||
if (opt != NULL)
|
if (opt != NULL)
|
||||||
|
|
|
@ -42,6 +42,8 @@ void gl_PatchMenu();
|
||||||
static TArray<FString> m_Extensions;
|
static TArray<FString> m_Extensions;
|
||||||
RenderContext gl;
|
RenderContext gl;
|
||||||
|
|
||||||
|
EXTERN_CVAR(Bool, gl_legacy_mode)
|
||||||
|
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
|
@ -311,8 +313,8 @@ void gl_LoadExtensions()
|
||||||
FUDGE_FUNC(glRenderbufferStorage, EXT);
|
FUDGE_FUNC(glRenderbufferStorage, EXT);
|
||||||
FUDGE_FUNC(glBindRenderbuffer, EXT);
|
FUDGE_FUNC(glBindRenderbuffer, EXT);
|
||||||
FUDGE_FUNC(glCheckFramebufferStatus, EXT);
|
FUDGE_FUNC(glCheckFramebufferStatus, EXT);
|
||||||
gl_PatchMenu();
|
|
||||||
}
|
}
|
||||||
|
gl_legacy_mode = gl.legacyMode;
|
||||||
}
|
}
|
||||||
|
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
|
|
|
@ -92,6 +92,7 @@ EXTERN_CVAR(Float, Gamma)
|
||||||
EXTERN_CVAR(Bool, vid_vsync)
|
EXTERN_CVAR(Bool, vid_vsync)
|
||||||
EXTERN_CVAR(Float, transsouls)
|
EXTERN_CVAR(Float, transsouls)
|
||||||
EXTERN_CVAR(Int, vid_refreshrate)
|
EXTERN_CVAR(Int, vid_refreshrate)
|
||||||
|
EXTERN_CVAR(Bool, gl_legacy_mode)
|
||||||
|
|
||||||
CVAR(Int, vid_max_width, 0, CVAR_ARCHIVE | CVAR_GLOBALCONFIG)
|
CVAR(Int, vid_max_width, 0, CVAR_ARCHIVE | CVAR_GLOBALCONFIG)
|
||||||
CVAR(Int, vid_max_height, 0, CVAR_ARCHIVE | CVAR_GLOBALCONFIG)
|
CVAR(Int, vid_max_height, 0, CVAR_ARCHIVE | CVAR_GLOBALCONFIG)
|
||||||
|
@ -205,6 +206,13 @@ OpenGLSWFrameBuffer::OpenGLSWFrameBuffer(void *hMonitor, int width, int height,
|
||||||
|
|
||||||
const char *glversion = (const char*)glGetString(GL_VERSION);
|
const char *glversion = (const char*)glGetString(GL_VERSION);
|
||||||
bool isGLES = (glversion && strlen(glversion) > 10 && memcmp(glversion, "OpenGL ES ", 10) == 0);
|
bool isGLES = (glversion && strlen(glversion) > 10 && memcmp(glversion, "OpenGL ES ", 10) == 0);
|
||||||
|
|
||||||
|
// GL 3.0 is mostly broken on MESA drivers which really are the only relevant case here that doesn't fulfill the requirements based on version number alone.
|
||||||
|
#ifdef _WIN32
|
||||||
|
gl_legacy_mode = !ogl_IsVersionGEQ(3, 0);
|
||||||
|
#else
|
||||||
|
gl_legacy_mode = !ogl_IsVersionGEQ(3, 1);
|
||||||
|
#endif
|
||||||
if (!isGLES && ogl_IsVersionGEQ(3, 0) == 0)
|
if (!isGLES && ogl_IsVersionGEQ(3, 0) == 0)
|
||||||
{
|
{
|
||||||
Printf("OpenGL acceleration requires at least OpenGL 3.0. No Acceleration will be used.\n");
|
Printf("OpenGL acceleration requires at least OpenGL 3.0. No Acceleration will be used.\n");
|
||||||
|
|
Loading…
Reference in a new issue