diff options
Diffstat (limited to 'src/mesa')
-rw-r--r-- | src/mesa/tnl/t_array_api.c | 69 | ||||
-rw-r--r-- | src/mesa/tnl/t_array_import.c | 109 | ||||
-rw-r--r-- | src/mesa/tnl/t_array_import.h | 6 |
3 files changed, 3 insertions, 181 deletions
diff --git a/src/mesa/tnl/t_array_api.c b/src/mesa/tnl/t_array_api.c index b5a275fb22e..ac1cffb0a49 100644 --- a/src/mesa/tnl/t_array_api.c +++ b/src/mesa/tnl/t_array_api.c @@ -1,4 +1,4 @@ -/* $Id: t_array_api.c,v 1.17 2001/08/02 21:30:10 keithw Exp $ */ +/* $Id: t_array_api.c,v 1.18 2001/08/13 22:15:54 keithw Exp $ */ /* * Mesa 3-D graphics library @@ -48,38 +48,6 @@ static void fallback_drawarrays( GLcontext *ctx, GLenum mode, GLint start, GLsizei count ) { -/* fprintf(stderr, "%s\n", __FUNCTION__); */ - - /* Need to produce immediate structs, either for compiling or - * because the array range is too large to process in a single - * VB. In GL_EXECUTE mode, this introduces two redundant - * operations: producing the flag array and computing the orflag - * of the flag array. - */ -#if 0 - /* Buggy - see sgl testGeoSets.exe polygon mode - */ - if (_tnl_hard_begin( ctx, mode )) { - GLint i; - for (i = 0 ; i < count ; ) { - struct immediate *IM = TNL_CURRENT_IM(ctx); - GLuint start = IM->Start; - GLuint nr = MIN2( IMM_MAXDATA - start, (GLuint) (count - i) ); - - _tnl_fill_immediate_drawarrays( ctx, IM, i, i+nr ); - - IM->Count = start + nr; - i += nr; - - if (i == count) - _tnl_end( ctx ); - - _tnl_flush_immediate( IM ); - } - } -#else - /* Simple alternative to above code. - */ if (_tnl_hard_begin( ctx, mode )) { GLuint i; @@ -88,46 +56,12 @@ static void fallback_drawarrays( GLcontext *ctx, GLenum mode, GLint start, } _tnl_end( ctx ); } -#endif } static void fallback_drawelements( GLcontext *ctx, GLenum mode, GLsizei count, const GLuint *indices) { -/* fprintf(stderr, "%s\n", __FUNCTION__); */ - -#if 0 - /* Optimized code that fakes the effect of calling - * _tnl_array_element for each index in the list. - * - * Possibly buggy, see above. - */ - if (_tnl_hard_begin( ctx, mode )) { - GLint i, j; - for (i = 0 ; i < count ; ) { - struct immediate *IM = TNL_CURRENT_IM(ctx); - GLuint start = IM->Start; - GLint end = MIN2( IMM_MAXDATA, (count - i) + start); - GLuint sf = IM->Flag[start]; - IM->FlushElt = IM->ArrayEltFlush; - - for (j = start ; j < end ; j++) { - IM->Elt[j] = (GLuint) *indices++; - IM->Flag[j] = VERT_ELT; - } - - IM->Flag[start] |= (sf & IM->ArrayEltFlags); - IM->Count = end; - i += end - start; - - if (i == count) - _tnl_end( ctx ); - - _tnl_flush_immediate( IM ); - } - } -#else /* Simple version of the above code. */ if (_tnl_hard_begin(ctx, mode)) { @@ -136,7 +70,6 @@ static void fallback_drawelements( GLcontext *ctx, GLenum mode, GLsizei count, _tnl_array_element( ctx, indices[i] ); _tnl_end( ctx ); } -#endif } diff --git a/src/mesa/tnl/t_array_import.c b/src/mesa/tnl/t_array_import.c index 56b4641de01..513e8931fc1 100644 --- a/src/mesa/tnl/t_array_import.c +++ b/src/mesa/tnl/t_array_import.c @@ -1,4 +1,4 @@ -/* $Id: t_array_import.c,v 1.17 2001/05/17 11:33:33 keithw Exp $ */ +/* $Id: t_array_import.c,v 1.18 2001/08/13 22:15:54 keithw Exp $ */ /* * Mesa 3-D graphics library @@ -388,110 +388,3 @@ void _tnl_vb_bind_arrays( GLcontext *ctx, GLint start, GLsizei count ) } - - -/* Function to fill an immediate struct with the effects of - * consecutive calls to ArrayElement with consecutive indices. Used - * for display lists and very large fan-like primitives only. - */ -void _tnl_fill_immediate_drawarrays( GLcontext *ctx, struct immediate *IM, - GLuint start, GLuint count ) -{ - TNLcontext *tnl = TNL_CONTEXT(ctx); - GLuint required = ctx->Array._Enabled; - GLuint n = count - start; - GLuint i; - - if (!ctx->CompileFlag) - required &= tnl->pipeline.inputs; - - if (MESA_VERBOSE&VERBOSE_IMMEDIATE) - fprintf(stderr, "exec_full_array_elements %d .. %d\n", start, count); - - _math_trans_4f( IM->Obj + IM->Start, - ctx->Array.Vertex.Ptr, - ctx->Array.Vertex.StrideB, - ctx->Array.Vertex.Type, - ctx->Array.Vertex.Size, - start, n ); - - if (ctx->Array.Vertex.Size == 4) - required |= VERT_OBJ_234; - else if (ctx->Array.Vertex.Size == 3) - required |= VERT_OBJ_23; - - - if (required & VERT_NORM) { - _math_trans_3f( IM->Normal + IM->Start, - ctx->Array.Normal.Ptr, - ctx->Array.Normal.StrideB, - ctx->Array.Normal.Type, - start, n ); - } - - if (required & VERT_EDGE) { - _math_trans_1ub( IM->EdgeFlag + IM->Start, - ctx->Array.EdgeFlag.Ptr, - ctx->Array.EdgeFlag.StrideB, - ctx->Array.EdgeFlag.Type, - start, n ); - } - - if (required & VERT_RGBA) { - _math_trans_4f( IM->Color + IM->Start, - ctx->Array.Color.Ptr, - ctx->Array.Color.StrideB, - ctx->Array.Color.Type, - ctx->Array.Color.Size, - start, n ); - } - - if (required & VERT_SPEC_RGB) { - _math_trans_4f( IM->SecondaryColor + IM->Start, - ctx->Array.SecondaryColor.Ptr, - ctx->Array.SecondaryColor.StrideB, - ctx->Array.SecondaryColor.Type, - ctx->Array.SecondaryColor.Size, - start, n ); - } - - if (required & VERT_FOG_COORD) { - _math_trans_1f( IM->FogCoord + IM->Start, - ctx->Array.FogCoord.Ptr, - ctx->Array.FogCoord.StrideB, - ctx->Array.FogCoord.Type, - start, n ); - } - - if (required & VERT_INDEX) { - _math_trans_1ui( IM->Index + IM->Start, - ctx->Array.Index.Ptr, - ctx->Array.Index.StrideB, - ctx->Array.Index.Type, - start, n ); - } - - if (required & VERT_TEX_ANY) { - for (i = 0 ; i < ctx->Const.MaxTextureUnits ; i++) { - if (required & VERT_TEX(i)) { - _math_trans_4f( IM->TexCoord[i] + IM->Start, - ctx->Array.TexCoord[i].Ptr, - ctx->Array.TexCoord[i].StrideB, - ctx->Array.TexCoord[i].Type, - ctx->Array.TexCoord[i].Size, - start, n ); - - if (ctx->Array.TexCoord[i].Size == 4) - IM->TexSize |= TEX_SIZE_4(i); - else if (ctx->Array.TexCoord[i].Size == 3) - IM->TexSize |= TEX_SIZE_3(i); - } - } - } - - IM->Count = IM->Start + n; - IM->Flag[IM->Start] &= IM->ArrayEltFlags; - IM->Flag[IM->Start] |= required; - for (i = IM->Start+1 ; i < IM->Count ; i++) - IM->Flag[i] = required; -} diff --git a/src/mesa/tnl/t_array_import.h b/src/mesa/tnl/t_array_import.h index fbcb795d3b7..497ee00dae6 100644 --- a/src/mesa/tnl/t_array_import.h +++ b/src/mesa/tnl/t_array_import.h @@ -1,4 +1,4 @@ -/* $Id: t_array_import.h,v 1.3 2001/04/28 08:39:18 keithw Exp $ */ +/* $Id: t_array_import.h,v 1.4 2001/08/13 22:15:54 keithw Exp $ */ /* * Mesa 3-D graphics library @@ -32,10 +32,6 @@ extern void _tnl_vb_bind_arrays( GLcontext *ctx, GLint start, GLsizei count ); -extern void _tnl_fill_immediate_drawarrays( GLcontext *ctx, - struct immediate *IM, - GLuint start, GLuint count ) ; - extern void _tnl_array_import_init( GLcontext *ctx ); #endif |