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]);
}
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);
}
/*************************

View file

@ -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);
}
/*************************

View file

@ -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);
}
/*************************