summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Paul <brian.paul@tungstengraphics.com>2003-01-22 15:03:09 +0000
committerBrian Paul <brian.paul@tungstengraphics.com>2003-01-22 15:03:09 +0000
commita2473160d45f5f33f720a8af31444db227843abb (patch)
treeac9c020b9552100c84dd13004ea8c29ded89838f
parent7ab14f00f02540520d6d36dd576b5e88db909923 (diff)
improved solve_plane_chan() (Evgeny Kotsuba)
-rw-r--r--src/mesa/swrast/s_aatriangle.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/src/mesa/swrast/s_aatriangle.c b/src/mesa/swrast/s_aatriangle.c
index 95cab18a17..d3d44d4e54 100644
--- a/src/mesa/swrast/s_aatriangle.c
+++ b/src/mesa/swrast/s_aatriangle.c
@@ -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
}