Port Charles' GF3 fixes

This commit is contained in:
jpaana 2003-02-16 23:57:52 +00:00
parent 338d299280
commit 86dd8cffdd
3 changed files with 43 additions and 10 deletions

View file

@ -748,7 +748,7 @@ void ARB_SetupSimpleStage(stage_t *s)
ARB_SetupTcMod(&s->tcmods[i]); ARB_SetupTcMod(&s->tcmods[i]);
} }
if (s->src_blend > 0) if (s->src_blend > -1)
{ {
glBlendFunc(s->src_blend, s->dst_blend); glBlendFunc(s->src_blend, s->dst_blend);
glEnable(GL_BLEND); glEnable(GL_BLEND);
@ -869,6 +869,11 @@ void ARB_drawTriangleListBase (vertexdef_t *verts, int *indecies,
glTexCoordPointer(2, GL_FLOAT, verts->texcoordstride, verts->texcoords); glTexCoordPointer(2, GL_FLOAT, verts->texcoordstride, verts->texcoords);
glEnableClientState(GL_TEXTURE_COORD_ARRAY); glEnableClientState(GL_TEXTURE_COORD_ARRAY);
if (!shader->cull)
{
glDisable(GL_CULL_FACE);
}
for ( i = 0; i < shader->numstages; i++) for ( i = 0; i < shader->numstages; i++)
{ {
ARB_SetupSimpleStage(&shader->stages[i]); ARB_SetupSimpleStage(&shader->stages[i]);
@ -877,7 +882,7 @@ void ARB_drawTriangleListBase (vertexdef_t *verts, int *indecies,
} }
glMatrixMode(GL_MODELVIEW); glMatrixMode(GL_MODELVIEW);
if (verts->colors) if (verts->colors && (shader->flags & SURF_PPLIGHT))
{ {
glColorPointer(3, GL_UNSIGNED_BYTE, verts->colorstride, verts->colors); glColorPointer(3, GL_UNSIGNED_BYTE, verts->colorstride, verts->colors);
glEnableClientState(GL_COLOR_ARRAY); glEnableClientState(GL_COLOR_ARRAY);
@ -920,7 +925,7 @@ void ARB_drawTriangleListBase (vertexdef_t *verts, int *indecies,
glDisableClientState(GL_COLOR_ARRAY); glDisableClientState(GL_COLOR_ARRAY);
} }
else else if (shader->flags & SURF_PPLIGHT)
{ {
glColor3f(0,0,0); glColor3f(0,0,0);
glDisable(GL_TEXTURE_2D); glDisable(GL_TEXTURE_2D);
@ -928,9 +933,15 @@ void ARB_drawTriangleListBase (vertexdef_t *verts, int *indecies,
glEnable(GL_TEXTURE_2D); glEnable(GL_TEXTURE_2D);
} }
if (!shader->cull)
{
glEnable(GL_CULL_FACE);
}
glDisableClientState(GL_TEXTURE_COORD_ARRAY); glDisableClientState(GL_TEXTURE_COORD_ARRAY);
glDisableClientState(GL_VERTEX_ARRAY); glDisableClientState(GL_VERTEX_ARRAY);
glDisable(GL_BLEND); glDisable(GL_BLEND);
glDisable(GL_ALPHA_TEST);
} }
/************************* /*************************

View file

@ -1122,7 +1122,7 @@ void Parhelia_SetupSimpleStage(stage_t *s)
Parhelia_SetupTcMod(&s->tcmods[i]); Parhelia_SetupTcMod(&s->tcmods[i]);
} }
if (s->src_blend > 0) if (s->src_blend > -1)
{ {
glBlendFunc(s->src_blend, s->dst_blend); glBlendFunc(s->src_blend, s->dst_blend);
glEnable(GL_BLEND); glEnable(GL_BLEND);
@ -1267,6 +1267,11 @@ void Parhelia_drawTriangleListBase (vertexdef_t *verts, int *indecies,
glTexCoordPointer(2, GL_FLOAT, verts->texcoordstride, verts->texcoords); glTexCoordPointer(2, GL_FLOAT, verts->texcoordstride, verts->texcoords);
glEnableClientState(GL_TEXTURE_COORD_ARRAY); glEnableClientState(GL_TEXTURE_COORD_ARRAY);
if (!shader->cull)
{
glDisable(GL_CULL_FACE);
}
for ( i = 0; i < shader->numstages; i++) for ( i = 0; i < shader->numstages; i++)
{ {
Parhelia_SetupSimpleStage(&shader->stages[i]); Parhelia_SetupSimpleStage(&shader->stages[i]);
@ -1275,7 +1280,7 @@ void Parhelia_drawTriangleListBase (vertexdef_t *verts, int *indecies,
} }
glMatrixMode(GL_MODELVIEW); glMatrixMode(GL_MODELVIEW);
if (verts->colors) if (verts->colors && (shader->flags & SURF_PPLIGHT))
{ {
glColorPointer(3, GL_UNSIGNED_BYTE, verts->colorstride, verts->colors); glColorPointer(3, GL_UNSIGNED_BYTE, verts->colorstride, verts->colors);
glEnableClientState(GL_COLOR_ARRAY); glEnableClientState(GL_COLOR_ARRAY);
@ -1318,7 +1323,7 @@ void Parhelia_drawTriangleListBase (vertexdef_t *verts, int *indecies,
glDisableClientState(GL_COLOR_ARRAY); glDisableClientState(GL_COLOR_ARRAY);
} }
else else if (shader->flags & SURF_PPLIGHT)
{ {
glColor3f(0,0,0); glColor3f(0,0,0);
glDisable(GL_TEXTURE_2D); glDisable(GL_TEXTURE_2D);
@ -1326,9 +1331,15 @@ void Parhelia_drawTriangleListBase (vertexdef_t *verts, int *indecies,
glEnable(GL_TEXTURE_2D); glEnable(GL_TEXTURE_2D);
} }
if (!shader->cull)
{
glEnable(GL_CULL_FACE);
}
glDisableClientState(GL_TEXTURE_COORD_ARRAY); glDisableClientState(GL_TEXTURE_COORD_ARRAY);
glDisableClientState(GL_VERTEX_ARRAY); glDisableClientState(GL_VERTEX_ARRAY);
glDisable(GL_BLEND); glDisable(GL_BLEND);
glDisable(GL_ALPHA_TEST);
} }
/************************* /*************************

View file

@ -1007,7 +1007,7 @@ void Radeon_SetupSimpleStage(stage_t *s)
Radeon_SetupTcMod(&s->tcmods[i]); Radeon_SetupTcMod(&s->tcmods[i]);
} }
if (s->src_blend > 0) if (s->src_blend > -1)
{ {
glBlendFunc(s->src_blend, s->dst_blend); glBlendFunc(s->src_blend, s->dst_blend);
glEnable(GL_BLEND); glEnable(GL_BLEND);
@ -1128,6 +1128,11 @@ void Radeon_drawTriangleListBase (vertexdef_t *verts, int *indecies,
glTexCoordPointer(2, GL_FLOAT, verts->texcoordstride, verts->texcoords); glTexCoordPointer(2, GL_FLOAT, verts->texcoordstride, verts->texcoords);
glEnableClientState(GL_TEXTURE_COORD_ARRAY); glEnableClientState(GL_TEXTURE_COORD_ARRAY);
if (!shader->cull)
{
glDisable(GL_CULL_FACE);
}
for ( i = 0; i < shader->numstages; i++) for ( i = 0; i < shader->numstages; i++)
{ {
Radeon_SetupSimpleStage(&shader->stages[i]); Radeon_SetupSimpleStage(&shader->stages[i]);
@ -1136,7 +1141,7 @@ void Radeon_drawTriangleListBase (vertexdef_t *verts, int *indecies,
} }
glMatrixMode(GL_MODELVIEW); glMatrixMode(GL_MODELVIEW);
if (verts->colors) if (verts->colors && (shader->flags & SURF_PPLIGHT))
{ {
glColorPointer(3, GL_UNSIGNED_BYTE, verts->colorstride, verts->colors); glColorPointer(3, GL_UNSIGNED_BYTE, verts->colorstride, verts->colors);
glEnableClientState(GL_COLOR_ARRAY); glEnableClientState(GL_COLOR_ARRAY);
@ -1179,7 +1184,7 @@ void Radeon_drawTriangleListBase (vertexdef_t *verts, int *indecies,
glDisableClientState(GL_COLOR_ARRAY); glDisableClientState(GL_COLOR_ARRAY);
} }
else else if (shader->flags & SURF_PPLIGHT)
{ {
glColor3f(0,0,0); glColor3f(0,0,0);
glDisable(GL_TEXTURE_2D); glDisable(GL_TEXTURE_2D);
@ -1187,9 +1192,15 @@ void Radeon_drawTriangleListBase (vertexdef_t *verts, int *indecies,
glEnable(GL_TEXTURE_2D); glEnable(GL_TEXTURE_2D);
} }
if (!shader->cull)
{
glEnable(GL_CULL_FACE);
}
glDisableClientState(GL_TEXTURE_COORD_ARRAY); glDisableClientState(GL_TEXTURE_COORD_ARRAY);
glDisableClientState(GL_VERTEX_ARRAY); glDisableClientState(GL_VERTEX_ARRAY);
glDisable(GL_BLEND); glDisable(GL_BLEND);
glDisable(GL_ALPHA_TEST);
} }
/************************* /*************************