-/* $Id: vtxfmt.c,v 1.7 2001/11/18 22:48:13 brianp Exp $ */
+/* $Id: vtxfmt.c,v 1.13 2002/10/24 23:57:21 brianp Exp $ */
/*
* Mesa 3-D graphics library
- * Version: 3.5
+ * Version: 4.1
*
* Copyright (C) 1999-2001 Brian Paul All Rights Reserved.
*
#include "glheader.h"
#include "api_loopback.h"
#include "context.h"
+#include "imports.h"
#include "mtypes.h"
#include "state.h"
#include "vtxfmt.h"
{ \
GET_CURRENT_CONTEXT(ctx); \
struct gl_tnl_module *tnl = &(ctx->TnlModule); \
- const GLuint new_state = ctx->NewState; \
- \
- if ( new_state ) \
- _mesa_update_state( ctx ); \
- \
- /* Validate the current tnl module. \
- */ \
- if ( new_state & ctx->Driver.NeedValidate ) \
- ctx->Driver.ValidateTnlModule( ctx, new_state ); \
\
ASSERT( tnl->Current ); \
ASSERT( tnl->SwapCount < NUM_VERTEX_FORMAT_ENTRIES ); \
\
- /* Save the swapped function's dispatch entry so it can be \
- * restored later. \
- */ \
+ /* Save the swapped function's dispatch entry so it can be */ \
+ /* restored later. */ \
tnl->Swapped[tnl->SwapCount][0] = (void *)&(ctx->Exec->FUNC); \
tnl->Swapped[tnl->SwapCount][1] = (void *)TAG(FUNC); \
tnl->SwapCount++; \
\
if ( 0 ) \
- fprintf( stderr, " swapping gl" #FUNC"...\n" ); \
+ _mesa_debug(ctx, " swapping gl" #FUNC"...\n" ); \
\
- /* Install the tnl function pointer. \
- */ \
+ /* Install the tnl function pointer. */ \
ctx->Exec->FUNC = tnl->Current->FUNC; \
}
tab->Indexi = vfmt->Indexi;
tab->Indexiv = vfmt->Indexiv;
tab->Materialfv = vfmt->Materialfv;
- tab->MultiTexCoord1f = vfmt->MultiTexCoord1f;
- tab->MultiTexCoord1fv = vfmt->MultiTexCoord1fv;
- tab->MultiTexCoord2f = vfmt->MultiTexCoord2f;
- tab->MultiTexCoord2fv = vfmt->MultiTexCoord2fv;
- tab->MultiTexCoord3f = vfmt->MultiTexCoord3f;
- tab->MultiTexCoord3fv = vfmt->MultiTexCoord3fv;
- tab->MultiTexCoord4f = vfmt->MultiTexCoord4f;
- tab->MultiTexCoord4fv = vfmt->MultiTexCoord4fv;
+ tab->MultiTexCoord1fARB = vfmt->MultiTexCoord1fARB;
+ tab->MultiTexCoord1fvARB = vfmt->MultiTexCoord1fvARB;
+ tab->MultiTexCoord2fARB = vfmt->MultiTexCoord2fARB;
+ tab->MultiTexCoord2fvARB = vfmt->MultiTexCoord2fvARB;
+ tab->MultiTexCoord3fARB = vfmt->MultiTexCoord3fARB;
+ tab->MultiTexCoord3fvARB = vfmt->MultiTexCoord3fvARB;
+ tab->MultiTexCoord4fARB = vfmt->MultiTexCoord4fARB;
+ tab->MultiTexCoord4fvARB = vfmt->MultiTexCoord4fvARB;
tab->Normal3f = vfmt->Normal3f;
tab->Normal3fv = vfmt->Normal3fv;
tab->SecondaryColor3fEXT = vfmt->SecondaryColor3fEXT;
tab->Vertex3fv = vfmt->Vertex3fv;
tab->Vertex4f = vfmt->Vertex4f;
tab->Vertex4fv = vfmt->Vertex4fv;
+ tab->CallList = vfmt->CallList;
tab->Begin = vfmt->Begin;
tab->End = vfmt->End;
-
-/* tab->NewList = vfmt->NewList; */
- tab->CallList = vfmt->CallList;
-
+ tab->VertexAttrib4fNV = vfmt->VertexAttrib4fNV;
tab->Rectf = vfmt->Rectf;
tab->DrawArrays = vfmt->DrawArrays;
tab->DrawElements = vfmt->DrawElements;
tab->DrawRangeElements = vfmt->DrawRangeElements;
tab->EvalMesh1 = vfmt->EvalMesh1;
tab->EvalMesh2 = vfmt->EvalMesh2;
+ assert(tab->EvalMesh2);
}
void _mesa_init_exec_vtxfmt( GLcontext *ctx )
{
install_vtxfmt( ctx->Exec, &neutral_vtxfmt );
+ ctx->TnlModule.SwapCount = 0;
}