Remove support for old SGI Opengl extensions

Those extensions have become part of ARB about 15 years ago and most if
not all video cards still in use should support the ARB versions. I
believe that at least parts of this code were disfunctional.
This commit is contained in:
Yamagi Burmeister 2013-07-27 08:44:44 +02:00
parent ad52c5c888
commit 88bd357231
6 changed files with 39 additions and 80 deletions

View file

@ -122,11 +122,8 @@ extern void ( APIENTRY *qglColorTableEXT ) ( GLenum, GLenum, GLsizei, GLenum,
GLenum, const GLvoid * );
extern void ( APIENTRY *qglLockArraysEXT ) ( int, int );
extern void ( APIENTRY *qglUnlockArraysEXT ) ( void );
extern void ( APIENTRY *qglMTexCoord2fSGIS ) ( GLenum, GLfloat, GLfloat );
extern void ( APIENTRY *qglSelectTextureSGIS ) ( GLenum );
extern void ( APIENTRY *qglMultiTexCoord2fARB) ( GLenum, GLfloat, GLfloat );
extern void ( APIENTRY *qglActiveTextureARB ) ( GLenum );
extern void ( APIENTRY *qglClientActiveTextureARB ) ( GLenum );
extern int QGL_TEXTURE0, QGL_TEXTURE1;
#endif

View file

@ -46,8 +46,7 @@ void (APIENTRY *qglColorTableEXT)(GLenum, GLenum, GLsizei, GLenum, GLenum,
const GLvoid *);
void ( APIENTRY *qgl3DfxSetPaletteEXT ) ( GLuint * );
void ( APIENTRY *qglSelectTextureSGIS ) ( GLenum );
void ( APIENTRY *qglMTexCoord2fSGIS ) ( GLenum, GLfloat, GLfloat );
void ( APIENTRY *qglMultiTexCoord2fARB ) ( GLenum, GLfloat, GLfloat );
void ( APIENTRY *qglActiveTextureARB ) ( GLenum );
void ( APIENTRY *qglClientActiveTextureARB ) ( GLenum );
@ -62,8 +61,7 @@ QGL_Shutdown ( void )
qglPointParameterfvEXT = NULL;
qglColorTableEXT = NULL;
qgl3DfxSetPaletteEXT = NULL;
qglSelectTextureSGIS = NULL;
qglMTexCoord2fSGIS = NULL;
qglMultiTexCoord2fARB = NULL;
qglActiveTextureARB = NULL;
qglClientActiveTextureARB = NULL;
}
@ -87,8 +85,7 @@ QGL_Init (void)
qglPointParameterfvEXT = NULL;
qglColorTableEXT = NULL;
qgl3DfxSetPaletteEXT = NULL;
qglSelectTextureSGIS = NULL;
qglMTexCoord2fSGIS = NULL;
qglMultiTexCoord2fARB = NULL;
qglActiveTextureARB = NULL;
qglClientActiveTextureARB = NULL;
return true;

View file

@ -151,25 +151,25 @@ R_SetTexturePalette(unsigned palette[256])
void
R_EnableMultitexture(qboolean enable)
{
if (!qglSelectTextureSGIS && !qglActiveTextureARB)
if (!qglActiveTextureARB)
{
return;
}
if (enable)
{
R_SelectTexture(QGL_TEXTURE1);
R_SelectTexture(GL_TEXTURE1_ARB);
glEnable(GL_TEXTURE_2D);
R_TexEnv(GL_REPLACE);
}
else
{
R_SelectTexture(QGL_TEXTURE1);
R_SelectTexture(GL_TEXTURE1_ARB);
glDisable(GL_TEXTURE_2D);
R_TexEnv(GL_REPLACE);
}
R_SelectTexture(QGL_TEXTURE0);
R_SelectTexture(GL_TEXTURE0_ARB);
R_TexEnv(GL_REPLACE);
}
@ -178,12 +178,12 @@ R_SelectTexture(GLenum texture)
{
int tmu;
if (!qglSelectTextureSGIS && !qglActiveTextureARB)
if (!qglActiveTextureARB)
{
return;
}
if (texture == QGL_TEXTURE0)
if (texture == GL_TEXTURE0_ARB)
{
tmu = 0;
}
@ -199,11 +199,7 @@ R_SelectTexture(GLenum texture)
gl_state.currenttmu = tmu;
if (qglSelectTextureSGIS)
{
qglSelectTextureSGIS(texture);
}
else if (qglActiveTextureARB)
if (qglActiveTextureARB)
{
qglActiveTextureARB(texture);
qglClientActiveTextureARB(texture);
@ -246,7 +242,7 @@ R_MBind(GLenum target, int texnum)
{
R_SelectTexture(target);
if (target == QGL_TEXTURE0)
if (target == GL_TEXTURE0_ARB)
{
if (gl_state.currenttextures[0] == texnum)
{

View file

@ -252,7 +252,7 @@ LM_BeginBuildingLightmaps(model_t *m)
r_framecount = 1; /* no dlightcache */
R_EnableMultitexture(true);
R_SelectTexture(QGL_TEXTURE1);
R_SelectTexture(GL_TEXTURE1_ARB);
/* setup the base lightstyles so the lightmaps
won't have to be regenerated the first time

View file

@ -29,9 +29,6 @@
#define NUM_BEAM_SEGS 6
viddef_t vid;
int QGL_TEXTURE0, QGL_TEXTURE1;
model_t *r_worldmodel;
float gldepthmin, gldepthmax;
@ -1169,8 +1166,7 @@ R_Init(void *hinstance, void *hWnd)
VID_Printf(PRINT_ALL, "\n\nProbing for OpenGL extensions:\n");
/* grab extensions */
if (strstr(gl_config.extensions_string, "GL_EXT_compiled_vertex_array") ||
strstr(gl_config.extensions_string, "GL_SGI_compiled_vertex_array"))
if (strstr(gl_config.extensions_string, "GL_EXT_compiled_vertex_array"))
{
VID_Printf(PRINT_ALL, "...using GL_EXT_compiled_vertex_array\n");
qglLockArraysEXT = ( void * ) QGL_GetProcAddress ( "glLockArraysEXT" );
@ -1210,8 +1206,7 @@ R_Init(void *hinstance, void *hWnd)
VID_Printf(PRINT_ALL, "...using GL_EXT_shared_texture_palette\n");
qglColorTableEXT =
(void (APIENTRY *)(GLenum, GLenum, GLsizei, GLenum, GLenum,
const GLvoid * ) ) QGL_GetProcAddress (
"glColorTableEXT");
const GLvoid * ) ) QGL_GetProcAddress ("glColorTableEXT");
}
else
{
@ -1228,11 +1223,9 @@ R_Init(void *hinstance, void *hWnd)
if (gl_ext_multitexture->value)
{
VID_Printf(PRINT_ALL, "...using GL_ARB_multitexture\n");
qglMTexCoord2fSGIS = ( void * ) QGL_GetProcAddress ( "glMultiTexCoord2fARB" );
qglMultiTexCoord2fARB = ( void * ) QGL_GetProcAddress ( "glMultiTexCoord2fARB" );
qglActiveTextureARB = ( void * ) QGL_GetProcAddress ( "glActiveTextureARB" );
qglClientActiveTextureARB = ( void * ) QGL_GetProcAddress ( "glClientActiveTextureARB" );
QGL_TEXTURE0 = GL_TEXTURE0_ARB;
QGL_TEXTURE1 = GL_TEXTURE1_ARB;
}
else
{
@ -1244,30 +1237,6 @@ R_Init(void *hinstance, void *hWnd)
VID_Printf(PRINT_ALL, "...GL_ARB_multitexture not found\n");
}
if (strstr(gl_config.extensions_string, "GL_SGIS_multitexture"))
{
if (qglActiveTextureARB)
{
VID_Printf(PRINT_ALL, "...GL_SGIS_multitexture deprecated in favor of ARB_multitexture\n");
}
else if (gl_ext_multitexture->value)
{
VID_Printf(PRINT_ALL, "...using GL_SGIS_multitexture\n");
qglMTexCoord2fSGIS = ( void * ) QGL_GetProcAddress ( "glMTexCoord2fSGIS" );
qglSelectTextureSGIS = ( void * ) QGL_GetProcAddress ( "glSelectTextureSGIS" );
QGL_TEXTURE0 = GL_TEXTURE0_SGIS;
QGL_TEXTURE1 = GL_TEXTURE1_SGIS;
}
else
{
VID_Printf(PRINT_ALL, "...ignoring GL_SGIS_multitexture\n");
}
}
else
{
VID_Printf(PRINT_ALL, "...GL_SGIS_multitexture not found\n");
}
gl_config.anisotropic = false;
if (strstr(gl_config.extensions_string, "GL_EXT_texture_filter_anisotropic"))

View file

@ -542,7 +542,7 @@ R_DrawTextureChains(void)
c_visible_textures = 0;
if (!qglSelectTextureSGIS && !qglActiveTextureARB)
if (!qglActiveTextureARB)
{
for (i = 0, image = gltextures; i < numgltextures; i++, image++)
{
@ -673,7 +673,7 @@ R_RenderLightmappedPoly(msurface_t *surf)
R_BuildLightMap(surf, (void *)temp, smax * 4);
R_SetCacheState(surf);
R_MBind(QGL_TEXTURE1, gl_state.lightmap_textures + surf->lightmaptexturenum);
R_MBind(GL_TEXTURE1_ARB, gl_state.lightmap_textures + surf->lightmaptexturenum);
lmtex = surf->lightmaptexturenum;
@ -687,7 +687,7 @@ R_RenderLightmappedPoly(msurface_t *surf)
R_BuildLightMap(surf, (void *)temp, smax * 4);
R_MBind(QGL_TEXTURE1, gl_state.lightmap_textures + 0);
R_MBind(GL_TEXTURE1_ARB, gl_state.lightmap_textures + 0);
lmtex = 0;
@ -697,8 +697,8 @@ R_RenderLightmappedPoly(msurface_t *surf)
c_brush_polys++;
R_MBind(QGL_TEXTURE0, image->texnum);
R_MBind(QGL_TEXTURE1, gl_state.lightmap_textures + lmtex);
R_MBind(GL_TEXTURE0_ARB, image->texnum);
R_MBind(GL_TEXTURE1_ARB, gl_state.lightmap_textures + lmtex);
if (surf->texinfo->flags & SURF_FLOWING)
{
@ -719,8 +719,8 @@ R_RenderLightmappedPoly(msurface_t *surf)
for (i = 0; i < nv; i++, v += VERTEXSIZE)
{
qglMTexCoord2fSGIS(QGL_TEXTURE0, (v[3] + scroll), v[4]);
qglMTexCoord2fSGIS(QGL_TEXTURE1, v[5], v[6]);
qglMultiTexCoord2fARB(GL_TEXTURE0_ARB, (v[3] + scroll), v[4]);
qglMultiTexCoord2fARB(GL_TEXTURE1_ARB, v[5], v[6]);
glVertex3fv(v);
}
@ -736,8 +736,8 @@ R_RenderLightmappedPoly(msurface_t *surf)
for (i = 0; i < nv; i++, v += VERTEXSIZE)
{
qglMTexCoord2fSGIS(QGL_TEXTURE0, v[3], v[4]);
qglMTexCoord2fSGIS(QGL_TEXTURE1, v[5], v[6]);
qglMultiTexCoord2fARB(GL_TEXTURE0_ARB, v[3], v[4]);
qglMultiTexCoord2fARB(GL_TEXTURE1_ARB, v[5], v[6]);
glVertex3fv(v);
}
@ -749,8 +749,8 @@ R_RenderLightmappedPoly(msurface_t *surf)
{
c_brush_polys++;
R_MBind(QGL_TEXTURE0, image->texnum);
R_MBind(QGL_TEXTURE1, gl_state.lightmap_textures + lmtex);
R_MBind(GL_TEXTURE0_ARB, image->texnum);
R_MBind(GL_TEXTURE1_ARB, gl_state.lightmap_textures + lmtex);
if (surf->texinfo->flags & SURF_FLOWING)
{
@ -770,8 +770,8 @@ R_RenderLightmappedPoly(msurface_t *surf)
for (i = 0; i < nv; i++, v += VERTEXSIZE)
{
qglMTexCoord2fSGIS(QGL_TEXTURE0, (v[3] + scroll), v[4]);
qglMTexCoord2fSGIS(QGL_TEXTURE1, v[5], v[6]);
qglMultiTexCoord2fARB(GL_TEXTURE0_ARB, (v[3] + scroll), v[4]);
qglMultiTexCoord2fARB(GL_TEXTURE1_ARB, v[5], v[6]);
glVertex3fv(v);
}
@ -787,8 +787,8 @@ R_RenderLightmappedPoly(msurface_t *surf)
for (i = 0; i < nv; i++, v += VERTEXSIZE)
{
qglMTexCoord2fSGIS(QGL_TEXTURE0, v[3], v[4]);
qglMTexCoord2fSGIS(QGL_TEXTURE1, v[5], v[6]);
qglMultiTexCoord2fARB(GL_TEXTURE0_ARB, v[3], v[4]);
qglMultiTexCoord2fARB(GL_TEXTURE1_ARB, v[5], v[6]);
glVertex3fv(v);
}
@ -846,7 +846,7 @@ R_DrawInlineBModel(void)
psurf->texturechain = r_alpha_surfaces;
r_alpha_surfaces = psurf;
}
else if (qglMTexCoord2fSGIS && !(psurf->flags & SURF_DRAWTURB))
else if (qglMultiTexCoord2fARB && !(psurf->flags & SURF_DRAWTURB))
{
R_RenderLightmappedPoly(psurf);
}
@ -861,7 +861,7 @@ R_DrawInlineBModel(void)
if (!(currententity->flags & RF_TRANSLUCENT))
{
if (!qglMTexCoord2fSGIS)
if (!qglMultiTexCoord2fARB)
{
R_BlendLightmaps();
}
@ -941,9 +941,9 @@ R_DrawBrushModel(entity_t *e)
e->angles[2] = -e->angles[2];
R_EnableMultitexture(true);
R_SelectTexture(QGL_TEXTURE0);
R_SelectTexture(GL_TEXTURE0_ARB);
R_TexEnv(GL_REPLACE);
R_SelectTexture(QGL_TEXTURE1);
R_SelectTexture(GL_TEXTURE1_ARB);
if (!gl_config.mtexcombine)
{
@ -1121,7 +1121,7 @@ R_RecursiveWorldNode(mnode_t *node)
}
else
{
if (qglMTexCoord2fSGIS && !(surf->flags & SURF_DRAWTURB))
if (qglMultiTexCoord2fARB && !(surf->flags & SURF_DRAWTURB))
{
R_RenderLightmappedPoly(surf);
}
@ -1169,13 +1169,13 @@ R_DrawWorld(void)
memset(gl_lms.lightmap_surfaces, 0, sizeof(gl_lms.lightmap_surfaces));
R_ClearSkyBox();
if (qglMTexCoord2fSGIS)
if (qglMultiTexCoord2fARB)
{
R_EnableMultitexture(true);
R_SelectTexture(QGL_TEXTURE0);
R_SelectTexture(GL_TEXTURE0_ARB);
R_TexEnv(GL_REPLACE);
R_SelectTexture(QGL_TEXTURE1);
R_SelectTexture(GL_TEXTURE1_ARB);
if (!gl_config.mtexcombine)
{