From 7e5d433eea429bc4b471975cddccd6d773729d81 Mon Sep 17 00:00:00 2001 From: jpaana <> Date: Wed, 24 Mar 2004 00:20:38 +0000 Subject: [PATCH] Search and replace job to get to compile --- gl_bumpgeneric.c | 1172 +++++++++++++++++++++++---------------------- gl_bumpgf.c | 74 +-- gl_bumpgl2.c | 81 ++-- gl_bumpnv3x.c | 76 ++- gl_bumpparhelia.c | 50 +- gl_bumpradeon.c | 50 +- 6 files changed, 761 insertions(+), 742 deletions(-) diff --git a/gl_bumpgeneric.c b/gl_bumpgeneric.c index d316c0f..8f40f30 100644 --- a/gl_bumpgeneric.c +++ b/gl_bumpgeneric.c @@ -52,18 +52,18 @@ static void generic_checkerror() /** Light attenuation shader */ -void GL_EnableGenericAttShader() { - - GL_Bind(glow_texture_object); - glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); - GL_EnableMultitexture(); - GL_Bind(glow_texture_object); - glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); - +void GL_EnableGenericAttShader(void) +{ + GL_Bind(glow_texture_object); + glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); + GL_EnableMultitexture(); + GL_Bind(glow_texture_object); + glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); } -void GL_DisableGenericAttShader() { - GL_DisableMultitexture(); +void GL_DisableGenericAttShader(void) +{ + GL_DisableMultitexture(); } /** @@ -72,47 +72,54 @@ void GL_DisableGenericAttShader() { tu0 = light filter cube map tu1 = material color map */ -void GL_EnableGenericColorShader (qboolean specular) { +void GL_EnableGenericColorShader (qboolean specular) +{ + GL_SelectTexture(GL_TEXTURE0_ARB); + glDisable(GL_TEXTURE_2D); + glEnable(GL_TEXTURE_CUBE_MAP_ARB); - GL_SelectTexture(GL_TEXTURE0_ARB); - glDisable(GL_TEXTURE_2D); - glEnable(GL_TEXTURE_CUBE_MAP_ARB); - - GL_SelectTexture(GL_TEXTURE0_ARB); - glBindTexture(GL_TEXTURE_CUBE_MAP_ARB, currentshadowlight->filtercube); - glTexEnvf (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_ARB); + GL_SelectTexture(GL_TEXTURE0_ARB); + glBindTexture(GL_TEXTURE_CUBE_MAP_ARB, currentshadowlight->filtercube); + glTexEnvf (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_ARB); glTexEnvf (GL_TEXTURE_ENV, GL_SOURCE0_RGB_ARB, GL_PREVIOUS_ARB); glTexEnvf (GL_TEXTURE_ENV, GL_SOURCE1_RGB_ARB, GL_TEXTURE); glTexEnvf (GL_TEXTURE_ENV, GL_COMBINE_RGB_ARB, GL_MODULATE); - if (!specular) { - GL_EnableMultitexture(); - glTexEnvf (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_ARB); - glTexEnvf (GL_TEXTURE_ENV, GL_SOURCE0_RGB_ARB, GL_PREVIOUS_ARB); - glTexEnvf (GL_TEXTURE_ENV, GL_SOURCE1_RGB_ARB, GL_TEXTURE); - glTexEnvf (GL_TEXTURE_ENV, GL_COMBINE_RGB_ARB, GL_MODULATE); - } else { - GL_EnableMultitexture(); - glTexEnvf (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_ARB); - glTexEnvf (GL_TEXTURE_ENV, GL_SOURCE0_RGB_ARB, GL_PREVIOUS_ARB); - glTexEnvf (GL_TEXTURE_ENV, GL_SOURCE1_RGB_ARB, GL_TEXTURE); - glTexEnvf (GL_TEXTURE_ENV, GL_OPERAND1_RGB_ARB, GL_SRC_ALPHA); - glTexEnvf (GL_TEXTURE_ENV, GL_COMBINE_RGB_ARB, GL_MODULATE); - } + if (!specular) + { + GL_EnableMultitexture(); + glTexEnvf (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_ARB); + glTexEnvf (GL_TEXTURE_ENV, GL_SOURCE0_RGB_ARB, GL_PREVIOUS_ARB); + glTexEnvf (GL_TEXTURE_ENV, GL_SOURCE1_RGB_ARB, GL_TEXTURE); + glTexEnvf (GL_TEXTURE_ENV, GL_COMBINE_RGB_ARB, GL_MODULATE); + } + else + { + GL_EnableMultitexture(); + glTexEnvf (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_ARB); + glTexEnvf (GL_TEXTURE_ENV, GL_SOURCE0_RGB_ARB, GL_PREVIOUS_ARB); + glTexEnvf (GL_TEXTURE_ENV, GL_SOURCE1_RGB_ARB, GL_TEXTURE); + glTexEnvf (GL_TEXTURE_ENV, GL_OPERAND1_RGB_ARB, GL_SRC_ALPHA); + glTexEnvf (GL_TEXTURE_ENV, GL_COMBINE_RGB_ARB, GL_MODULATE); + } } -void GL_DisableGenericColorShader (qboolean specular) { +void GL_DisableGenericColorShader (qboolean specular) +{ - if (!specular) { - GL_DisableMultitexture(); - } else { - glTexEnvf (GL_TEXTURE_ENV, GL_OPERAND1_RGB_ARB, GL_SRC_COLOR); - GL_DisableMultitexture(); - } + if (!specular) + { + GL_DisableMultitexture(); + } + else + { + glTexEnvf (GL_TEXTURE_ENV, GL_OPERAND1_RGB_ARB, GL_SRC_COLOR); + GL_DisableMultitexture(); + } - glEnable(GL_TEXTURE_2D); - glDisable(GL_TEXTURE_CUBE_MAP_ARB); + glEnable(GL_TEXTURE_2D); + glDisable(GL_TEXTURE_CUBE_MAP_ARB); } /** @@ -121,31 +128,32 @@ void GL_DisableGenericColorShader (qboolean specular) { texture coords for unit 0: Tangent space light vector texture coords for unit 1: Normal map texture coords */ -void GL_EnableGenericDiffuseShader () { +void GL_EnableGenericDiffuseShader(void) +{ - GL_SelectTexture(GL_TEXTURE0_ARB); - glDisable(GL_TEXTURE_2D); - glEnable(GL_TEXTURE_CUBE_MAP_ARB); - glBindTexture(GL_TEXTURE_CUBE_MAP_ARB, normcube_texture_object); + GL_SelectTexture(GL_TEXTURE0_ARB); + glDisable(GL_TEXTURE_2D); + glEnable(GL_TEXTURE_CUBE_MAP_ARB); + glBindTexture(GL_TEXTURE_CUBE_MAP_ARB, normcube_texture_object); - glTexEnvf (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_ARB); + glTexEnvf (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_ARB); glTexEnvf (GL_TEXTURE_ENV, GL_SOURCE0_RGB_ARB, GL_TEXTURE); glTexEnvf (GL_TEXTURE_ENV, GL_SOURCE1_RGB_ARB, GL_TEXTURE); glTexEnvf (GL_TEXTURE_ENV, GL_COMBINE_RGB_ARB, GL_REPLACE); - GL_EnableMultitexture(); - glTexEnvf (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_ARB); + GL_EnableMultitexture(); + glTexEnvf (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_ARB); glTexEnvf (GL_TEXTURE_ENV, GL_SOURCE0_RGB_ARB, GL_PREVIOUS_ARB); glTexEnvf (GL_TEXTURE_ENV, GL_SOURCE1_RGB_ARB, GL_TEXTURE); glTexEnvf (GL_TEXTURE_ENV, GL_COMBINE_RGB_ARB, GL_DOT3_RGBA_ARB); } -void GL_DisableGenericDiffuseShader () { - - GL_DisableMultitexture(); - glEnable(GL_TEXTURE_2D); - glDisable(GL_TEXTURE_CUBE_MAP_ARB); +void GL_DisableGenericDiffuseShader (void) +{ + GL_DisableMultitexture(); + glEnable(GL_TEXTURE_2D); + glDisable(GL_TEXTURE_CUBE_MAP_ARB); } @@ -160,20 +168,20 @@ void Generic_SetupTcMod(tcmod_t *tc) switch (tc->type) { case TCMOD_ROTATE: - glTranslatef(0.5,0.5,0.0); - glRotatef(realtime * tc->params[0],0,0,1); - glTranslatef(-0.5, -0.5, 0.0); - break; + glTranslatef(0.5,0.5,0.0); + glRotatef(realtime * tc->params[0],0,0,1); + glTranslatef(-0.5, -0.5, 0.0); + break; case TCMOD_SCROLL: - glTranslatef(realtime * tc->params[0], realtime * tc->params[1], 0.0); - break; + glTranslatef(realtime * tc->params[0], realtime * tc->params[1], 0.0); + break; case TCMOD_SCALE: - glScalef(tc->params[0],tc->params[1],1.0); - break; + glScalef(tc->params[0],tc->params[1],1.0); + break; case TCMOD_STRETCH: - //PENTA: fixme - glScalef(1.0, 1.0, 1.0); - break; + //PENTA: fixme + glScalef(1.0, 1.0, 1.0); + break; } } @@ -185,8 +193,8 @@ void Generic_SetupSimpleStage(stage_t *s) if (s->type != STAGE_SIMPLE) { - Con_Printf("Non simple stage, in simple stage list"); - return; + Con_Printf("Non simple stage, in simple stage list"); + return; } glMatrixMode(GL_TEXTURE); @@ -194,23 +202,23 @@ void Generic_SetupSimpleStage(stage_t *s) for (i=0; inumtcmods; i++) { - Generic_SetupTcMod(&s->tcmods[i]); + Generic_SetupTcMod(&s->tcmods[i]); } if (s->src_blend > -1) { - glBlendFunc(s->src_blend, s->dst_blend); - glEnable(GL_BLEND); + glBlendFunc(s->src_blend, s->dst_blend); + glEnable(GL_BLEND); } if (s->alphatresh > 0) { - glEnable(GL_ALPHA_TEST); - glAlphaFunc(GL_GREATER, s->alphatresh); + glEnable(GL_ALPHA_TEST); + glAlphaFunc(GL_GREATER, s->alphatresh); } if ((s->numtextures > 0) && (s->texture[0])) - GL_BindAdvanced(s->texture[0]); + GL_BindAdvanced(s->texture[0]); } /************************ @@ -228,7 +236,7 @@ void Generic_drawTriangleListBump (const vertexdef_t *verts, int *indecies, { return; glEnableClientState(GL_VERTEX_ARRAY); - glVertexPointer(3, GL_FLOAT, verts->vertexstride, verts->vertices); + GL_VertexPointer(3, GL_FLOAT, verts->vertexstride, verts->vertices); GL_AddColor(); glColor3fv(¤tshadowlight->color[0]); @@ -239,34 +247,34 @@ void Generic_drawTriangleListBump (const vertexdef_t *verts, int *indecies, GL_SelectTexture(GL_TEXTURE0_ARB); qglClientActiveTextureARB(GL_TEXTURE0_ARB); if (shader->numbumpstages > 0) - GL_BindAdvanced(shader->bumpstages[0].texture[0]); + GL_BindAdvanced(shader->bumpstages[0].texture[0]); if (!verts->texcoords) - FormatError(); + FormatError(); glEnableClientState(GL_TEXTURE_COORD_ARRAY); - glTexCoordPointer(2, GL_FLOAT, verts->texcoordstride, verts->texcoords); + GL_TexCoordPointer(2, GL_FLOAT, verts->texcoordstride, verts->texcoords); GL_SelectTexture(GL_TEXTURE1_ARB); qglClientActiveTextureARB(GL_TEXTURE1_ARB); if (shader->numcolorstages > 0) - GL_BindAdvanced(shader->colorstages[0].texture[0]); + GL_BindAdvanced(shader->colorstages[0].texture[0]); if (!verts->tangents) - FormatError(); + FormatError(); glEnableClientState(GL_TEXTURE_COORD_ARRAY); - glTexCoordPointer(3, GL_FLOAT, verts->tangentstride, verts->tangents); + GL_TexCoordPointer(3, GL_FLOAT, verts->tangentstride, verts->tangents); if (!verts->binormals) - FormatError(); + FormatError(); GL_SelectTexture(GL_TEXTURE2_ARB); qglClientActiveTextureARB(GL_TEXTURE2_ARB); glEnableClientState(GL_TEXTURE_COORD_ARRAY); - glTexCoordPointer(3, GL_FLOAT, verts->binormalstride, verts->binormals); + GL_TexCoordPointer(3, GL_FLOAT, verts->binormalstride, verts->binormals); if (!verts->normals) - FormatError(); + FormatError(); GL_SelectTexture(GL_TEXTURE3_ARB); qglClientActiveTextureARB(GL_TEXTURE3_ARB); glEnableClientState(GL_TEXTURE_COORD_ARRAY); - glTexCoordPointer(3, GL_FLOAT, verts->normalstride, verts->normals); + GL_TexCoordPointer(3, GL_FLOAT, verts->normalstride, verts->normals); glDrawElements(GL_TRIANGLES, numIndecies, GL_UNSIGNED_INT, indecies); @@ -288,174 +296,183 @@ void Generic_drawTriangleListBump (const vertexdef_t *verts, int *indecies, static const lightobject_t *currentLo; -void VertWV(float *pos, float *tex, float *lm, float *tg, float *bn, float*nr) { - glTexCoord3fv(pos); - qglMultiTexCoord2fvARB(GL_TEXTURE1_ARB, tex); - glVertex3fv(pos); +void VertWV(float *pos, float *tex, float *lm, float *tg, float *bn, float*nr) +{ + glTexCoord3fv(pos); + qglMultiTexCoord2fvARB(GL_TEXTURE1_ARB, tex); + glVertex3fv(pos); } -void VertTex(float *pos, float *tex, float *lm, float *tg, float *bn, float*nr) { - glTexCoord2fv(tex); - glVertex3fv(pos); +void VertTex(float *pos, float *tex, float *lm, float *tg, float *bn, float*nr) +{ + glTexCoord2fv(tex); + glVertex3fv(pos); } -void VertFakeSpecular(float *pos, float *tex, float *lm, float *tg, float *bn, float*nr) { - glNormal3fv(nr); - glTexCoord3fv(pos); - qglMultiTexCoord2fvARB(GL_TEXTURE1_ARB, tex); - glVertex3fv(pos); +void VertFakeSpecular(float *pos, float *tex, float *lm, float *tg, float *bn, float*nr) +{ + glNormal3fv(nr); + glTexCoord3fv(pos); + qglMultiTexCoord2fvARB(GL_TEXTURE1_ARB, tex); + glVertex3fv(pos); } -void VertAtt(float *pos, float *tex, float *lm, float *tg, float *bn, float*nr) { +void VertAtt(float *pos, float *tex, float *lm, float *tg, float *bn, float*nr) +{ + vec3_t nearToVert; + float tu, tv, tw; - vec3_t nearToVert; - float tu, tv, tw; + VectorSubtract (pos, currentLo->objectorigin, nearToVert); - VectorSubtract (pos, currentLo->objectorigin, nearToVert); + tu = (nearToVert[0]/currentshadowlight->radiusv[0])*0.5+0.5; + tv = (nearToVert[1]/currentshadowlight->radiusv[1])*0.5+0.5; + tw = (nearToVert[2]/currentshadowlight->radiusv[2])*0.5+0.5; - tu = (nearToVert[0]/currentshadowlight->radiusv[0])*0.5+0.5; - tv = (nearToVert[1]/currentshadowlight->radiusv[1])*0.5+0.5; - tw = (nearToVert[2]/currentshadowlight->radiusv[2])*0.5+0.5; - - glTexCoord2f(tu, tv); - qglMultiTexCoord2fARB(GL_TEXTURE1_ARB, tw, 0.5); - glVertex3fv(pos); + glTexCoord2f(tu, tv); + qglMultiTexCoord2fARB(GL_TEXTURE1_ARB, tw, 0.5); + glVertex3fv(pos); } -void VertDiffuse(float *pos, float *tex, float *lm, float *tg, float *bn, float*nr) { +void VertDiffuse(float *pos, float *tex, float *lm, float *tg, float *bn, float*nr) +{ + vec3_t lightDir, tsLightDir; - vec3_t lightDir, tsLightDir; + VectorSubtract(currentLo->objectorigin, pos, lightDir); - VectorSubtract(currentLo->objectorigin, pos, lightDir); - - tsLightDir[0] = DotProduct(lightDir,tg); - tsLightDir[1] = -DotProduct(lightDir,bn); - tsLightDir[2] = DotProduct(lightDir,nr); + tsLightDir[0] = DotProduct(lightDir,tg); + tsLightDir[1] = -DotProduct(lightDir,bn); + tsLightDir[2] = DotProduct(lightDir,nr); - qglMultiTexCoord3fvARB(GL_TEXTURE0_ARB, &tsLightDir[0]); - qglMultiTexCoord2fvARB(GL_TEXTURE1_ARB, tex); - glVertex3fv(pos); + qglMultiTexCoord3fvARB(GL_TEXTURE0_ARB, &tsLightDir[0]); + qglMultiTexCoord2fvARB(GL_TEXTURE1_ARB, tex); + glVertex3fv(pos); } void Generic_DrawTriWithFunc(const vertexdef_t *verts, int *indecies, - int numIndecies, void (*VertFunc) (float *, float *, float *, float *, float *, float*)) + int numIndecies, + void (*VertFunc) (float *, float *, float *, + float *, float *, float*)) { - int i; - vertexdef_t v = *verts; + int i; + vertexdef_t v = *verts; - if (!v.vertexstride) v.vertexstride = 12; - if (!v.texcoordstride) v.texcoordstride = 8; - if (!v.lightmapstride) v.lightmapstride = 8; - if (!v.tangentstride) v.lightmapstride = 12; - if (!v.binormalstride) v.binormalstride = 12; - if (!v.normalstride) v.normalstride = 12; + if (!v.vertexstride) v.vertexstride = 12; + if (!v.texcoordstride) v.texcoordstride = 8; + if (!v.lightmapstride) v.lightmapstride = 8; + if (!v.tangentstride) v.lightmapstride = 12; + if (!v.binormalstride) v.binormalstride = 12; + if (!v.normalstride) v.normalstride = 12; - glBegin(GL_TRIANGLES); - for (i=0; inumbumpstages > 0) { - GL_BindAdvanced(shader->bumpstages[0].texture[0]); - } - Generic_DrawTriWithFunc(verts, indecies, numIndecies, VertDiffuse); + if (shader->numbumpstages > 0) { + GL_BindAdvanced(shader->bumpstages[0].texture[0]); + } + Generic_DrawTriWithFunc(verts, indecies, numIndecies, VertDiffuse); GL_DisableGenericDiffuseShader (); - //Do fake specular - if (sh_fakespecular.value) { - float black[4] = {0.0, 0.0, 0.0, 1.0}; - float white[4] = {1.0, 1.0, 1.0, 1.0}; - float pos[4]; + //Do fake specular + if (sh_fakespecular.value) + { + float black[4] = {0.0, 0.0, 0.0, 1.0}; + float white[4] = {1.0, 1.0, 1.0, 1.0}; + float pos[4]; - GL_ModulateAlphaDrawColor(); - glColorMask(true, true, true, false); + GL_ModulateAlphaDrawColor(); + glColorMask(true, true, true, false); - glEnable(GL_LIGHTING); - glEnable(GL_LIGHT0); + glEnable(GL_LIGHTING); + glEnable(GL_LIGHT0); - VectorCopy(lo->objectorigin, pos); - pos[3] = 1.0; + VectorCopy(lo->objectorigin, pos); + pos[3] = 1.0; - glLightfv(GL_LIGHT0, GL_POSITION, pos); - glLightfv(GL_LIGHT0, GL_DIFFUSE, black); - glLightfv(GL_LIGHT0, GL_AMBIENT, black); - glLightfv(GL_LIGHT0, GL_SPECULAR, ¤tshadowlight->color[0]); + glLightfv(GL_LIGHT0, GL_POSITION, pos); + glLightfv(GL_LIGHT0, GL_DIFFUSE, black); + glLightfv(GL_LIGHT0, GL_AMBIENT, black); + glLightfv(GL_LIGHT0, GL_SPECULAR, ¤tshadowlight->color[0]); - glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, white); - glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, 16); + glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, white); + glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, 16); - glLightModeli(GL_LIGHT_MODEL_LOCAL_VIEWER, 1); + glLightModeli(GL_LIGHT_MODEL_LOCAL_VIEWER, 1); - glEnable(GL_COLOR_MATERIAL); - glColor4fv(white); + glEnable(GL_COLOR_MATERIAL); + glColor4fv(white); - GL_EnableGenericColorShader (true); - if (shader->numbumpstages > 0) { - GL_BindAdvanced(shader->bumpstages[0].texture[0]); - } - Generic_DrawTriWithFunc(verts, indecies, numIndecies, VertFakeSpecular); - GL_DisableGenericColorShader (true); - - glDisable(GL_LIGHTING); + GL_EnableGenericColorShader (true); + if (shader->numbumpstages > 0) + { + GL_BindAdvanced(shader->bumpstages[0].texture[0]); } + Generic_DrawTriWithFunc(verts, indecies, numIndecies, VertFakeSpecular); + GL_DisableGenericColorShader (true); + + glDisable(GL_LIGHTING); + } // Then modulate Color map and light filter with alpha and add to color - GL_ModulateAlphaDrawColor(); + GL_ModulateAlphaDrawColor(); glColor3fv(¤tshadowlight->color[0]); if ( currentshadowlight->filtercube ) { - glMatrixMode(GL_TEXTURE); - glPushMatrix(); + glMatrixMode(GL_TEXTURE); + glPushMatrix(); - GL_SetupCubeMapMatrix(tr); - GL_EnableGenericColorShader (false); - if (shader->numcolorstages > 0) { - GL_BindAdvanced(shader->colorstages[0].texture[0]); - } - Generic_DrawTriWithFunc(verts, indecies, numIndecies, VertWV); - GL_DisableGenericColorShader (false); + GL_SetupCubeMapMatrix(tr); + GL_EnableGenericColorShader (false); + if (shader->numcolorstages > 0) { + GL_BindAdvanced(shader->colorstages[0].texture[0]); + } + Generic_DrawTriWithFunc(verts, indecies, numIndecies, VertWV); + GL_DisableGenericColorShader (false); - glPopMatrix(); - glMatrixMode(GL_MODELVIEW); + glPopMatrix(); + glMatrixMode(GL_MODELVIEW); } else { - // Just alpha * light color - GL_DisableMultitexture(); - if (shader->numcolorstages > 0) { - GL_BindAdvanced(shader->colorstages[0].texture[0]); - } - glTexEnvf (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); - Generic_DrawTriWithFunc(verts, indecies, numIndecies, VertTex); + // Just alpha * light color + GL_DisableMultitexture(); + if (shader->numcolorstages > 0) + { + GL_BindAdvanced(shader->colorstages[0].texture[0]); + } + glTexEnvf (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); + Generic_DrawTriWithFunc(verts, indecies, numIndecies, VertTex); } GL_DrawColor(); @@ -466,145 +483,145 @@ void Generic_drawTriangleListBump (const vertexdef_t *verts, int *indecies, } void Generic_drawTriangleListBase (vertexdef_t *verts, int *indecies, - int numIndecies, shader_t *shader, - int lightmapIndex) + int numIndecies, shader_t *shader, + int lightmapIndex) { int i; - glVertexPointer(3, GL_FLOAT, verts->vertexstride, verts->vertices); + GL_VertexPointer(3, GL_FLOAT, verts->vertexstride, verts->vertices); glEnableClientState(GL_VERTEX_ARRAY); GL_SelectTexture(GL_TEXTURE0_ARB); qglClientActiveTextureARB(GL_TEXTURE0_ARB); - glTexCoordPointer(2, GL_FLOAT, verts->texcoordstride, verts->texcoords); + GL_TexCoordPointer(2, GL_FLOAT, verts->texcoordstride, verts->texcoords); glEnableClientState(GL_TEXTURE_COORD_ARRAY); if (!shader->cull) { - glDisable(GL_CULL_FACE); + glDisable(GL_CULL_FACE); } for ( i = 0; i < shader->numstages; i++) { - Generic_SetupSimpleStage(&shader->stages[i]); - glDrawElements(GL_TRIANGLES,numIndecies,GL_UNSIGNED_INT,indecies); - glPopMatrix(); + Generic_SetupSimpleStage(&shader->stages[i]); + glDrawElements(GL_TRIANGLES,numIndecies,GL_UNSIGNED_INT,indecies); + glPopMatrix(); } glMatrixMode(GL_MODELVIEW); if (verts->lightmapcoords && (lightmapIndex >= 0) && (shader->flags & SURF_PPLIGHT)) { - if (shader->numstages && shader->numcolorstages) - { - if (shader->colorstages[0].src_blend >= 0) - { - glEnable(GL_BLEND); - glBlendFunc(shader->colorstages[0].src_blend, shader->colorstages[0].dst_blend); - } - else - { - glEnable(GL_BLEND); - glBlendFunc(GL_ONE, GL_ONE); - } - } - else - { - glDisable(GL_BLEND); - } + if (shader->numstages && shader->numcolorstages) + { + if (shader->colorstages[0].src_blend >= 0) + { + glEnable(GL_BLEND); + glBlendFunc(shader->colorstages[0].src_blend, shader->colorstages[0].dst_blend); + } + else + { + glEnable(GL_BLEND); + glBlendFunc(GL_ONE, GL_ONE); + } + } + else + { + glDisable(GL_BLEND); + } - if (shader->numcolorstages) - { - if (shader->colorstages[0].numtextures) - GL_BindAdvanced(shader->colorstages[0].texture[0]); + if (shader->numcolorstages) + { + if (shader->colorstages[0].numtextures) + GL_BindAdvanced(shader->colorstages[0].texture[0]); - if (shader->colorstages[0].alphatresh > 0) - { - glEnable(GL_ALPHA_TEST); - glAlphaFunc(GL_GEQUAL, shader->colorstages[0].alphatresh); - } - } + if (shader->colorstages[0].alphatresh > 0) + { + glEnable(GL_ALPHA_TEST); + glAlphaFunc(GL_GEQUAL, shader->colorstages[0].alphatresh); + } + } - GL_SelectTexture(GL_TEXTURE0_ARB); - qglClientActiveTextureARB(GL_TEXTURE0_ARB); - glTexCoordPointer(2, GL_FLOAT, verts->texcoordstride, verts->texcoords); - glEnableClientState(GL_TEXTURE_COORD_ARRAY); - glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); + GL_SelectTexture(GL_TEXTURE0_ARB); + qglClientActiveTextureARB(GL_TEXTURE0_ARB); + GL_TexCoordPointer(2, GL_FLOAT, verts->texcoordstride, verts->texcoords); + glEnableClientState(GL_TEXTURE_COORD_ARRAY); + glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); - GL_SelectTexture(GL_TEXTURE1_ARB); - glEnable(GL_TEXTURE_2D); - GL_Bind(lightmap_textures+lightmapIndex); - qglClientActiveTextureARB(GL_TEXTURE1_ARB); - glTexCoordPointer(2, GL_FLOAT, verts->lightmapstride, verts->lightmapcoords); - glEnableClientState(GL_TEXTURE_COORD_ARRAY); + GL_SelectTexture(GL_TEXTURE1_ARB); + glEnable(GL_TEXTURE_2D); + GL_Bind(lightmap_textures+lightmapIndex); + qglClientActiveTextureARB(GL_TEXTURE1_ARB); + GL_TexCoordPointer(2, GL_FLOAT, verts->lightmapstride, verts->lightmapcoords); + glEnableClientState(GL_TEXTURE_COORD_ARRAY); - glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); + glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); - glDrawElements(GL_TRIANGLES,numIndecies,GL_UNSIGNED_INT,indecies); + glDrawElements(GL_TRIANGLES,numIndecies,GL_UNSIGNED_INT,indecies); - glDisableClientState(GL_TEXTURE_COORD_ARRAY); - glDisable(GL_TEXTURE_2D); - GL_SelectTexture(GL_TEXTURE0_ARB); + glDisableClientState(GL_TEXTURE_COORD_ARRAY); + glDisable(GL_TEXTURE_2D); + GL_SelectTexture(GL_TEXTURE0_ARB); } else { - if (verts->colors && (shader->flags & SURF_PPLIGHT)) + if (verts->colors && (shader->flags & SURF_PPLIGHT)) + { + GL_ColorPointer(3, GL_UNSIGNED_BYTE, verts->colorstride, verts->colors); + glEnableClientState(GL_COLOR_ARRAY); + glShadeModel(GL_SMOOTH); + + if (shader->numstages && shader->numcolorstages) + { + if (shader->colorstages[0].src_blend >= 0) { - glColorPointer(3, GL_UNSIGNED_BYTE, verts->colorstride, verts->colors); - glEnableClientState(GL_COLOR_ARRAY); - glShadeModel(GL_SMOOTH); - - if (shader->numstages && shader->numcolorstages) - { - if (shader->colorstages[0].src_blend >= 0) - { - glEnable(GL_BLEND); - glBlendFunc(shader->colorstages[0].src_blend, shader->colorstages[0].dst_blend); - } - else - { - glEnable(GL_BLEND); - glBlendFunc(GL_ONE, GL_ONE); - } - } - else - { - glDisable(GL_BLEND); - } - - if (shader->numcolorstages) - { - if (shader->colorstages[0].numtextures) - GL_BindAdvanced(shader->colorstages[0].texture[0]); - - if (shader->colorstages[0].alphatresh > 0) - { - glEnable(GL_ALPHA_TEST); - glAlphaFunc(GL_GEQUAL, shader->colorstages[0].alphatresh); - } - } - - glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); - - glDrawElements(GL_TRIANGLES,numIndecies,GL_UNSIGNED_INT,indecies); - - glDisableClientState(GL_COLOR_ARRAY); + glEnable(GL_BLEND); + glBlendFunc(shader->colorstages[0].src_blend, shader->colorstages[0].dst_blend); } else { - if (shader->flags & SURF_PPLIGHT) - { - glColor3f(0,0,0); - glDisable(GL_TEXTURE_2D); - glDrawElements(GL_TRIANGLES,numIndecies,GL_UNSIGNED_INT,indecies); - glEnable(GL_TEXTURE_2D); - } + glEnable(GL_BLEND); + glBlendFunc(GL_ONE, GL_ONE); } + } + else + { + glDisable(GL_BLEND); + } + + if (shader->numcolorstages) + { + if (shader->colorstages[0].numtextures) + GL_BindAdvanced(shader->colorstages[0].texture[0]); + + if (shader->colorstages[0].alphatresh > 0) + { + glEnable(GL_ALPHA_TEST); + glAlphaFunc(GL_GEQUAL, shader->colorstages[0].alphatresh); + } + } + + glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); + + glDrawElements(GL_TRIANGLES,numIndecies,GL_UNSIGNED_INT,indecies); + + glDisableClientState(GL_COLOR_ARRAY); + } + else + { + if (shader->flags & SURF_PPLIGHT) + { + glColor3f(0,0,0); + glDisable(GL_TEXTURE_2D); + glDrawElements(GL_TRIANGLES,numIndecies,GL_UNSIGNED_INT,indecies); + glEnable(GL_TEXTURE_2D); + } + } } if (!shader->cull) { - glEnable(GL_CULL_FACE); - //Con_Printf("Cullstuff %s\n",shader->name); + glEnable(GL_CULL_FACE); + //Con_Printf("Cullstuff %s\n",shader->name); } qglClientActiveTextureARB(GL_TEXTURE0_ARB); @@ -631,32 +648,32 @@ void Generic_sendSurfacesBase(msurface_t **surfs, int numSurfaces, float *v; for ( i = 0; i < numSurfaces; i++) + { + surf = surfs[i]; + if (surf->visframe != r_framecount) + continue; + p = surf->polys; + if (bindLightmap) { - surf = surfs[i]; - if (surf->visframe != r_framecount) - continue; - p = surf->polys; - if (bindLightmap) - { - if (surf->lightmaptexturenum < 0) - continue; - GL_Bind(lightmap_textures+surf->lightmaptexturenum); - } + if (surf->lightmaptexturenum < 0) + continue; + GL_Bind(lightmap_textures+surf->lightmaptexturenum); + } - glBegin(GL_TRIANGLES); - for (j=0; jpolys->numindecies; j++) { - v = (float *)(&cl.worldmodel->userVerts[surf->polys->indecies[j]]); - qglMultiTexCoord2fvARB(GL_TEXTURE0_ARB, &v[3]); - qglMultiTexCoord3fvARB(GL_TEXTURE1_ARB, &v[5]); - glVertex3fv(&v[0]); - } - glEnd(); + glBegin(GL_TRIANGLES); + for (j=0; jpolys->numindecies; j++) { + v = (float *)(&cl.worldmodel->userVerts[surf->polys->indecies[j]]); + qglMultiTexCoord2fvARB(GL_TEXTURE0_ARB, &v[3]); + qglMultiTexCoord3fvARB(GL_TEXTURE1_ARB, &v[5]); + glVertex3fv(&v[0]); + } + glEnd(); } } void Generic_drawSurfaceListBase (vertexdef_t* verts, msurface_t** surfs, - int numSurfaces, shader_t* shader) + int numSurfaces, shader_t* shader) { int i; @@ -665,69 +682,69 @@ void Generic_drawSurfaceListBase (vertexdef_t* verts, msurface_t** surfs, if (!shader->cull) { - glDisable(GL_CULL_FACE); - //Con_Printf("Cullstuff %s\n",shader->name); + glDisable(GL_CULL_FACE); + //Con_Printf("Cullstuff %s\n",shader->name); } for (i = 0; i < shader->numstages; i++) { - Generic_SetupSimpleStage(&shader->stages[i]); - Generic_sendSurfacesBase(surfs, numSurfaces, false); - glPopMatrix(); + Generic_SetupSimpleStage(&shader->stages[i]); + Generic_sendSurfacesBase(surfs, numSurfaces, false); + glPopMatrix(); } if (verts->lightmapcoords && (shader->flags & SURF_PPLIGHT)) { - GL_SelectTexture(GL_TEXTURE1_ARB); + GL_SelectTexture(GL_TEXTURE1_ARB); - // Regular lightmapping - if (shader->numstages && shader->numcolorstages) - { - if (shader->colorstages[0].src_blend >= 0) - { - glEnable(GL_BLEND); - glBlendFunc(shader->colorstages[0].src_blend, - shader->colorstages[0].dst_blend); - } - else - { - glEnable(GL_BLEND); - glBlendFunc(GL_ONE, GL_ONE); - } - } - else - { - glDisable(GL_BLEND); - } + // Regular lightmapping + if (shader->numstages && shader->numcolorstages) + { + if (shader->colorstages[0].src_blend >= 0) + { + glEnable(GL_BLEND); + glBlendFunc(shader->colorstages[0].src_blend, + shader->colorstages[0].dst_blend); + } + else + { + glEnable(GL_BLEND); + glBlendFunc(GL_ONE, GL_ONE); + } + } + else + { + glDisable(GL_BLEND); + } - GL_SelectTexture(GL_TEXTURE0_ARB); - if (shader->numcolorstages) - { - if (shader->colorstages[0].numtextures) - GL_BindAdvanced(shader->colorstages[0].texture[0]); + GL_SelectTexture(GL_TEXTURE0_ARB); + if (shader->numcolorstages) + { + if (shader->colorstages[0].numtextures) + GL_BindAdvanced(shader->colorstages[0].texture[0]); - if (shader->colorstages[0].alphatresh > 0) - { - glEnable(GL_ALPHA_TEST); - glAlphaFunc(GL_GEQUAL, shader->colorstages[0].alphatresh); - } - } + if (shader->colorstages[0].alphatresh > 0) + { + glEnable(GL_ALPHA_TEST); + glAlphaFunc(GL_GEQUAL, shader->colorstages[0].alphatresh); + } + } - glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); - GL_EnableMultitexture(); - glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); - glColor3f(sh_lightmapbright.value, sh_lightmapbright.value, - sh_lightmapbright.value); + glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); + GL_EnableMultitexture(); + glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); + glColor3f(sh_lightmapbright.value, sh_lightmapbright.value, + sh_lightmapbright.value); - Generic_sendSurfacesBase(surfs, numSurfaces, true); + Generic_sendSurfacesBase(surfs, numSurfaces, true); - GL_DisableMultitexture(); - GL_SelectTexture(GL_TEXTURE0_ARB); + GL_DisableMultitexture(); + GL_SelectTexture(GL_TEXTURE0_ARB); } if (!shader->cull) { - glEnable(GL_CULL_FACE); + glEnable(GL_CULL_FACE); } glDisable(GL_ALPHA_TEST); @@ -752,63 +769,63 @@ void Generic_sendSurfacesDiffuse(msurface_t **surfs, int numSurfaces) for (i=0; ivisframe != r_framecount) - continue; + if (surf->visframe != r_framecount) + continue; - if (!(surf->flags & SURF_PPLIGHT)) - continue; + if (!(surf->flags & SURF_PPLIGHT)) + continue; - shader = surf->shader->shader; + shader = surf->shader->shader; - if (shader->numbumpstages > 0) - GL_BindAdvanced(shader->bumpstages[0].texture[0]); - else - continue; + if (shader->numbumpstages > 0) + GL_BindAdvanced(shader->bumpstages[0].texture[0]); + else + continue; - p = surf->polys; + p = surf->polys; - //less state changes - if (lastshader != shader) - { - if (!shader->cull) - { - glDisable(GL_CULL_FACE); - cull = false; - } - else - { - if (!cull) - glEnable(GL_CULL_FACE); - cull = true; - } - lastshader = shader; - } + //less state changes + if (lastshader != shader) + { + if (!shader->cull) + { + glDisable(GL_CULL_FACE); + cull = false; + } + else + { + if (!cull) + glEnable(GL_CULL_FACE); + cull = true; + } + lastshader = shader; + } - glBegin(GL_TRIANGLES); - for (j=0; jpolys->numindecies; j++) { - v = (float *)(&cl.worldmodel->userVerts[surf->polys->indecies[j]]); + glBegin(GL_TRIANGLES); + for (j=0; jpolys->numindecies; j++) { + v = (float *)(&cl.worldmodel->userVerts[surf->polys->indecies[j]]); - VectorSubtract(currentshadowlight->origin, (&v[0]), lightDir); - if (surf->flags & SURF_PLANEBACK) { - tsLightDir[2] = -DotProduct(lightDir,surf->plane->normal); - } else { - tsLightDir[2] = DotProduct(lightDir,surf->plane->normal); - } + VectorSubtract(currentshadowlight->origin, (&v[0]), lightDir); + if (surf->flags & SURF_PLANEBACK) { + tsLightDir[2] = -DotProduct(lightDir,surf->plane->normal); + } else { + tsLightDir[2] = DotProduct(lightDir,surf->plane->normal); + } - tsLightDir[1] = -DotProduct(lightDir,surf->binormal); - tsLightDir[0] = DotProduct(lightDir,surf->tangent); + tsLightDir[1] = -DotProduct(lightDir,surf->binormal); + tsLightDir[0] = DotProduct(lightDir,surf->tangent); - qglMultiTexCoord3fvARB(GL_TEXTURE0_ARB, &tsLightDir[0]); - qglMultiTexCoord2fvARB(GL_TEXTURE1_ARB, &v[3]); - glVertex3fv(&v[0]); - } - glEnd(); + qglMultiTexCoord3fvARB(GL_TEXTURE0_ARB, &tsLightDir[0]); + qglMultiTexCoord2fvARB(GL_TEXTURE1_ARB, &v[3]); + glVertex3fv(&v[0]); + } + glEnd(); } if (!cull) - glEnable(GL_CULL_FACE); + glEnable(GL_CULL_FACE); } @@ -828,54 +845,55 @@ void Generic_sendSurfacesATT(msurface_t **surfs, int numSurfaces) for ( i = 0; i < numSurfaces; i++) { - surf = surfs[i]; - if (surf->visframe != r_framecount) - continue; - if (!(surf->flags & SURF_PPLIGHT)) - continue; + surf = surfs[i]; + if (surf->visframe != r_framecount) + continue; + if (!(surf->flags & SURF_PPLIGHT)) + continue; - shader = surf->shader->shader; - if (shader->numbumpstages == 0) - continue; + shader = surf->shader->shader; + if (shader->numbumpstages == 0) + continue; - p = surf->polys; + p = surf->polys; - if (lastshader != shader) - { - if (!shader->cull) - { - glDisable(GL_CULL_FACE); - cull = false; - } - else - { - if (!cull) - glEnable(GL_CULL_FACE); - cull = true; - } - lastshader = shader; - } + if (lastshader != shader) + { + if (!shader->cull) + { + glDisable(GL_CULL_FACE); + cull = false; + } + else + { + if (!cull) + glEnable(GL_CULL_FACE); + cull = true; + } + lastshader = shader; + } - glColor4f(1, 1, 1, 1); + glColor4f(1, 1, 1, 1); - glBegin(GL_TRIANGLES); - for (j=0; jpolys->numindecies; j++) { - v = (float *)(&cl.worldmodel->userVerts[surf->polys->indecies[j]]); + glBegin(GL_TRIANGLES); + for (j=0; jpolys->numindecies; j++) + { + v = (float *)(&cl.worldmodel->userVerts[surf->polys->indecies[j]]); - VectorSubtract (v, currentshadowlight->origin, nearToVert); + VectorSubtract (v, currentshadowlight->origin, nearToVert); - tu = (nearToVert[0]/currentshadowlight->radiusv[0])*0.5+0.5; - tv = (nearToVert[1]/currentshadowlight->radiusv[1])*0.5+0.5; - tw = (nearToVert[2]/currentshadowlight->radiusv[2])*0.5+0.5; + tu = (nearToVert[0]/currentshadowlight->radiusv[0])*0.5+0.5; + tv = (nearToVert[1]/currentshadowlight->radiusv[1])*0.5+0.5; + tw = (nearToVert[2]/currentshadowlight->radiusv[2])*0.5+0.5; - glTexCoord2f(tu, tv); - qglMultiTexCoord2fARB(GL_TEXTURE1_ARB, tw, 0.5); - glVertex3fv(&v[0]); - } - glEnd(); + glTexCoord2f(tu, tv); + qglMultiTexCoord2fARB(GL_TEXTURE1_ARB, tw, 0.5); + glVertex3fv(&v[0]); + } + glEnd(); } if (!cull) - glEnable(GL_CULL_FACE); + glEnable(GL_CULL_FACE); } void Generic_sendSurfacesWV(msurface_t **surfs, int numSurfaces, qboolean specular) @@ -891,55 +909,59 @@ void Generic_sendSurfacesWV(msurface_t **surfs, int numSurfaces, qboolean specul for ( i = 0; i < numSurfaces; i++) { - surf = surfs[i]; - if (surf->visframe != r_framecount) - continue; - if (!(surf->flags & SURF_PPLIGHT)) - continue; + surf = surfs[i]; + if (surf->visframe != r_framecount) + continue; + if (!(surf->flags & SURF_PPLIGHT)) + continue; - shader = surf->shader->shader; - if (shader->numbumpstages == 0) - continue; + shader = surf->shader->shader; + if (shader->numbumpstages == 0) + continue; - p = surf->polys; + p = surf->polys; - if (lastshader != shader) - { - if (!shader->cull) - { - glDisable(GL_CULL_FACE); - cull = false; - } - else - { - if (!cull) - glEnable(GL_CULL_FACE); - cull = true; - } - lastshader = shader; - GL_SelectTexture(GL_TEXTURE1_ARB); - if (!specular) { - if (shader->numcolorstages > 0) - GL_BindAdvanced(shader->colorstages[0].texture[0]); - } else { - if (shader->numbumpstages > 0) - GL_BindAdvanced(shader->bumpstages[0].texture[0]); - } - } + if (lastshader != shader) + { + if (!shader->cull) + { + glDisable(GL_CULL_FACE); + cull = false; + } + else + { + if (!cull) + glEnable(GL_CULL_FACE); + cull = true; + } + lastshader = shader; + GL_SelectTexture(GL_TEXTURE1_ARB); + if (!specular) + { + if (shader->numcolorstages > 0) + GL_BindAdvanced(shader->colorstages[0].texture[0]); + } + else + { + if (shader->numbumpstages > 0) + GL_BindAdvanced(shader->bumpstages[0].texture[0]); + } + } - glNormal3fv(surf->plane->normal); + glNormal3fv(surf->plane->normal); - glBegin(GL_TRIANGLES); - for (j=0; jpolys->numindecies; j++) { - v = (float *)(&cl.worldmodel->userVerts[surf->polys->indecies[j]]); - glTexCoord3fv(&v[0]); - qglMultiTexCoord2fARB(GL_TEXTURE1_ARB, v[3], v[4]); - glVertex3fv(&v[0]); - } - glEnd(); + glBegin(GL_TRIANGLES); + for (j=0; jpolys->numindecies; j++) + { + v = (float *)(&cl.worldmodel->userVerts[surf->polys->indecies[j]]); + glTexCoord3fv(&v[0]); + qglMultiTexCoord2fARB(GL_TEXTURE1_ARB, v[3], v[4]); + glVertex3fv(&v[0]); + } + glEnd(); } if (!cull) - glEnable(GL_CULL_FACE); + glEnable(GL_CULL_FACE); } void Generic_sendSurfacesTex(msurface_t **surfs, int numSurfaces) @@ -956,67 +978,69 @@ void Generic_sendSurfacesTex(msurface_t **surfs, int numSurfaces) for ( i = 0; i < numSurfaces; i++) { - surf = surfs[i]; - if (surf->visframe != r_framecount) - continue; - if (!(surf->flags & SURF_PPLIGHT)) - continue; + surf = surfs[i]; + if (surf->visframe != r_framecount) + continue; + if (!(surf->flags & SURF_PPLIGHT)) + continue; - shader = surf->shader->shader; - if (shader->numbumpstages == 0) - continue; + shader = surf->shader->shader; + if (shader->numbumpstages == 0) + continue; - p = surf->polys; + p = surf->polys; - if (lastshader != shader) - { - if (!shader->cull) - { - glDisable(GL_CULL_FACE); - cull = false; - } - else - { - if (!cull) - glEnable(GL_CULL_FACE); - cull = true; - } - lastshader = shader; + if (lastshader != shader) + { + if (!shader->cull) + { + glDisable(GL_CULL_FACE); + cull = false; + } + else + { + if (!cull) + glEnable(GL_CULL_FACE); + cull = true; + } + lastshader = shader; - GL_SelectTexture(GL_TEXTURE0_ARB); - if (shader->numcolorstages > 0) - GL_BindAdvanced(shader->colorstages[0].texture[0]); - } + GL_SelectTexture(GL_TEXTURE0_ARB); + if (shader->numcolorstages > 0) + GL_BindAdvanced(shader->colorstages[0].texture[0]); + } - /* - glBegin(GL_TRIANGLE_FAN); - v = (float *)(&globalVertexTable[surf->polys->firstvertex]); - for (j = 0; j < p->numverts; j++, v+= VERTEXSIZE) - { - glTexCoord2fv(&v[3]); - glVertex3fv(&v[0]); - } - glEnd(); - */ + /* + glBegin(GL_TRIANGLE_FAN); + v = (float *)(&globalVertexTable[surf->polys->firstvertex]); + for (j = 0; j < p->numverts; j++, v+= VERTEXSIZE) + { + glTexCoord2fv(&v[3]); + glVertex3fv(&v[0]); + } + glEnd(); + */ - glBegin(GL_TRIANGLES); - for (j=0; jpolys->numindecies; j++) { - v = (float *)(&cl.worldmodel->userVerts[surf->polys->indecies[j]]); - glTexCoord2fv(&v[3]); - glVertex3fv(&v[0]); - } - glEnd(); + glBegin(GL_TRIANGLES); + for (j=0; jpolys->numindecies; j++) + { + v = (float *)(&cl.worldmodel->userVerts[surf->polys->indecies[j]]); + glTexCoord2fv(&v[3]); + glVertex3fv(&v[0]); + } + glEnd(); } if (!cull) - glEnable(GL_CULL_FACE); + glEnable(GL_CULL_FACE); } void Generic_drawSurfaceListBump (vertexdef_t *verts, msurface_t **surfs, - int numSurfaces,const transform_t *tr, const lightobject_t *lo) + int numSurfaces,const transform_t *tr, + const lightobject_t *lo) { glDepthMask (0); - //attenuate with projected 2D attenuation map + //attenuate with projected 2D attenuation map GL_DrawAlpha(); GL_EnableGenericAttShader(); Generic_sendSurfacesATT(surfs, numSurfaces); @@ -1028,66 +1052,66 @@ void Generic_drawSurfaceListBump (vertexdef_t *verts, msurface_t **surfs, Generic_sendSurfacesDiffuse(surfs, numSurfaces); GL_DisableGenericDiffuseShader (); - //Do fake specular - if (sh_fakespecular.value) { + //Do fake specular + if (sh_fakespecular.value) + { + //This is so fake... + //-it gets attenuated with the diffuse dot product and the light attenuation + //-The specular gets caclulated per vertex + //-But it remotely looks like specular at the cost of one extra pass - //This is so fake... - //-it gets attenuated with the diffuse dot product and the light attenuation - //-The specular gets caclulated per vertex - //-But it remotely looks like specular at the cost of one extra pass + float black[4] = {0.0, 0.0, 0.0, 1.0}; + float white[4] = {1.0, 1.0, 1.0, 1.0}; + float pos[4]; - float black[4] = {0.0, 0.0, 0.0, 1.0}; - float white[4] = {1.0, 1.0, 1.0, 1.0}; - float pos[4]; + GL_ModulateAlphaDrawColor(); + glColorMask(true, true, true, false); - GL_ModulateAlphaDrawColor(); - glColorMask(true, true, true, false); + glEnable(GL_LIGHTING); + glEnable(GL_LIGHT0); - glEnable(GL_LIGHTING); - glEnable(GL_LIGHT0); + VectorCopy(lo->objectorigin, pos); + pos[3] = 1.0; - VectorCopy(lo->objectorigin, pos); - pos[3] = 1.0; + glLightfv(GL_LIGHT0, GL_POSITION, pos); + glLightfv(GL_LIGHT0, GL_DIFFUSE, black); + glLightfv(GL_LIGHT0, GL_AMBIENT, black); + glLightfv(GL_LIGHT0, GL_SPECULAR, ¤tshadowlight->color[0]); - glLightfv(GL_LIGHT0, GL_POSITION, pos); - glLightfv(GL_LIGHT0, GL_DIFFUSE, black); - glLightfv(GL_LIGHT0, GL_AMBIENT, black); - glLightfv(GL_LIGHT0, GL_SPECULAR, ¤tshadowlight->color[0]); + glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, white); + glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, 16); - glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, white); - glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, 16); + glLightModeli(GL_LIGHT_MODEL_LOCAL_VIEWER, 1); - glLightModeli(GL_LIGHT_MODEL_LOCAL_VIEWER, 1); + glEnable(GL_COLOR_MATERIAL); + glColor4fv(white); - glEnable(GL_COLOR_MATERIAL); - glColor4fv(white); + GL_EnableGenericColorShader (true); + Generic_sendSurfacesWV(surfs, numSurfaces, true); + GL_DisableGenericColorShader (true); - GL_EnableGenericColorShader (true); - Generic_sendSurfacesWV(surfs, numSurfaces, true); - GL_DisableGenericColorShader (true); - - glDisable(GL_LIGHTING); - } + glDisable(GL_LIGHTING); + } // Then modulate Color map and light filter with alpha and add to color - GL_ModulateAlphaDrawColor(); + GL_ModulateAlphaDrawColor(); glColor3fv(¤tshadowlight->baseColor[0]); if ( currentshadowlight->filtercube ) { - glMatrixMode(GL_TEXTURE); - glPushMatrix(); + glMatrixMode(GL_TEXTURE); + glPushMatrix(); - GL_SetupCubeMapMatrix(tr); - GL_EnableGenericColorShader (false); - Generic_sendSurfacesWV(surfs, numSurfaces, false); - GL_DisableGenericColorShader (false); + GL_SetupCubeMapMatrix(tr); + GL_EnableGenericColorShader (false); + Generic_sendSurfacesWV(surfs, numSurfaces, false); + GL_DisableGenericColorShader (false); - glPopMatrix(); - glMatrixMode(GL_MODELVIEW); + glPopMatrix(); + glMatrixMode(GL_MODELVIEW); } else { - // Just alpha * light color + // Just alpha * light color GL_SelectTexture(GL_TEXTURE1_ARB); glDisable(GL_TEXTURE_2D); @@ -1096,7 +1120,7 @@ void Generic_drawSurfaceListBump (vertexdef_t *verts, msurface_t **surfs, glEnable(GL_TEXTURE_2D); - glTexEnvf (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_ARB); + glTexEnvf (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_ARB); glTexEnvf (GL_TEXTURE_ENV, GL_SOURCE0_RGB_ARB, GL_PREVIOUS_ARB); @@ -1105,8 +1129,8 @@ void Generic_drawSurfaceListBump (vertexdef_t *verts, msurface_t **surfs, glTexEnvf (GL_TEXTURE_ENV, GL_COMBINE_RGB_ARB, GL_MODULATE); - //glTexEnvf (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); - Generic_sendSurfacesTex(surfs, numSurfaces); + //glTexEnvf (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); + Generic_sendSurfacesTex(surfs, numSurfaces); } GL_DrawColor(); @@ -1127,9 +1151,9 @@ void Generic_freeDriver(void) void BUMP_InitGeneric(void) { if ( gl_cardtype != GENERIC && gl_cardtype != GEFORCE ) - return; + return; - Cvar_RegisterVariable(&sh_fakespecular); + Cvar_RegisterVariable(&sh_fakespecular); //bind the correct stuff to the bump mapping driver gl_bumpdriver.drawSurfaceListBase = Generic_drawSurfaceListBase; gl_bumpdriver.drawSurfaceListBump = Generic_drawSurfaceListBump; diff --git a/gl_bumpgf.c b/gl_bumpgf.c index 63029a5..0cc193e 100644 --- a/gl_bumpgf.c +++ b/gl_bumpgf.c @@ -448,6 +448,8 @@ Shader utitlity routines *************************/ +void FormatError(void); // in gl_bumparb.c + void GF3_SetupTcMod(tcmod_t *tc) { switch (tc->type) { @@ -509,17 +511,13 @@ Generic triangle list routines *************************/ -void FormatError () { - Sys_Error("Invalid vertexdef_t\n"); -} - void GF3_sendTriangleListWV(const vertexdef_t *verts, int *indecies, int numIndecies) { - glVertexPointer(3, GL_FLOAT, verts->vertexstride, verts->vertices); + GL_VertexPointer(3, GL_FLOAT, verts->vertexstride, verts->vertices); glEnableClientState(GL_VERTEX_ARRAY); qglClientActiveTextureARB(GL_TEXTURE0_ARB); - glTexCoordPointer(3, GL_FLOAT, verts->vertexstride, verts->vertices); + GL_TexCoordPointer(3, GL_FLOAT, verts->vertexstride, verts->vertices); glEnableClientState(GL_TEXTURE_COORD_ARRAY); //draw them @@ -531,27 +529,29 @@ void GF3_sendTriangleListWV(const vertexdef_t *verts, int *indecies, int numInde void GF3_sendTriangleListTA(const vertexdef_t *verts, int *indecies, int numIndecies) { - glVertexPointer(3, GL_FLOAT, verts->vertexstride, verts->vertices); + GL_VertexPointer(3, GL_FLOAT, verts->vertexstride, verts->vertices); glEnableClientState(GL_VERTEX_ARRAY); - if (!verts->texcoords) FormatError(); + //Check the input vertices + if (IsNullDriver(verts->texcoords)) FormatError(); + if (IsNullDriver(verts->binormals)) FormatError(); + if (IsNullDriver(verts->tangents)) FormatError(); + if (IsNullDriver(verts->normals)) FormatError(); + qglClientActiveTextureARB(GL_TEXTURE0_ARB); - glTexCoordPointer(2, GL_FLOAT, verts->texcoordstride, verts->texcoords); + GL_TexCoordPointer(2, GL_FLOAT, verts->texcoordstride, verts->texcoords); glEnableClientState(GL_TEXTURE_COORD_ARRAY); - if (!verts->tangents) FormatError(); qglClientActiveTextureARB(GL_TEXTURE1_ARB); - glTexCoordPointer(3, GL_FLOAT, verts->tangentstride, verts->tangents); + GL_TexCoordPointer(3, GL_FLOAT, verts->tangentstride, verts->tangents); glEnableClientState(GL_TEXTURE_COORD_ARRAY); - if (!verts->binormals) FormatError(); qglClientActiveTextureARB(GL_TEXTURE2_ARB); - glTexCoordPointer(3, GL_FLOAT, verts->binormalstride, verts->binormals); + GL_TexCoordPointer(3, GL_FLOAT, verts->binormalstride, verts->binormals); glEnableClientState(GL_TEXTURE_COORD_ARRAY); - if (!verts->normals) FormatError(); qglClientActiveTextureARB(GL_TEXTURE3_ARB); - glTexCoordPointer(3, GL_FLOAT, verts->normalstride, verts->normals); + GL_TexCoordPointer(3, GL_FLOAT, verts->normalstride, verts->normals); glEnableClientState(GL_TEXTURE_COORD_ARRAY); //draw them @@ -627,11 +627,11 @@ void GF3_drawTriangleListBase (vertexdef_t *verts, int *indecies, int numIndecie int i; - glVertexPointer(3, GL_FLOAT, verts->vertexstride, verts->vertices); + GL_VertexPointer(3, GL_FLOAT, verts->vertexstride, verts->vertices); glEnableClientState(GL_VERTEX_ARRAY); qglClientActiveTextureARB(GL_TEXTURE0_ARB); - glTexCoordPointer(2, GL_FLOAT, verts->texcoordstride, verts->texcoords); + GL_TexCoordPointer(2, GL_FLOAT, verts->texcoordstride, verts->texcoords); glEnableClientState(GL_TEXTURE_COORD_ARRAY); if (!shader->cull) { @@ -649,7 +649,7 @@ void GF3_drawTriangleListBase (vertexdef_t *verts, int *indecies, int numIndecie glMatrixMode(GL_MODELVIEW); - if (verts->lightmapcoords && (lightmapIndex >= 0) && (shader->flags & SURF_PPLIGHT)) { + if (!IsNullDriver(verts->lightmapcoords) && (lightmapIndex >= 0) && (shader->flags & SURF_PPLIGHT)) { //Delux lightmapping qboolean usedelux = (sh_delux.value != 0); @@ -660,23 +660,23 @@ void GF3_drawTriangleListBase (vertexdef_t *verts, int *indecies, int numIndecie if (usedelux) { - glNormalPointer(GL_FLOAT, verts->normalstride, verts->normals); + GL_NormalPointer(GL_FLOAT, verts->normalstride, verts->normals); glEnableClientState(GL_NORMAL_ARRAY); qglClientActiveTextureARB(GL_TEXTURE0_ARB); - glTexCoordPointer(3, GL_FLOAT, verts->tangentstride, verts->tangents); + GL_TexCoordPointer(3, GL_FLOAT, verts->tangentstride, verts->tangents); glEnableClientState(GL_TEXTURE_COORD_ARRAY); qglClientActiveTextureARB(GL_TEXTURE1_ARB); - glTexCoordPointer(3, GL_FLOAT, verts->binormalstride, verts->binormals); + GL_TexCoordPointer(3, GL_FLOAT, verts->binormalstride, verts->binormals); glEnableClientState(GL_TEXTURE_COORD_ARRAY); qglClientActiveTextureARB(GL_TEXTURE2_ARB); - glTexCoordPointer(2, GL_FLOAT, verts->lightmapstride, verts->lightmapcoords); + GL_TexCoordPointer(2, GL_FLOAT, verts->lightmapstride, verts->lightmapcoords); glEnableClientState(GL_TEXTURE_COORD_ARRAY); qglClientActiveTextureARB(GL_TEXTURE3_ARB); - glTexCoordPointer(2, GL_FLOAT, verts->texcoordstride, verts->texcoords); + GL_TexCoordPointer(2, GL_FLOAT, verts->texcoordstride, verts->texcoords); glEnableClientState(GL_TEXTURE_COORD_ARRAY); GL_SelectTexture(GL_TEXTURE0_ARB); @@ -778,11 +778,11 @@ void GF3_drawTriangleListBase (vertexdef_t *verts, int *indecies, int numIndecie glEnable(GL_TEXTURE_2D); GL_Bind(lightmap_textures+lightmapIndex); qglClientActiveTextureARB(GL_TEXTURE0_ARB); - glTexCoordPointer(2, GL_FLOAT, verts->texcoordstride, verts->texcoords); + GL_TexCoordPointer(2, GL_FLOAT, verts->texcoordstride, verts->texcoords); glEnableClientState(GL_TEXTURE_COORD_ARRAY); qglClientActiveTextureARB(GL_TEXTURE1_ARB); - glTexCoordPointer(2, GL_FLOAT, verts->lightmapstride, verts->lightmapcoords); + GL_TexCoordPointer(2, GL_FLOAT, verts->lightmapstride, verts->lightmapcoords); glEnableClientState(GL_TEXTURE_COORD_ARRAY); glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); @@ -796,9 +796,9 @@ void GF3_drawTriangleListBase (vertexdef_t *verts, int *indecies, int numIndecie glDisable(GL_TEXTURE_2D); GL_SelectTexture(GL_TEXTURE0_ARB); - } else if (verts->colors && (shader->flags & SURF_PPLIGHT)) { + } else if (!IsNullDriver(verts->colors) && (shader->flags & SURF_PPLIGHT)) { - glColorPointer(3, GL_UNSIGNED_BYTE, verts->colorstride, verts->colors); + GL_ColorPointer(3, GL_UNSIGNED_BYTE, verts->colorstride, verts->colors); glEnableClientState(GL_COLOR_ARRAY); glShadeModel(GL_SMOOTH); @@ -938,7 +938,7 @@ void GF3_TestAmbientBumps (vertexdef_t *verts, msurface_t **surfs, int numSurfac //Pass 1: Lightmap (= ambient occlusion) * colormap qglClientActiveTextureARB(GL_TEXTURE1_ARB); - glTexCoordPointer(2, GL_FLOAT, verts->lightmapstride, verts->lightmapcoords); + GL_TexCoordPointer(2, GL_FLOAT, verts->lightmapstride, verts->lightmapcoords); glEnableClientState(GL_TEXTURE_COORD_ARRAY); if (shader->numcolorstages) { @@ -1053,11 +1053,11 @@ void GF3_drawSurfaceListBase (vertexdef_t *verts, msurface_t **surfs, int numSur int i; qboolean usedelux; - glVertexPointer(3, GL_FLOAT, verts->vertexstride, verts->vertices); + GL_VertexPointer(3, GL_FLOAT, verts->vertexstride, verts->vertices); glEnableClientState(GL_VERTEX_ARRAY); qglClientActiveTextureARB(GL_TEXTURE0_ARB); - glTexCoordPointer(2, GL_FLOAT, verts->texcoordstride, verts->texcoords); + GL_TexCoordPointer(2, GL_FLOAT, verts->texcoordstride, verts->texcoords); glEnableClientState(GL_TEXTURE_COORD_ARRAY); glColor3ub(255,255,255); @@ -1078,14 +1078,14 @@ void GF3_drawSurfaceListBase (vertexdef_t *verts, msurface_t **surfs, int numSur glPopMatrix(); } - if (verts->lightmapcoords && (shader->flags & SURF_PPLIGHT)) { + if (!IsNullDriver(verts->lightmapcoords) && (shader->flags & SURF_PPLIGHT)) { #ifdef AMBIENT_BUMP GF3_TestAmbientBumps(verts, surfs, numSurfaces, shader); #else qglClientActiveTextureARB(GL_TEXTURE1_ARB); - glTexCoordPointer(2, GL_FLOAT, verts->lightmapstride, verts->lightmapcoords); + GL_TexCoordPointer(2, GL_FLOAT, verts->lightmapstride, verts->lightmapcoords); glEnableClientState(GL_TEXTURE_COORD_ARRAY); //Delux lightmapping @@ -1102,11 +1102,11 @@ void GF3_drawSurfaceListBase (vertexdef_t *verts, msurface_t **surfs, int numSur glDisableClientState(GL_TEXTURE_COORD_ARRAY); qglClientActiveTextureARB(GL_TEXTURE2_ARB); - glTexCoordPointer(2, GL_FLOAT, verts->lightmapstride, verts->lightmapcoords); + GL_TexCoordPointer(2, GL_FLOAT, verts->lightmapstride, verts->lightmapcoords); glEnableClientState(GL_TEXTURE_COORD_ARRAY); qglClientActiveTextureARB(GL_TEXTURE3_ARB); - glTexCoordPointer(2, GL_FLOAT, verts->texcoordstride, verts->texcoords); + GL_TexCoordPointer(2, GL_FLOAT, verts->texcoordstride, verts->texcoords); glEnableClientState(GL_TEXTURE_COORD_ARRAY); GL_SelectTexture(GL_TEXTURE0_ARB); @@ -1401,7 +1401,7 @@ void GF3_drawSurfaceListBump (vertexdef_t *verts, msurface_t **surfs, int numSur int i, num; - glVertexPointer(3, GL_FLOAT, verts->vertexstride, verts->vertices); + GL_VertexPointer(3, GL_FLOAT, verts->vertexstride, verts->vertices); glEnableClientState(GL_VERTEX_ARRAY); qglClientActiveTextureARB(GL_TEXTURE0_ARB); @@ -1412,7 +1412,7 @@ void GF3_drawSurfaceListBump (vertexdef_t *verts, msurface_t **surfs, int numSur GL_DrawAlpha(); GL_EnableAttentShaderGF3(tr); - glTexCoordPointer(3, GL_FLOAT, verts->vertexstride, verts->vertices); + GL_TexCoordPointer(3, GL_FLOAT, verts->vertexstride, verts->vertices); GF3_sendSurfacesPlain(surfs,numSurfaces); GL_DisableAttentShaderGF3(); @@ -1425,7 +1425,7 @@ void GF3_drawSurfaceListBump (vertexdef_t *verts, msurface_t **surfs, int numSur num = (currentshadowlight->shader->numstages == 0) ? 1 : currentshadowlight->shader->numstages; for (i=0; itexcoordstride, verts->texcoords); + GL_TexCoordPointer(2, GL_FLOAT, verts->texcoordstride, verts->texcoords); GF3_sendSurfacesTA(surfs,numSurfaces, true); GL_DisableDiffuseShaderGF3(i); } diff --git a/gl_bumpgl2.c b/gl_bumpgl2.c index 456ea42..6781a9e 100644 --- a/gl_bumpgl2.c +++ b/gl_bumpgl2.c @@ -828,11 +828,17 @@ void GL2_drawTriangleListBump (const vertexdef_t *verts, int *indecies, const transform_t *tr, const lightobject_t *lo) { glEnableClientState(GL_VERTEX_ARRAY); - glVertexPointer(3, GL_FLOAT, verts->vertexstride, verts->vertices); + GL_VertexPointer(3, GL_FLOAT, verts->vertexstride, verts->vertices); GL_AddColor(); glColor3fv(¤tshadowlight->color[0]); + //Check the input vertices + if (IsNullDriver(verts->texcoords)) FormatError(); + if (IsNullDriver(verts->binormals)) FormatError(); + if (IsNullDriver(verts->tangents)) FormatError(); + if (IsNullDriver(verts->normals)) FormatError(); + GL2_EnableBumpShader(tr, lo, true, shader); //bind the correct textures @@ -840,33 +846,25 @@ void GL2_drawTriangleListBump (const vertexdef_t *verts, int *indecies, qglClientActiveTextureARB(GL_TEXTURE0_ARB); if (shader->numbumpstages > 0) GL_BindAdvanced(shader->bumpstages[0].texture[0]); - if (!verts->texcoords) - FormatError(); glEnableClientState(GL_TEXTURE_COORD_ARRAY); - glTexCoordPointer(2, GL_FLOAT, verts->texcoordstride, verts->texcoords); + GL_TexCoordPointer(2, GL_FLOAT, verts->texcoordstride, verts->texcoords); GL_SelectTexture(GL_TEXTURE1_ARB); qglClientActiveTextureARB(GL_TEXTURE1_ARB); if (shader->numcolorstages > 0) GL_BindAdvanced(shader->colorstages[0].texture[0]); - if (!verts->tangents) - FormatError(); glEnableClientState(GL_TEXTURE_COORD_ARRAY); - glTexCoordPointer(3, GL_FLOAT, verts->tangentstride, verts->tangents); + GL_TexCoordPointer(3, GL_FLOAT, verts->tangentstride, verts->tangents); - if (!verts->binormals) - FormatError(); GL_SelectTexture(GL_TEXTURE2_ARB); qglClientActiveTextureARB(GL_TEXTURE2_ARB); glEnableClientState(GL_TEXTURE_COORD_ARRAY); - glTexCoordPointer(3, GL_FLOAT, verts->binormalstride, verts->binormals); + GL_TexCoordPointer(3, GL_FLOAT, verts->binormalstride, verts->binormals); - if (!verts->normals) - FormatError(); GL_SelectTexture(GL_TEXTURE3_ARB); qglClientActiveTextureARB(GL_TEXTURE3_ARB); glEnableClientState(GL_TEXTURE_COORD_ARRAY); - glTexCoordPointer(3, GL_FLOAT, verts->normalstride, verts->normals); + GL_TexCoordPointer(3, GL_FLOAT, verts->normalstride, verts->normals); glDrawElements(GL_TRIANGLES, numIndecies, GL_UNSIGNED_INT, indecies); @@ -892,12 +890,12 @@ void GL2_drawTriangleListBase (vertexdef_t *verts, int *indecies, int i; glGetError(); - glVertexPointer(3, GL_FLOAT, verts->vertexstride, verts->vertices); + GL_VertexPointer(3, GL_FLOAT, verts->vertexstride, verts->vertices); glEnableClientState(GL_VERTEX_ARRAY); GL_SelectTexture(GL_TEXTURE0_ARB); qglClientActiveTextureARB(GL_TEXTURE0_ARB); - glTexCoordPointer(2, GL_FLOAT, verts->texcoordstride, verts->texcoords); + GL_TexCoordPointer(2, GL_FLOAT, verts->texcoordstride, verts->texcoords); glEnableClientState(GL_TEXTURE_COORD_ARRAY); if (!shader->cull) @@ -905,7 +903,7 @@ void GL2_drawTriangleListBase (vertexdef_t *verts, int *indecies, glDisable(GL_CULL_FACE); } - glColor3ub(255,255,255); + glColor3ub(255,255,255); for ( i = 0; i < shader->numstages; i++) { @@ -915,7 +913,7 @@ void GL2_drawTriangleListBase (vertexdef_t *verts, int *indecies, } glMatrixMode(GL_MODELVIEW); - if (verts->lightmapcoords && (lightmapIndex >= 0) && (shader->flags & SURF_PPLIGHT)) + if (!IsNullDriver(verts->lightmapcoords) && (lightmapIndex >= 0) && (shader->flags & SURF_PPLIGHT)) { //Delux lightmapping qboolean usedelux = (sh_delux.value != 0); @@ -965,15 +963,16 @@ void GL2_drawTriangleListBase (vertexdef_t *verts, int *indecies, // Light map GL_SelectTexture(GL_TEXTURE0_ARB); qglClientActiveTextureARB(GL_TEXTURE0_ARB); - glTexCoordPointer(2, GL_FLOAT, verts->texcoordstride, verts->texcoords); + GL_TexCoordPointer(2, GL_FLOAT, verts->texcoordstride, + verts->texcoords); glEnableClientState(GL_TEXTURE_COORD_ARRAY); GL_Bind(lightmap_textures+lightmapIndex); // Delux map GL_SelectTexture(GL_TEXTURE1_ARB); qglClientActiveTextureARB(GL_TEXTURE1_ARB); - glTexCoordPointer(2, GL_FLOAT, verts->lightmapstride, - verts->lightmapcoords); + GL_TexCoordPointer(2, GL_FLOAT, verts->lightmapstride, + verts->lightmapcoords); glEnableClientState(GL_TEXTURE_COORD_ARRAY); GL_Bind(lightmap_textures+lightmapIndex+1); @@ -985,15 +984,15 @@ void GL2_drawTriangleListBase (vertexdef_t *verts, int *indecies, GL_BindAdvanced(shader->bumpstages[0].texture[0]); } qglClientActiveTextureARB(GL_TEXTURE2_ARB); - glTexCoordPointer(3, GL_FLOAT, verts->tangentstride, - verts->tangents); + GL_TexCoordPointer(3, GL_FLOAT, verts->tangentstride, + verts->tangents); glEnableClientState(GL_TEXTURE_COORD_ARRAY); // Setup base texture GL_SelectTexture(GL_TEXTURE3_ARB); qglClientActiveTextureARB(GL_TEXTURE3_ARB); - glTexCoordPointer(3, GL_FLOAT, verts->binormalstride, - verts->binormals); + GL_TexCoordPointer(3, GL_FLOAT, verts->binormalstride, + verts->binormals); glEnableClientState(GL_TEXTURE_COORD_ARRAY); if (shader->numcolorstages) @@ -1010,8 +1009,8 @@ void GL2_drawTriangleListBase (vertexdef_t *verts, int *indecies, // Normals qglClientActiveTextureARB(GL_TEXTURE4_ARB); - glTexCoordPointer(3, GL_FLOAT, verts->normalstride, - verts->normals); + GL_TexCoordPointer(3, GL_FLOAT, verts->normalstride, + verts->normals); glEnableClientState(GL_TEXTURE_COORD_ARRAY); GL2_EnableDeluxShader(shader); @@ -1064,7 +1063,8 @@ void GL2_drawTriangleListBase (vertexdef_t *verts, int *indecies, GL_SelectTexture(GL_TEXTURE0_ARB); qglClientActiveTextureARB(GL_TEXTURE0_ARB); - glTexCoordPointer(2, GL_FLOAT, verts->texcoordstride, verts->texcoords); + GL_TexCoordPointer(2, GL_FLOAT, verts->texcoordstride, + verts->texcoords); glEnableClientState(GL_TEXTURE_COORD_ARRAY); glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); @@ -1072,7 +1072,8 @@ void GL2_drawTriangleListBase (vertexdef_t *verts, int *indecies, glEnable(GL_TEXTURE_2D); GL_Bind(lightmap_textures+lightmapIndex); qglClientActiveTextureARB(GL_TEXTURE1_ARB); - glTexCoordPointer(2, GL_FLOAT, verts->lightmapstride, verts->lightmapcoords); + GL_TexCoordPointer(2, GL_FLOAT, verts->lightmapstride, + verts->lightmapcoords); glEnableClientState(GL_TEXTURE_COORD_ARRAY); glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); @@ -1086,9 +1087,9 @@ void GL2_drawTriangleListBase (vertexdef_t *verts, int *indecies, } else { - if (verts->colors && (shader->flags & SURF_PPLIGHT)) + if (!IsNullDriver(verts->colors) && (shader->flags & SURF_PPLIGHT)) { - glColorPointer(3, GL_UNSIGNED_BYTE, verts->colorstride, verts->colors); + GL_ColorPointer(3, GL_UNSIGNED_BYTE, verts->colorstride, verts->colors); glEnableClientState(GL_COLOR_ARRAY); glShadeModel(GL_SMOOTH); @@ -1134,10 +1135,10 @@ void GL2_drawTriangleListBase (vertexdef_t *verts, int *indecies, { if (shader->colorstages[0].src_blend >= 0) { - glBlendFunc(shader->colorstages[0].src_blend, shader->colorstages[0].dst_blend); - glEnable(GL_BLEND); + glBlendFunc(shader->colorstages[0].src_blend, shader->colorstages[0].dst_blend); + glEnable(GL_BLEND); } else { - glDisable(GL_BLEND); + glDisable(GL_BLEND); } glColor3f(0,0,0); @@ -1235,13 +1236,13 @@ void GL2_drawSurfaceListBase (vertexdef_t* verts, msurface_t** surfs, int usedelux; checkerror(); - glVertexPointer(3, GL_FLOAT, verts->vertexstride, verts->vertices); + GL_VertexPointer(3, GL_FLOAT, verts->vertexstride, verts->vertices); glEnableClientState(GL_VERTEX_ARRAY); GL_SelectTexture(GL_TEXTURE0_ARB); qglClientActiveTextureARB(GL_TEXTURE0_ARB); glEnableClientState(GL_TEXTURE_COORD_ARRAY); - glTexCoordPointer(2, GL_FLOAT, verts->texcoordstride, verts->texcoords); + GL_TexCoordPointer(2, GL_FLOAT, verts->texcoordstride, verts->texcoords); glColor3ub(255,255,255); @@ -1257,12 +1258,12 @@ void GL2_drawSurfaceListBase (vertexdef_t* verts, msurface_t** surfs, GL2_sendSurfacesBase(surfs, numSurfaces, false); glPopMatrix(); } - if (verts->lightmapcoords && (shader->flags & SURF_PPLIGHT)) + if (!IsNullDriver(verts->lightmapcoords) && (shader->flags & SURF_PPLIGHT)) { GL_SelectTexture(GL_TEXTURE1_ARB); qglClientActiveTextureARB(GL_TEXTURE1_ARB); - glTexCoordPointer(2, GL_FLOAT, verts->lightmapstride, - verts->lightmapcoords); + GL_TexCoordPointer(2, GL_FLOAT, verts->lightmapstride, + verts->lightmapcoords); glEnableClientState(GL_TEXTURE_COORD_ARRAY); //Delux lightmapping @@ -1495,12 +1496,12 @@ void GL2_sendSurfacesTA(msurface_t** surfs, int numSurfaces, const transform_t * void GL2_drawSurfaceListBump (vertexdef_t *verts, msurface_t **surfs, int numSurfaces,const transform_t *tr, const lightobject_t *lo) { - glVertexPointer(3, GL_FLOAT, verts->vertexstride, verts->vertices); + GL_VertexPointer(3, GL_FLOAT, verts->vertexstride, verts->vertices); glEnableClientState(GL_VERTEX_ARRAY); qglClientActiveTextureARB(GL_TEXTURE0_ARB); glEnableClientState(GL_TEXTURE_COORD_ARRAY); - glTexCoordPointer(2, GL_FLOAT, verts->texcoordstride, verts->texcoords); + GL_TexCoordPointer(2, GL_FLOAT, verts->texcoordstride, verts->texcoords); GL_AddColor(); glColor3fv(¤tshadowlight->color[0]); diff --git a/gl_bumpnv3x.c b/gl_bumpnv3x.c index d257987..2726aa2 100644 --- a/gl_bumpnv3x.c +++ b/gl_bumpnv3x.c @@ -728,11 +728,17 @@ void NV3x_drawTriangleListBump (const vertexdef_t *verts, int *indecies, const transform_t *tr, const lightobject_t *lo) { glEnableClientState(GL_VERTEX_ARRAY); - glVertexPointer(3, GL_FLOAT, verts->vertexstride, verts->vertices); + GL_VertexPointer(3, GL_FLOAT, verts->vertexstride, verts->vertices); GL_AddColor(); glColor3fv(¤tshadowlight->color[0]); + //Check the input vertices + if (IsNullDriver(verts->texcoords)) FormatError(); + if (IsNullDriver(verts->binormals)) FormatError(); + if (IsNullDriver(verts->tangents)) FormatError(); + if (IsNullDriver(verts->normals)) FormatError(); + NV3x_EnableBumpShader(tr, lo, true, shader); //bind the correct textures @@ -740,33 +746,25 @@ void NV3x_drawTriangleListBump (const vertexdef_t *verts, int *indecies, qglClientActiveTextureARB(GL_TEXTURE0_ARB); if (shader->numbumpstages > 0) GL_BindAdvanced(shader->bumpstages[0].texture[0]); - if (!verts->texcoords) - FormatError(); glEnableClientState(GL_TEXTURE_COORD_ARRAY); - glTexCoordPointer(2, GL_FLOAT, verts->texcoordstride, verts->texcoords); + GL_TexCoordPointer(2, GL_FLOAT, verts->texcoordstride, verts->texcoords); GL_SelectTexture(GL_TEXTURE1_ARB); qglClientActiveTextureARB(GL_TEXTURE1_ARB); if (shader->numcolorstages > 0) GL_BindAdvanced(shader->colorstages[0].texture[0]); - if (!verts->tangents) - FormatError(); glEnableClientState(GL_TEXTURE_COORD_ARRAY); - glTexCoordPointer(3, GL_FLOAT, verts->tangentstride, verts->tangents); + GL_TexCoordPointer(3, GL_FLOAT, verts->tangentstride, verts->tangents); - if (!verts->binormals) - FormatError(); GL_SelectTexture(GL_TEXTURE2_ARB); qglClientActiveTextureARB(GL_TEXTURE2_ARB); glEnableClientState(GL_TEXTURE_COORD_ARRAY); - glTexCoordPointer(3, GL_FLOAT, verts->binormalstride, verts->binormals); + GL_TexCoordPointer(3, GL_FLOAT, verts->binormalstride, verts->binormals); - if (!verts->normals) - FormatError(); GL_SelectTexture(GL_TEXTURE3_ARB); qglClientActiveTextureARB(GL_TEXTURE3_ARB); glEnableClientState(GL_TEXTURE_COORD_ARRAY); - glTexCoordPointer(3, GL_FLOAT, verts->normalstride, verts->normals); + GL_TexCoordPointer(3, GL_FLOAT, verts->normalstride, verts->normals); glDrawElements(GL_TRIANGLES, numIndecies, GL_UNSIGNED_INT, indecies); @@ -792,12 +790,12 @@ void NV3x_drawTriangleListBase (vertexdef_t *verts, int *indecies, int i; glGetError(); - glVertexPointer(3, GL_FLOAT, verts->vertexstride, verts->vertices); + GL_VertexPointer(3, GL_FLOAT, verts->vertexstride, verts->vertices); glEnableClientState(GL_VERTEX_ARRAY); GL_SelectTexture(GL_TEXTURE0_ARB); qglClientActiveTextureARB(GL_TEXTURE0_ARB); - glTexCoordPointer(2, GL_FLOAT, verts->texcoordstride, verts->texcoords); + GL_TexCoordPointer(2, GL_FLOAT, verts->texcoordstride, verts->texcoords); glEnableClientState(GL_TEXTURE_COORD_ARRAY); if (!shader->cull) @@ -805,7 +803,7 @@ void NV3x_drawTriangleListBase (vertexdef_t *verts, int *indecies, glDisable(GL_CULL_FACE); } - glColor3ub(255,255,255); + glColor3ub(255,255,255); for ( i = 0; i < shader->numstages; i++) { @@ -815,7 +813,7 @@ void NV3x_drawTriangleListBase (vertexdef_t *verts, int *indecies, } glMatrixMode(GL_MODELVIEW); - if (verts->lightmapcoords && (lightmapIndex >= 0) && (shader->flags & SURF_PPLIGHT)) + if (!IsNullDriver(verts->lightmapcoords) && (lightmapIndex >= 0) && (shader->flags & SURF_PPLIGHT)) { //Delux lightmapping qboolean usedelux = (sh_delux.value != 0); @@ -865,7 +863,7 @@ void NV3x_drawTriangleListBase (vertexdef_t *verts, int *indecies, GL_SelectTexture(GL_TEXTURE0_ARB); glEnable(GL_TEXTURE_2D); qglClientActiveTextureARB(GL_TEXTURE0_ARB); - glTexCoordPointer(2, GL_FLOAT, verts->texcoordstride, verts->texcoords); + GL_TexCoordPointer(2, GL_FLOAT, verts->texcoordstride, verts->texcoords); glEnableClientState(GL_TEXTURE_COORD_ARRAY); GL_Bind(lightmap_textures+lightmapIndex); @@ -873,8 +871,8 @@ void NV3x_drawTriangleListBase (vertexdef_t *verts, int *indecies, GL_SelectTexture(GL_TEXTURE1_ARB); glEnable(GL_TEXTURE_2D); qglClientActiveTextureARB(GL_TEXTURE1_ARB); - glTexCoordPointer(2, GL_FLOAT, verts->lightmapstride, - verts->lightmapcoords); + GL_TexCoordPointer(2, GL_FLOAT, verts->lightmapstride, + verts->lightmapcoords); glEnableClientState(GL_TEXTURE_COORD_ARRAY); GL_Bind(lightmap_textures+lightmapIndex+1); @@ -887,16 +885,16 @@ void NV3x_drawTriangleListBase (vertexdef_t *verts, int *indecies, GL_BindAdvanced(shader->bumpstages[0].texture[0]); } qglClientActiveTextureARB(GL_TEXTURE2_ARB); - glTexCoordPointer(3, GL_FLOAT, verts->tangentstride, - verts->tangents); + GL_TexCoordPointer(3, GL_FLOAT, verts->tangentstride, + verts->tangents); glEnableClientState(GL_TEXTURE_COORD_ARRAY); // Setup base texture GL_SelectTexture(GL_TEXTURE3_ARB); glEnable(GL_TEXTURE_2D); qglClientActiveTextureARB(GL_TEXTURE3_ARB); - glTexCoordPointer(3, GL_FLOAT, verts->binormalstride, - verts->binormals); + GL_TexCoordPointer(3, GL_FLOAT, verts->binormalstride, + verts->binormals); glEnableClientState(GL_TEXTURE_COORD_ARRAY); if (shader->numcolorstages) @@ -913,8 +911,8 @@ void NV3x_drawTriangleListBase (vertexdef_t *verts, int *indecies, // Normals qglClientActiveTextureARB(GL_TEXTURE4_ARB); - glTexCoordPointer(3, GL_FLOAT, verts->normalstride, - verts->normals); + GL_TexCoordPointer(3, GL_FLOAT, verts->normalstride, + verts->normals); glEnableClientState(GL_TEXTURE_COORD_ARRAY); NV3x_EnableDeluxShader(shader); @@ -972,7 +970,7 @@ void NV3x_drawTriangleListBase (vertexdef_t *verts, int *indecies, GL_SelectTexture(GL_TEXTURE0_ARB); qglClientActiveTextureARB(GL_TEXTURE0_ARB); - glTexCoordPointer(2, GL_FLOAT, verts->texcoordstride, verts->texcoords); + GL_TexCoordPointer(2, GL_FLOAT, verts->texcoordstride, verts->texcoords); glEnableClientState(GL_TEXTURE_COORD_ARRAY); glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); @@ -980,7 +978,7 @@ void NV3x_drawTriangleListBase (vertexdef_t *verts, int *indecies, glEnable(GL_TEXTURE_2D); GL_Bind(lightmap_textures+lightmapIndex); qglClientActiveTextureARB(GL_TEXTURE1_ARB); - glTexCoordPointer(2, GL_FLOAT, verts->lightmapstride, verts->lightmapcoords); + GL_TexCoordPointer(2, GL_FLOAT, verts->lightmapstride, verts->lightmapcoords); glEnableClientState(GL_TEXTURE_COORD_ARRAY); glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); @@ -994,9 +992,9 @@ void NV3x_drawTriangleListBase (vertexdef_t *verts, int *indecies, } else { - if (verts->colors && (shader->flags & SURF_PPLIGHT)) + if (!IsNullDriver(verts->colors) && (shader->flags & SURF_PPLIGHT)) { - glColorPointer(3, GL_UNSIGNED_BYTE, verts->colorstride, verts->colors); + GL_ColorPointer(3, GL_UNSIGNED_BYTE, verts->colorstride, verts->colors); glEnableClientState(GL_COLOR_ARRAY); glShadeModel(GL_SMOOTH); @@ -1042,10 +1040,10 @@ void NV3x_drawTriangleListBase (vertexdef_t *verts, int *indecies, { if (shader->colorstages[0].src_blend >= 0) { - glBlendFunc(shader->colorstages[0].src_blend, shader->colorstages[0].dst_blend); - glEnable(GL_BLEND); + glBlendFunc(shader->colorstages[0].src_blend, shader->colorstages[0].dst_blend); + glEnable(GL_BLEND); } else { - glDisable(GL_BLEND); + glDisable(GL_BLEND); } glColor3f(0,0,0); @@ -1143,13 +1141,13 @@ void NV3x_drawSurfaceListBase (vertexdef_t* verts, msurface_t** surfs, int usedelux; checkerror(); - glVertexPointer(3, GL_FLOAT, verts->vertexstride, verts->vertices); + GL_VertexPointer(3, GL_FLOAT, verts->vertexstride, verts->vertices); glEnableClientState(GL_VERTEX_ARRAY); GL_SelectTexture(GL_TEXTURE0_ARB); qglClientActiveTextureARB(GL_TEXTURE0_ARB); glEnableClientState(GL_TEXTURE_COORD_ARRAY); - glTexCoordPointer(2, GL_FLOAT, verts->texcoordstride, verts->texcoords); + GL_TexCoordPointer(2, GL_FLOAT, verts->texcoordstride, verts->texcoords); glColor3ub(255,255,255); @@ -1166,11 +1164,11 @@ void NV3x_drawSurfaceListBase (vertexdef_t* verts, msurface_t** surfs, NV3x_sendSurfacesBase(surfs, numSurfaces, false); glPopMatrix(); } - if (verts->lightmapcoords && (shader->flags & SURF_PPLIGHT)) + if (!IsNullDriver(verts->lightmapcoords) && (shader->flags & SURF_PPLIGHT)) { GL_SelectTexture(GL_TEXTURE1_ARB); qglClientActiveTextureARB(GL_TEXTURE1_ARB); - glTexCoordPointer(2, GL_FLOAT, verts->lightmapstride, + GL_TexCoordPointer(2, GL_FLOAT, verts->lightmapstride, verts->lightmapcoords); glEnableClientState(GL_TEXTURE_COORD_ARRAY); @@ -1416,12 +1414,12 @@ void NV3x_sendSurfacesTA(msurface_t** surfs, int numSurfaces, const transform_t void NV3x_drawSurfaceListBump (vertexdef_t *verts, msurface_t **surfs, int numSurfaces,const transform_t *tr, const lightobject_t *lo) { - glVertexPointer(3, GL_FLOAT, verts->vertexstride, verts->vertices); + GL_VertexPointer(3, GL_FLOAT, verts->vertexstride, verts->vertices); glEnableClientState(GL_VERTEX_ARRAY); qglClientActiveTextureARB(GL_TEXTURE0_ARB); glEnableClientState(GL_TEXTURE_COORD_ARRAY); - glTexCoordPointer(2, GL_FLOAT, verts->texcoordstride, verts->texcoords); + GL_TexCoordPointer(2, GL_FLOAT, verts->texcoordstride, verts->texcoords); GL_AddColor(); glColor3fv(¤tshadowlight->color[0]); diff --git a/gl_bumpparhelia.c b/gl_bumpparhelia.c index 1f3200f..7604bf3 100644 --- a/gl_bumpparhelia.c +++ b/gl_bumpparhelia.c @@ -1169,11 +1169,11 @@ void Parhelia_sendTriangleListWV(const vertexdef_t *verts, int *indecies, int numIndecies) { - glVertexPointer(3, GL_FLOAT, verts->vertexstride, verts->vertices); + GL_VertexPointer(3, GL_FLOAT, verts->vertexstride, verts->vertices); glEnableClientState(GL_VERTEX_ARRAY); qglClientActiveTextureARB(GL_TEXTURE0_ARB); - glTexCoordPointer(3, GL_FLOAT, verts->vertexstride, verts->vertices); + GL_TexCoordPointer(3, GL_FLOAT, verts->vertexstride, verts->vertices); glEnableClientState(GL_TEXTURE_COORD_ARRAY); //draw them @@ -1186,31 +1186,29 @@ void Parhelia_sendTriangleListWV(const vertexdef_t *verts, int *indecies, void Parhelia_sendTriangleListTA(const vertexdef_t *verts, int *indecies, int numIndecies) { - glVertexPointer(3, GL_FLOAT, verts->vertexstride, verts->vertices); + GL_VertexPointer(3, GL_FLOAT, verts->vertexstride, verts->vertices); glEnableClientState(GL_VERTEX_ARRAY); - if (!verts->texcoords) - FormatError(); + //Check the input vertices + if (IsNullDriver(verts->texcoords)) FormatError(); + if (IsNullDriver(verts->binormals)) FormatError(); + if (IsNullDriver(verts->tangents)) FormatError(); + if (IsNullDriver(verts->normals)) FormatError(); + qglClientActiveTextureARB(GL_TEXTURE0_ARB); - glTexCoordPointer(2, GL_FLOAT, verts->texcoordstride, verts->texcoords); + GL_TexCoordPointer(2, GL_FLOAT, verts->texcoordstride, verts->texcoords); glEnableClientState(GL_TEXTURE_COORD_ARRAY); - if (!verts->tangents) - FormatError(); qglClientActiveTextureARB(GL_TEXTURE1_ARB); - glTexCoordPointer(3, GL_FLOAT, verts->tangentstride, verts->tangents); + GL_TexCoordPointer(3, GL_FLOAT, verts->tangentstride, verts->tangents); glEnableClientState(GL_TEXTURE_COORD_ARRAY); - if (!verts->binormals) - FormatError(); qglClientActiveTextureARB(GL_TEXTURE2_ARB); - glTexCoordPointer(3, GL_FLOAT, verts->binormalstride, verts->binormals); + GL_TexCoordPointer(3, GL_FLOAT, verts->binormalstride, verts->binormals); glEnableClientState(GL_TEXTURE_COORD_ARRAY); - if (!verts->normals) - FormatError(); qglClientActiveTextureARB(GL_TEXTURE3_ARB); - glTexCoordPointer(3, GL_FLOAT, verts->normalstride, verts->normals); + GL_TexCoordPointer(3, GL_FLOAT, verts->normalstride, verts->normals); glEnableClientState(GL_TEXTURE_COORD_ARRAY); //draw them @@ -1280,11 +1278,11 @@ void Parhelia_drawTriangleListBase (vertexdef_t *verts, int *indecies, { int i; - glVertexPointer(3, GL_FLOAT, verts->vertexstride, verts->vertices); + GL_VertexPointer(3, GL_FLOAT, verts->vertexstride, verts->vertices); glEnableClientState(GL_VERTEX_ARRAY); qglClientActiveTextureARB(GL_TEXTURE0_ARB); - glTexCoordPointer(2, GL_FLOAT, verts->texcoordstride, verts->texcoords); + GL_TexCoordPointer(2, GL_FLOAT, verts->texcoordstride, verts->texcoords); glEnableClientState(GL_TEXTURE_COORD_ARRAY); if (!shader->cull) @@ -1302,9 +1300,9 @@ void Parhelia_drawTriangleListBase (vertexdef_t *verts, int *indecies, } glMatrixMode(GL_MODELVIEW); - if (verts->colors && (shader->flags & SURF_PPLIGHT)) + if (!IsNullDriver(verts->colors) && (shader->flags & SURF_PPLIGHT)) { - glColorPointer(3, GL_UNSIGNED_BYTE, verts->colorstride, verts->colors); + GL_ColorPointer(3, GL_UNSIGNED_BYTE, verts->colorstride, verts->colors); glEnableClientState(GL_COLOR_ARRAY); glShadeModel(GL_SMOOTH); @@ -1407,11 +1405,11 @@ void Parhelia_drawSurfaceListBase (vertexdef_t* verts, msurface_t** surfs, { int i; - glVertexPointer(3, GL_FLOAT, verts->vertexstride, verts->vertices); + GL_VertexPointer(3, GL_FLOAT, verts->vertexstride, verts->vertices); glEnableClientState(GL_VERTEX_ARRAY); qglClientActiveTextureARB(GL_TEXTURE0_ARB); - glTexCoordPointer(2, GL_FLOAT, verts->texcoordstride, verts->texcoords); + GL_TexCoordPointer(2, GL_FLOAT, verts->texcoordstride, verts->texcoords); glEnableClientState(GL_TEXTURE_COORD_ARRAY); glColor3ub(255,255,255); @@ -1429,10 +1427,10 @@ void Parhelia_drawSurfaceListBase (vertexdef_t* verts, msurface_t** surfs, glPopMatrix(); } - if (verts->lightmapcoords && (shader->flags & SURF_PPLIGHT)) + if (!IsNullDriver(verts->lightmapcoords) && (shader->flags & SURF_PPLIGHT)) { qglClientActiveTextureARB(GL_TEXTURE1_ARB); - glTexCoordPointer(2, GL_FLOAT, verts->lightmapstride, + GL_TexCoordPointer(2, GL_FLOAT, verts->lightmapstride, verts->lightmapcoords); glEnableClientState(GL_TEXTURE_COORD_ARRAY); @@ -1623,7 +1621,7 @@ void Parhelia_sendSurfacesPlain(msurface_t** surfs, int numSurfaces) void Parhelia_drawSurfaceListBump (vertexdef_t *verts, msurface_t **surfs, int numSurfaces,const transform_t *tr, const lightobject_t *lo) { - glVertexPointer(3, GL_FLOAT, verts->vertexstride, verts->vertices); + GL_VertexPointer(3, GL_FLOAT, verts->vertexstride, verts->vertices); glEnableClientState(GL_VERTEX_ARRAY); qglClientActiveTextureARB(GL_TEXTURE0_ARB); @@ -1635,7 +1633,7 @@ void Parhelia_drawSurfaceListBump (vertexdef_t *verts, msurface_t **surfs, GL_DrawAlpha(); Parhelia_EnableAttentShader(tr); - glTexCoordPointer(3, GL_FLOAT, verts->vertexstride, verts->vertices); + GL_TexCoordPointer(3, GL_FLOAT, verts->vertexstride, verts->vertices); Parhelia_sendSurfacesPlain(surfs,numSurfaces); Parhelia_DisableAttentShader(); @@ -1649,7 +1647,7 @@ void Parhelia_drawSurfaceListBump (vertexdef_t *verts, msurface_t **surfs, Parhelia_EnableSpecularShader(tr, lo, true); - glTexCoordPointer(2, GL_FLOAT, verts->texcoordstride, verts->texcoords); + GL_TexCoordPointer(2, GL_FLOAT, verts->texcoordstride, verts->texcoords); Parhelia_sendSurfacesTA(surfs,numSurfaces); Parhelia_DisableDiffuseShader(); diff --git a/gl_bumpradeon.c b/gl_bumpradeon.c index aa2457b..20aae7b 100644 --- a/gl_bumpradeon.c +++ b/gl_bumpradeon.c @@ -990,11 +990,11 @@ void Radeon_sendTriangleListWV(const vertexdef_t *verts, int *indecies, int numIndecies) { - glVertexPointer(3, GL_FLOAT, verts->vertexstride, verts->vertices); + GL_VertexPointer(3, GL_FLOAT, verts->vertexstride, verts->vertices); glEnableClientState(GL_VERTEX_ARRAY); qglClientActiveTextureARB(GL_TEXTURE0_ARB); - glTexCoordPointer(3, GL_FLOAT, verts->vertexstride, verts->vertices); + GL_TexCoordPointer(3, GL_FLOAT, verts->vertexstride, verts->vertices); glEnableClientState(GL_TEXTURE_COORD_ARRAY); //draw them @@ -1007,31 +1007,29 @@ void Radeon_sendTriangleListWV(const vertexdef_t *verts, int *indecies, void Radeon_sendTriangleListTA(const vertexdef_t *verts, int *indecies, int numIndecies) { - glVertexPointer(3, GL_FLOAT, verts->vertexstride, verts->vertices); + GL_VertexPointer(3, GL_FLOAT, verts->vertexstride, verts->vertices); glEnableClientState(GL_VERTEX_ARRAY); - if (!verts->texcoords) - FormatError(); + //Check the input vertices + if (IsNullDriver(verts->texcoords)) FormatError(); + if (IsNullDriver(verts->binormals)) FormatError(); + if (IsNullDriver(verts->tangents)) FormatError(); + if (IsNullDriver(verts->normals)) FormatError(); + qglClientActiveTextureARB(GL_TEXTURE0_ARB); - glTexCoordPointer(2, GL_FLOAT, verts->texcoordstride, verts->texcoords); + GL_TexCoordPointer(2, GL_FLOAT, verts->texcoordstride, verts->texcoords); glEnableClientState(GL_TEXTURE_COORD_ARRAY); - if (!verts->tangents) - FormatError(); qglClientActiveTextureARB(GL_TEXTURE1_ARB); - glTexCoordPointer(3, GL_FLOAT, verts->tangentstride, verts->tangents); + GL_TexCoordPointer(3, GL_FLOAT, verts->tangentstride, verts->tangents); glEnableClientState(GL_TEXTURE_COORD_ARRAY); - if (!verts->binormals) - FormatError(); qglClientActiveTextureARB(GL_TEXTURE2_ARB); - glTexCoordPointer(3, GL_FLOAT, verts->binormalstride, verts->binormals); + GL_TexCoordPointer(3, GL_FLOAT, verts->binormalstride, verts->binormals); glEnableClientState(GL_TEXTURE_COORD_ARRAY); - if (!verts->normals) - FormatError(); qglClientActiveTextureARB(GL_TEXTURE3_ARB); - glTexCoordPointer(3, GL_FLOAT, verts->normalstride, verts->normals); + GL_TexCoordPointer(3, GL_FLOAT, verts->normalstride, verts->normals); glEnableClientState(GL_TEXTURE_COORD_ARRAY); //draw them @@ -1090,11 +1088,11 @@ void Radeon_drawTriangleListBase (vertexdef_t *verts, int *indecies, { int i; - glVertexPointer(3, GL_FLOAT, verts->vertexstride, verts->vertices); + GL_VertexPointer(3, GL_FLOAT, verts->vertexstride, verts->vertices); glEnableClientState(GL_VERTEX_ARRAY); qglClientActiveTextureARB(GL_TEXTURE0_ARB); - glTexCoordPointer(2, GL_FLOAT, verts->texcoordstride, verts->texcoords); + GL_TexCoordPointer(2, GL_FLOAT, verts->texcoordstride, verts->texcoords); glEnableClientState(GL_TEXTURE_COORD_ARRAY); if (!shader->cull) @@ -1114,9 +1112,9 @@ void Radeon_drawTriangleListBase (vertexdef_t *verts, int *indecies, } glMatrixMode(GL_MODELVIEW); - if (verts->colors && (shader->flags & SURF_PPLIGHT)) + if (!IsNullDriver(verts->colors) && (shader->flags & SURF_PPLIGHT)) { - glColorPointer(3, GL_UNSIGNED_BYTE, verts->colorstride, verts->colors); + GL_ColorPointer(3, GL_UNSIGNED_BYTE, verts->colorstride, verts->colors); glEnableClientState(GL_COLOR_ARRAY); glShadeModel(GL_SMOOTH); @@ -1220,11 +1218,11 @@ void Radeon_drawSurfaceListBase (vertexdef_t* verts, msurface_t** surfs, { int i; - glVertexPointer(3, GL_FLOAT, verts->vertexstride, verts->vertices); + GL_VertexPointer(3, GL_FLOAT, verts->vertexstride, verts->vertices); glEnableClientState(GL_VERTEX_ARRAY); qglClientActiveTextureARB(GL_TEXTURE0_ARB); - glTexCoordPointer(2, GL_FLOAT, verts->texcoordstride, verts->texcoords); + GL_TexCoordPointer(2, GL_FLOAT, verts->texcoordstride, verts->texcoords); glEnableClientState(GL_TEXTURE_COORD_ARRAY); glColor3ub(255,255,255); @@ -1242,10 +1240,10 @@ void Radeon_drawSurfaceListBase (vertexdef_t* verts, msurface_t** surfs, glPopMatrix(); } - if (verts->lightmapcoords && (shader->flags & SURF_PPLIGHT)) + if (!IsNullDriver(verts->lightmapcoords) && (shader->flags & SURF_PPLIGHT)) { qglClientActiveTextureARB(GL_TEXTURE1_ARB); - glTexCoordPointer(2, GL_FLOAT, verts->lightmapstride, + GL_TexCoordPointer(2, GL_FLOAT, verts->lightmapstride, verts->lightmapcoords); glEnableClientState(GL_TEXTURE_COORD_ARRAY); @@ -1443,7 +1441,7 @@ void Radeon_drawSurfaceListBump (vertexdef_t *verts, msurface_t **surfs, int numSurfaces, const transform_t *tr, const lightobject_t *lo) { - glVertexPointer(3, GL_FLOAT, verts->vertexstride, verts->vertices); + GL_VertexPointer(3, GL_FLOAT, verts->vertexstride, verts->vertices); glEnableClientState(GL_VERTEX_ARRAY); qglClientActiveTextureARB(GL_TEXTURE0_ARB); @@ -1454,7 +1452,7 @@ void Radeon_drawSurfaceListBump (vertexdef_t *verts, msurface_t **surfs, //draw attent into dest alpha GL_DrawAlpha(); Radeon_EnableAttentShader(tr); - glTexCoordPointer(3, GL_FLOAT, verts->vertexstride, verts->vertices); + GL_TexCoordPointer(3, GL_FLOAT, verts->vertexstride, verts->vertices); Radeon_sendSurfacesPlain(surfs,numSurfaces); Radeon_DisableAttentShader(); GL_ModulateAlphaDrawColor(); @@ -1465,7 +1463,7 @@ void Radeon_drawSurfaceListBump (vertexdef_t *verts, msurface_t **surfs, } glColor3fv(¤tshadowlight->color[0]); - glTexCoordPointer(2, GL_FLOAT, verts->texcoordstride, verts->texcoords); + GL_TexCoordPointer(2, GL_FLOAT, verts->texcoordstride, verts->texcoords); Radeon_sendSurfacesTA(surfs, numSurfaces, tr, lo); glDisableClientState(GL_VERTEX_ARRAY);