diff options
author | Keith Whitwell <keith@tungstengraphics.com> | 2001-07-17 21:44:37 +0000 |
---|---|---|
committer | Keith Whitwell <keith@tungstengraphics.com> | 2001-07-17 21:44:37 +0000 |
commit | 277fd2e66e0f43d415c63d140075d08b01a2870b (patch) | |
tree | 4cf563018d5c2d6f4c06f0ac17de25a134c30de8 | |
parent | 53560311294814ae0daa8457307a2b25077bf4e9 (diff) |
Fix Alan Barnett's 'try10' display list bug.
-rw-r--r-- | src/mesa/drivers/glide/fxtris.c | 8 | ||||
-rw-r--r-- | src/mesa/tnl/t_imm_dlist.c | 16 | ||||
-rw-r--r-- | src/mesa/tnl/t_imm_fixup.c | 6 |
3 files changed, 15 insertions, 15 deletions
diff --git a/src/mesa/drivers/glide/fxtris.c b/src/mesa/drivers/glide/fxtris.c index 150a3f8005..57a16ee6ea 100644 --- a/src/mesa/drivers/glide/fxtris.c +++ b/src/mesa/drivers/glide/fxtris.c @@ -309,10 +309,10 @@ static struct { #define VERT_SET_RGBA( dst, f ) \ do { \ - dst->r = CLAMP( f[0], 0, 1 ) * 255.0; \ - dst->g = CLAMP( f[1], 0, 1 ) * 255.0; \ - dst->b = CLAMP( f[2], 0, 1 ) * 255.0; \ - dst->a = CLAMP( f[3], 0, 1 ) * 255.0; \ + dst->r = (GLfloat)f[0]; \ + dst->g = (GLfloat)f[1]; \ + dst->b = (GLfloat)f[2]; \ + dst->a = (GLfloat)f[3]; \ } while (0) #define VERT_COPY_RGBA( v0, v1 ) \ diff --git a/src/mesa/tnl/t_imm_dlist.c b/src/mesa/tnl/t_imm_dlist.c index 3cfdf1e515..1708905ac5 100644 --- a/src/mesa/tnl/t_imm_dlist.c +++ b/src/mesa/tnl/t_imm_dlist.c @@ -1,4 +1,4 @@ -/* $Id: t_imm_dlist.c,v 1.22 2001/07/13 16:39:19 brianp Exp $ */ +/* $Id: t_imm_dlist.c,v 1.23 2001/07/17 21:44:37 keithw Exp $ */ /* * Mesa 3-D graphics library @@ -341,9 +341,6 @@ execute_compiled_cassette( GLcontext *ctx, void *data ) loopback_compiled_cassette( ctx, IM ); restore_compiled_primitives( ctx, IM ); } - else if (IM->Count == IM->Start) { - _tnl_copy_to_current( ctx, IM, IM->OrFlag ); - } else { if (ctx->NewState) _mesa_update_state(ctx); @@ -356,16 +353,22 @@ execute_compiled_cassette( GLcontext *ctx, void *data ) if (IM->Primitive[IM->LastPrimitive] & PRIM_END) ctx->Driver.CurrentExecPrimitive = GL_POLYGON+1; - else + else if ((IM->Primitive[IM->LastPrimitive] & PRIM_BEGIN) || + (IM->Primitive[IM->LastPrimitive] & PRIM_MODE_MASK) == + PRIM_OUTSIDE_BEGIN_END) { ctx->Driver.CurrentExecPrimitive = IM->Primitive[IM->LastPrimitive] & PRIM_MODE_MASK; + } _tnl_get_exec_copy_verts( ctx, IM ); if (IM->NormalLengthPtr) fixup_normal_lengths( IM ); - _tnl_run_cassette( ctx, IM ); + if (IM->Count == IM->Start) + _tnl_copy_to_current( ctx, IM, IM->OrFlag ); + else + _tnl_run_cassette( ctx, IM ); restore_compiled_primitives( ctx, IM ); } @@ -394,6 +397,7 @@ print_compiled_cassette( GLcontext *ctx, void *data ) node->IM->id, node->Start, node->Count); IM->Start = node->Start; + IM->CopyStart = node->Start; IM->Count = node->Count; IM->BeginState = node->BeginState; IM->OrFlag = node->OrFlag; diff --git a/src/mesa/tnl/t_imm_fixup.c b/src/mesa/tnl/t_imm_fixup.c index 0336a9779e..607235d327 100644 --- a/src/mesa/tnl/t_imm_fixup.c +++ b/src/mesa/tnl/t_imm_fixup.c @@ -1,4 +1,4 @@ -/* $Id: t_imm_fixup.c,v 1.22 2001/06/28 17:34:14 keithw Exp $ */ +/* $Id: t_imm_fixup.c,v 1.23 2001/07/17 21:44:37 keithw Exp $ */ /* * Mesa 3-D graphics library @@ -512,12 +512,8 @@ void _tnl_fixup_compiled_cassette( GLcontext *ctx, struct immediate *IM ) { TNLcontext *tnl = TNL_CONTEXT(ctx); GLuint fixup; - GLuint count = IM->Count; GLuint start = IM->Start; - if (count == start) - return; - IM->CopyOrFlag = IM->OrFlag; IM->CopyAndFlag = IM->AndFlag; IM->CopyTexSize = IM->TexSize | tnl->ExecCopyTexSize; |