From 3c257e187bded9417d00471286d86ea4e483a98a Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Wed, 28 Mar 2001 17:19:58 +0000 Subject: New mechanism for thread-safe GL API dispatch. C-based dispatch is faster. Folded glapinoop.c code into glapi.c. Added code to glapitemp.h to fill in dispatch tables. Updated Makefiles. --- src/mesa/Makefile.X11 | 5 +- src/mesa/glapi/glapi.c | 137 +++- src/mesa/glapi/glapi.h | 6 +- src/mesa/glapi/glapitemp.h | 1532 +++++++++++++++++++++++++------------------- src/mesa/main/Makefile.DJ | 22 +- src/mesa/main/Makefile.X11 | 5 +- src/mesa/main/context.c | 3 +- src/mesa/main/dispatch.c | 65 +- 8 files changed, 1004 insertions(+), 771 deletions(-) (limited to 'src') diff --git a/src/mesa/Makefile.X11 b/src/mesa/Makefile.X11 index a2c0388f3b..fe2e4cece9 100644 --- a/src/mesa/Makefile.X11 +++ b/src/mesa/Makefile.X11 @@ -1,8 +1,8 @@ -# $Id: Makefile.X11,v 1.47 2001/03/19 02:25:35 keithw Exp $ +# $Id: Makefile.X11,v 1.48 2001/03/28 17:19:58 brianp Exp $ # Mesa 3-D graphics library # Version: 3.5 -# Copyright (C) 1995-2000 Brian Paul +# Copyright (C) 1995-2001 Brian Paul # Makefile for core library @@ -74,7 +74,6 @@ CORE_SOURCES = \ fog.c \ get.c \ glapi.c \ - glapinoop.c \ glthread.c \ hash.c \ highpc.c \ diff --git a/src/mesa/glapi/glapi.c b/src/mesa/glapi/glapi.c index 64459e7a16..9e3117e121 100644 --- a/src/mesa/glapi/glapi.c +++ b/src/mesa/glapi/glapi.c @@ -1,4 +1,4 @@ -/* $Id: glapi.c,v 1.51 2001/03/12 00:48:38 gareth Exp $ */ +/* $Id: glapi.c,v 1.52 2001/03/28 17:19:58 brianp Exp $ */ /* * Mesa 3-D graphics library @@ -48,31 +48,128 @@ #include "glheader.h" #include "glapi.h" -#include "glapinoop.h" #include "glapioffsets.h" #include "glapitable.h" #include "glthread.h" -/* This is used when thread safety is disabled */ -struct _glapi_table *_glapi_Dispatch = (struct _glapi_table *) __glapi_noop_table; -struct _glapi_table *_glapi_RealDispatch = (struct _glapi_table *) __glapi_noop_table; -/* Used when thread safety disabled */ -void *_glapi_Context = NULL; +/***** BEGIN NO-OP DISPATCH *****/ + +static GLboolean WarnFlag = GL_FALSE; + +void +_glapi_noop_enable_warnings(GLboolean enable) +{ + WarnFlag = enable; +} + +static GLboolean +warn(void) +{ + if (WarnFlag || getenv("MESA_DEBUG") || getenv("LIBGL_DEBUG")) + return GL_TRUE; + else + return GL_FALSE; +} + + +#define KEYWORD1 static +#define KEYWORD2 +#define NAME(func) NoOp##func + +#define F stderr + +#define DISPATCH(func, args, msg) \ + if (warn()) { \ + fprintf(stderr, "GL User Error: calling "); \ + fprintf msg; \ + fprintf(stderr, " without a current context\n"); \ + } + +#define RETURN_DISPATCH(func, args, msg) \ + if (warn()) { \ + fprintf(stderr, "GL User Error: calling "); \ + fprintf msg; \ + fprintf(stderr, " without a current context\n"); \ + } \ + return 0 + +#define DISPATCH_TABLE_NAME __glapi_noop_table +#define UNUSED_TABLE_NAME __usused_noop_functions + +#define TABLE_ENTRY(name) (void *) NoOp##name + +static int NoOpUnused(void) +{ + if (warn()) { + fprintf(stderr, "GL User Error: calling extension function without a current context\n"); + } + return 0; +} + +#include "glapitemp.h" + +/***** END NO-OP DISPATCH *****/ + + + +/***** BEGIN THREAD-SAFE DISPATCH *****/ +/* if we support thread-safety, build a special dispatch table for use + * in thread-safety mode (ThreadSafe == GL_TRUE). Each entry in the + * dispatch table will call _glthread_GetTSD() to get the actual dispatch + * table bound to the current thread, then jump through that table. + */ #if defined(THREADS) -/* Flag to indicate whether thread-safe dispatch is enabled */ -static GLboolean ThreadSafe = GL_FALSE; +static GLboolean ThreadSafe = GL_FALSE; /* In thread-safe mode? */ +static _glthread_TSD DispatchTSD; /* Per-thread dispatch pointer */ +static _glthread_TSD RealDispatchTSD; /* only when using override */ +static _glthread_TSD ContextTSD; /* Per-thread context pointer */ + -static _glthread_TSD DispatchTSD; -static _glthread_TSD RealDispatchTSD; /* only when using override */ +#define KEYWORD1 static +#define KEYWORD2 GLAPIENTRY +#define NAME(func) _ts_##func -static _glthread_TSD ContextTSD; +#define DISPATCH(FUNC, ARGS, MESSAGE) \ + struct _glapi_table *dispatch; \ + dispatch = (struct _glapi_table *) _glthread_GetTSD(&DispatchTSD); \ + if (!dispatch) \ + dispatch = (struct _glapi_table *) __glapi_noop_table; \ + (dispatch->FUNC) ARGS + +#define RETURN_DISPATCH(FUNC, ARGS, MESSAGE) \ + struct _glapi_table *dispatch; \ + dispatch = (struct _glapi_table *) _glthread_GetTSD(&DispatchTSD); \ + if (!dispatch) \ + dispatch = (struct _glapi_table *) __glapi_noop_table; \ + return (dispatch->FUNC) ARGS + +#define DISPATCH_TABLE_NAME __glapi_threadsafe_table +#define UNUSED_TABLE_NAME __usused_threadsafe_functions + +#define TABLE_ENTRY(name) (void *) _ts_##name + +static int _ts_Unused(void) +{ + return 0; +} + +#include "glapitemp.h" #endif +/***** END THREAD-SAFE DISPATCH *****/ + + + +struct _glapi_table *_glapi_Dispatch = (struct _glapi_table *) __glapi_noop_table; +struct _glapi_table *_glapi_RealDispatch = (struct _glapi_table *) __glapi_noop_table; + +/* Used when thread safety disabled */ +void *_glapi_Context = NULL; static GLuint MaxDispatchOffset = sizeof(struct _glapi_table) / sizeof(void *) - 1; @@ -81,10 +178,11 @@ static GLboolean GetSizeCalled = GL_FALSE; static GLboolean DispatchOverride = GL_FALSE; - -/* strdup is actually not a standard ANSI C or POSIX routine - Irix will not define it if ANSI mode is in effect. */ -static char *str_dup(const char *str) +/* strdup() is actually not a standard ANSI C or POSIX routine. + * Irix will not define it if ANSI mode is in effect. + */ +static char * +str_dup(const char *str) { char *copy; copy = (char*) malloc(strlen(str) + 1); @@ -113,6 +211,7 @@ _glapi_check_multithread(void) firstCall = GL_FALSE; } else if (knownID != _glthread_GetID()) { + printf("Going thread-safe\n"); ThreadSafe = GL_TRUE; } } @@ -190,7 +289,7 @@ _glapi_set_dispatch(struct _glapi_table *dispatch) if (DispatchOverride) { _glthread_SetTSD(&RealDispatchTSD, (void *) dispatch); if (ThreadSafe) - _glapi_RealDispatch = NULL; + _glapi_RealDispatch = (struct _glapi_table*) __glapi_threadsafe_table; else _glapi_RealDispatch = dispatch; } @@ -198,7 +297,7 @@ _glapi_set_dispatch(struct _glapi_table *dispatch) /* normal operation */ _glthread_SetTSD(&DispatchTSD, (void *) dispatch); if (ThreadSafe) - _glapi_Dispatch = NULL; + _glapi_Dispatch = (struct _glapi_table *) __glapi_threadsafe_table; else _glapi_Dispatch = dispatch; } @@ -280,7 +379,7 @@ _glapi_begin_dispatch_override(struct _glapi_table *override) #if defined(THREADS) _glthread_SetTSD(&DispatchTSD, (void *) override); if (ThreadSafe) - _glapi_Dispatch = NULL; + _glapi_Dispatch = (struct _glapi_table *) __glapi_threadsafe_table; else _glapi_Dispatch = override; #else diff --git a/src/mesa/glapi/glapi.h b/src/mesa/glapi/glapi.h index 7916292883..3b022e436e 100644 --- a/src/mesa/glapi/glapi.h +++ b/src/mesa/glapi/glapi.h @@ -1,4 +1,4 @@ -/* $Id: glapi.h,v 1.18 2001/01/23 23:35:47 brianp Exp $ */ +/* $Id: glapi.h,v 1.19 2001/03/28 17:20:20 brianp Exp $ */ /* * Mesa 3-D graphics library @@ -39,6 +39,10 @@ extern void *_glapi_Context; extern struct _glapi_table *_glapi_Dispatch; +extern void +_glapi_noop_enable_warnings(GLboolean enable); + + extern void _glapi_check_multithread(void); diff --git a/src/mesa/glapi/glapitemp.h b/src/mesa/glapi/glapitemp.h index 8b26f04296..737e306edd 100644 --- a/src/mesa/glapi/glapitemp.h +++ b/src/mesa/glapi/glapitemp.h @@ -1,4 +1,4 @@ -/* $Id: glapitemp.h,v 1.27 2001/03/26 23:36:51 brianp Exp $ */ +/* $Id: glapitemp.h,v 1.28 2001/03/28 17:20:20 brianp Exp $ */ /* * Mesa 3-D graphics library @@ -35,8 +35,6 @@ * DISPATCH(func, args, msg) - code to do dispatch of named function. * msg is a printf-style debug message. * RETURN_DISPATCH(func, args, msg) - code to do dispatch with a return value - * DO_INIT - if defined, emit an init function. - * INIT - Macro invoked once per api function in the init function. * * Here's an example which generates the usual OpenGL functions: * #define KEYWORD1 @@ -61,21 +59,15 @@ #endif #ifndef NAME -#define NAME(func) gl##func +#error NAME must be defined #endif #ifndef DISPATCH -#define DISPATCH(func, args, msg) \ - const struct _glapi_table *dispatch; \ - dispatch = _glapi_Dispatch ? _glapi_Dispatch : _glapi_get_dispatch();\ - (dispatch->func) args +#error DISPATCH must be defined #endif #ifndef RETURN_DISPATCH -#define RETURN_DISPATCH(FUNC, ARGS, MESSAGE) \ - const struct _glapi_table *dispatch; \ - dispatch = _glapi_Dispatch ? _glapi_Dispatch : _glapi_get_dispatch();\ - return (dispatch->func) args +#error RETURN_DISPATCH must be defined #endif @@ -95,7 +87,6 @@ /* GL 1.0 */ - KEYWORD1 void KEYWORD2 NAME(Accum)(GLenum op, GLfloat value) { DISPATCH(Accum, (op, value), (F, "glAccum(0x%x, %g);", op, value)); @@ -1835,7 +1826,7 @@ KEYWORD1 void KEYWORD2 NAME(FlushRasterSGIX)(void) } /* 66. GL_HP_image_transform */ -#if 0 +#if 00 KEYWORD1 void KEYWORD2 NAME(GetImageTransformParameterfvHP)(GLenum target, GLenum pname, GLfloat *param) { DISPATCH(GetImageTransformParameterfvHP, (target, pname, param), (F, ";")); @@ -2124,7 +2115,7 @@ KEYWORD1 void KEYWORD2 NAME(TexCoordPointervINTEL)(GLint size, GLenum type, cons #endif /* 138. GL_EXT_pixel_transform */ -#if 0 +#if 00 KEYWORD1 void KEYWORD2 NAME(PixelTransformParameteriEXT)(GLenum target, GLenum pname, const GLint param) { DISPATCH(PixelTransformParameteriEXT, (target, pname, param), (F, "glPixelTransformParameteriEXT(0x%x, 0x%x, %d);", target, pname, param)); @@ -3408,665 +3399,868 @@ KEYWORD1 void KEYWORD2 NAME(MultiTexCoord4svARB)(GLenum target, const GLshort *v -/** - ** Optional initialization function, generated according to DO_INIT - **/ - -#ifdef DO_INIT - -static void NAME(InitDispatch)( void ) -{ - INITARGS; - INIT(GetCompressedTexImageARB); - INIT(Accum); - INIT(AlphaFunc); - INIT(Bitmap); - INIT(BlendFunc); - INIT(Clear); - INIT(ClearAccum); - INIT(ClearColor); - INIT(ClearDepth); - INIT(ClearIndex); - INIT(ClearStencil); - INIT(ClipPlane); - INIT(ColorMask); - INIT(ColorMaterial); - INIT(CopyPixels); - INIT(CullFace); - INIT(DepthFunc); - INIT(DepthMask); - INIT(DepthRange); - INIT(DeleteLists); - INIT(Disable); - INIT(DrawBuffer); - INIT(DrawElements); - INIT(DrawPixels); - INIT(EndList); - INIT(Enable); - INIT(EvalMesh1); - INIT(EvalMesh2); - INIT(FeedbackBuffer); - INIT(Finish); - INIT(Flush); - INIT(Fogf); - INIT(Fogi); - INIT(Fogfv); - INIT(Fogiv); - INIT(FrontFace); - INIT(Frustum); - INIT(GenLists); - INIT(GetBooleanv); - INIT(GetClipPlane); - INIT(GetDoublev); - INIT(GetError); - INIT(GetFloatv); - INIT(GetIntegerv); - INIT(GetLightfv); - INIT(GetLightiv); - INIT(GetMapdv); - INIT(GetMapfv); - INIT(GetMapiv); - INIT(GetMaterialfv); - INIT(GetMaterialiv); - INIT(GetPixelMapfv); - INIT(GetPixelMapuiv); - INIT(GetPixelMapusv); - INIT(GetPolygonStipple); - INIT(GetString); - INIT(GetTexEnvfv); - INIT(GetTexEnviv); - INIT(GetTexGeniv); - INIT(GetTexGendv); - INIT(GetTexGenfv); - INIT(GetTexImage); - INIT(GetTexLevelParameterfv); - INIT(GetTexLevelParameteriv); - INIT(GetTexParameterfv); - INIT(GetTexParameteriv); - INIT(Hint); - INIT(IndexMask); - INIT(InitNames); - INIT(IsEnabled); - INIT(IsList); - INIT(Lightf); - INIT(Lighti); - INIT(Lightfv); - INIT(Lightiv); - INIT(LightModelf); - INIT(LightModeli); - INIT(LightModelfv); - INIT(LightModeliv); - INIT(LineWidth); - INIT(LineStipple); - INIT(ListBase); - INIT(LoadIdentity); - INIT(LoadMatrixd); - INIT(LoadMatrixf); - INIT(LoadName); - INIT(LogicOp); - INIT(Map1d); - INIT(Map1f); - INIT(Map2d); - INIT(Map2f); - INIT(MapGrid1d); - INIT(MapGrid1f); - INIT(MapGrid2d); - INIT(MapGrid2f); - INIT(MatrixMode); - INIT(MultMatrixd); - INIT(MultMatrixf); - INIT(NewList); - INIT(Ortho); - INIT(PassThrough); - INIT(PixelMapfv); - INIT(PixelMapuiv); - INIT(PixelMapusv); - INIT(PixelStoref); - INIT(PixelStorei); - INIT(PixelTransferf); - INIT(PixelTransferi); - INIT(PixelZoom); - INIT(PointSize); - INIT(PolygonMode); - INIT(PolygonStipple); - INIT(PopAttrib); - INIT(PopMatrix); - INIT(PopName); - INIT(PushAttrib); - INIT(PushMatrix); - INIT(PushName); - INIT(RasterPos2d); - INIT(RasterPos2f); - INIT(RasterPos2i); - INIT(RasterPos2s); - INIT(RasterPos3d); - INIT(RasterPos3f); - INIT(RasterPos3i); - INIT(RasterPos3s); - INIT(RasterPos4d); - INIT(RasterPos4f); - INIT(RasterPos4i); - INIT(RasterPos4s); - INIT(RasterPos2dv); - INIT(RasterPos2fv); - INIT(RasterPos2iv); - INIT(RasterPos2sv); - INIT(RasterPos3dv); - INIT(RasterPos3fv); - INIT(RasterPos3iv); - INIT(RasterPos3sv); - INIT(RasterPos4dv); - INIT(RasterPos4fv); - INIT(RasterPos4iv); - INIT(RasterPos4sv); - INIT(ReadBuffer); - INIT(ReadPixels); - INIT(Rectd); - INIT(Rectdv); - INIT(Rectf); - INIT(Rectfv); - INIT(Recti); - INIT(Rectiv); - INIT(Rects); - INIT(Rectsv); - INIT(RenderMode); - INIT(Rotated); - INIT(Rotatef); - INIT(SelectBuffer); - INIT(Scaled); - INIT(Scalef); - INIT(Scissor); - INIT(ShadeModel); - INIT(StencilFunc); - INIT(StencilMask); - INIT(StencilOp); - INIT(TexGend); - INIT(TexGendv); - INIT(TexGenf); - INIT(TexGenfv); - INIT(TexGeni); - INIT(TexGeniv); - INIT(TexEnvf); - INIT(TexEnvfv); - INIT(TexEnvi); - INIT(TexEnviv); - INIT(TexImage1D); - INIT(TexImage2D); - INIT(TexParameterf); - INIT(TexParameterfv); - INIT(TexParameteri); - INIT(TexParameteriv); - INIT(Translated); - INIT(Translatef); - INIT(Viewport); - INIT(AreTexturesResident); - INIT(BindTexture); - INIT(ColorPointer); - INIT(CopyTexImage1D); - INIT(CopyTexImage2D); - INIT(CopyTexSubImage1D); - INIT(CopyTexSubImage2D); - INIT(DeleteTextures); - INIT(DisableClientState); - INIT(DrawArrays); - INIT(EdgeFlagPointer); - INIT(EnableClientState); - INIT(GenTextures); - INIT(GetPointerv); - INIT(IndexPointer); - INIT(InterleavedArrays); - INIT(IsTexture); - INIT(NormalPointer); - INIT(PolygonOffset); - INIT(PopClientAttrib); - INIT(PrioritizeTextures); - INIT(PushClientAttrib); - INIT(TexCoordPointer); - INIT(TexSubImage1D); - INIT(TexSubImage2D); - INIT(VertexPointer); - INIT(CopyTexSubImage3D); - INIT(DrawRangeElements); - INIT(TexImage3D); - INIT(TexSubImage3D); - INIT(BlendColor); - INIT(BlendEquation); - INIT(ColorSubTable); - INIT(ColorTable); - INIT(ColorTableParameterfv); - INIT(ColorTableParameteriv); - INIT(ConvolutionFilter1D); - INIT(ConvolutionFilter2D); - INIT(ConvolutionParameterf); - INIT(ConvolutionParameterfv); - INIT(ConvolutionParameteri); - INIT(ConvolutionParameteriv); - INIT(CopyColorSubTable); - INIT(CopyColorTable); - INIT(CopyConvolutionFilter1D); - INIT(CopyConvolutionFilter2D); - INIT(GetColorTable); - INIT(GetColorTableParameterfv); - INIT(GetColorTableParameteriv); - INIT(GetConvolutionFilter); - INIT(GetConvolutionParameterfv); - INIT(GetConvolutionParameteriv); - INIT(GetHistogram); - INIT(GetHistogramParameterfv); - INIT(GetHistogramParameteriv); - INIT(GetMinmax); - INIT(GetMinmaxParameterfv); - INIT(GetMinmaxParameteriv); - INIT(GetSeparableFilter); - INIT(Histogram); - INIT(Minmax); - INIT(ResetMinmax); - INIT(ResetHistogram); - INIT(SeparableFilter2D); - INIT(BlendColorEXT); - INIT(PolygonOffsetEXT); - INIT(CopyTexSubImage3DEXT); - INIT(TexImage3DEXT); - INIT(TexSubImage3DEXT); - INIT(GetTexFilterFuncSGIS); - INIT(TexFilterFuncSGIS); - INIT(CopyTexSubImage1DEXT); - INIT(TexSubImage1DEXT); - INIT(TexSubImage2DEXT); - INIT(CopyTexImage1DEXT); - INIT(CopyTexImage2DEXT); - INIT(CopyTexSubImage2DEXT); - INIT(GetHistogramEXT); - INIT(GetHistogramParameterfvEXT); - INIT(GetHistogramParameterivEXT); - INIT(GetMinmaxEXT); - INIT(GetMinmaxParameterfvEXT); - INIT(GetMinmaxParameterivEXT); - INIT(HistogramEXT); - INIT(MinmaxEXT); - INIT(ResetHistogramEXT); - INIT(ResetMinmaxEXT); - INIT(ConvolutionFilter1DEXT); - INIT(ConvolutionFilter2DEXT); - INIT(ConvolutionParameterfEXT); - INIT(ConvolutionParameterfvEXT); - INIT(ConvolutionParameteriEXT); - INIT(ConvolutionParameterivEXT); - INIT(CopyConvolutionFilter1DEXT); - INIT(CopyConvolutionFilter2DEXT); - INIT(GetConvolutionFilterEXT); - INIT(GetConvolutionParameterfvEXT); - INIT(GetConvolutionParameterivEXT); - INIT(GetSeparableFilterEXT); - INIT(SeparableFilter2DEXT); - INIT(ColorTableParameterfvSGI); - INIT(ColorTableParameterivSGI); - INIT(ColorTableSGI); - INIT(CopyColorTableSGI); - INIT(GetColorTableSGI); - INIT(GetColorTableParameterfvSGI); - INIT(GetColorTableParameterivSGI); - INIT(PixelTexGenSGIX); - INIT(PixelTexGenParameterfSGIS); - INIT(PixelTexGenParameterfvSGIS); - INIT(PixelTexGenParameteriSGIS); - INIT(PixelTexGenParameterivSGIS); - INIT(GetPixelTexGenParameterfvSGIS); - INIT(GetPixelTexGenParameterivSGIS); - INIT(TexImage4DSGIS); - INIT(TexSubImage4DSGIS); - INIT(GenTexturesEXT); - INIT(DeleteTexturesEXT); - INIT(BindTextureEXT); - INIT(PrioritizeTexturesEXT); - INIT(AreTexturesResidentEXT); - INIT(IsTextureEXT); - INIT(DetailTexFuncSGIS); - INIT(GetDetailTexFuncSGIS); - INIT(GetSharpenTexFuncSGIS); - INIT(SharpenTexFuncSGIS); - INIT(SampleMaskSGIS); - INIT(SamplePatternSGIS); - INIT(VertexPointerEXT); - INIT(NormalPointerEXT); - INIT(ColorPointerEXT); - INIT(IndexPointerEXT); - INIT(TexCoordPointerEXT); - INIT(EdgeFlagPointerEXT); - INIT(GetPointervEXT); - INIT(DrawArraysEXT); - INIT(BlendEquationEXT); - INIT(SpriteParameterfSGIX); - INIT(SpriteParameterfvSGIX); - INIT(SpriteParameteriSGIX); - INIT(SpriteParameterivSGIX); - INIT(PointParameterfEXT); - INIT(PointParameterfvEXT); - INIT(PointParameterfSGIS); - INIT(PointParameterfvSGIS); - INIT(GetInstrumentsSGIX); - INIT(InstrumentsBufferSGIX); - INIT(PollInstrumentsSGIX); - INIT(ReadInstrumentsSGIX); - INIT(StartInstrumentsSGIX); - INIT(StopInstrumentsSGIX); - INIT(FrameZoomSGIX); - INIT(TagSampleBufferSGIX); - INIT(ReferencePlaneSGIX); - INIT(FlushRasterSGIX); - INIT(GetImageTransformParameterfvHP); - INIT(GetImageTransformParameterivHP); - INIT(ImageTransformParameterfHP); - INIT(ImageTransformParameterfvHP); - INIT(ImageTransformParameteriHP); - INIT(ImageTransformParameterivHP); - INIT(ColorSubTableEXT); - INIT(CopyColorSubTableEXT); - INIT(HintPGI); - INIT(ColorTableEXT); - INIT(GetColorTableEXT); - INIT(GetColorTableParameterfvEXT); - INIT(GetColorTableParameterivEXT); - INIT(GetListParameterfvSGIX); - INIT(GetListParameterivSGIX); - INIT(ListParameterfSGIX); - INIT(ListParameterfvSGIX); - INIT(ListParameteriSGIX); - INIT(ListParameterivSGIX); - INIT(IndexMaterialEXT); - INIT(IndexFuncEXT); - INIT(LockArraysEXT); - INIT(UnlockArraysEXT); - INIT(CullParameterfvEXT); - INIT(CullParameterdvEXT); - INIT(FragmentColorMaterialSGIX); - INIT(FragmentLightfSGIX); - INIT(FragmentLightfvSGIX); - INIT(FragmentLightiSGIX); - INIT(FragmentLightivSGIX); - INIT(FragmentLightModelfSGIX); - INIT(FragmentLightModelfvSGIX); - INIT(FragmentLightModeliSGIX); - INIT(FragmentLightModelivSGIX); - INIT(FragmentMaterialfSGIX); - INIT(FragmentMaterialfvSGIX); - INIT(FragmentMaterialiSGIX); - INIT(FragmentMaterialivSGIX); - INIT(GetFragmentLightfvSGIX); - INIT(GetFragmentLightivSGIX); - INIT(GetFragmentMaterialfvSGIX); - INIT(GetFragmentMaterialivSGIX); - INIT(LightEnviSGIX); - INIT(DrawRangeElementsEXT); - INIT(ApplyTextureEXT); - INIT(TextureLightEXT); - INIT(TextureMaterialEXT); - INIT(TexScissorINTEL); - INIT(TexScissorFuncINTEL); - INIT(VertexPointervINTEL); - INIT(NormalPointervINTEL); - INIT(ColorPointervINTEL); - INIT(TexCoordPointervINTEL); - INIT(PixelTransformParameteriEXT); - INIT(PixelTransformParameterfEXT); - INIT(PixelTransformParameterivEXT); - INIT(PixelTransformParameterfvEXT); - INIT(GetPixelTransformParameterivEXT); - INIT(GetPixelTransformParameterfvEXT); - INIT(SecondaryColorPointerEXT); - INIT(FogCoordPointerEXT); - INIT(BlendFuncSeparateEXT); - INIT(BlendFuncSeparateINGR); - INIT(FlushVertexArrayRangeNV); - INIT(VertexArrayRangeNV); - INIT(CombinerParameterfvNV); - INIT(CombinerParameterfNV); - INIT(CombinerParameterivNV); - INIT(CombinerParameteriNV); - INIT(CombinerInputNV); - INIT(CombinerOutputNV); - INIT(FinalCombinerInputNV); - INIT(GetCombinerInputParameterfvNV); - INIT(GetCombinerInputParameterivNV); - INIT(GetCombinerOutputParameterfvNV); - INIT(GetCombinerOutputParameterivNV); - INIT(GetFinalCombinerInputParameterfvNV); - INIT(GetFinalCombinerInputParameterivNV); - INIT(VertexWeightfEXT); - INIT(VertexWeightfvEXT); - INIT(VertexWeightPointerEXT); - INIT(ResizeBuffersMESA); - INIT(WindowPos2iMESA); - INIT(WindowPos2sMESA); - INIT(WindowPos2fMESA); - INIT(WindowPos2dMESA); - INIT(WindowPos2ivMESA); - INIT(WindowPos2svMESA); - INIT(WindowPos2fvMESA); - INIT(WindowPos2dvMESA); - INIT(WindowPos3iMESA); - INIT(WindowPos3sMESA); - INIT(WindowPos3fMESA); - INIT(WindowPos3dMESA); - INIT(WindowPos3ivMESA); - INIT(WindowPos3svMESA); - INIT(WindowPos3fvMESA); - INIT(WindowPos3dvMESA); - INIT(WindowPos4iMESA); - INIT(WindowPos4sMESA); - INIT(WindowPos4fMESA); - INIT(WindowPos4dMESA); - INIT(WindowPos4ivMESA); - INIT(WindowPos4svMESA); - INIT(WindowPos4fvMESA); - INIT(WindowPos4dvMESA); - INIT(TbufferMask3DFX); - INIT(SampleMaskEXT); - INIT(SamplePatternEXT); - INIT(ActiveTextureARB); - INIT(ClientActiveTextureARB); - INIT(LoadTransposeMatrixdARB); - INIT(LoadTransposeMatrixfARB); - INIT(MultTransposeMatrixdARB); - INIT(MultTransposeMatrixfARB); - INIT(SampleCoverageARB); - INIT(SamplePassARB); - INIT(CompressedTexImage3DARB); - INIT(CompressedTexImage2DARB); - INIT(CompressedTexImage1DARB); - INIT(CompressedTexSubImage3DARB); - INIT(CompressedTexSubImage2DARB); - INIT(CompressedTexSubImage1DARB); - INIT(GetCompressedTexImageARB); - - INIT(Begin); - INIT(CallList); - INIT(CallLists); - INIT(Color3b); - INIT(Color3d); - INIT(Color3f); - INIT(Color3i); - INIT(Color3s); - INIT(Color3ub); - INIT(Color3ui); - INIT(Color3us); - INIT(Color4b); - INIT(Color4d); - INIT(Color4f); - INIT(Color4i); - INIT(Color4s); - INIT(Color4ub); - INIT(Color4ui); - INIT(Color4us); - INIT(Color3bv); - INIT(Color3dv); - INIT(Color3fv); - INIT(Color3iv); - INIT(Color3sv); - INIT(Color3ubv); - INIT(Color3uiv); - INIT(Color3usv); - INIT(Color4bv); - INIT(Color4dv); - INIT(Color4fv); - INIT(Color4iv); - INIT(Color4sv); - INIT(Color4ubv); - INIT(Color4uiv); - INIT(Color4usv); - INIT(End); - INIT(EdgeFlag); - INIT(EdgeFlagv); - INIT(EvalCoord1d); - INIT(EvalCoord1f); - INIT(EvalCoord1dv); - INIT(EvalCoord1fv); - INIT(EvalCoord2d); - INIT(EvalCoord2f); - INIT(EvalCoord2dv); - INIT(EvalCoord2fv); - INIT(EvalPoint1); - INIT(EvalPoint2); - INIT(Indexd); - INIT(Indexdv); - INIT(Indexf); - INIT(Indexfv); - INIT(Indexi); - INIT(Indexiv); - INIT(Indexs); - INIT(Indexsv); - INIT(Materialf); - INIT(Materiali); - INIT(Materialfv); - INIT(Materialiv); - INIT(Normal3b); - INIT(Normal3bv); - INIT(Normal3d); - INIT(Normal3dv); - INIT(Normal3f); - INIT(Normal3fv); - INIT(Normal3i); - INIT(Normal3iv); - INIT(Normal3s); - INIT(Normal3sv); - INIT(TexCoord1d); - INIT(TexCoord1f); - INIT(TexCoord1i); - INIT(TexCoord1s); - INIT(TexCoord2d); - INIT(TexCoord2f); - INIT(TexCoord2s); - INIT(TexCoord2i); - INIT(TexCoord3d); - INIT(TexCoord3f); - INIT(TexCoord3i); - INIT(TexCoord3s); - INIT(TexCoord4d); - INIT(TexCoord4f); - INIT(TexCoord4i); - INIT(TexCoord4s); - INIT(TexCoord1dv); - INIT(TexCoord1fv); - INIT(TexCoord1iv); - INIT(TexCoord1sv); - INIT(TexCoord2dv); - INIT(TexCoord2fv); - INIT(TexCoord2iv); - INIT(TexCoord2sv); - INIT(TexCoord3dv); - INIT(TexCoord3fv); - INIT(TexCoord3iv); - INIT(TexCoord3sv); - INIT(TexCoord4dv); - INIT(TexCoord4fv); - INIT(TexCoord4iv); - INIT(TexCoord4sv); - INIT(Vertex2d); - INIT(Vertex2dv); - INIT(Vertex2f); - INIT(Vertex2fv); - INIT(Vertex2i); - INIT(Vertex2iv); - INIT(Vertex2s); - INIT(Vertex2sv); - INIT(Vertex3d); - INIT(Vertex3dv); - INIT(Vertex3f); - INIT(Vertex3fv); - INIT(Vertex3i); - INIT(Vertex3iv); - INIT(Vertex3s); - INIT(Vertex3sv); - INIT(Vertex4d); - INIT(Vertex4dv); - INIT(Vertex4f); - INIT(Vertex4fv); - INIT(Vertex4i); - INIT(Vertex4iv); - INIT(Vertex4s); - INIT(Vertex4sv); - INIT(Indexub); - INIT(Indexubv); - INIT(ArrayElementEXT); - INIT(SecondaryColor3bEXT); - INIT(SecondaryColor3bvEXT); - INIT(SecondaryColor3dEXT); - INIT(SecondaryColor3dvEXT); - INIT(SecondaryColor3fEXT); - INIT(SecondaryColor3fvEXT); - INIT(SecondaryColor3iEXT); - INIT(SecondaryColor3ivEXT); - INIT(SecondaryColor3sEXT); - INIT(SecondaryColor3svEXT); - INIT(SecondaryColor3ubEXT); - INIT(SecondaryColor3ubvEXT); - INIT(SecondaryColor3uiEXT); - INIT(SecondaryColor3uivEXT); - INIT(SecondaryColor3usEXT); - INIT(SecondaryColor3usvEXT); - INIT(FogCoordfEXT); - INIT(FogCoordfvEXT); - INIT(FogCoorddEXT); - INIT(FogCoorddvEXT); - INIT(MultiTexCoord1dARB); - INIT(MultiTexCoord1dvARB); - INIT(MultiTexCoord1fARB); - INIT(MultiTexCoord1fvARB); - INIT(MultiTexCoord1iARB); - INIT(MultiTexCoord1ivARB); - INIT(MultiTexCoord1sARB); - INIT(MultiTexCoord1svARB); - INIT(MultiTexCoord2dARB); - INIT(MultiTexCoord2dvARB); - INIT(MultiTexCoord2fARB); - INIT(MultiTexCoord2fvARB); - INIT(MultiTexCoord2iARB); - INIT(MultiTexCoord2ivARB); - INIT(MultiTexCoord2sARB); - INIT(MultiTexCoord2svARB); - INIT(MultiTexCoord3dARB); - INIT(MultiTexCoord3dvARB); - INIT(MultiTexCoord3fARB); - INIT(MultiTexCoord3fvARB); - INIT(MultiTexCoord3iARB); - INIT(MultiTexCoord3ivARB); - INIT(MultiTexCoord3sARB); - INIT(MultiTexCoord3svARB); - INIT(MultiTexCoord4dARB); - INIT(MultiTexCoord4dvARB); - INIT(MultiTexCoord4fARB); - INIT(MultiTexCoord4fvARB); - INIT(MultiTexCoord4iARB); - INIT(MultiTexCoord4ivARB); - INIT(MultiTexCoord4sARB); - INIT(MultiTexCoord4svARB); - INIT(ArrayElement); -} +#ifdef DISPATCH_TABLE_NAME +#ifndef TABLE_ENTRY +#error TABLE_ENTRY must be defined #endif +void *DISPATCH_TABLE_NAME[] = { + TABLE_ENTRY(NewList), + TABLE_ENTRY(EndList), + TABLE_ENTRY(CallList), + TABLE_ENTRY(CallLists), + TABLE_ENTRY(DeleteLists), + TABLE_ENTRY(GenLists), + TABLE_ENTRY(ListBase), + TABLE_ENTRY(Begin), + TABLE_ENTRY(Bitmap), + TABLE_ENTRY(Color3b), + TABLE_ENTRY(Color3bv), + TABLE_ENTRY(Color3d), + TABLE_ENTRY(Color3dv), + TABLE_ENTRY(Color3f), + TABLE_ENTRY(Color3fv), + TABLE_ENTRY(Color3i), + TABLE_ENTRY(Color3iv), + TABLE_ENTRY(Color3s), + TABLE_ENTRY(Color3sv), + TABLE_ENTRY(Color3ub), + TABLE_ENTRY(Color3ubv), + TABLE_ENTRY(Color3ui), + TABLE_ENTRY(Color3uiv), + TABLE_ENTRY(Color3us), + TABLE_ENTRY(Color3usv), + TABLE_ENTRY(Color4b), + TABLE_ENTRY(Color4bv), + TABLE_ENTRY(Color4d), + TABLE_ENTRY(Color4dv), + TABLE_ENTRY(Color4f), + TABLE_ENTRY(Color4fv), + TABLE_ENTRY(Color4i), + TABLE_ENTRY(Color4iv), + TABLE_ENTRY(Color4s), + TABLE_ENTRY(Color4sv), + TABLE_ENTRY(Color4ub), + TABLE_ENTRY(Color4ubv), + TABLE_ENTRY(Color4ui), + TABLE_ENTRY(Color4uiv), + TABLE_ENTRY(Color4us), + TABLE_ENTRY(Color4usv), + TABLE_ENTRY(EdgeFlag), + TABLE_ENTRY(EdgeFlagv), + TABLE_ENTRY(End), + TABLE_ENTRY(Indexd), + TABLE_ENTRY(Indexdv), + TABLE_ENTRY(Indexf), + TABLE_ENTRY(Indexfv), + TABLE_ENTRY(Indexi), + TABLE_ENTRY(Indexiv), + TABLE_ENTRY(Indexs), + TABLE_ENTRY(Indexsv), + TABLE_ENTRY(Normal3b), + TABLE_ENTRY(Normal3bv), + TABLE_ENTRY(Normal3d), + TABLE_ENTRY(Normal3dv), + TABLE_ENTRY(Normal3f), + TABLE_ENTRY(Normal3fv), + TABLE_ENTRY(Normal3i), + TABLE_ENTRY(Normal3iv), + TABLE_ENTRY(Normal3s), + TABLE_ENTRY(Normal3sv), + TABLE_ENTRY(RasterPos2d), + TABLE_ENTRY(RasterPos2dv), + TABLE_ENTRY(RasterPos2f), + TABLE_ENTRY(RasterPos2fv), + TABLE_ENTRY(RasterPos2i), + TABLE_ENTRY(RasterPos2iv), + TABLE_ENTRY(RasterPos2s), + TABLE_ENTRY(RasterPos2sv), + TABLE_ENTRY(RasterPos3d), + TABLE_ENTRY(RasterPos3dv), + TABLE_ENTRY(RasterPos3f), + TABLE_ENTRY(RasterPos3fv), + TABLE_ENTRY(RasterPos3i), + TABLE_ENTRY(RasterPos3iv), + TABLE_ENTRY(RasterPos3s), + TABLE_ENTRY(RasterPos3sv), + TABLE_ENTRY(RasterPos4d), + TABLE_ENTRY(RasterPos4dv), + TABLE_ENTRY(RasterPos4f), + TABLE_ENTRY(RasterPos4fv), + TABLE_ENTRY(RasterPos4i), + TABLE_ENTRY(RasterPos4iv), + TABLE_ENTRY(RasterPos4s), + TABLE_ENTRY(RasterPos4sv), + TABLE_ENTRY(Rectd), + TABLE_ENTRY(Rectdv), + TABLE_ENTRY(Rectf), + TABLE_ENTRY(Rectfv), + TABLE_ENTRY(Recti), + TABLE_ENTRY(Rectiv), + TABLE_ENTRY(Rects), + TABLE_ENTRY(Rectsv), + TABLE_ENTRY(TexCoord1d), + TABLE_ENTRY(TexCoord1dv), + TABLE_ENTRY(TexCoord1f), + TABLE_ENTRY(TexCoord1fv), + TABLE_ENTRY(TexCoord1i), + TABLE_ENTRY(TexCoord1iv), + TABLE_ENTRY(TexCoord1s), + TABLE_ENTRY(TexCoord1sv), + TABLE_ENTRY(TexCoord2d), + TABLE_ENTRY(TexCoord2dv), + TABLE_ENTRY(TexCoord2f), + TABLE_ENTRY(TexCoord2fv), + TABLE_ENTRY(TexCoord2i), + TABLE_ENTRY(TexCoord2iv), + TABLE_ENTRY(TexCoord2s), + TABLE_ENTRY(TexCoord2sv), + TABLE_ENTRY(TexCoord3d), + TABLE_ENTRY(TexCoord3dv), + TABLE_ENTRY(TexCoord3f), + TABLE_ENTRY(TexCoord3fv), + TABLE_ENTRY(TexCoord3i), + TABLE_ENTRY(TexCoord3iv), + TABLE_ENTRY(TexCoord3s), + TABLE_ENTRY(TexCoord3sv), + TABLE_ENTRY(TexCoord4d), + TABLE_ENTRY(TexCoord4dv), + TABLE_ENTRY(TexCoord4f), + TABLE_ENTRY(TexCoord4fv), + TABLE_ENTRY(TexCoord4i), + TABLE_ENTRY(TexCoord4iv), + TABLE_ENTRY(TexCoord4s), + TABLE_ENTRY(TexCoord4sv), + TABLE_ENTRY(Vertex2d), + TABLE_ENTRY(Vertex2dv), + TABLE_ENTRY(Vertex2f), + TABLE_ENTRY(Vertex2fv), + TABLE_ENTRY(Vertex2i), + TABLE_ENTRY(Vertex2iv), + TABLE_ENTRY(Vertex2s), + TABLE_ENTRY(Vertex2sv), + TABLE_ENTRY(Vertex3d), + TABLE_ENTRY(Vertex3dv), + TABLE_ENTRY(Vertex3f), + TABLE_ENTRY(Vertex3fv), + TABLE_ENTRY(Vertex3i), + TABLE_ENTRY(Vertex3iv), + TABLE_ENTRY(Vertex3s), + TABLE_ENTRY(Vertex3sv), + TABLE_ENTRY(Vertex4d), + TABLE_ENTRY(Vertex4dv), + TABLE_ENTRY(Vertex4f), + TABLE_ENTRY(Vertex4fv), + TABLE_ENTRY(Vertex4i), + TABLE_ENTRY(Vertex4iv), + TABLE_ENTRY(Vertex4s), + TABLE_ENTRY(Vertex4sv), + TABLE_ENTRY(ClipPlane), + TABLE_ENTRY(ColorMaterial), + TABLE_ENTRY(CullFace), + TABLE_ENTRY(Fogf), + TABLE_ENTRY(Fogfv), + TABLE_ENTRY(Fogi), + TABLE_ENTRY(Fogiv), + TABLE_ENTRY(FrontFace), + TABLE_ENTRY(Hint), + TABLE_ENTRY(Lightf), + TABLE_ENTRY(Lightfv), + TABLE_ENTRY(Lighti), + TABLE_ENTRY(Lightiv), + TABLE_ENTRY(LightModelf), + TABLE_ENTRY(LightModelfv), + TABLE_ENTRY(LightModeli), + TABLE_ENTRY(LightModeliv), + TABLE_ENTRY(LineStipple), + TABLE_ENTRY(LineWidth), + TABLE_ENTRY(Materialf), + TABLE_ENTRY(Materialfv), + TABLE_ENTRY(Materiali), + TABLE_ENTRY(Materialiv), + TABLE_ENTRY(PointSize), + TABLE_ENTRY(PolygonMode), + TABLE_ENTRY(PolygonStipple), + TABLE_ENTRY(Scissor), + TABLE_ENTRY(ShadeModel), + TABLE_ENTRY(TexParameterf), + TABLE_ENTRY(TexParameterfv), + TABLE_ENTRY(TexParameteri), + TABLE_ENTRY(TexParameteriv), + TABLE_ENTRY(TexImage1D), + TABLE_ENTRY(TexImage2D), + TABLE_ENTRY(TexEnvf), + TABLE_ENTRY(TexEnvfv), + TABLE_ENTRY(TexEnvi), + TABLE_ENTRY(TexEnviv), + TABLE_ENTRY(TexGend), + TABLE_ENTRY(TexGendv), + TABLE_ENTRY(TexGenf), + TABLE_ENTRY(TexGenfv), + TABLE_ENTRY(TexGeni), + TABLE_ENTRY(TexGeniv), + TABLE_ENTRY(FeedbackBuffer), + TABLE_ENTRY(SelectBuffer), + TABLE_ENTRY(RenderMode), + TABLE_ENTRY(InitNames), + TABLE_ENTRY(LoadName), + TABLE_ENTRY(PassThrough), + TABLE_ENTRY(PopName), + TABLE_ENTRY(PushName), + TABLE_ENTRY(DrawBuffer), + TABLE_ENTRY(Clear), + TABLE_ENTRY(ClearAccum), + TABLE_ENTRY(ClearIndex), + TABLE_ENTRY(ClearColor), + TABLE_ENTRY(ClearStencil), + TABLE_ENTRY(ClearDepth), + TABLE_ENTRY(StencilMask), + TABLE_ENTRY(ColorMask), + TABLE_ENTRY(DepthMask), + TABLE_ENTRY(IndexMask), + TABLE_ENTRY(Accum), + TABLE_ENTRY(Disable), + TABLE_ENTRY(Enable), + TABLE_ENTRY(Finish), + TABLE_ENTRY(Flush), + TABLE_ENTRY(PopAttrib), + TABLE_ENTRY(PushAttrib), + TABLE_ENTRY(Map1d), + TABLE_ENTRY(Map1f), + TABLE_ENTRY(Map2d), + TABLE_ENTRY(Map2f), + TABLE_ENTRY(MapGrid1d), + TABLE_ENTRY(MapGrid1f), + TABLE_ENTRY(MapGrid2d), + TABLE_ENTRY(MapGrid2f), + TABLE_ENTRY(EvalCoord1d), + TABLE_ENTRY(EvalCoord1dv), + TABLE_ENTRY(EvalCoord1f), + TABLE_ENTRY(EvalCoord1fv), + TABLE_ENTRY(EvalCoord2d), + TABLE_ENTRY(EvalCoord2dv), + TABLE_ENTRY(EvalCoord2f), + TABLE_ENTRY(EvalCoord2fv), + TABLE_ENTRY(EvalMesh1), + TABLE_ENTRY(EvalPoint1), + TABLE_ENTRY(EvalMesh2), + TABLE_ENTRY(EvalPoint2), + TABLE_ENTRY(AlphaFunc), + TABLE_ENTRY(BlendFunc), + TABLE_ENTRY(LogicOp), + TABLE_ENTRY(StencilFunc), + TABLE_ENTRY(StencilOp), + TABLE_ENTRY(DepthFunc), + TABLE_ENTRY(PixelZoom), + TABLE_ENTRY(PixelTransferf), + TABLE_ENTRY(PixelTransferi), + TABLE_ENTRY(PixelStoref), + TABLE_ENTRY(PixelStorei), + TABLE_ENTRY(PixelMapfv), + TABLE_ENTRY(PixelMapuiv), + TABLE_ENTRY(PixelMapusv), + TABLE_ENTRY(ReadBuffer), + TABLE_ENTRY(CopyPixels), + TABLE_ENTRY(ReadPixels), + TABLE_ENTRY(DrawPixels), + TABLE_ENTRY(GetBooleanv), + TABLE_ENTRY(GetClipPlane), + TABLE_ENTRY(GetDoublev), + TABLE_ENTRY(GetError), + TABLE_ENTRY(GetFloatv), + TABLE_ENTRY(GetIntegerv), + TABLE_ENTRY(GetLightfv), + TABLE_ENTRY(GetLightiv), + TABLE_ENTRY(GetMapdv), + TABLE_ENTRY(GetMapfv), + TABLE_ENTRY(GetMapiv), + TABLE_ENTRY(GetMaterialfv), + TABLE_ENTRY(GetMaterialiv), + TABLE_ENTRY(GetPixelMapfv), + TABLE_ENTRY(GetPixelMapuiv), + TABLE_ENTRY(GetPixelMapusv), + TABLE_ENTRY(GetPolygonStipple), + TABLE_ENTRY(GetString), + TABLE_ENTRY(GetTexEnvfv), + TABLE_ENTRY(GetTexEnviv), + TABLE_ENTRY(GetTexGendv), + TABLE_ENTRY(GetTexGenfv), + TABLE_ENTRY(GetTexGeniv), + TABLE_ENTRY(GetTexImage), + TABLE_ENTRY(GetTexParameterfv), + TABLE_ENTRY(GetTexParameteriv), + TABLE_ENTRY(GetTexLevelParameterfv), + TABLE_ENTRY(GetTexLevelParameteriv), + TABLE_ENTRY(IsEnabled), + TABLE_ENTRY(IsList), + TABLE_ENTRY(DepthRange), + TABLE_ENTRY(Frustum), + TABLE_ENTRY(LoadIdentity), + TABLE_ENTRY(LoadMatrixf), + TABLE_ENTRY(LoadMatrixd), + TABLE_ENTRY(MatrixMode), + TABLE_ENTRY(MultMatrixf), + TABLE_ENTRY(MultMatrixd), + TABLE_ENTRY(Ortho), + TABLE_ENTRY(PopMatrix), + TABLE_ENTRY(PushMatrix), + TABLE_ENTRY(Rotated), + TABLE_ENTRY(Rotatef), + TABLE_ENTRY(Scaled), + TABLE_ENTRY(Scalef), + TABLE_ENTRY(Translated), + TABLE_ENTRY(Translatef), + TABLE_ENTRY(Viewport), + /* 1.1 */ + TABLE_ENTRY(ArrayElement), + TABLE_ENTRY(BindTexture), + TABLE_ENTRY(ColorPointer), + TABLE_ENTRY(DisableClientState), + TABLE_ENTRY(DrawArrays), + TABLE_ENTRY(DrawElements), + TABLE_ENTRY(EdgeFlagPointer), + TABLE_ENTRY(EnableClientState), + TABLE_ENTRY(IndexPointer), + TABLE_ENTRY(Indexub), + TABLE_ENTRY(Indexubv), + TABLE_ENTRY(InterleavedArrays), + TABLE_ENTRY(NormalPointer), + TABLE_ENTRY(PolygonOffset), + TABLE_ENTRY(TexCoordPointer), + TABLE_ENTRY(VertexPointer), + TABLE_ENTRY(AreTexturesResident), + TABLE_ENTRY(CopyTexImage1D), + TABLE_ENTRY(CopyTexImage2D), + TABLE_ENTRY(CopyTexSubImage1D), + TABLE_ENTRY(CopyTexSubImage2D), + TABLE_ENTRY(DeleteTextures), + TABLE_ENTRY(GenTextures), + TABLE_ENTRY(GetPointerv), + TABLE_ENTRY(IsTexture), + TABLE_ENTRY(PrioritizeTextures), + TABLE_ENTRY(TexSubImage1D), + TABLE_ENTRY(TexSubImage2D), + TABLE_ENTRY(PopClientAttrib), + TABLE_ENTRY(PushClientAttrib), + /* 1.2 */ + TABLE_ENTRY(BlendColor), + TABLE_ENTRY(BlendEquation), + TABLE_ENTRY(DrawRangeElements), + TABLE_ENTRY(ColorTable), + TABLE_ENTRY(ColorTableParameterfv), + TABLE_ENTRY(ColorTableParameteriv), + TABLE_ENTRY(CopyColorTable), + TABLE_ENTRY(GetColorTable), + TABLE_ENTRY(GetColorTableParameterfv), + TABLE_ENTRY(GetColorTableParameteriv), + TABLE_ENTRY(ColorSubTable), + TABLE_ENTRY(CopyColorSubTable), + TABLE_ENTRY(ConvolutionFilter1D), + TABLE_ENTRY(ConvolutionFilter2D), + TABLE_ENTRY(ConvolutionParameterf), + TABLE_ENTRY(ConvolutionParameterfv), + TABLE_ENTRY(ConvolutionParameteri), + TABLE_ENTRY(ConvolutionParameteriv), + TABLE_ENTRY(CopyConvolutionFilter1D), + TABLE_ENTRY(CopyConvolutionFilter2D), + TABLE_ENTRY(GetConvolutionFilter), + TABLE_ENTRY(GetConvolutionParameterfv), + TABLE_ENTRY(GetConvolutionParameteriv), + TABLE_ENTRY(GetSeparableFilter), + TABLE_ENTRY(SeparableFilter2D), + TABLE_ENTRY(GetHistogram), + TABLE_ENTRY(GetHistogramParameterfv), + TABLE_ENTRY(GetHistogramParameteriv), + TABLE_ENTRY(GetMinmax), + TABLE_ENTRY(GetMinmaxParameterfv), + TABLE_ENTRY(GetMinmaxParameteriv), + TABLE_ENTRY(Histogram), + TABLE_ENTRY(Minmax), + TABLE_ENTRY(ResetHistogram), + TABLE_ENTRY(ResetMinmax), + TABLE_ENTRY(TexImage3D), + TABLE_ENTRY(TexSubImage3D), + TABLE_ENTRY(CopyTexSubImage3D), + /* GL_ARB_multitexture */ + TABLE_ENTRY(ActiveTextureARB), + TABLE_ENTRY(ClientActiveTextureARB), + TABLE_ENTRY(MultiTexCoord1dARB), + TABLE_ENTRY(MultiTexCoord1dvARB), + TABLE_ENTRY(MultiTexCoord1fARB), + TABLE_ENTRY(MultiTexCoord1fvARB), + TABLE_ENTRY(MultiTexCoord1iARB), + TABLE_ENTRY(MultiTexCoord1ivARB), + TABLE_ENTRY(MultiTexCoord1sARB), + TABLE_ENTRY(MultiTexCoord1svARB), + TABLE_ENTRY(MultiTexCoord2dARB), + TABLE_ENTRY(MultiTexCoord2dvARB), + TABLE_ENTRY(MultiTexCoord2fARB), + TABLE_ENTRY(MultiTexCoord2fvARB), + TABLE_ENTRY(MultiTexCoord2iARB), + TABLE_ENTRY(MultiTexCoord2ivARB), + TABLE_ENTRY(MultiTexCoord2sARB), + TABLE_ENTRY(MultiTexCoord2svARB), + TABLE_ENTRY(MultiTexCoord3dARB), + TABLE_ENTRY(MultiTexCoord3dvARB), + TABLE_ENTRY(MultiTexCoord3fARB), + TABLE_ENTRY(MultiTexCoord3fvARB), + TABLE_ENTRY(MultiTexCoord3iARB), + TABLE_ENTRY(MultiTexCoord3ivARB), + TABLE_ENTRY(MultiTexCoord3sARB), + TABLE_ENTRY(MultiTexCoord3svARB), + TABLE_ENTRY(MultiTexCoord4dARB), + TABLE_ENTRY(MultiTexCoord4dvARB), + TABLE_ENTRY(MultiTexCoord4fARB), + TABLE_ENTRY(MultiTexCoord4fvARB), + TABLE_ENTRY(MultiTexCoord4iARB), + TABLE_ENTRY(MultiTexCoord4ivARB), + TABLE_ENTRY(MultiTexCoord4sARB), + TABLE_ENTRY(MultiTexCoord4svARB), + /* GL_ARB_transpose_matrix */ + TABLE_ENTRY(LoadTransposeMatrixfARB), + TABLE_ENTRY(LoadTransposeMatrixdARB), + TABLE_ENTRY(MultTransposeMatrixfARB), + TABLE_ENTRY(MultTransposeMatrixdARB), + /* GL_ARB_multisample */ + TABLE_ENTRY(SampleCoverageARB), + TABLE_ENTRY(SamplePassARB), + /* GL_EXT_blend_color */ + /* GL_EXT_polygon_offset */ + TABLE_ENTRY(PolygonOffsetEXT), + /* GL_EXT_texture3D */ + /* GL_EXT_subtexture */ + /* GL_SGIS_texture_filter4 */ + TABLE_ENTRY(GetTexFilterFuncSGIS), + TABLE_ENTRY(TexFilterFuncSGIS), + /* GL_EXT_subtexture */ + /* GL_EXT_copy_texture */ + /* GL_EXT_histogram */ + TABLE_ENTRY(GetHistogramEXT), + TABLE_ENTRY(GetHistogramParameterfvEXT), + TABLE_ENTRY(GetHistogramParameterivEXT), + TABLE_ENTRY(GetMinmaxEXT), + TABLE_ENTRY(GetMinmaxParameterfvEXT), + TABLE_ENTRY(GetMinmaxParameterivEXT), + /* GL_EXT_convolution */ + TABLE_ENTRY(GetConvolutionFilterEXT), + TABLE_ENTRY(GetConvolutionParameterfvEXT), + TABLE_ENTRY(GetConvolutionParameterivEXT), + TABLE_ENTRY(GetSeparableFilterEXT), + /* GL_SGI_color_table */ + TABLE_ENTRY(GetColorTableSGI), + TABLE_ENTRY(GetColorTableParameterfvSGI), + TABLE_ENTRY(GetColorTableParameterivSGI), + /* GL_SGIX_pixel_texture */ + TABLE_ENTRY(PixelTexGenSGIX), + /* GL_SGIS_pixel_texture */ + TABLE_ENTRY(PixelTexGenParameteriSGIS), + TABLE_ENTRY(PixelTexGenParameterivSGIS), + TABLE_ENTRY(PixelTexGenParameterfSGIS), + TABLE_ENTRY(PixelTexGenParameterfvSGIS), + TABLE_ENTRY(GetPixelTexGenParameterivSGIS), + TABLE_ENTRY(GetPixelTexGenParameterfvSGIS), + /* GL_SGIS_texture4D */ + TABLE_ENTRY(TexImage4DSGIS), + TABLE_ENTRY(TexSubImage4DSGIS), + /* GL_EXT_texture_object */ + TABLE_ENTRY(AreTexturesResidentEXT), + TABLE_ENTRY(GenTexturesEXT), + TABLE_ENTRY(IsTextureEXT), + /* GL_SGIS_detail_texture */ + TABLE_ENTRY(DetailTexFuncSGIS), + TABLE_ENTRY(GetDetailTexFuncSGIS), + /* GL_SGIS_sharpen_texture */ + TABLE_ENTRY(SharpenTexFuncSGIS), + TABLE_ENTRY(GetSharpenTexFuncSGIS), + /* GL_SGIS_multisample */ + TABLE_ENTRY(SampleMaskSGIS), + TABLE_ENTRY(SamplePatternSGIS), + /* GL_EXT_vertex_array */ + TABLE_ENTRY(ColorPointerEXT), + TABLE_ENTRY(EdgeFlagPointerEXT), + TABLE_ENTRY(IndexPointerEXT), + TABLE_ENTRY(NormalPointerEXT), + TABLE_ENTRY(TexCoordPointerEXT), + TABLE_ENTRY(VertexPointerEXT), + /* GL_EXT_blend_minmax */ + /* GL_SGIX_sprite */ + TABLE_ENTRY(SpriteParameterfSGIX), + TABLE_ENTRY(SpriteParameterfvSGIX), + TABLE_ENTRY(SpriteParameteriSGIX), + TABLE_ENTRY(SpriteParameterivSGIX), + /* GL_EXT_point_parameters */ + TABLE_ENTRY(PointParameterfEXT), + TABLE_ENTRY(PointParameterfvEXT), + /* GL_SGIX_instruments */ + TABLE_ENTRY(GetInstrumentsSGIX), + TABLE_ENTRY(InstrumentsBufferSGIX), + TABLE_ENTRY(PollInstrumentsSGIX), + TABLE_ENTRY(ReadInstrumentsSGIX), + TABLE_ENTRY(StartInstrumentsSGIX), + TABLE_ENTRY(StopInstrumentsSGIX), + /* GL_SGIX_framezoom */ + TABLE_ENTRY(FrameZoomSGIX), + /* GL_SGIX_tag_sample_buffer */ + TABLE_ENTRY(TagSampleBufferSGIX), + /* GL_SGIX_reference_plane */ + TABLE_ENTRY(ReferencePlaneSGIX), + /* GL_SGIX_flush_raster */ + TABLE_ENTRY(FlushRasterSGIX), + /* GL_SGIX_list_priority */ + TABLE_ENTRY(GetListParameterfvSGIX), + TABLE_ENTRY(GetListParameterivSGIX), + TABLE_ENTRY(ListParameterfSGIX), + TABLE_ENTRY(ListParameterfvSGIX), + TABLE_ENTRY(ListParameteriSGIX), + TABLE_ENTRY(ListParameterivSGIX), + /* GL_SGIX_fragment_lighting */ + TABLE_ENTRY(FragmentColorMaterialSGIX), + TABLE_ENTRY(FragmentLightfSGIX), + TABLE_ENTRY(FragmentLightfvSGIX), + TABLE_ENTRY(FragmentLightiSGIX), + TABLE_ENTRY(FragmentLightivSGIX), + TABLE_ENTRY(FragmentLightModelfSGIX), + TABLE_ENTRY(FragmentLightModelfvSGIX), + TABLE_ENTRY(FragmentLightModeliSGIX), + TABLE_ENTRY(FragmentLightModelivSGIX), + TABLE_ENTRY(FragmentMaterialfSGIX), + TABLE_ENTRY(FragmentMaterialfvSGIX), + TABLE_ENTRY(FragmentMaterialiSGIX), + TABLE_ENTRY(FragmentMaterialivSGIX), + TABLE_ENTRY(GetFragmentLightfvSGIX), + TABLE_ENTRY(GetFragmentLightivSGIX), + TABLE_ENTRY(GetFragmentMaterialfvSGIX), + TABLE_ENTRY(GetFragmentMaterialivSGIX), + TABLE_ENTRY(LightEnviSGIX), + /* GL_EXT_vertex_weighting */ + TABLE_ENTRY(VertexWeightfEXT), + TABLE_ENTRY(VertexWeightfvEXT), + TABLE_ENTRY(VertexWeightPointerEXT), + /* GL_NV_vertex_array_range */ + TABLE_ENTRY(FlushVertexArrayRangeNV), + TABLE_ENTRY(VertexArrayRangeNV), + /* GL_NV_register_combiners */ + TABLE_ENTRY(CombinerParameterfvNV), + TABLE_ENTRY(CombinerParameterfNV), + TABLE_ENTRY(CombinerParameterivNV), + TABLE_ENTRY(CombinerParameteriNV), + TABLE_ENTRY(CombinerInputNV), + TABLE_ENTRY(CombinerOutputNV), + TABLE_ENTRY(FinalCombinerInputNV), + TABLE_ENTRY(GetCombinerInputParameterfvNV), + TABLE_ENTRY(GetCombinerInputParameterivNV), + TABLE_ENTRY(GetCombinerOutputParameterfvNV), + TABLE_ENTRY(GetCombinerOutputParameterivNV), + TABLE_ENTRY(GetFinalCombinerInputParameterfvNV), + TABLE_ENTRY(GetFinalCombinerInputParameterivNV), + /* GL_MESA_resize_buffers */ + TABLE_ENTRY(ResizeBuffersMESA), + /* GL_MESA_window_pos */ + TABLE_ENTRY(WindowPos2dMESA), + TABLE_ENTRY(WindowPos2dvMESA), + TABLE_ENTRY(WindowPos2fMESA), + TABLE_ENTRY(WindowPos2fvMESA), + TABLE_ENTRY(WindowPos2iMESA), + TABLE_ENTRY(WindowPos2ivMESA), + TABLE_ENTRY(WindowPos2sMESA), + TABLE_ENTRY(WindowPos2svMESA), + TABLE_ENTRY(WindowPos3dMESA), + TABLE_ENTRY(WindowPos3dvMESA), + TABLE_ENTRY(WindowPos3fMESA), + TABLE_ENTRY(WindowPos3fvMESA), + TABLE_ENTRY(WindowPos3iMESA), + TABLE_ENTRY(WindowPos3ivMESA), + TABLE_ENTRY(WindowPos3sMESA), + TABLE_ENTRY(WindowPos3svMESA), + TABLE_ENTRY(WindowPos4dMESA), + TABLE_ENTRY(WindowPos4dvMESA), + TABLE_ENTRY(WindowPos4fMESA), + TABLE_ENTRY(WindowPos4fvMESA), + TABLE_ENTRY(WindowPos4iMESA), + TABLE_ENTRY(WindowPos4ivMESA), + TABLE_ENTRY(WindowPos4sMESA), + TABLE_ENTRY(WindowPos4svMESA), + /* GL_EXT_draw_range_elements */ + TABLE_ENTRY(BlendFuncSeparateEXT), + /* GL_EXT_index_material */ + TABLE_ENTRY(IndexMaterialEXT), + /* GL_EXT_index_func */ + TABLE_ENTRY(IndexFuncEXT), + /* GL_EXT_compiled_vertex_array */ + TABLE_ENTRY(LockArraysEXT), + TABLE_ENTRY(UnlockArraysEXT), + /* GL_EXT_cull_vertex */ + TABLE_ENTRY(CullParameterdvEXT), + TABLE_ENTRY(CullParameterfvEXT), + /* GL_PGI_misc_hints */ + TABLE_ENTRY(HintPGI), + /* GL_EXT_fog_coord */ + TABLE_ENTRY(FogCoordfEXT), + TABLE_ENTRY(FogCoordfvEXT), + TABLE_ENTRY(FogCoorddEXT), + TABLE_ENTRY(FogCoorddvEXT), + TABLE_ENTRY(FogCoordPointerEXT), + /* GL_EXT_color_table */ + TABLE_ENTRY(GetColorTableEXT), + TABLE_ENTRY(GetColorTableParameterivEXT), + TABLE_ENTRY(GetColorTableParameterfvEXT), + /* GL_3DFX_tbuffer */ + TABLE_ENTRY(TbufferMask3DFX), + /* GL_ARB_texture_compression */ + TABLE_ENTRY(CompressedTexImage3DARB), + TABLE_ENTRY(CompressedTexImage2DARB), + TABLE_ENTRY(CompressedTexImage1DARB), + TABLE_ENTRY(CompressedTexSubImage3DARB), + TABLE_ENTRY(CompressedTexSubImage2DARB), + TABLE_ENTRY(CompressedTexSubImage1DARB), + TABLE_ENTRY(GetCompressedTexImageARB), + /* GL_EXT_secondary_color */ + TABLE_ENTRY(SecondaryColor3bEXT), + TABLE_ENTRY(SecondaryColor3bvEXT), + TABLE_ENTRY(SecondaryColor3dEXT), + TABLE_ENTRY(SecondaryColor3dvEXT), + TABLE_ENTRY(SecondaryColor3fEXT), + TABLE_ENTRY(SecondaryColor3fvEXT), + TABLE_ENTRY(SecondaryColor3iEXT), + TABLE_ENTRY(SecondaryColor3ivEXT), + TABLE_ENTRY(SecondaryColor3sEXT), + TABLE_ENTRY(SecondaryColor3svEXT), + TABLE_ENTRY(SecondaryColor3ubEXT), + TABLE_ENTRY(SecondaryColor3ubvEXT), + TABLE_ENTRY(SecondaryColor3uiEXT), + TABLE_ENTRY(SecondaryColor3uivEXT), + TABLE_ENTRY(SecondaryColor3usEXT), + TABLE_ENTRY(SecondaryColor3usvEXT), + TABLE_ENTRY(SecondaryColorPointerEXT), + /* A whole bunch of no-op functions. These might be called + * when someone tries to call a dynamically-registered extension + * function without a current rendering context. + */ + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused), + TABLE_ENTRY(Unused) +}; +#endif /* DISPATCH_TABLE_NAME */ + + + +/* + * This is just used to silence compiler warnings. + * We list the functions which aren't otherwise used. + */ +#ifdef UNUSED_TABLE_NAME +void *UNUSED_TABLE_NAME[] = { + TABLE_ENTRY(BlendColorEXT), + TABLE_ENTRY(CopyTexSubImage3DEXT), + TABLE_ENTRY(TexImage3DEXT), + TABLE_ENTRY(TexSubImage3DEXT), + TABLE_ENTRY(CopyTexSubImage1DEXT), + TABLE_ENTRY(TexSubImage1DEXT), + TABLE_ENTRY(TexSubImage2DEXT), + TABLE_ENTRY(CopyTexImage1DEXT), + TABLE_ENTRY(CopyTexImage2DEXT), + TABLE_ENTRY(CopyTexSubImage2DEXT), + TABLE_ENTRY(HistogramEXT), + TABLE_ENTRY(MinmaxEXT), + TABLE_ENTRY(ResetHistogramEXT), + TABLE_ENTRY(ResetMinmaxEXT), + TABLE_ENTRY(ConvolutionFilter1DEXT), + TABLE_ENTRY(ConvolutionFilter2DEXT), + TABLE_ENTRY(ConvolutionParameterfEXT), + TABLE_ENTRY(ConvolutionParameterfvEXT), + TABLE_ENTRY(ConvolutionParameteriEXT), + TABLE_ENTRY(ConvolutionParameterivEXT), + TABLE_ENTRY(CopyConvolutionFilter1DEXT), + TABLE_ENTRY(CopyConvolutionFilter2DEXT), + TABLE_ENTRY(SeparableFilter2DEXT), + TABLE_ENTRY(ColorTableParameterfvSGI), + TABLE_ENTRY(ColorTableParameterivSGI), + TABLE_ENTRY(ColorTableSGI), + TABLE_ENTRY(CopyColorTableSGI), + TABLE_ENTRY(DeleteTexturesEXT), + TABLE_ENTRY(BindTextureEXT), + TABLE_ENTRY(PrioritizeTexturesEXT), + TABLE_ENTRY(GetPointervEXT), + TABLE_ENTRY(ArrayElementEXT), + TABLE_ENTRY(DrawArraysEXT), + TABLE_ENTRY(BlendEquationEXT), + TABLE_ENTRY(PointParameterfSGIS), + TABLE_ENTRY(PointParameterfvSGIS), + TABLE_ENTRY(ColorSubTableEXT), + TABLE_ENTRY(CopyColorSubTableEXT), + TABLE_ENTRY(ColorTableEXT), + TABLE_ENTRY(DrawRangeElementsEXT), + TABLE_ENTRY(BlendFuncSeparateINGR), + TABLE_ENTRY(SampleMaskEXT), + TABLE_ENTRY(SamplePatternEXT) +}; +#endif /*UNUSED_TABLE_NAME*/ + + #undef KEYWORD1 #undef KEYWORD2 #undef NAME #undef DISPATCH #undef RETURN_DISPATCH +#undef DISPATCH_TABLE_NAME +#undef UNUSED_TABLE_NAME +#undef TABLE_ENTRY diff --git a/src/mesa/main/Makefile.DJ b/src/mesa/main/Makefile.DJ index 89cbd82eca..4eaafa6079 100644 --- a/src/mesa/main/Makefile.DJ +++ b/src/mesa/main/Makefile.DJ @@ -1,29 +1,12 @@ -# $Id: Makefile.DJ,v 1.9 2000/09/26 21:22:20 brianp Exp $ +# $Id: Makefile.DJ,v 1.10 2001/03/28 17:19:58 brianp Exp $ # Mesa 3-D graphics library # Version: 3.5 -# Copyright (C) 1995-1998 Brian Paul -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Library General Public -# License as published by the Free Software Foundation; either -# version 2 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Library General Public License for more details. -# -# You should have received a copy of the GNU Library General Public -# License along with this library; if not, write to the Free -# Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - +# Copyright (C) 1995-2001 Brian Paul # Makefile for core library for MS-DOS using djgpp - - ##### MACROS ##### VPATH = RCS @@ -67,7 +50,6 @@ CORE_SOURCES = \ fog.c \ get.c \ glapi.c \ - glapinoop.c \ glthread.c \ hash.c \ hint.c \ diff --git a/src/mesa/main/Makefile.X11 b/src/mesa/main/Makefile.X11 index a2c0388f3b..fe2e4cece9 100644 --- a/src/mesa/main/Makefile.X11 +++ b/src/mesa/main/Makefile.X11 @@ -1,8 +1,8 @@ -# $Id: Makefile.X11,v 1.47 2001/03/19 02:25:35 keithw Exp $ +# $Id: Makefile.X11,v 1.48 2001/03/28 17:19:58 brianp Exp $ # Mesa 3-D graphics library # Version: 3.5 -# Copyright (C) 1995-2000 Brian Paul +# Copyright (C) 1995-2001 Brian Paul # Makefile for core library @@ -74,7 +74,6 @@ CORE_SOURCES = \ fog.c \ get.c \ glapi.c \ - glapinoop.c \ glthread.c \ hash.c \ highpc.c \ diff --git a/src/mesa/main/context.c b/src/mesa/main/context.c index c9f180ec0f..6a97bb828d 100644 --- a/src/mesa/main/context.c +++ b/src/mesa/main/context.c @@ -1,4 +1,4 @@ -/* $Id: context.c,v 1.130 2001/03/24 06:01:27 gareth Exp $ */ +/* $Id: context.c,v 1.131 2001/03/28 17:20:20 brianp Exp $ */ /* * Mesa 3-D graphics library @@ -39,7 +39,6 @@ #include "extensions.h" #include "fog.h" #include "get.h" -#include "glapinoop.h" #include "glthread.h" #include "hash.h" #include "imports.h" diff --git a/src/mesa/main/dispatch.c b/src/mesa/main/dispatch.c index 0b9b17effc..cc14c4b498 100644 --- a/src/mesa/main/dispatch.c +++ b/src/mesa/main/dispatch.c @@ -1,4 +1,4 @@ -/* $Id: dispatch.c,v 1.21 2001/03/26 23:36:51 brianp Exp $ */ +/* $Id: dispatch.c,v 1.22 2001/03/28 17:20:20 brianp Exp $ */ /* * Mesa 3-D graphics library @@ -28,9 +28,7 @@ /* * This file generates all the gl* function entyrpoints. * But if we're using X86-optimized dispatch (X86/glapi_x86.S) then - * each of the entrypoints will be prefixed with _glapi_fallback_* - * and will be called by the glapi_x86.S code when we're in thread- - * safe mode. + * we don't use this file's code. * * Eventually this file may be replaced by automatically generated * code from an API spec file. @@ -41,7 +39,6 @@ */ - #ifdef PC_HEADER #include "all.h" #else @@ -51,64 +48,21 @@ #include "glthread.h" #endif - +#if !defined(USE_X86_ASM) #define KEYWORD1 #define KEYWORD2 GLAPIENTRY -#if defined(USE_X86_ASM) && !defined(__WIN32__) && !defined(XF86DRI) -#define NAME(func) _glapi_fallback_##func -#elif defined(USE_MGL_NAMESPACE) +#if defined(USE_MGL_NAMESPACE) #define NAME(func) mgl##func #else #define NAME(func) gl##func #endif -#ifdef DEBUG - -#if 0 -static int -trace(void) -{ - static int trace = -1; - if (trace < 0) - trace = getenv("MESA_TRACE") ? 1 : 0; - return trace > 0; -} -#endif - -#define F stderr - -#define DISPATCH(FUNC, ARGS, MESSAGE) \ - const struct _glapi_table *dispatch; \ - dispatch = _glapi_Dispatch ? _glapi_Dispatch : _glapi_get_dispatch();\ - (dispatch->FUNC) ARGS - -#define RETURN_DISPATCH(FUNC, ARGS, MESSAGE) \ - const struct _glapi_table *dispatch; \ - dispatch = _glapi_Dispatch ? _glapi_Dispatch : _glapi_get_dispatch();\ - return (dispatch->FUNC) ARGS - -#if 0 - /* From both macros above... */ - if (trace()) { \ - fprintf MESSAGE; \ - fprintf(F, "\n"); \ - } -#endif - -#else - -#define DISPATCH(FUNC, ARGS, MESSAGE) \ - const struct _glapi_table *dispatch; \ - dispatch = _glapi_Dispatch ? _glapi_Dispatch : _glapi_get_dispatch();\ - (dispatch->FUNC) ARGS +#define DISPATCH(FUNC, ARGS, MESSAGE) \ + (_glapi_Dispatch->FUNC) ARGS -#define RETURN_DISPATCH(FUNC, ARGS, MESSAGE) \ - const struct _glapi_table *dispatch; \ - dispatch = _glapi_Dispatch ? _glapi_Dispatch : _glapi_get_dispatch();\ - return (dispatch->FUNC) ARGS - -#endif +#define RETURN_DISPATCH(FUNC, ARGS, MESSAGE) \ + return (_glapi_Dispatch->FUNC) ARGS #ifndef GLAPIENTRY @@ -116,3 +70,6 @@ trace(void) #endif #include "glapitemp.h" + + +#endif /* USE_X86_ASM */ -- cgit v1.2.3