#include "glheader.h"
#include "api_loopback.h"
#include "context.h"
#include "imports.h"
#include "mtypes.h"
#include "state.h"
#include "vtxfmt.h"
#include "vtxfmt_tmp.h"
Defines | |
#define | PRE_LOOPBACK(FUNC) |
#define | TAG(x) neutral_##x |
Functions | |
static void | install_vtxfmt (struct _glapi_table *tab, const GLvertexformat *vfmt) |
Use the per-vertex functions found in <vfmt> to initialze the given API dispatch table. | |
void | _mesa_init_exec_vtxfmt (GLcontext *ctx) |
void | _mesa_install_exec_vtxfmt (GLcontext *ctx, const GLvertexformat *vfmt) |
void | _mesa_install_save_vtxfmt (GLcontext *ctx, const GLvertexformat *vfmt) |
void | _mesa_restore_exec_vtxfmt (GLcontext *ctx) |
#define PRE_LOOPBACK | ( | FUNC | ) |
Value:
{ \ GET_CURRENT_CONTEXT(ctx); \ struct gl_tnl_module * const tnl = &(ctx->TnlModule); \ const int tmp_offset = _gloffset_ ## FUNC ; \ \ ASSERT( tnl->Current ); \ ASSERT( tnl->SwapCount < NUM_VERTEX_FORMAT_ENTRIES ); \ ASSERT( tmp_offset >= 0 ); \ \ if (tnl->SwapCount == 0) \ ctx->Driver.BeginVertices( ctx ); \ \ /* Save the swapped function's dispatch entry so it can be */ \ /* restored later. */ \ tnl->Swapped[tnl->SwapCount].location = & (((_glapi_proc *)ctx->Exec)[tmp_offset]); \ tnl->Swapped[tnl->SwapCount].function = (_glapi_proc)TAG(FUNC); \ tnl->SwapCount++; \ \ if ( 0 ) \ _mesa_debug(ctx, " swapping gl" #FUNC"...\n" ); \ \ /* Install the tnl function pointer. */ \ SET_ ## FUNC(ctx->Exec, tnl->Current->FUNC); \ }
#define TAG | ( | x | ) | neutral_##x |
void _mesa_init_exec_vtxfmt | ( | GLcontext * | ctx | ) |
void _mesa_install_exec_vtxfmt | ( | GLcontext * | ctx, | |
const GLvertexformat * | vfmt | |||
) |
void _mesa_install_save_vtxfmt | ( | GLcontext * | ctx, | |
const GLvertexformat * | vfmt | |||
) |
void _mesa_restore_exec_vtxfmt | ( | GLcontext * | ctx | ) |
static void install_vtxfmt | ( | struct _glapi_table * | tab, | |
const GLvertexformat * | vfmt | |||
) | [static] |
Use the per-vertex functions found in <vfmt> to initialze the given API dispatch table.