Changed rhw into w as that was how it was used. Also fixed a few warnings.

This commit is contained in:
Steven Fuller 2008-09-28 21:37:59 -07:00 committed by Patryk Obara
parent c11821b898
commit 0d6d5e545a

View file

@ -474,7 +474,7 @@ void ReleaseD3DTexture(void *tex)
{ {
D3DTexture *TextureHandle = (D3DTexture *)tex; D3DTexture *TextureHandle = (D3DTexture *)tex;
pglDeleteTextures(1, &(TextureHandle->id)); pglDeleteTextures(1, (GLuint*) &(TextureHandle->id));
free(TextureHandle); free(TextureHandle);
} }
@ -614,24 +614,22 @@ void D3D_ZBufferedGouraudTexturedPolygon_Output(POLYHEADER *inputPolyPtr, RENDER
RENDERVERTEX *vertices = &renderVerticesPtr[i]; RENDERVERTEX *vertices = &renderVerticesPtr[i];
GLfloat x, y, z; GLfloat x, y, z;
GLfloat s, t; GLfloat s, t;
GLfloat rhw = 1.0/(float)vertices->Z, zvalue; GLfloat w = (float)vertices->Z;
GLfloat zvalue;
s = ((float)vertices->U) * RecipW + (1.0f/256.0f); s = ((float)vertices->U) * RecipW + (1.0f/256.0f);
t = ((float)vertices->V) * RecipH + (1.0f/256.0f); t = ((float)vertices->V) * RecipH + (1.0f/256.0f);
// if (s < 0.0 || t < 0.0 || s >= 1.0 || t >= 1.0)
// fprintf(stderr, "HEY! s = %f, t = %f (%d, %d)\n", s, t, vertices->U, vertices->V);
x = ((float)vertices->X*((float)Global_VDB_Ptr->VDB_ProjX+1.0f))/((float)vertices->Z*(float)ScreenDescriptorBlock.SDB_CentreX); x = ((float)vertices->X*((float)Global_VDB_Ptr->VDB_ProjX+1.0f))/((float)vertices->Z*(float)ScreenDescriptorBlock.SDB_CentreX);
y = -((float)vertices->Y*((float)Global_VDB_Ptr->VDB_ProjY+1.0f))/((float)vertices->Z*(float)ScreenDescriptorBlock.SDB_CentreY); y = -((float)vertices->Y*((float)Global_VDB_Ptr->VDB_ProjY+1.0f))/((float)vertices->Z*(float)ScreenDescriptorBlock.SDB_CentreY);
zvalue = vertices->Z+HeadUpDisplayZOffset; zvalue = vertices->Z+HeadUpDisplayZOffset;
z = 1.0f - 2.0f*ZNear/zvalue; z = 1.0f - 2.0f*ZNear/zvalue;
varrp->v[0] = svarrp->v[0] = x/rhw; varrp->v[0] = svarrp->v[0] = x*w;
varrp->v[1] = svarrp->v[1] = y/rhw; varrp->v[1] = svarrp->v[1] = y*w;
varrp->v[2] = svarrp->v[2] = z/rhw; varrp->v[2] = svarrp->v[2] = z*w;
varrp->v[3] = svarrp->v[3] = 1/rhw; varrp->v[3] = svarrp->v[3] = w;
varrp->t[0] = /**/ svarrp->t[0] = /**/ s; varrp->t[0] = /**/ svarrp->t[0] = /**/ s;
varrp->t[1] = /**/ svarrp->t[1] = /**/ t; varrp->t[1] = /**/ svarrp->t[1] = /**/ t;
@ -683,26 +681,22 @@ void D3D_SkyPolygon_Output(POLYHEADER *inputPolyPtr, RENDERVERTEX *renderVertice
RENDERVERTEX *vertices = &renderVerticesPtr[i]; RENDERVERTEX *vertices = &renderVerticesPtr[i];
GLfloat x, y, z; GLfloat x, y, z;
GLfloat s, t; GLfloat s, t;
GLfloat rhw; GLfloat w;
rhw = 1.0 / (float)vertices->Z; w = (float)vertices->Z;
s = ((float)vertices->U) * RecipW + (1.0f/256.0f); s = ((float)vertices->U) * RecipW + (1.0f/256.0f);
t = ((float)vertices->V) * RecipH + (1.0f/256.0f); t = ((float)vertices->V) * RecipH + (1.0f/256.0f);
// if (s < 0.0 || t < 0.0 || s >= 1.0 || t >= 1.0)
// fprintf(stderr, "HEY! s = %f, t = %f (%d, %d)\n", s, t, vertices->U, vertices->V);
x = ((float)vertices->X*((float)Global_VDB_Ptr->VDB_ProjX+1.0f))/((float)vertices->Z*(float)ScreenDescriptorBlock.SDB_CentreX); x = ((float)vertices->X*((float)Global_VDB_Ptr->VDB_ProjX+1.0f))/((float)vertices->Z*(float)ScreenDescriptorBlock.SDB_CentreX);
y = -((float)vertices->Y*((float)Global_VDB_Ptr->VDB_ProjY+1.0f))/((float)vertices->Z*(float)ScreenDescriptorBlock.SDB_CentreY); y = -((float)vertices->Y*((float)Global_VDB_Ptr->VDB_ProjY+1.0f))/((float)vertices->Z*(float)ScreenDescriptorBlock.SDB_CentreY);
z = 1.0f; z = 1.0f;
varrp->v[0] = x/rhw; varrp->v[0] = x*w;
varrp->v[1] = y/rhw; varrp->v[1] = y*w;
varrp->v[2] = z/rhw; varrp->v[2] = z*w;
varrp->v[3] = 1/rhw; varrp->v[3] = w;
varrp->t[0] = s; varrp->t[0] = s;
varrp->t[1] = t; varrp->t[1] = t;
@ -756,28 +750,24 @@ void D3D_ZBufferedCloakedPolygon_Output(POLYHEADER *inputPolyPtr, RENDERVERTEX *
GLfloat x, y, z; GLfloat x, y, z;
GLfloat s, t; GLfloat s, t;
GLfloat rhw; GLfloat w;
GLfloat zvalue; GLfloat zvalue;
rhw = 1.0 / (float)vertices->Z; w = (float)vertices->Z;
s = (((float)vertices->U/65536.0f)+0.5) * RecipW; s = (((float)vertices->U/65536.0f)+0.5) * RecipW;
t = (((float)vertices->V/65536.0f)+0.5) * RecipH; t = (((float)vertices->V/65536.0f)+0.5) * RecipH;
// if (s < 0.0 || t < 0.0 || s >= 1.0 || t >= 1.0)
// fprintf(stderr, "HEY! s = %f, t = %f (%d, %d)\n", s, t, vertices->U, vertices->V);
x = ((float)vertices->X*((float)Global_VDB_Ptr->VDB_ProjX+1.0f))/((float)vertices->Z*(float)ScreenDescriptorBlock.SDB_CentreX); x = ((float)vertices->X*((float)Global_VDB_Ptr->VDB_ProjX+1.0f))/((float)vertices->Z*(float)ScreenDescriptorBlock.SDB_CentreX);
y = -((float)vertices->Y*((float)Global_VDB_Ptr->VDB_ProjY+1.0f))/((float)vertices->Z*(float)ScreenDescriptorBlock.SDB_CentreY); y = -((float)vertices->Y*((float)Global_VDB_Ptr->VDB_ProjY+1.0f))/((float)vertices->Z*(float)ScreenDescriptorBlock.SDB_CentreY);
zvalue = vertices->Z+HeadUpDisplayZOffset; zvalue = vertices->Z+HeadUpDisplayZOffset;
z = 1.0 - 2*ZNear/zvalue; z = 1.0 - 2*ZNear/zvalue;
varrp->v[0] = x/rhw; varrp->v[0] = x*w;
varrp->v[1] = y/rhw; varrp->v[1] = y*w;
varrp->v[2] = z/rhw; varrp->v[2] = z*w;
varrp->v[3] = 1/rhw; varrp->v[3] = w;
varrp->t[0] = s; varrp->t[0] = s;
varrp->t[1] = t; varrp->t[1] = t;
@ -861,9 +851,10 @@ void D3D_Decal_Output(DECAL *decalPtr, RENDERVERTEX *renderVerticesPtr)
RENDERVERTEX *vertices = &renderVerticesPtr[i]; RENDERVERTEX *vertices = &renderVerticesPtr[i];
GLfloat x, y, z, zvalue; GLfloat x, y, z, zvalue;
GLfloat s, t, rhw; GLfloat s, t;
GLfloat w;
rhw = 1.0 / (float)vertices->Z; w = (float)vertices->Z;
x = ((float)vertices->X*((float)Global_VDB_Ptr->VDB_ProjX+1.0f))/((float)vertices->Z*(float)ScreenDescriptorBlock.SDB_CentreX); x = ((float)vertices->X*((float)Global_VDB_Ptr->VDB_ProjX+1.0f))/((float)vertices->Z*(float)ScreenDescriptorBlock.SDB_CentreX);
y = -((float)vertices->Y*((float)Global_VDB_Ptr->VDB_ProjY+1.0f))/((float)vertices->Z*(float)ScreenDescriptorBlock.SDB_CentreY); y = -((float)vertices->Y*((float)Global_VDB_Ptr->VDB_ProjY+1.0f))/((float)vertices->Z*(float)ScreenDescriptorBlock.SDB_CentreY);
@ -874,10 +865,10 @@ void D3D_Decal_Output(DECAL *decalPtr, RENDERVERTEX *renderVerticesPtr)
zvalue = vertices->Z+HeadUpDisplayZOffset; zvalue = vertices->Z+HeadUpDisplayZOffset;
z = 1.0f - 2.0f*ZNear/zvalue; z = 1.0f - 2.0f*ZNear/zvalue;
varrp->v[0] = x/rhw; varrp->v[0] = x*w;
varrp->v[1] = y/rhw; varrp->v[1] = y*w;
varrp->v[2] = z/rhw; varrp->v[2] = z*w;
varrp->v[3] = 1/rhw; varrp->v[3] = w;
varrp->t[0] = s; varrp->t[0] = s;
varrp->t[1] = t; varrp->t[1] = t;
@ -961,7 +952,7 @@ void D3D_Particle_Output(PARTICLE *particlePtr, RENDERVERTEX *renderVerticesPtr)
GLfloat x, y, z; GLfloat x, y, z;
GLfloat s, t; GLfloat s, t;
GLfloat rhw = 1/(float)vertices->Z; GLfloat w = (float)vertices->Z;
s = ((float)(vertices->U>>16)+.5) * RecipW; s = ((float)(vertices->U>>16)+.5) * RecipW;
t = ((float)(vertices->V>>16)+.5) * RecipH; t = ((float)(vertices->V>>16)+.5) * RecipH;
@ -970,17 +961,17 @@ void D3D_Particle_Output(PARTICLE *particlePtr, RENDERVERTEX *renderVerticesPtr)
y = -((float)vertices->Y*((float)Global_VDB_Ptr->VDB_ProjY+1.0f))/((float)vertices->Z*(float)ScreenDescriptorBlock.SDB_CentreY); y = -((float)vertices->Y*((float)Global_VDB_Ptr->VDB_ProjY+1.0f))/((float)vertices->Z*(float)ScreenDescriptorBlock.SDB_CentreY);
if (particleDescPtr->IsDrawnInFront) { if (particleDescPtr->IsDrawnInFront) {
z = -0.999f; /* ... */ z = -0.99999f; /* ... */
} else if (particleDescPtr->IsDrawnAtBack) { } else if (particleDescPtr->IsDrawnAtBack) {
z = 0.999f; z = 0.99999f;
} else { } else {
z = 1.0 - 2.0*ZNear/((float)vertices->Z); /* currently maps [ZNear, inf) to [-1, 1], probably could be more precise with a ZFar */ z = 1.0 - 2.0*ZNear/((float)vertices->Z); /* currently maps [ZNear, inf) to [-1, 1], probably could be more precise with a ZFar */
} }
varrp->v[0] = x/rhw; varrp->v[0] = x*w;
varrp->v[1] = y/rhw; varrp->v[1] = y*w;
varrp->v[2] = z/rhw; varrp->v[2] = z*w;
varrp->v[3] = 1/rhw; varrp->v[3] = w;
varrp->t[0] = s; varrp->t[0] = s;
varrp->t[1] = t; varrp->t[1] = t;
@ -1007,7 +998,8 @@ void D3D_PredatorThermalVisionPolygon_Output(POLYHEADER *inputPolyPtr, RENDERVER
RENDERVERTEX *vertices = &renderVerticesPtr[i]; RENDERVERTEX *vertices = &renderVerticesPtr[i];
GLfloat x, y, z; GLfloat x, y, z;
float rhw, zvalue; GLfloat w;
GLfloat zvalue;
x = ((float)vertices->X*((float)Global_VDB_Ptr->VDB_ProjX+1.0f))/((float)vertices->Z*(float)ScreenDescriptorBlock.SDB_CentreX); x = ((float)vertices->X*((float)Global_VDB_Ptr->VDB_ProjX+1.0f))/((float)vertices->Z*(float)ScreenDescriptorBlock.SDB_CentreX);
y = -((float)vertices->Y*((float)Global_VDB_Ptr->VDB_ProjY+1.0f))/((float)vertices->Z*(float)ScreenDescriptorBlock.SDB_CentreY); y = -((float)vertices->Y*((float)Global_VDB_Ptr->VDB_ProjY+1.0f))/((float)vertices->Z*(float)ScreenDescriptorBlock.SDB_CentreY);
@ -1015,12 +1007,12 @@ void D3D_PredatorThermalVisionPolygon_Output(POLYHEADER *inputPolyPtr, RENDERVER
zvalue = vertices->Z+HeadUpDisplayZOffset; zvalue = vertices->Z+HeadUpDisplayZOffset;
z = 1.0 - 2*ZNear/zvalue; z = 1.0 - 2*ZNear/zvalue;
rhw = 1.0/(float)vertices->Z; w = (float)vertices->Z;
varrp->v[0] = x/rhw; varrp->v[0] = x*w;
varrp->v[1] = y/rhw; varrp->v[1] = y*w;
varrp->v[2] = z/rhw; varrp->v[2] = z*w;
varrp->v[3] = 1/rhw; varrp->v[3] = w;
varrp->c[0] = vertices->R; varrp->c[0] = vertices->R;
varrp->c[1] = vertices->G; varrp->c[1] = vertices->G;
@ -1046,20 +1038,21 @@ void D3D_ZBufferedGouraudPolygon_Output(POLYHEADER *inputPolyPtr, RENDERVERTEX *
for (i = 0; i < RenderPolygon.NumberOfVertices; i++) { for (i = 0; i < RenderPolygon.NumberOfVertices; i++) {
RENDERVERTEX *vertices = &renderVerticesPtr[i]; RENDERVERTEX *vertices = &renderVerticesPtr[i];
GLfloat x, y, z; GLfloat x, y, z;
float rhw, zvalue; GLfloat w;
GLfloat zvalue;
zvalue = vertices->Z+HeadUpDisplayZOffset; zvalue = vertices->Z+HeadUpDisplayZOffset;
z = 1.0 - 2*ZNear/zvalue; z = 1.0 - 2*ZNear/zvalue;
rhw = 1.0/(float)vertices->Z; w = (float)vertices->Z;
x = ((float)vertices->X*((float)Global_VDB_Ptr->VDB_ProjX+1.0f))/((float)vertices->Z*(float)ScreenDescriptorBlock.SDB_CentreX); x = ((float)vertices->X*((float)Global_VDB_Ptr->VDB_ProjX+1.0f))/((float)vertices->Z*(float)ScreenDescriptorBlock.SDB_CentreX);
y = -((float)vertices->Y*((float)Global_VDB_Ptr->VDB_ProjY+1.0f))/((float)vertices->Z*(float)ScreenDescriptorBlock.SDB_CentreY); y = -((float)vertices->Y*((float)Global_VDB_Ptr->VDB_ProjY+1.0f))/((float)vertices->Z*(float)ScreenDescriptorBlock.SDB_CentreY);
varrp->v[0] = x/rhw; varrp->v[0] = x*w;
varrp->v[1] = y/rhw; varrp->v[1] = y*w;
varrp->v[2] = z/rhw; varrp->v[2] = z*w;
varrp->v[3] = 1/rhw; varrp->v[3] = w;
varrp->c[0] = vertices->R; varrp->c[0] = vertices->R;
varrp->c[1] = vertices->G; varrp->c[1] = vertices->G;
@ -1825,7 +1818,7 @@ int Hardware_RenderSmallMenuText(char *textPtr, int x, int y, int alpha, enum AV
case AVPMENUFORMAT_RIGHTJUSTIFIED: case AVPMENUFORMAT_RIGHTJUSTIFIED:
{ {
int length = 0; int length = 0;
signed char *ptr = textPtr; signed char *ptr = (signed char*) textPtr;
while(*ptr) while(*ptr)
{ {
@ -1838,7 +1831,7 @@ int Hardware_RenderSmallMenuText(char *textPtr, int x, int y, int alpha, enum AV
case AVPMENUFORMAT_CENTREJUSTIFIED: case AVPMENUFORMAT_CENTREJUSTIFIED:
{ {
int length = 0; int length = 0;
signed char *ptr = textPtr; signed char *ptr = (signed char*) textPtr;
while(*ptr) while(*ptr)
{ {
@ -1877,7 +1870,7 @@ int Hardware_RenderSmallMenuText_Coloured(char *textPtr, int x, int y, int alpha
case AVPMENUFORMAT_RIGHTJUSTIFIED: case AVPMENUFORMAT_RIGHTJUSTIFIED:
{ {
int length = 0; int length = 0;
signed char *ptr = textPtr; signed char *ptr = (signed char*) textPtr;
while(*ptr) while(*ptr)
{ {
@ -1890,7 +1883,7 @@ int Hardware_RenderSmallMenuText_Coloured(char *textPtr, int x, int y, int alpha
case AVPMENUFORMAT_CENTREJUSTIFIED: case AVPMENUFORMAT_CENTREJUSTIFIED:
{ {
int length = 0; int length = 0;
signed char *ptr = textPtr; signed char *ptr = (signed char*) textPtr;
while(*ptr) while(*ptr)
{ {
@ -2602,18 +2595,19 @@ void D3D_DrawParticle_Rain(PARTICLE *particlePtr,VECTORCH *prevPositionPtr)
CheckTriangleBuffer(3, 0, 0, 0, NULL, TRANSLUCENCY_NORMAL, -1); CheckTriangleBuffer(3, 0, 0, 0, NULL, TRANSLUCENCY_NORMAL, -1);
for (i = 0; i < 3; i++) { for (i = 0; i < 3; i++) {
GLfloat xf, yf, zf, rhw; GLfloat xf, yf, zf;
GLfloat w;
xf = ((float)vertices[i].vx*((float)Global_VDB_Ptr->VDB_ProjX+1.0f))/((float)vertices[i].vz*(float)ScreenDescriptorBlock.SDB_CentreX); xf = ((float)vertices[i].vx*((float)Global_VDB_Ptr->VDB_ProjX+1.0f))/((float)vertices[i].vz*(float)ScreenDescriptorBlock.SDB_CentreX);
yf = -((float)vertices[i].vy*((float)Global_VDB_Ptr->VDB_ProjY+1.0f))/((float)vertices[i].vz*(float)ScreenDescriptorBlock.SDB_CentreY); yf = -((float)vertices[i].vy*((float)Global_VDB_Ptr->VDB_ProjY+1.0f))/((float)vertices[i].vz*(float)ScreenDescriptorBlock.SDB_CentreY);
zf = 1.0f - 2.0f*ZNear/(float)vertices[i].vz; zf = 1.0f - 2.0f*ZNear/(float)vertices[i].vz;
rhw = 1.0f / (float)vertices[i].vz; w = (float)vertices[i].vz;
varrp->v[0] = xf/rhw; varrp->v[0] = xf*w;
varrp->v[1] = yf/rhw; varrp->v[1] = yf*w;
varrp->v[2] = zf/rhw; varrp->v[2] = zf*w;
varrp->v[3] = 1.0f/rhw; varrp->v[3] = w;
if (i == 0) { if (i == 0) {
varrp->c[0] = 0; varrp->c[0] = 0;
@ -4471,7 +4465,8 @@ void D3D_DrawMoltenMetalMesh_Unclipped(void)
start = varrc; start = varrc;
for (i=0; i<256; i++) { for (i=0; i<256; i++) {
GLfloat xf, yf, zf; GLfloat xf, yf, zf;
GLfloat sf, tf, rhw; GLfloat sf, tf;
GLfloat w;
int r, g, b, a; int r, g, b, a;
if (point->vz < 1) point->vz = 1; if (point->vz < 1) point->vz = 1;
@ -4480,7 +4475,7 @@ void D3D_DrawMoltenMetalMesh_Unclipped(void)
yf = -((float)point->vy*((float)Global_VDB_Ptr->VDB_ProjY+1.0f))/((float)point->vz*(float)ScreenDescriptorBlock.SDB_CentreY); yf = -((float)point->vy*((float)Global_VDB_Ptr->VDB_ProjY+1.0f))/((float)point->vz*(float)ScreenDescriptorBlock.SDB_CentreY);
z = point->vz + HeadUpDisplayZOffset; z = point->vz + HeadUpDisplayZOffset;
rhw = 1.0f / (float)point->vz; w = (float)point->vz;
zf = 1.0f - 2.0f*ZNear/(float)z; zf = 1.0f - 2.0f*ZNear/(float)z;
sf = pointWS->vx*WaterUScale+(1.0f/256.0f); sf = pointWS->vx*WaterUScale+(1.0f/256.0f);
@ -4492,10 +4487,10 @@ void D3D_DrawMoltenMetalMesh_Unclipped(void)
a = (MeshVertexColour[i] >> 24) & 0xFF; a = (MeshVertexColour[i] >> 24) & 0xFF;
varrp->v[0] = xf/rhw; varrp->v[0] = xf*w;
varrp->v[1] = yf/rhw; varrp->v[1] = yf*w;
varrp->v[2] = zf/rhw; varrp->v[2] = zf*w;
varrp->v[3] = 1.0f/rhw; varrp->v[3] = w;
varrp->t[0] = sf; varrp->t[0] = sf;
varrp->t[1] = tf; varrp->t[1] = tf;
@ -4565,7 +4560,8 @@ void D3D_DrawMoltenMetalMesh_Clipped(void)
for (i=0; i<256; i++) for (i=0; i<256; i++)
{ {
GLfloat xf, yf, zf; GLfloat xf, yf, zf;
GLfloat sf, tf, rhw; GLfloat sf, tf;
GLfloat w;
int r, g, b, a; int r, g, b, a;
if (point->vz < 1) point->vz = 1; if (point->vz < 1) point->vz = 1;
@ -4589,7 +4585,7 @@ void D3D_DrawMoltenMetalMesh_Clipped(void)
tf = pointWS->vy*WaterVScale+(1.0f/256.0f); tf = pointWS->vy*WaterVScale+(1.0f/256.0f);
z = point->vz + HeadUpDisplayZOffset; z = point->vz + HeadUpDisplayZOffset;
rhw = 1.0f / (float)point->vz; w = (float)point->vz;
b = (MeshVertexColour[i] >> 0) & 0xFF; b = (MeshVertexColour[i] >> 0) & 0xFF;
g = (MeshVertexColour[i] >> 8) & 0xFF; g = (MeshVertexColour[i] >> 8) & 0xFF;
@ -4600,10 +4596,10 @@ void D3D_DrawMoltenMetalMesh_Clipped(void)
yf = -((float)y - (float)ScreenDescriptorBlock.SDB_CentreY - 0.5f) / ((float)ScreenDescriptorBlock.SDB_CentreY - 0.5f); yf = -((float)y - (float)ScreenDescriptorBlock.SDB_CentreY - 0.5f) / ((float)ScreenDescriptorBlock.SDB_CentreY - 0.5f);
zf = 1.0f - 2.0f*ZNear/(float)z; zf = 1.0f - 2.0f*ZNear/(float)z;
varrp->v[0] = xf/rhw; varrp->v[0] = xf*w;
varrp->v[1] = yf/rhw; varrp->v[1] = yf*w;
varrp->v[2] = zf/rhw; varrp->v[2] = zf*w;
varrp->v[3] = 1.0f/rhw; varrp->v[3] = w;
varrp->t[0] = sf; varrp->t[0] = sf;
varrp->t[1] = tf; varrp->t[1] = tf;