From 86dd8cffdd97e5ac381c1fd88d9b63c910efe0da Mon Sep 17 00:00:00 2001 From: jpaana <> Date: Sun, 16 Feb 2003 23:57:52 +0000 Subject: [PATCH] Port Charles' GF3 fixes --- gl_bumparb.c | 17 ++++++++++++++--- gl_bumpparhelia.c | 19 +++++++++++++++---- gl_bumpradeon.c | 17 ++++++++++++++--- 3 files changed, 43 insertions(+), 10 deletions(-) diff --git a/gl_bumparb.c b/gl_bumparb.c index 0c6fe39..0e1fe91 100644 --- a/gl_bumparb.c +++ b/gl_bumparb.c @@ -748,7 +748,7 @@ void ARB_SetupSimpleStage(stage_t *s) ARB_SetupTcMod(&s->tcmods[i]); } - if (s->src_blend > 0) + if (s->src_blend > -1) { glBlendFunc(s->src_blend, s->dst_blend); glEnable(GL_BLEND); @@ -869,6 +869,11 @@ void ARB_drawTriangleListBase (vertexdef_t *verts, int *indecies, glTexCoordPointer(2, GL_FLOAT, verts->texcoordstride, verts->texcoords); glEnableClientState(GL_TEXTURE_COORD_ARRAY); + if (!shader->cull) + { + glDisable(GL_CULL_FACE); + } + for ( i = 0; i < shader->numstages; i++) { ARB_SetupSimpleStage(&shader->stages[i]); @@ -877,7 +882,7 @@ void ARB_drawTriangleListBase (vertexdef_t *verts, int *indecies, } glMatrixMode(GL_MODELVIEW); - if (verts->colors) + if (verts->colors && (shader->flags & SURF_PPLIGHT)) { glColorPointer(3, GL_UNSIGNED_BYTE, verts->colorstride, verts->colors); glEnableClientState(GL_COLOR_ARRAY); @@ -920,7 +925,7 @@ void ARB_drawTriangleListBase (vertexdef_t *verts, int *indecies, glDisableClientState(GL_COLOR_ARRAY); } - else + else if (shader->flags & SURF_PPLIGHT) { glColor3f(0,0,0); glDisable(GL_TEXTURE_2D); @@ -928,9 +933,15 @@ void ARB_drawTriangleListBase (vertexdef_t *verts, int *indecies, glEnable(GL_TEXTURE_2D); } + if (!shader->cull) + { + glEnable(GL_CULL_FACE); + } + glDisableClientState(GL_TEXTURE_COORD_ARRAY); glDisableClientState(GL_VERTEX_ARRAY); glDisable(GL_BLEND); + glDisable(GL_ALPHA_TEST); } /************************* diff --git a/gl_bumpparhelia.c b/gl_bumpparhelia.c index 4bea1aa..3e74bc7 100644 --- a/gl_bumpparhelia.c +++ b/gl_bumpparhelia.c @@ -1122,7 +1122,7 @@ void Parhelia_SetupSimpleStage(stage_t *s) Parhelia_SetupTcMod(&s->tcmods[i]); } - if (s->src_blend > 0) + if (s->src_blend > -1) { glBlendFunc(s->src_blend, s->dst_blend); glEnable(GL_BLEND); @@ -1267,6 +1267,11 @@ void Parhelia_drawTriangleListBase (vertexdef_t *verts, int *indecies, glTexCoordPointer(2, GL_FLOAT, verts->texcoordstride, verts->texcoords); glEnableClientState(GL_TEXTURE_COORD_ARRAY); + if (!shader->cull) + { + glDisable(GL_CULL_FACE); + } + for ( i = 0; i < shader->numstages; i++) { Parhelia_SetupSimpleStage(&shader->stages[i]); @@ -1275,7 +1280,7 @@ void Parhelia_drawTriangleListBase (vertexdef_t *verts, int *indecies, } glMatrixMode(GL_MODELVIEW); - if (verts->colors) + if (verts->colors && (shader->flags & SURF_PPLIGHT)) { glColorPointer(3, GL_UNSIGNED_BYTE, verts->colorstride, verts->colors); glEnableClientState(GL_COLOR_ARRAY); @@ -1295,7 +1300,7 @@ void Parhelia_drawTriangleListBase (vertexdef_t *verts, int *indecies, glBlendFunc(GL_ONE, GL_ONE); } } - else + else { glDisable(GL_BLEND); } @@ -1318,7 +1323,7 @@ void Parhelia_drawTriangleListBase (vertexdef_t *verts, int *indecies, glDisableClientState(GL_COLOR_ARRAY); } - else + else if (shader->flags & SURF_PPLIGHT) { glColor3f(0,0,0); glDisable(GL_TEXTURE_2D); @@ -1326,9 +1331,15 @@ void Parhelia_drawTriangleListBase (vertexdef_t *verts, int *indecies, glEnable(GL_TEXTURE_2D); } + if (!shader->cull) + { + glEnable(GL_CULL_FACE); + } + glDisableClientState(GL_TEXTURE_COORD_ARRAY); glDisableClientState(GL_VERTEX_ARRAY); glDisable(GL_BLEND); + glDisable(GL_ALPHA_TEST); } /************************* diff --git a/gl_bumpradeon.c b/gl_bumpradeon.c index b65feab..d129e82 100644 --- a/gl_bumpradeon.c +++ b/gl_bumpradeon.c @@ -1007,7 +1007,7 @@ void Radeon_SetupSimpleStage(stage_t *s) Radeon_SetupTcMod(&s->tcmods[i]); } - if (s->src_blend > 0) + if (s->src_blend > -1) { glBlendFunc(s->src_blend, s->dst_blend); glEnable(GL_BLEND); @@ -1128,6 +1128,11 @@ void Radeon_drawTriangleListBase (vertexdef_t *verts, int *indecies, glTexCoordPointer(2, GL_FLOAT, verts->texcoordstride, verts->texcoords); glEnableClientState(GL_TEXTURE_COORD_ARRAY); + if (!shader->cull) + { + glDisable(GL_CULL_FACE); + } + for ( i = 0; i < shader->numstages; i++) { Radeon_SetupSimpleStage(&shader->stages[i]); @@ -1136,7 +1141,7 @@ void Radeon_drawTriangleListBase (vertexdef_t *verts, int *indecies, } glMatrixMode(GL_MODELVIEW); - if (verts->colors) + if (verts->colors && (shader->flags & SURF_PPLIGHT)) { glColorPointer(3, GL_UNSIGNED_BYTE, verts->colorstride, verts->colors); glEnableClientState(GL_COLOR_ARRAY); @@ -1179,7 +1184,7 @@ void Radeon_drawTriangleListBase (vertexdef_t *verts, int *indecies, glDisableClientState(GL_COLOR_ARRAY); } - else + else if (shader->flags & SURF_PPLIGHT) { glColor3f(0,0,0); glDisable(GL_TEXTURE_2D); @@ -1187,9 +1192,15 @@ void Radeon_drawTriangleListBase (vertexdef_t *verts, int *indecies, glEnable(GL_TEXTURE_2D); } + if (!shader->cull) + { + glEnable(GL_CULL_FACE); + } + glDisableClientState(GL_TEXTURE_COORD_ARRAY); glDisableClientState(GL_VERTEX_ARRAY); glDisable(GL_BLEND); + glDisable(GL_ALPHA_TEST); } /*************************