From fcdbcf5b0d566639525312ef667a90d194db4f47 Mon Sep 17 00:00:00 2001 From: Lee Salzman Date: Sat, 22 Nov 2008 17:14:23 +0000 Subject: [PATCH] attempting workaround for S3 graphics bug git-svn-id: svn://svn.code.sf.net/p/actiongame/code/trunk/ac@3729 e016b1c5-ed68-44aa-a2f7-31cac88cffde --- source/src/rendergl.cpp | 3 +++ source/src/vertmodel.h | 5 +++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/source/src/rendergl.cpp b/source/src/rendergl.cpp index bcf46fa0..b88bee4b 100644 --- a/source/src/rendergl.cpp +++ b/source/src/rendergl.cpp @@ -39,6 +39,7 @@ int glext(char *ext) COMMAND(glext, ARG_1EST); VAR(ati_mda_bug, 0, 0, 1); +VAR(s3_dlist_bug, 0, 0, 1); void gl_checkextensions() { @@ -49,6 +50,8 @@ void gl_checkextensions() conoutf("Renderer: %s (%s)", renderer, vendor); conoutf("Driver: %s", version); + if(strstr(vendor, "S3 Graphics")) s3_dlist_bug = 1; + if(strstr(exts, "GL_EXT_texture_env_combine") || strstr(exts, "GL_ARB_texture_env_combine")) hasTE = true; else conoutf("WARNING: cannot use overbright lighting, using old lighting model!"); diff --git a/source/src/vertmodel.h b/source/src/vertmodel.h index 16ed994d..67ec44f4 100644 --- a/source/src/vertmodel.h +++ b/source/src/vertmodel.h @@ -519,14 +519,15 @@ struct vertmodel : model return; } - if(isstat && !owner->model->vertexlight) glNewList(statlist = glGenLists(1), GL_COMPILE); + extern int s3_dlist_bug; + if(isstat && !owner->model->vertexlight && !s3_dlist_bug) glNewList(statlist = glGenLists(1), GL_COMPILE); loopi(numdyndraws) { const drawcall &d = dyndraws[i]; if(hasDRE) glDrawRangeElements_(d.type, d.minvert, d.maxvert, d.count, GL_UNSIGNED_SHORT, &dynidx[d.start]); else glDrawElements(d.type, d.count, GL_UNSIGNED_SHORT, &dynidx[d.start]); } - if(isstat && !owner->model->vertexlight) + if(isstat && !owner->model->vertexlight && !s3_dlist_bug) { glEndList(); glCallList(statlist);