diff --git a/src/gl/system/gl_interface.cpp b/src/gl/system/gl_interface.cpp index 85946d59843..b2b4ea9ae95 100644 --- a/src/gl/system/gl_interface.cpp +++ b/src/gl/system/gl_interface.cpp @@ -43,6 +43,7 @@ static TArray m_Extensions; RenderContext gl; EXTERN_CVAR(Bool, gl_legacy_mode) +extern int currentrenderer; //========================================================================== // @@ -207,7 +208,8 @@ void gl_LoadExtensions() // The minimum requirement for the modern render path is GL 3.3. // Although some GL 3.1 or 3.2 solutions may theoretically work they are usually too broken or too slow. - if (gl_version < 3.3f) + // unless, of course, we're simply using this as a software backend... + if ((gl_version < 3.3f && (currentrenderer==1)) || gl_version < 3.0f) { gl.legacyMode = true; gl.lightmethod = LM_LEGACY; diff --git a/src/gl/system/gl_swframebuffer.cpp b/src/gl/system/gl_swframebuffer.cpp index 199dd2826d5..937778847f5 100644 --- a/src/gl/system/gl_swframebuffer.cpp +++ b/src/gl/system/gl_swframebuffer.cpp @@ -93,7 +93,6 @@ EXTERN_CVAR(Float, Gamma) EXTERN_CVAR(Bool, vid_vsync) EXTERN_CVAR(Float, transsouls) EXTERN_CVAR(Int, vid_refreshrate) -EXTERN_CVAR(Bool, gl_legacy_mode) #ifdef WIN32 extern cycle_t BlitCycles; @@ -199,15 +198,6 @@ OpenGLSWFrameBuffer::OpenGLSWFrameBuffer(void *hMonitor, int width, int height, const char *glversion = (const char*)glGetString(GL_VERSION); bool isGLES = (glversion && strlen(glversion) > 10 && memcmp(glversion, "OpenGL ES ", 10) == 0); - UCVarValue value; - // 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 - value.Bool = !ogl_IsVersionGEQ(3, 0); -#else - value.Bool = !ogl_IsVersionGEQ(3, 1); -#endif - gl_legacy_mode.ForceSet (value, CVAR_Bool); - if (!isGLES && ogl_IsVersionGEQ(3, 0) == 0) { Printf("OpenGL acceleration requires at least OpenGL 3.0. No Acceleration will be used.\n"); diff --git a/src/polyrenderer/scene/poly_playersprite.cpp b/src/polyrenderer/scene/poly_playersprite.cpp index 1cd987f98aa..57fc52c5b14 100644 --- a/src/polyrenderer/scene/poly_playersprite.cpp +++ b/src/polyrenderer/scene/poly_playersprite.cpp @@ -242,7 +242,7 @@ void RenderPolyPlayerSprites::RenderSprite(PolyRenderThread *thread, DPSprite *p sy += wy; } - double yaspectMul = 1.2;// 320.0 * SCREENHEIGHT / (r_Yaspect * SCREENWIDTH); + double yaspectMul = 1.2 * ((double)SCREENHEIGHT / SCREENWIDTH) * r_viewwindow.WidescreenRatio; double pspritexscale = viewwindow.centerxwide / 160.0; double pspriteyscale = pspritexscale * yaspectMul;