diff options
author | Keith Whitwell <keith@tungstengraphics.com> | 2007-12-10 22:38:44 +0000 |
---|---|---|
committer | Keith Whitwell <keith@tungstengraphics.com> | 2007-12-10 22:38:44 +0000 |
commit | 0a79c65073db7dbeb9a83e40a4516edcb4f25ee5 (patch) | |
tree | 347e6dd22f4d16fb31ce4782bf25776a996e6a3f /src/mesa/pipe/draw/draw_vertex_shader.c | |
parent | f2feb2e4c7304b1c57af2f77f00766cb529822da (diff) |
gallium: use hardcoded cliptest code for fixed planes
Diffstat (limited to 'src/mesa/pipe/draw/draw_vertex_shader.c')
-rw-r--r-- | src/mesa/pipe/draw/draw_vertex_shader.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/mesa/pipe/draw/draw_vertex_shader.c b/src/mesa/pipe/draw/draw_vertex_shader.c index eef71a7a4a..5294d38f47 100644 --- a/src/mesa/pipe/draw/draw_vertex_shader.c +++ b/src/mesa/pipe/draw/draw_vertex_shader.c @@ -51,7 +51,18 @@ compute_clipmask(const float *clip, /*const*/ float plane[][4], unsigned nr) unsigned mask = 0; unsigned i; - for (i = 0; i < nr; i++) { + /* Do the hardwired planes first: + */ + if (-clip[0] + clip[3] < 0) mask |= CLIP_RIGHT_BIT; + if ( clip[0] + clip[3] < 0) mask |= CLIP_LEFT_BIT; + if (-clip[1] + clip[3] < 0) mask |= CLIP_TOP_BIT; + if ( clip[1] + clip[3] < 0) mask |= CLIP_BOTTOM_BIT; + if (-clip[2] + clip[3] < 0) mask |= CLIP_FAR_BIT; + if ( clip[2] + clip[3] < 0) mask |= CLIP_NEAR_BIT; + + /* Followed by any remaining ones: + */ + for (i = 6; i < nr; i++) { if (dot4(clip, plane[i]) < 0) mask |= (1<<i); } |