improved solve_plane_chan() (Evgeny Kotsuba)

This commit is contained in:
Brian Paul 2003-01-22 15:03:09 +00:00
parent 7ab14f00f0
commit a2473160d4

View file

@ -1,4 +1,4 @@
/* $Id: s_aatriangle.c,v 1.27 2003/01/20 15:20:27 brianp Exp $ */
/* $Id: s_aatriangle.c,v 1.28 2003/01/22 15:03:09 brianp Exp $ */
/*
* Mesa 3-D graphics library
@ -132,12 +132,16 @@ solve_plane_recip(GLfloat x, GLfloat y, const GLfloat plane[4])
static INLINE GLchan
solve_plane_chan(GLfloat x, GLfloat y, const GLfloat plane[4])
{
GLfloat z = (plane[3] + plane[0] * x + plane[1] * y) / -plane[2] + 0.5F;
if (z < 0.0F)
const GLfloat z = (plane[3] + plane[0] * x + plane[1] * y) / -plane[2];
#if CHAN_TYPE == GL_FLOAT
return CLAMP(z, 0.0F, CHAN_MAXF);
#else
if (z < 0)
return 0;
else if (z > CHAN_MAXF)
return (GLchan) CHAN_MAXF;
return (GLchan) (GLint) z;
else if (z > CHAN_MAX)
return CHAN_MAX;
return (GLchan) IROUND_POS(z);
#endif
}