mesa: make sure the gotten value isn't greater than the

max depth buffer value on 64bit system. fix bug #12095
This commit is contained in:
Xiang, Haihao 2007-09-27 15:52:01 +08:00
parent aa88d11e7d
commit 6254be9b71
1 changed files with 5 additions and 2 deletions

View File

@ -64,8 +64,11 @@ _swrast_span_default_attribs(GLcontext *ctx, SWspan *span)
const GLfloat depthMax = ctx->DrawBuffer->_DepthMaxF;
if (ctx->DrawBuffer->Visual.depthBits <= 16)
span->z = FloatToFixed(ctx->Current.RasterPos[2] * depthMax + 0.5F);
else
span->z = (GLint) (ctx->Current.RasterPos[2] * depthMax + 0.5F);
else {
GLfloat tmpf = ctx->Current.RasterPos[2] * depthMax;
tmpf = MIN2(tmpf, depthMax);
span->z = (GLint)tmpf;
}
span->zStep = 0;
span->interpMask |= SPAN_Z;
}