From 450047627a51cf3a1b96abe9df1b4e94b877b872 Mon Sep 17 00:00:00 2001 From: terminx Date: Sun, 2 Jul 2006 21:25:33 +0000 Subject: [PATCH] Allow disabling of the HOM correction hack git-svn-id: https://svn.eduke32.com/eduke32@204 1a8010ca-5511-0410-912e-c29ae57300e0 --- polymer/build/include/build.h | 3 ++- polymer/build/src/polymost.c | 7 ++++--- polymer/eduke32/source/config.c | 2 ++ polymer/eduke32/source/osdcmds.c | 1 + 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/polymer/build/include/build.h b/polymer/build/include/build.h index 432038b2e..fbf2360e5 100644 --- a/polymer/build/include/build.h +++ b/polymer/build/include/build.h @@ -472,7 +472,8 @@ extern long glusetexcompr; extern long gltexfiltermode; extern long glredbluemode; extern long glusetexcache, glusetexcachecompression; -extern long glmultisample, glnvmultisamplehint, glwidescreen, glhudcorrect; +extern long glmultisample, glnvmultisamplehint; +extern long glwidescreen, glhudcorrect, glprojectionhacks; void gltexapplyprops (void); #endif diff --git a/polymer/build/src/polymost.c b/polymer/build/src/polymost.c index 88e1e29c2..e151e11ac 100644 --- a/polymer/build/src/polymost.c +++ b/polymer/build/src/polymost.c @@ -126,6 +126,7 @@ long gltexmiplevel = 0; // discards this many mipmap levels static long lastglpolygonmode = 0; //FUK long glpolygonmode = 0; // 0:GL_FILL,1:GL_LINE,2:GL_POINT //FUK long glwidescreen = 0; +long glprojectionhacks = 1; long glhudcorrect = 0; static GLuint polymosttext = 0; extern char nofog; @@ -592,15 +593,15 @@ void resizeglcheck () glox1 = windowx1; gloy1 = windowy1; glox2 = windowx2; gloy2 = windowy2; - fovcorrect = glwidescreen?0:(((windowx2-windowx1+1) * 1.2) - (windowx2-windowx1+1)); + fovcorrect = glprojectionhacks?(glwidescreen?0:(((windowx2-windowx1+1) * 1.2) - (windowx2-windowx1+1))):0; bglViewport(windowx1 - (fovcorrect / 2), yres-(windowy2+1),windowx2-windowx1+1 + fovcorrect, windowy2-windowy1+1); bglMatrixMode(GL_PROJECTION); memset(m,0,sizeof(m)); - m[0][0] = (float)ydimen / 1.2; m[0][2] = 1.0; + m[0][0] = (float)ydimen / (glprojectionhacks?1.2:1); m[0][2] = 1.0; m[1][1] = (float)xdimen; m[1][2] = 1.0; - m[2][2] = 1.0; m[2][3] = (float)ydimen / 1.2; + m[2][2] = 1.0; m[2][3] = (float)ydimen / (glprojectionhacks?1.2:1); m[3][2] =-1.0; bglLoadMatrixf(&m[0][0]); //bglLoadIdentity(); diff --git a/polymer/eduke32/source/config.c b/polymer/eduke32/source/config.c index e8a3030ea..c185d0dcf 100644 --- a/polymer/eduke32/source/config.c +++ b/polymer/eduke32/source/config.c @@ -617,6 +617,7 @@ int32 CONFIG_ReadSetup( void ) SCRIPT_GetNumber( scripthandle, "Screen Setup", "GLTextureMode", &gltexfiltermode); SCRIPT_GetNumber( scripthandle, "Screen Setup", "GLAnisotropy", &glanisotropy); SCRIPT_GetNumber( scripthandle, "Screen Setup", "GLHUDCorrect", &glhudcorrect); + SCRIPT_GetNumber( scripthandle, "Screen Setup", "GLProjectionFix", &glprojectionhacks); SCRIPT_GetNumber( scripthandle, "Screen Setup", "GLUseTextureCompr", &glusetexcompr); SCRIPT_GetNumber( scripthandle, "Screen Setup", "GLWidescreen", &glwidescreen); @@ -762,6 +763,7 @@ void CONFIG_WriteSetup( void ) #if defined(POLYMOST) && defined(USE_OPENGL) SCRIPT_PutNumber( scripthandle, "Screen Setup", "GLAnisotropy",glanisotropy,false,false); SCRIPT_PutNumber( scripthandle, "Screen Setup", "GLHUDCorrect",glhudcorrect,false,false); + SCRIPT_PutNumber( scripthandle, "Screen Setup", "GLProjectionFix",glprojectionhacks,false,false); SCRIPT_PutNumber( scripthandle, "Screen Setup", "GLTextureMode",gltexfiltermode,false,false); SCRIPT_PutNumber( scripthandle, "Screen Setup", "GLUseCompressedTextureCache", glusetexcache,false,false); SCRIPT_PutNumber( scripthandle, "Screen Setup", "GLUseTextureCacheCompression", glusetexcachecompression,false,false); diff --git a/polymer/eduke32/source/osdcmds.c b/polymer/eduke32/source/osdcmds.c index cfa20fcce..adbac7bd8 100644 --- a/polymer/eduke32/source/osdcmds.c +++ b/polymer/eduke32/source/osdcmds.c @@ -469,6 +469,7 @@ struct cvarmappings { #if defined(POLYMOST) && defined(USE_OPENGL) { "r_anamorphic", "r_anamorphic: enable/disable widescreen mode", (void*)&glwidescreen, CVAR_BOOL, 0, 0, 1 }, { "r_hudcorrect", "r_hudcorrect: enable/disable correct HUD weapon rendering", (void*)&glhudcorrect, CVAR_BOOL, 0, 0, 1 }, + { "r_projectionhack", "r_projectionhack: enable/disable projection hack", (void*)&glprojectionhacks, CVAR_BOOL, 0, 0, 1 }, #endif { "r_precache", "r_precache: enable/disable the pre-level caching routine", (void*)&useprecache, CVAR_BOOL, 0, 0, 1 } };