diff options
| -rw-r--r-- | src/mesa/glapi/gl_API.xml | 24 | ||||
| -rw-r--r-- | src/mesa/glapi/glapioffsets.h | 3 | ||||
| -rw-r--r-- | src/mesa/glapi/glapitable.h | 3 | ||||
| -rw-r--r-- | src/mesa/glapi/glapitemp.h | 18 | ||||
| -rw-r--r-- | src/mesa/glapi/glprocs.h | 362 | ||||
| -rw-r--r-- | src/mesa/main/dd.h | 11 | ||||
| -rw-r--r-- | src/mesa/main/dlist.c | 80 | ||||
| -rw-r--r-- | src/mesa/main/state.c | 5 | ||||
| -rw-r--r-- | src/mesa/main/stencil.c | 174 | ||||
| -rw-r--r-- | src/mesa/main/stencil.h | 16 | 
10 files changed, 512 insertions, 184 deletions
| diff --git a/src/mesa/glapi/gl_API.xml b/src/mesa/glapi/gl_API.xml index 662f20afb9..367c63ca66 100644 --- a/src/mesa/glapi/gl_API.xml +++ b/src/mesa/glapi/gl_API.xml @@ -4252,6 +4252,30 @@ glx:  </category> +<category name="2.0"> +    <!-- XXX this section is very much incomplete!!! --> +    <!-- These function offsets may change too!!! --> + +    <function name="StencilFuncSeparate" offset="796"> +        <param name="face" type="GLenum"/> +        <param name="func" type="GLenum"/> +        <param name="ref" type="GLint"/> +        <param name="mask" type="GLuint"/> +    </function> + +    <function name="StencilOpSeparate" offset="797"> +        <param name="face" type="GLenum"/> +        <param name="fail" type="GLenum"/> +        <param name="zfail" type="GLenum"/> +        <param name="zpass" type="GLenum"/> +    </function> + +    <function name="StencilMaskSeparate" offset="798"> +        <param name="face" type="GLenum"/> +        <param name="mask" type="GLuint"/> +    </function> +</category> +  <!-- ARB extensions sorted by extension number. --> diff --git a/src/mesa/glapi/glapioffsets.h b/src/mesa/glapi/glapioffsets.h index 2bd36e4110..c4431a79a5 100644 --- a/src/mesa/glapi/glapioffsets.h +++ b/src/mesa/glapi/glapioffsets.h @@ -825,5 +825,8 @@  #define _gloffset_AlphaFragmentOp2ATI 793  #define _gloffset_AlphaFragmentOp3ATI 794  #define _gloffset_SetFragmentShaderConstantATI 795 +#define _gloffset_StencilFuncSeparate 796 +#define _gloffset_StencilOpSeparate 797 +#define _gloffset_StencilMaskSeparate 798  #endif diff --git a/src/mesa/glapi/glapitable.h b/src/mesa/glapi/glapitable.h index cc63407a40..48692540d5 100644 --- a/src/mesa/glapi/glapitable.h +++ b/src/mesa/glapi/glapitable.h @@ -831,6 +831,9 @@ struct _glapi_table     void (GLAPIENTRYP AlphaFragmentOp2ATI)(GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); /* 793 */     void (GLAPIENTRYP AlphaFragmentOp3ATI)(GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod); /* 794 */     void (GLAPIENTRYP SetFragmentShaderConstantATI)(GLuint dst, const GLfloat * value); /* 795 */ +   void (GLAPIENTRYP StencilFuncSeparate)(GLenum face, GLenum func, GLint ref, GLuint mask); /* 796 */ +   void (GLAPIENTRYP StencilOpSeparate)(GLenum face, GLenum fail, GLenum zfail, GLenum zpass); /* 797 */ +   void (GLAPIENTRYP StencilMaskSeparate)(GLenum face, GLuint mask); /* 798 */  };  #endif diff --git a/src/mesa/glapi/glapitemp.h b/src/mesa/glapi/glapitemp.h index d6da59cd81..511f1c7c81 100644 --- a/src/mesa/glapi/glapitemp.h +++ b/src/mesa/glapi/glapitemp.h @@ -4050,6 +4050,21 @@ KEYWORD1 void KEYWORD2 NAME(SetFragmentShaderConstantATI)(GLuint dst, const GLfl     DISPATCH(SetFragmentShaderConstantATI, (dst, value), (F, "glSetFragmentShaderConstantATI(%d, %p);\n", dst, (const void *) value));  } +KEYWORD1 void KEYWORD2 NAME(StencilFuncSeparate)(GLenum face, GLenum func, GLint ref, GLuint mask) +{ +   DISPATCH(StencilFuncSeparate, (face, func, ref, mask), (F, "glStencilFuncSeparate(0x%x, 0x%x, %d, %d);\n", face, func, ref, mask)); +} + +KEYWORD1 void KEYWORD2 NAME(StencilOpSeparate)(GLenum face, GLenum fail, GLenum zfail, GLenum zpass) +{ +   DISPATCH(StencilOpSeparate, (face, fail, zfail, zpass), (F, "glStencilOpSeparate(0x%x, 0x%x, 0x%x, 0x%x);\n", face, fail, zfail, zpass)); +} + +KEYWORD1 void KEYWORD2 NAME(StencilMaskSeparate)(GLenum face, GLuint mask) +{ +   DISPATCH(StencilMaskSeparate, (face, mask), (F, "glStencilMaskSeparate(0x%x, %d);\n", face, mask)); +} +  KEYWORD1 void KEYWORD2 NAME(ActiveTexture)(GLenum texture)  {     DISPATCH(ActiveTextureARB, (texture), (F, "glActiveTexture(0x%x);\n", texture)); @@ -5750,6 +5765,9 @@ static _glapi_proc DISPATCH_TABLE_NAME[] = {     TABLE_ENTRY(AlphaFragmentOp2ATI),     TABLE_ENTRY(AlphaFragmentOp3ATI),     TABLE_ENTRY(SetFragmentShaderConstantATI), +   TABLE_ENTRY(StencilFuncSeparate), +   TABLE_ENTRY(StencilOpSeparate), +   TABLE_ENTRY(StencilMaskSeparate),     /* 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. diff --git a/src/mesa/glapi/glprocs.h b/src/mesa/glapi/glprocs.h index bdf9339cc1..c62fbab1f1 100644 --- a/src/mesa/glapi/glprocs.h +++ b/src/mesa/glapi/glprocs.h @@ -842,6 +842,9 @@ static const char gl_string_table[] =      "glAlphaFragmentOp2ATI\0"      "glAlphaFragmentOp3ATI\0"      "glSetFragmentShaderConstantATI\0" +    "glStencilFuncSeparate\0" +    "glStencilOpSeparate\0" +    "glStencilMaskSeparate\0"      "glActiveTexture\0"      "glClientActiveTexture\0"      "glMultiTexCoord1d\0" @@ -1819,184 +1822,187 @@ static const glprocs_table_t static_functions[] = {      NAME_FUNC_OFFSET( 14105, glAlphaFragmentOp2ATI, _gloffset_AlphaFragmentOp2ATI ),      NAME_FUNC_OFFSET( 14127, glAlphaFragmentOp3ATI, _gloffset_AlphaFragmentOp3ATI ),      NAME_FUNC_OFFSET( 14149, glSetFragmentShaderConstantATI, _gloffset_SetFragmentShaderConstantATI ), -    NAME_FUNC_OFFSET( 14180, glActiveTexture, _gloffset_ActiveTextureARB ), -    NAME_FUNC_OFFSET( 14196, glClientActiveTexture, _gloffset_ClientActiveTextureARB ), -    NAME_FUNC_OFFSET( 14218, glMultiTexCoord1d, _gloffset_MultiTexCoord1dARB ), -    NAME_FUNC_OFFSET( 14236, glMultiTexCoord1dv, _gloffset_MultiTexCoord1dvARB ), -    NAME_FUNC_OFFSET( 14255, glMultiTexCoord1f, _gloffset_MultiTexCoord1fARB ), -    NAME_FUNC_OFFSET( 14273, glMultiTexCoord1fv, _gloffset_MultiTexCoord1fvARB ), -    NAME_FUNC_OFFSET( 14292, glMultiTexCoord1i, _gloffset_MultiTexCoord1iARB ), -    NAME_FUNC_OFFSET( 14310, glMultiTexCoord1iv, _gloffset_MultiTexCoord1ivARB ), -    NAME_FUNC_OFFSET( 14329, glMultiTexCoord1s, _gloffset_MultiTexCoord1sARB ), -    NAME_FUNC_OFFSET( 14347, glMultiTexCoord1sv, _gloffset_MultiTexCoord1svARB ), -    NAME_FUNC_OFFSET( 14366, glMultiTexCoord2d, _gloffset_MultiTexCoord2dARB ), -    NAME_FUNC_OFFSET( 14384, glMultiTexCoord2dv, _gloffset_MultiTexCoord2dvARB ), -    NAME_FUNC_OFFSET( 14403, glMultiTexCoord2f, _gloffset_MultiTexCoord2fARB ), -    NAME_FUNC_OFFSET( 14421, glMultiTexCoord2fv, _gloffset_MultiTexCoord2fvARB ), -    NAME_FUNC_OFFSET( 14440, glMultiTexCoord2i, _gloffset_MultiTexCoord2iARB ), -    NAME_FUNC_OFFSET( 14458, glMultiTexCoord2iv, _gloffset_MultiTexCoord2ivARB ), -    NAME_FUNC_OFFSET( 14477, glMultiTexCoord2s, _gloffset_MultiTexCoord2sARB ), -    NAME_FUNC_OFFSET( 14495, glMultiTexCoord2sv, _gloffset_MultiTexCoord2svARB ), -    NAME_FUNC_OFFSET( 14514, glMultiTexCoord3d, _gloffset_MultiTexCoord3dARB ), -    NAME_FUNC_OFFSET( 14532, glMultiTexCoord3dv, _gloffset_MultiTexCoord3dvARB ), -    NAME_FUNC_OFFSET( 14551, glMultiTexCoord3f, _gloffset_MultiTexCoord3fARB ), -    NAME_FUNC_OFFSET( 14569, glMultiTexCoord3fv, _gloffset_MultiTexCoord3fvARB ), -    NAME_FUNC_OFFSET( 14588, glMultiTexCoord3i, _gloffset_MultiTexCoord3iARB ), -    NAME_FUNC_OFFSET( 14606, glMultiTexCoord3iv, _gloffset_MultiTexCoord3ivARB ), -    NAME_FUNC_OFFSET( 14625, glMultiTexCoord3s, _gloffset_MultiTexCoord3sARB ), -    NAME_FUNC_OFFSET( 14643, glMultiTexCoord3sv, _gloffset_MultiTexCoord3svARB ), -    NAME_FUNC_OFFSET( 14662, glMultiTexCoord4d, _gloffset_MultiTexCoord4dARB ), -    NAME_FUNC_OFFSET( 14680, glMultiTexCoord4dv, _gloffset_MultiTexCoord4dvARB ), -    NAME_FUNC_OFFSET( 14699, glMultiTexCoord4f, _gloffset_MultiTexCoord4fARB ), -    NAME_FUNC_OFFSET( 14717, glMultiTexCoord4fv, _gloffset_MultiTexCoord4fvARB ), -    NAME_FUNC_OFFSET( 14736, glMultiTexCoord4i, _gloffset_MultiTexCoord4iARB ), -    NAME_FUNC_OFFSET( 14754, glMultiTexCoord4iv, _gloffset_MultiTexCoord4ivARB ), -    NAME_FUNC_OFFSET( 14773, glMultiTexCoord4s, _gloffset_MultiTexCoord4sARB ), -    NAME_FUNC_OFFSET( 14791, glMultiTexCoord4sv, _gloffset_MultiTexCoord4svARB ), -    NAME_FUNC_OFFSET( 14810, glLoadTransposeMatrixf, _gloffset_LoadTransposeMatrixfARB ), -    NAME_FUNC_OFFSET( 14833, glLoadTransposeMatrixd, _gloffset_LoadTransposeMatrixdARB ), -    NAME_FUNC_OFFSET( 14856, glMultTransposeMatrixf, _gloffset_MultTransposeMatrixfARB ), -    NAME_FUNC_OFFSET( 14879, glMultTransposeMatrixd, _gloffset_MultTransposeMatrixdARB ), -    NAME_FUNC_OFFSET( 14902, glSampleCoverage, _gloffset_SampleCoverageARB ), -    NAME_FUNC_OFFSET( 14919, glCompressedTexImage3D, _gloffset_CompressedTexImage3DARB ), -    NAME_FUNC_OFFSET( 14942, glCompressedTexImage2D, _gloffset_CompressedTexImage2DARB ), -    NAME_FUNC_OFFSET( 14965, glCompressedTexImage1D, _gloffset_CompressedTexImage1DARB ), -    NAME_FUNC_OFFSET( 14988, glCompressedTexSubImage3D, _gloffset_CompressedTexSubImage3DARB ), -    NAME_FUNC_OFFSET( 15014, glCompressedTexSubImage2D, _gloffset_CompressedTexSubImage2DARB ), -    NAME_FUNC_OFFSET( 15040, glCompressedTexSubImage1D, _gloffset_CompressedTexSubImage1DARB ), -    NAME_FUNC_OFFSET( 15066, glGetCompressedTexImage, _gloffset_GetCompressedTexImageARB ), -    NAME_FUNC_OFFSET( 15090, glBlendFuncSeparate, _gloffset_BlendFuncSeparateEXT ), -    NAME_FUNC_OFFSET( 15110, glFogCoordf, _gloffset_FogCoordfEXT ), -    NAME_FUNC_OFFSET( 15122, glFogCoordfv, _gloffset_FogCoordfvEXT ), -    NAME_FUNC_OFFSET( 15135, glFogCoordd, _gloffset_FogCoorddEXT ), -    NAME_FUNC_OFFSET( 15147, glFogCoorddv, _gloffset_FogCoorddvEXT ), -    NAME_FUNC_OFFSET( 15160, glFogCoordPointer, _gloffset_FogCoordPointerEXT ), -    NAME_FUNC_OFFSET( 15178, glMultiDrawArrays, _gloffset_MultiDrawArraysEXT ), -    NAME_FUNC_OFFSET( 15196, glMultiDrawElements, _gloffset_MultiDrawElementsEXT ), -    NAME_FUNC_OFFSET( 15216, glPointParameterf, _gloffset_PointParameterfEXT ), -    NAME_FUNC_OFFSET( 15234, glPointParameterfv, _gloffset_PointParameterfvEXT ), -    NAME_FUNC_OFFSET( 15253, glPointParameteri, _gloffset_PointParameteriNV ), -    NAME_FUNC_OFFSET( 15271, glPointParameteriv, _gloffset_PointParameterivNV ), -    NAME_FUNC_OFFSET( 15290, glSecondaryColor3b, _gloffset_SecondaryColor3bEXT ), -    NAME_FUNC_OFFSET( 15309, glSecondaryColor3bv, _gloffset_SecondaryColor3bvEXT ), -    NAME_FUNC_OFFSET( 15329, glSecondaryColor3d, _gloffset_SecondaryColor3dEXT ), -    NAME_FUNC_OFFSET( 15348, glSecondaryColor3dv, _gloffset_SecondaryColor3dvEXT ), -    NAME_FUNC_OFFSET( 15368, glSecondaryColor3f, _gloffset_SecondaryColor3fEXT ), -    NAME_FUNC_OFFSET( 15387, glSecondaryColor3fv, _gloffset_SecondaryColor3fvEXT ), -    NAME_FUNC_OFFSET( 15407, glSecondaryColor3i, _gloffset_SecondaryColor3iEXT ), -    NAME_FUNC_OFFSET( 15426, glSecondaryColor3iv, _gloffset_SecondaryColor3ivEXT ), -    NAME_FUNC_OFFSET( 15446, glSecondaryColor3s, _gloffset_SecondaryColor3sEXT ), -    NAME_FUNC_OFFSET( 15465, glSecondaryColor3sv, _gloffset_SecondaryColor3svEXT ), -    NAME_FUNC_OFFSET( 15485, glSecondaryColor3ub, _gloffset_SecondaryColor3ubEXT ), -    NAME_FUNC_OFFSET( 15505, glSecondaryColor3ubv, _gloffset_SecondaryColor3ubvEXT ), -    NAME_FUNC_OFFSET( 15526, glSecondaryColor3ui, _gloffset_SecondaryColor3uiEXT ), -    NAME_FUNC_OFFSET( 15546, glSecondaryColor3uiv, _gloffset_SecondaryColor3uivEXT ), -    NAME_FUNC_OFFSET( 15567, glSecondaryColor3us, _gloffset_SecondaryColor3usEXT ), -    NAME_FUNC_OFFSET( 15587, glSecondaryColor3usv, _gloffset_SecondaryColor3usvEXT ), -    NAME_FUNC_OFFSET( 15608, glSecondaryColorPointer, _gloffset_SecondaryColorPointerEXT ), -    NAME_FUNC_OFFSET( 15632, glWindowPos2d, _gloffset_WindowPos2dMESA ), -    NAME_FUNC_OFFSET( 15646, glWindowPos2dv, _gloffset_WindowPos2dvMESA ), -    NAME_FUNC_OFFSET( 15661, glWindowPos2f, _gloffset_WindowPos2fMESA ), -    NAME_FUNC_OFFSET( 15675, glWindowPos2fv, _gloffset_WindowPos2fvMESA ), -    NAME_FUNC_OFFSET( 15690, glWindowPos2i, _gloffset_WindowPos2iMESA ), -    NAME_FUNC_OFFSET( 15704, glWindowPos2iv, _gloffset_WindowPos2ivMESA ), -    NAME_FUNC_OFFSET( 15719, glWindowPos2s, _gloffset_WindowPos2sMESA ), -    NAME_FUNC_OFFSET( 15733, glWindowPos2sv, _gloffset_WindowPos2svMESA ), -    NAME_FUNC_OFFSET( 15748, glWindowPos3d, _gloffset_WindowPos3dMESA ), -    NAME_FUNC_OFFSET( 15762, glWindowPos3dv, _gloffset_WindowPos3dvMESA ), -    NAME_FUNC_OFFSET( 15777, glWindowPos3f, _gloffset_WindowPos3fMESA ), -    NAME_FUNC_OFFSET( 15791, glWindowPos3fv, _gloffset_WindowPos3fvMESA ), -    NAME_FUNC_OFFSET( 15806, glWindowPos3i, _gloffset_WindowPos3iMESA ), -    NAME_FUNC_OFFSET( 15820, glWindowPos3iv, _gloffset_WindowPos3ivMESA ), -    NAME_FUNC_OFFSET( 15835, glWindowPos3s, _gloffset_WindowPos3sMESA ), -    NAME_FUNC_OFFSET( 15849, glWindowPos3sv, _gloffset_WindowPos3svMESA ), -    NAME_FUNC_OFFSET( 15864, glBindBuffer, _gloffset_BindBufferARB ), -    NAME_FUNC_OFFSET( 15877, glBufferData, _gloffset_BufferDataARB ), -    NAME_FUNC_OFFSET( 15890, glBufferSubData, _gloffset_BufferSubDataARB ), -    NAME_FUNC_OFFSET( 15906, glDeleteBuffers, _gloffset_DeleteBuffersARB ), -    NAME_FUNC_OFFSET( 15922, glGenBuffers, _gloffset_GenBuffersARB ), -    NAME_FUNC_OFFSET( 15935, glGetBufferParameteriv, _gloffset_GetBufferParameterivARB ), -    NAME_FUNC_OFFSET( 15958, glGetBufferPointerv, _gloffset_GetBufferPointervARB ), -    NAME_FUNC_OFFSET( 15978, glGetBufferSubData, _gloffset_GetBufferSubDataARB ), -    NAME_FUNC_OFFSET( 15997, glIsBuffer, _gloffset_IsBufferARB ), -    NAME_FUNC_OFFSET( 16008, glMapBuffer, _gloffset_MapBufferARB ), -    NAME_FUNC_OFFSET( 16020, glUnmapBuffer, _gloffset_UnmapBufferARB ), -    NAME_FUNC_OFFSET( 16034, glGenQueries, _gloffset_GenQueriesARB ), -    NAME_FUNC_OFFSET( 16047, glDeleteQueries, _gloffset_DeleteQueriesARB ), -    NAME_FUNC_OFFSET( 16063, glIsQuery, _gloffset_IsQueryARB ), -    NAME_FUNC_OFFSET( 16073, glBeginQuery, _gloffset_BeginQueryARB ), -    NAME_FUNC_OFFSET( 16086, glEndQuery, _gloffset_EndQueryARB ), -    NAME_FUNC_OFFSET( 16097, glGetQueryiv, _gloffset_GetQueryivARB ), -    NAME_FUNC_OFFSET( 16110, glGetQueryObjectiv, _gloffset_GetQueryObjectivARB ), -    NAME_FUNC_OFFSET( 16129, glGetQueryObjectuiv, _gloffset_GetQueryObjectuivARB ), -    NAME_FUNC_OFFSET( 16149, glPointParameterfARB, _gloffset_PointParameterfEXT ), -    NAME_FUNC_OFFSET( 16170, glPointParameterfvARB, _gloffset_PointParameterfvEXT ), -    NAME_FUNC_OFFSET( 16192, glWindowPos2dARB, _gloffset_WindowPos2dMESA ), -    NAME_FUNC_OFFSET( 16209, glWindowPos2fARB, _gloffset_WindowPos2fMESA ), -    NAME_FUNC_OFFSET( 16226, glWindowPos2iARB, _gloffset_WindowPos2iMESA ), -    NAME_FUNC_OFFSET( 16243, glWindowPos2sARB, _gloffset_WindowPos2sMESA ), -    NAME_FUNC_OFFSET( 16260, glWindowPos2dvARB, _gloffset_WindowPos2dvMESA ), -    NAME_FUNC_OFFSET( 16278, glWindowPos2fvARB, _gloffset_WindowPos2fvMESA ), -    NAME_FUNC_OFFSET( 16296, glWindowPos2ivARB, _gloffset_WindowPos2ivMESA ), -    NAME_FUNC_OFFSET( 16314, glWindowPos2svARB, _gloffset_WindowPos2svMESA ), -    NAME_FUNC_OFFSET( 16332, glWindowPos3dARB, _gloffset_WindowPos3dMESA ), -    NAME_FUNC_OFFSET( 16349, glWindowPos3fARB, _gloffset_WindowPos3fMESA ), -    NAME_FUNC_OFFSET( 16366, glWindowPos3iARB, _gloffset_WindowPos3iMESA ), -    NAME_FUNC_OFFSET( 16383, glWindowPos3sARB, _gloffset_WindowPos3sMESA ), -    NAME_FUNC_OFFSET( 16400, glWindowPos3dvARB, _gloffset_WindowPos3dvMESA ), -    NAME_FUNC_OFFSET( 16418, glWindowPos3fvARB, _gloffset_WindowPos3fvMESA ), -    NAME_FUNC_OFFSET( 16436, glWindowPos3ivARB, _gloffset_WindowPos3ivMESA ), -    NAME_FUNC_OFFSET( 16454, glWindowPos3svARB, _gloffset_WindowPos3svMESA ), -    NAME_FUNC_OFFSET( 16472, glBindProgramARB, _gloffset_BindProgramNV ), -    NAME_FUNC_OFFSET( 16489, glDeleteProgramsARB, _gloffset_DeleteProgramsNV ), -    NAME_FUNC_OFFSET( 16509, glGenProgramsARB, _gloffset_GenProgramsNV ), -    NAME_FUNC_OFFSET( 16526, glIsProgramARB, _gloffset_IsProgramNV ), -    NAME_FUNC_OFFSET( 16541, glGetVertexAttribPointervARB, _gloffset_GetVertexAttribPointervNV ), -    NAME_FUNC_OFFSET( 16570, glBlendColorEXT, _gloffset_BlendColor ), -    NAME_FUNC_OFFSET( 16586, glTexImage3DEXT, _gloffset_TexImage3D ), -    NAME_FUNC_OFFSET( 16602, glTexSubImage3DEXT, _gloffset_TexSubImage3D ), -    NAME_FUNC_OFFSET( 16621, glTexSubImage1DEXT, _gloffset_TexSubImage1D ), -    NAME_FUNC_OFFSET( 16640, glTexSubImage2DEXT, _gloffset_TexSubImage2D ), -    NAME_FUNC_OFFSET( 16659, glCopyTexImage1DEXT, _gloffset_CopyTexImage1D ), -    NAME_FUNC_OFFSET( 16679, glCopyTexImage2DEXT, _gloffset_CopyTexImage2D ), -    NAME_FUNC_OFFSET( 16699, glCopyTexSubImage1DEXT, _gloffset_CopyTexSubImage1D ), -    NAME_FUNC_OFFSET( 16722, glCopyTexSubImage2DEXT, _gloffset_CopyTexSubImage2D ), -    NAME_FUNC_OFFSET( 16745, glCopyTexSubImage3DEXT, _gloffset_CopyTexSubImage3D ), -    NAME_FUNC_OFFSET( 16768, glHistogramEXT, _gloffset_Histogram ), -    NAME_FUNC_OFFSET( 16783, glMinmaxEXT, _gloffset_Minmax ), -    NAME_FUNC_OFFSET( 16795, glResetHistogramEXT, _gloffset_ResetHistogram ), -    NAME_FUNC_OFFSET( 16815, glResetMinmaxEXT, _gloffset_ResetMinmax ), -    NAME_FUNC_OFFSET( 16832, glConvolutionFilter1DEXT, _gloffset_ConvolutionFilter1D ), -    NAME_FUNC_OFFSET( 16857, glConvolutionFilter2DEXT, _gloffset_ConvolutionFilter2D ), -    NAME_FUNC_OFFSET( 16882, glConvolutionParameterfEXT, _gloffset_ConvolutionParameterf ), -    NAME_FUNC_OFFSET( 16909, glConvolutionParameterfvEXT, _gloffset_ConvolutionParameterfv ), -    NAME_FUNC_OFFSET( 16937, glConvolutionParameteriEXT, _gloffset_ConvolutionParameteri ), -    NAME_FUNC_OFFSET( 16964, glConvolutionParameterivEXT, _gloffset_ConvolutionParameteriv ), -    NAME_FUNC_OFFSET( 16992, glCopyConvolutionFilter1DEXT, _gloffset_CopyConvolutionFilter1D ), -    NAME_FUNC_OFFSET( 17021, glCopyConvolutionFilter2DEXT, _gloffset_CopyConvolutionFilter2D ), -    NAME_FUNC_OFFSET( 17050, glSeparableFilter2DEXT, _gloffset_SeparableFilter2D ), -    NAME_FUNC_OFFSET( 17073, glColorTableSGI, _gloffset_ColorTable ), -    NAME_FUNC_OFFSET( 17089, glColorTableParameterfvSGI, _gloffset_ColorTableParameterfv ), -    NAME_FUNC_OFFSET( 17116, glColorTableParameterivSGI, _gloffset_ColorTableParameteriv ), -    NAME_FUNC_OFFSET( 17143, glCopyColorTableSGI, _gloffset_CopyColorTable ), -    NAME_FUNC_OFFSET( 17163, glBindTextureEXT, _gloffset_BindTexture ), -    NAME_FUNC_OFFSET( 17180, glDeleteTexturesEXT, _gloffset_DeleteTextures ), -    NAME_FUNC_OFFSET( 17200, glPrioritizeTexturesEXT, _gloffset_PrioritizeTextures ), -    NAME_FUNC_OFFSET( 17224, glArrayElementEXT, _gloffset_ArrayElement ), -    NAME_FUNC_OFFSET( 17242, glDrawArraysEXT, _gloffset_DrawArrays ), -    NAME_FUNC_OFFSET( 17258, glGetPointervEXT, _gloffset_GetPointerv ), -    NAME_FUNC_OFFSET( 17275, glBlendEquationEXT, _gloffset_BlendEquation ), -    NAME_FUNC_OFFSET( 17294, glColorSubTableEXT, _gloffset_ColorSubTable ), -    NAME_FUNC_OFFSET( 17313, glCopyColorSubTableEXT, _gloffset_CopyColorSubTable ), -    NAME_FUNC_OFFSET( 17336, glColorTableEXT, _gloffset_ColorTable ), -    NAME_FUNC_OFFSET( 17352, glDrawRangeElementsEXT, _gloffset_DrawRangeElements ), -    NAME_FUNC_OFFSET( 17375, glSampleMaskEXT, _gloffset_SampleMaskSGIS ), -    NAME_FUNC_OFFSET( 17391, glSamplePatternEXT, _gloffset_SamplePatternSGIS ), -    NAME_FUNC_OFFSET( 17410, glDrawBuffersATI, _gloffset_DrawBuffersARB ), -    NAME_FUNC_OFFSET( 17427, glBlendEquationSeparateATI, _gloffset_BlendEquationSeparateEXT ), -    NAME_FUNC_OFFSET( 17454, glBlendFuncSeparateINGR, _gloffset_BlendFuncSeparateEXT ), -    NAME_FUNC_OFFSET( 17478, glPointParameterfSGIS, _gloffset_PointParameterfEXT ), -    NAME_FUNC_OFFSET( 17500, glPointParameterfvSGIS, _gloffset_PointParameterfvEXT ), +    NAME_FUNC_OFFSET( 14180, glStencilFuncSeparate, _gloffset_StencilFuncSeparate ), +    NAME_FUNC_OFFSET( 14202, glStencilOpSeparate, _gloffset_StencilOpSeparate ), +    NAME_FUNC_OFFSET( 14222, glStencilMaskSeparate, _gloffset_StencilMaskSeparate ), +    NAME_FUNC_OFFSET( 14244, glActiveTexture, _gloffset_ActiveTextureARB ), +    NAME_FUNC_OFFSET( 14260, glClientActiveTexture, _gloffset_ClientActiveTextureARB ), +    NAME_FUNC_OFFSET( 14282, glMultiTexCoord1d, _gloffset_MultiTexCoord1dARB ), +    NAME_FUNC_OFFSET( 14300, glMultiTexCoord1dv, _gloffset_MultiTexCoord1dvARB ), +    NAME_FUNC_OFFSET( 14319, glMultiTexCoord1f, _gloffset_MultiTexCoord1fARB ), +    NAME_FUNC_OFFSET( 14337, glMultiTexCoord1fv, _gloffset_MultiTexCoord1fvARB ), +    NAME_FUNC_OFFSET( 14356, glMultiTexCoord1i, _gloffset_MultiTexCoord1iARB ), +    NAME_FUNC_OFFSET( 14374, glMultiTexCoord1iv, _gloffset_MultiTexCoord1ivARB ), +    NAME_FUNC_OFFSET( 14393, glMultiTexCoord1s, _gloffset_MultiTexCoord1sARB ), +    NAME_FUNC_OFFSET( 14411, glMultiTexCoord1sv, _gloffset_MultiTexCoord1svARB ), +    NAME_FUNC_OFFSET( 14430, glMultiTexCoord2d, _gloffset_MultiTexCoord2dARB ), +    NAME_FUNC_OFFSET( 14448, glMultiTexCoord2dv, _gloffset_MultiTexCoord2dvARB ), +    NAME_FUNC_OFFSET( 14467, glMultiTexCoord2f, _gloffset_MultiTexCoord2fARB ), +    NAME_FUNC_OFFSET( 14485, glMultiTexCoord2fv, _gloffset_MultiTexCoord2fvARB ), +    NAME_FUNC_OFFSET( 14504, glMultiTexCoord2i, _gloffset_MultiTexCoord2iARB ), +    NAME_FUNC_OFFSET( 14522, glMultiTexCoord2iv, _gloffset_MultiTexCoord2ivARB ), +    NAME_FUNC_OFFSET( 14541, glMultiTexCoord2s, _gloffset_MultiTexCoord2sARB ), +    NAME_FUNC_OFFSET( 14559, glMultiTexCoord2sv, _gloffset_MultiTexCoord2svARB ), +    NAME_FUNC_OFFSET( 14578, glMultiTexCoord3d, _gloffset_MultiTexCoord3dARB ), +    NAME_FUNC_OFFSET( 14596, glMultiTexCoord3dv, _gloffset_MultiTexCoord3dvARB ), +    NAME_FUNC_OFFSET( 14615, glMultiTexCoord3f, _gloffset_MultiTexCoord3fARB ), +    NAME_FUNC_OFFSET( 14633, glMultiTexCoord3fv, _gloffset_MultiTexCoord3fvARB ), +    NAME_FUNC_OFFSET( 14652, glMultiTexCoord3i, _gloffset_MultiTexCoord3iARB ), +    NAME_FUNC_OFFSET( 14670, glMultiTexCoord3iv, _gloffset_MultiTexCoord3ivARB ), +    NAME_FUNC_OFFSET( 14689, glMultiTexCoord3s, _gloffset_MultiTexCoord3sARB ), +    NAME_FUNC_OFFSET( 14707, glMultiTexCoord3sv, _gloffset_MultiTexCoord3svARB ), +    NAME_FUNC_OFFSET( 14726, glMultiTexCoord4d, _gloffset_MultiTexCoord4dARB ), +    NAME_FUNC_OFFSET( 14744, glMultiTexCoord4dv, _gloffset_MultiTexCoord4dvARB ), +    NAME_FUNC_OFFSET( 14763, glMultiTexCoord4f, _gloffset_MultiTexCoord4fARB ), +    NAME_FUNC_OFFSET( 14781, glMultiTexCoord4fv, _gloffset_MultiTexCoord4fvARB ), +    NAME_FUNC_OFFSET( 14800, glMultiTexCoord4i, _gloffset_MultiTexCoord4iARB ), +    NAME_FUNC_OFFSET( 14818, glMultiTexCoord4iv, _gloffset_MultiTexCoord4ivARB ), +    NAME_FUNC_OFFSET( 14837, glMultiTexCoord4s, _gloffset_MultiTexCoord4sARB ), +    NAME_FUNC_OFFSET( 14855, glMultiTexCoord4sv, _gloffset_MultiTexCoord4svARB ), +    NAME_FUNC_OFFSET( 14874, glLoadTransposeMatrixf, _gloffset_LoadTransposeMatrixfARB ), +    NAME_FUNC_OFFSET( 14897, glLoadTransposeMatrixd, _gloffset_LoadTransposeMatrixdARB ), +    NAME_FUNC_OFFSET( 14920, glMultTransposeMatrixf, _gloffset_MultTransposeMatrixfARB ), +    NAME_FUNC_OFFSET( 14943, glMultTransposeMatrixd, _gloffset_MultTransposeMatrixdARB ), +    NAME_FUNC_OFFSET( 14966, glSampleCoverage, _gloffset_SampleCoverageARB ), +    NAME_FUNC_OFFSET( 14983, glCompressedTexImage3D, _gloffset_CompressedTexImage3DARB ), +    NAME_FUNC_OFFSET( 15006, glCompressedTexImage2D, _gloffset_CompressedTexImage2DARB ), +    NAME_FUNC_OFFSET( 15029, glCompressedTexImage1D, _gloffset_CompressedTexImage1DARB ), +    NAME_FUNC_OFFSET( 15052, glCompressedTexSubImage3D, _gloffset_CompressedTexSubImage3DARB ), +    NAME_FUNC_OFFSET( 15078, glCompressedTexSubImage2D, _gloffset_CompressedTexSubImage2DARB ), +    NAME_FUNC_OFFSET( 15104, glCompressedTexSubImage1D, _gloffset_CompressedTexSubImage1DARB ), +    NAME_FUNC_OFFSET( 15130, glGetCompressedTexImage, _gloffset_GetCompressedTexImageARB ), +    NAME_FUNC_OFFSET( 15154, glBlendFuncSeparate, _gloffset_BlendFuncSeparateEXT ), +    NAME_FUNC_OFFSET( 15174, glFogCoordf, _gloffset_FogCoordfEXT ), +    NAME_FUNC_OFFSET( 15186, glFogCoordfv, _gloffset_FogCoordfvEXT ), +    NAME_FUNC_OFFSET( 15199, glFogCoordd, _gloffset_FogCoorddEXT ), +    NAME_FUNC_OFFSET( 15211, glFogCoorddv, _gloffset_FogCoorddvEXT ), +    NAME_FUNC_OFFSET( 15224, glFogCoordPointer, _gloffset_FogCoordPointerEXT ), +    NAME_FUNC_OFFSET( 15242, glMultiDrawArrays, _gloffset_MultiDrawArraysEXT ), +    NAME_FUNC_OFFSET( 15260, glMultiDrawElements, _gloffset_MultiDrawElementsEXT ), +    NAME_FUNC_OFFSET( 15280, glPointParameterf, _gloffset_PointParameterfEXT ), +    NAME_FUNC_OFFSET( 15298, glPointParameterfv, _gloffset_PointParameterfvEXT ), +    NAME_FUNC_OFFSET( 15317, glPointParameteri, _gloffset_PointParameteriNV ), +    NAME_FUNC_OFFSET( 15335, glPointParameteriv, _gloffset_PointParameterivNV ), +    NAME_FUNC_OFFSET( 15354, glSecondaryColor3b, _gloffset_SecondaryColor3bEXT ), +    NAME_FUNC_OFFSET( 15373, glSecondaryColor3bv, _gloffset_SecondaryColor3bvEXT ), +    NAME_FUNC_OFFSET( 15393, glSecondaryColor3d, _gloffset_SecondaryColor3dEXT ), +    NAME_FUNC_OFFSET( 15412, glSecondaryColor3dv, _gloffset_SecondaryColor3dvEXT ), +    NAME_FUNC_OFFSET( 15432, glSecondaryColor3f, _gloffset_SecondaryColor3fEXT ), +    NAME_FUNC_OFFSET( 15451, glSecondaryColor3fv, _gloffset_SecondaryColor3fvEXT ), +    NAME_FUNC_OFFSET( 15471, glSecondaryColor3i, _gloffset_SecondaryColor3iEXT ), +    NAME_FUNC_OFFSET( 15490, glSecondaryColor3iv, _gloffset_SecondaryColor3ivEXT ), +    NAME_FUNC_OFFSET( 15510, glSecondaryColor3s, _gloffset_SecondaryColor3sEXT ), +    NAME_FUNC_OFFSET( 15529, glSecondaryColor3sv, _gloffset_SecondaryColor3svEXT ), +    NAME_FUNC_OFFSET( 15549, glSecondaryColor3ub, _gloffset_SecondaryColor3ubEXT ), +    NAME_FUNC_OFFSET( 15569, glSecondaryColor3ubv, _gloffset_SecondaryColor3ubvEXT ), +    NAME_FUNC_OFFSET( 15590, glSecondaryColor3ui, _gloffset_SecondaryColor3uiEXT ), +    NAME_FUNC_OFFSET( 15610, glSecondaryColor3uiv, _gloffset_SecondaryColor3uivEXT ), +    NAME_FUNC_OFFSET( 15631, glSecondaryColor3us, _gloffset_SecondaryColor3usEXT ), +    NAME_FUNC_OFFSET( 15651, glSecondaryColor3usv, _gloffset_SecondaryColor3usvEXT ), +    NAME_FUNC_OFFSET( 15672, glSecondaryColorPointer, _gloffset_SecondaryColorPointerEXT ), +    NAME_FUNC_OFFSET( 15696, glWindowPos2d, _gloffset_WindowPos2dMESA ), +    NAME_FUNC_OFFSET( 15710, glWindowPos2dv, _gloffset_WindowPos2dvMESA ), +    NAME_FUNC_OFFSET( 15725, glWindowPos2f, _gloffset_WindowPos2fMESA ), +    NAME_FUNC_OFFSET( 15739, glWindowPos2fv, _gloffset_WindowPos2fvMESA ), +    NAME_FUNC_OFFSET( 15754, glWindowPos2i, _gloffset_WindowPos2iMESA ), +    NAME_FUNC_OFFSET( 15768, glWindowPos2iv, _gloffset_WindowPos2ivMESA ), +    NAME_FUNC_OFFSET( 15783, glWindowPos2s, _gloffset_WindowPos2sMESA ), +    NAME_FUNC_OFFSET( 15797, glWindowPos2sv, _gloffset_WindowPos2svMESA ), +    NAME_FUNC_OFFSET( 15812, glWindowPos3d, _gloffset_WindowPos3dMESA ), +    NAME_FUNC_OFFSET( 15826, glWindowPos3dv, _gloffset_WindowPos3dvMESA ), +    NAME_FUNC_OFFSET( 15841, glWindowPos3f, _gloffset_WindowPos3fMESA ), +    NAME_FUNC_OFFSET( 15855, glWindowPos3fv, _gloffset_WindowPos3fvMESA ), +    NAME_FUNC_OFFSET( 15870, glWindowPos3i, _gloffset_WindowPos3iMESA ), +    NAME_FUNC_OFFSET( 15884, glWindowPos3iv, _gloffset_WindowPos3ivMESA ), +    NAME_FUNC_OFFSET( 15899, glWindowPos3s, _gloffset_WindowPos3sMESA ), +    NAME_FUNC_OFFSET( 15913, glWindowPos3sv, _gloffset_WindowPos3svMESA ), +    NAME_FUNC_OFFSET( 15928, glBindBuffer, _gloffset_BindBufferARB ), +    NAME_FUNC_OFFSET( 15941, glBufferData, _gloffset_BufferDataARB ), +    NAME_FUNC_OFFSET( 15954, glBufferSubData, _gloffset_BufferSubDataARB ), +    NAME_FUNC_OFFSET( 15970, glDeleteBuffers, _gloffset_DeleteBuffersARB ), +    NAME_FUNC_OFFSET( 15986, glGenBuffers, _gloffset_GenBuffersARB ), +    NAME_FUNC_OFFSET( 15999, glGetBufferParameteriv, _gloffset_GetBufferParameterivARB ), +    NAME_FUNC_OFFSET( 16022, glGetBufferPointerv, _gloffset_GetBufferPointervARB ), +    NAME_FUNC_OFFSET( 16042, glGetBufferSubData, _gloffset_GetBufferSubDataARB ), +    NAME_FUNC_OFFSET( 16061, glIsBuffer, _gloffset_IsBufferARB ), +    NAME_FUNC_OFFSET( 16072, glMapBuffer, _gloffset_MapBufferARB ), +    NAME_FUNC_OFFSET( 16084, glUnmapBuffer, _gloffset_UnmapBufferARB ), +    NAME_FUNC_OFFSET( 16098, glGenQueries, _gloffset_GenQueriesARB ), +    NAME_FUNC_OFFSET( 16111, glDeleteQueries, _gloffset_DeleteQueriesARB ), +    NAME_FUNC_OFFSET( 16127, glIsQuery, _gloffset_IsQueryARB ), +    NAME_FUNC_OFFSET( 16137, glBeginQuery, _gloffset_BeginQueryARB ), +    NAME_FUNC_OFFSET( 16150, glEndQuery, _gloffset_EndQueryARB ), +    NAME_FUNC_OFFSET( 16161, glGetQueryiv, _gloffset_GetQueryivARB ), +    NAME_FUNC_OFFSET( 16174, glGetQueryObjectiv, _gloffset_GetQueryObjectivARB ), +    NAME_FUNC_OFFSET( 16193, glGetQueryObjectuiv, _gloffset_GetQueryObjectuivARB ), +    NAME_FUNC_OFFSET( 16213, glPointParameterfARB, _gloffset_PointParameterfEXT ), +    NAME_FUNC_OFFSET( 16234, glPointParameterfvARB, _gloffset_PointParameterfvEXT ), +    NAME_FUNC_OFFSET( 16256, glWindowPos2dARB, _gloffset_WindowPos2dMESA ), +    NAME_FUNC_OFFSET( 16273, glWindowPos2fARB, _gloffset_WindowPos2fMESA ), +    NAME_FUNC_OFFSET( 16290, glWindowPos2iARB, _gloffset_WindowPos2iMESA ), +    NAME_FUNC_OFFSET( 16307, glWindowPos2sARB, _gloffset_WindowPos2sMESA ), +    NAME_FUNC_OFFSET( 16324, glWindowPos2dvARB, _gloffset_WindowPos2dvMESA ), +    NAME_FUNC_OFFSET( 16342, glWindowPos2fvARB, _gloffset_WindowPos2fvMESA ), +    NAME_FUNC_OFFSET( 16360, glWindowPos2ivARB, _gloffset_WindowPos2ivMESA ), +    NAME_FUNC_OFFSET( 16378, glWindowPos2svARB, _gloffset_WindowPos2svMESA ), +    NAME_FUNC_OFFSET( 16396, glWindowPos3dARB, _gloffset_WindowPos3dMESA ), +    NAME_FUNC_OFFSET( 16413, glWindowPos3fARB, _gloffset_WindowPos3fMESA ), +    NAME_FUNC_OFFSET( 16430, glWindowPos3iARB, _gloffset_WindowPos3iMESA ), +    NAME_FUNC_OFFSET( 16447, glWindowPos3sARB, _gloffset_WindowPos3sMESA ), +    NAME_FUNC_OFFSET( 16464, glWindowPos3dvARB, _gloffset_WindowPos3dvMESA ), +    NAME_FUNC_OFFSET( 16482, glWindowPos3fvARB, _gloffset_WindowPos3fvMESA ), +    NAME_FUNC_OFFSET( 16500, glWindowPos3ivARB, _gloffset_WindowPos3ivMESA ), +    NAME_FUNC_OFFSET( 16518, glWindowPos3svARB, _gloffset_WindowPos3svMESA ), +    NAME_FUNC_OFFSET( 16536, glBindProgramARB, _gloffset_BindProgramNV ), +    NAME_FUNC_OFFSET( 16553, glDeleteProgramsARB, _gloffset_DeleteProgramsNV ), +    NAME_FUNC_OFFSET( 16573, glGenProgramsARB, _gloffset_GenProgramsNV ), +    NAME_FUNC_OFFSET( 16590, glIsProgramARB, _gloffset_IsProgramNV ), +    NAME_FUNC_OFFSET( 16605, glGetVertexAttribPointervARB, _gloffset_GetVertexAttribPointervNV ), +    NAME_FUNC_OFFSET( 16634, glBlendColorEXT, _gloffset_BlendColor ), +    NAME_FUNC_OFFSET( 16650, glTexImage3DEXT, _gloffset_TexImage3D ), +    NAME_FUNC_OFFSET( 16666, glTexSubImage3DEXT, _gloffset_TexSubImage3D ), +    NAME_FUNC_OFFSET( 16685, glTexSubImage1DEXT, _gloffset_TexSubImage1D ), +    NAME_FUNC_OFFSET( 16704, glTexSubImage2DEXT, _gloffset_TexSubImage2D ), +    NAME_FUNC_OFFSET( 16723, glCopyTexImage1DEXT, _gloffset_CopyTexImage1D ), +    NAME_FUNC_OFFSET( 16743, glCopyTexImage2DEXT, _gloffset_CopyTexImage2D ), +    NAME_FUNC_OFFSET( 16763, glCopyTexSubImage1DEXT, _gloffset_CopyTexSubImage1D ), +    NAME_FUNC_OFFSET( 16786, glCopyTexSubImage2DEXT, _gloffset_CopyTexSubImage2D ), +    NAME_FUNC_OFFSET( 16809, glCopyTexSubImage3DEXT, _gloffset_CopyTexSubImage3D ), +    NAME_FUNC_OFFSET( 16832, glHistogramEXT, _gloffset_Histogram ), +    NAME_FUNC_OFFSET( 16847, glMinmaxEXT, _gloffset_Minmax ), +    NAME_FUNC_OFFSET( 16859, glResetHistogramEXT, _gloffset_ResetHistogram ), +    NAME_FUNC_OFFSET( 16879, glResetMinmaxEXT, _gloffset_ResetMinmax ), +    NAME_FUNC_OFFSET( 16896, glConvolutionFilter1DEXT, _gloffset_ConvolutionFilter1D ), +    NAME_FUNC_OFFSET( 16921, glConvolutionFilter2DEXT, _gloffset_ConvolutionFilter2D ), +    NAME_FUNC_OFFSET( 16946, glConvolutionParameterfEXT, _gloffset_ConvolutionParameterf ), +    NAME_FUNC_OFFSET( 16973, glConvolutionParameterfvEXT, _gloffset_ConvolutionParameterfv ), +    NAME_FUNC_OFFSET( 17001, glConvolutionParameteriEXT, _gloffset_ConvolutionParameteri ), +    NAME_FUNC_OFFSET( 17028, glConvolutionParameterivEXT, _gloffset_ConvolutionParameteriv ), +    NAME_FUNC_OFFSET( 17056, glCopyConvolutionFilter1DEXT, _gloffset_CopyConvolutionFilter1D ), +    NAME_FUNC_OFFSET( 17085, glCopyConvolutionFilter2DEXT, _gloffset_CopyConvolutionFilter2D ), +    NAME_FUNC_OFFSET( 17114, glSeparableFilter2DEXT, _gloffset_SeparableFilter2D ), +    NAME_FUNC_OFFSET( 17137, glColorTableSGI, _gloffset_ColorTable ), +    NAME_FUNC_OFFSET( 17153, glColorTableParameterfvSGI, _gloffset_ColorTableParameterfv ), +    NAME_FUNC_OFFSET( 17180, glColorTableParameterivSGI, _gloffset_ColorTableParameteriv ), +    NAME_FUNC_OFFSET( 17207, glCopyColorTableSGI, _gloffset_CopyColorTable ), +    NAME_FUNC_OFFSET( 17227, glBindTextureEXT, _gloffset_BindTexture ), +    NAME_FUNC_OFFSET( 17244, glDeleteTexturesEXT, _gloffset_DeleteTextures ), +    NAME_FUNC_OFFSET( 17264, glPrioritizeTexturesEXT, _gloffset_PrioritizeTextures ), +    NAME_FUNC_OFFSET( 17288, glArrayElementEXT, _gloffset_ArrayElement ), +    NAME_FUNC_OFFSET( 17306, glDrawArraysEXT, _gloffset_DrawArrays ), +    NAME_FUNC_OFFSET( 17322, glGetPointervEXT, _gloffset_GetPointerv ), +    NAME_FUNC_OFFSET( 17339, glBlendEquationEXT, _gloffset_BlendEquation ), +    NAME_FUNC_OFFSET( 17358, glColorSubTableEXT, _gloffset_ColorSubTable ), +    NAME_FUNC_OFFSET( 17377, glCopyColorSubTableEXT, _gloffset_CopyColorSubTable ), +    NAME_FUNC_OFFSET( 17400, glColorTableEXT, _gloffset_ColorTable ), +    NAME_FUNC_OFFSET( 17416, glDrawRangeElementsEXT, _gloffset_DrawRangeElements ), +    NAME_FUNC_OFFSET( 17439, glSampleMaskEXT, _gloffset_SampleMaskSGIS ), +    NAME_FUNC_OFFSET( 17455, glSamplePatternEXT, _gloffset_SamplePatternSGIS ), +    NAME_FUNC_OFFSET( 17474, glDrawBuffersATI, _gloffset_DrawBuffersARB ), +    NAME_FUNC_OFFSET( 17491, glBlendEquationSeparateATI, _gloffset_BlendEquationSeparateEXT ), +    NAME_FUNC_OFFSET( 17518, glBlendFuncSeparateINGR, _gloffset_BlendFuncSeparateEXT ), +    NAME_FUNC_OFFSET( 17542, glPointParameterfSGIS, _gloffset_PointParameterfEXT ), +    NAME_FUNC_OFFSET( 17564, glPointParameterfvSGIS, _gloffset_PointParameterfvEXT ),      NAME_FUNC_OFFSET( -1, NULL, 0 )  }; diff --git a/src/mesa/main/dd.h b/src/mesa/main/dd.h index 2b1131bc41..f7f7eacf06 100644 --- a/src/mesa/main/dd.h +++ b/src/mesa/main/dd.h @@ -7,7 +7,7 @@   * Mesa 3-D graphics library   * Version:  6.3   * - * Copyright (C) 1999-2004  Brian Paul   All Rights Reserved. + * Copyright (C) 1999-2005  Brian Paul   All Rights Reserved.   *   * Permission is hereby granted, free of charge, to any person obtaining a   * copy of this software and associated documentation files (the "Software"), @@ -676,7 +676,16 @@ struct dd_function_table {     void (*StencilMask)(GLcontext *ctx, GLuint mask);     /** Set stencil test actions */     void (*StencilOp)(GLcontext *ctx, GLenum fail, GLenum zfail, GLenum zpass); +   /** Set active stencil face (GL_EXT_stencil_two_side) */     void (*ActiveStencilFace)(GLcontext *ctx, GLuint face); +   /** OpenGL 2.0 two-sided StencilFunc */ +   void (*StencilFuncSeparate)(GLcontext *ctx, GLenum face, GLenum func, +                               GLint ref, GLuint mask); +   /** OpenGL 2.0 two-sided StencilMask */ +   void (*StencilMaskSeparate)(GLcontext *ctx, GLenum face, GLuint mask); +   /** OpenGL 2.0 two-sided StencilOp */ +   void (*StencilOpSeparate)(GLcontext *ctx, GLenum face, GLenum fail, +                             GLenum zfail, GLenum zpass);     /** Control the generation of texture coordinates */     void (*TexGen)(GLcontext *ctx, GLenum coord, GLenum pname,  		  const GLfloat *params); diff --git a/src/mesa/main/dlist.c b/src/mesa/main/dlist.c index 8ef5269cd8..beacf5b1f9 100644 --- a/src/mesa/main/dlist.c +++ b/src/mesa/main/dlist.c @@ -322,6 +322,10 @@ typedef enum {  	/* GL_ATI_fragment_shader */  	OPCODE_BIND_FRAGMENT_SHADER_ATI,  	OPCODE_SET_FRAGMENT_SHADER_CONSTANTS_ATI, +        /* OpenGL 2.0 */ +        OPCODE_STENCIL_FUNC_SEPARATE, +        OPCODE_STENCIL_OP_SEPARATE, +        OPCODE_STENCIL_MASK_SEPARATE,  	/* Vertex attributes -- fallback for when optimized display  	 * list build isn't active. @@ -799,6 +803,11 @@ _mesa_init_lists( void )        InstSize[OPCODE_BIND_FRAGMENT_SHADER_ATI] = 2;        InstSize[OPCODE_SET_FRAGMENT_SHADER_CONSTANTS_ATI] = 6;  #endif +      /* OpenGL 2.0 */ +      InstSize[OPCODE_STENCIL_FUNC_SEPARATE] = 5; +      InstSize[OPCODE_STENCIL_MASK_SEPARATE] = 3; +      InstSize[OPCODE_STENCIL_OP_SEPARATE] = 5; +        InstSize[OPCODE_ATTR_1F_NV] = 3;        InstSize[OPCODE_ATTR_2F_NV] = 4;        InstSize[OPCODE_ATTR_3F_NV] = 5; @@ -3259,6 +3268,61 @@ static void GLAPIENTRY save_StencilOp( GLenum fail, GLenum zfail, GLenum zpass )  } +static void GLAPIENTRY +save_StencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask) +{ +   GET_CURRENT_CONTEXT(ctx); +   Node *n; +   ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx); +   n = ALLOC_INSTRUCTION(ctx, OPCODE_STENCIL_FUNC_SEPARATE, 4); +   if (n) { +      n[1].e = face; +      n[2].e = func; +      n[3].i = ref; +      n[4].ui = mask; +   } +   if (ctx->ExecuteFlag) { +      ctx->Exec->StencilFuncSeparate(face, func, ref, mask); +   } +} + + +static void GLAPIENTRY +save_StencilMaskSeparate(GLenum face, GLuint mask) +{ +   GET_CURRENT_CONTEXT(ctx); +   Node *n; +   ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx); +   n = ALLOC_INSTRUCTION(ctx, OPCODE_STENCIL_MASK_SEPARATE, 2); +   if (n) { +      n[1].e = face; +      n[2].ui = mask; +   } +   if (ctx->ExecuteFlag) { +      ctx->Exec->StencilMaskSeparate(face, mask); +   } +} + + +static void GLAPIENTRY +save_StencilOpSeparate(GLenum face, GLenum fail, GLenum zfail, GLenum zpass) +{ +   GET_CURRENT_CONTEXT(ctx); +   Node *n; +   ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx); +   n = ALLOC_INSTRUCTION( ctx, OPCODE_STENCIL_OP_SEPARATE, 4 ); +   if (n) { +      n[1].e = face; +      n[2].e = fail; +      n[3].e = zfail; +      n[4].e = zpass; +   } +   if (ctx->ExecuteFlag) { +      ctx->Exec->StencilOpSeparate(face, fail, zfail, zpass); +   } +} + +  static void GLAPIENTRY save_TexEnvfv( GLenum target, GLenum pname, const GLfloat *params )  {     GET_CURRENT_CONTEXT(ctx); @@ -4567,7 +4631,7 @@ static void GLAPIENTRY save_DepthBoundsEXT( GLclampd zmin, GLclampd zmax )     GET_CURRENT_CONTEXT(ctx);     Node *n;     ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx); -   n = ALLOC_INSTRUCTION( ctx, OPCODE_ACTIVE_STENCIL_FACE_EXT, 2 ); +   n = ALLOC_INSTRUCTION( ctx, OPCODE_DEPTH_BOUNDS_EXT, 2 );     if (n) {        n[1].f = (GLfloat) zmin;        n[2].f = (GLfloat) zmax; @@ -6052,6 +6116,15 @@ execute_list( GLcontext *ctx, GLuint list )  	 case OPCODE_STENCIL_OP:  	    (*ctx->Exec->StencilOp)( n[1].e, n[2].e, n[3].e );  	    break; +	 case OPCODE_STENCIL_FUNC_SEPARATE: +	    ctx->Exec->StencilFuncSeparate( n[1].e, n[2].e, n[3].i, n[4].ui ); +	    break; +	 case OPCODE_STENCIL_MASK_SEPARATE: +	    ctx->Exec->StencilMaskSeparate( n[1].e, n[2].ui ); +	    break; +	 case OPCODE_STENCIL_OP_SEPARATE: +	    ctx->Exec->StencilOpSeparate( n[1].e, n[2].e, n[3].e, n[4].e ); +	    break;           case OPCODE_TEXENV:              {                 GLfloat params[4]; @@ -7628,6 +7701,11 @@ _mesa_init_dlist_table( struct _glapi_table *table )     table->TexImage3D = save_TexImage3D;     table->TexSubImage3D = save_TexSubImage3D; +   /* GL 2.0 */ +   table->StencilFuncSeparate = save_StencilFuncSeparate; +   table->StencilMaskSeparate = save_StencilMaskSeparate; +   table->StencilOpSeparate = save_StencilOpSeparate; +     /* GL_ARB_imaging */     /* Not all are supported */     table->BlendColor = save_BlendColor; diff --git a/src/mesa/main/state.c b/src/mesa/main/state.c index 64bb02cf01..886a571eb8 100644 --- a/src/mesa/main/state.c +++ b/src/mesa/main/state.c @@ -382,6 +382,11 @@ _mesa_init_exec_table(struct _glapi_table *exec)     exec->SeparableFilter2D = _mesa_SeparableFilter2D;  #endif +   /* OpenGL 2.0 */ +   exec->StencilFuncSeparate = _mesa_StencilFuncSeparate; +   exec->StencilMaskSeparate = _mesa_StencilMaskSeparate; +   exec->StencilOpSeparate = _mesa_StencilOpSeparate; +     /* 2. GL_EXT_blend_color */  #if 0  /*    exec->BlendColorEXT = _mesa_BlendColorEXT; */ diff --git a/src/mesa/main/stencil.c b/src/mesa/main/stencil.c index 8c89e8cc13..dfda4aa8fd 100644 --- a/src/mesa/main/stencil.c +++ b/src/mesa/main/stencil.c @@ -5,9 +5,9 @@  /*   * Mesa 3-D graphics library - * Version:  4.1 + * Version:  6.3   * - * Copyright (C) 1999-2002  Brian Paul   All Rights Reserved. + * Copyright (C) 1999-2005  Brian Paul   All Rights Reserved.   *   * Permission is hereby granted, free of charge, to any person obtaining a   * copy of this software and associated documentation files (the "Software"), @@ -244,6 +244,7 @@ _mesa_StencilOp(GLenum fail, GLenum zfail, GLenum zpass)  } +  #if _HAVE_FULL_GL  /* GL_EXT_stencil_two_side */  void GLAPIENTRY @@ -264,6 +265,175 @@ _mesa_ActiveStencilFaceEXT(GLenum face)  #endif + +/** + * OpenGL 2.0 function. + * \todo Make StencilOp() call this function.  And eventually remove the + * ctx->Driver.StencilOp function and use ctx->Driver.StencilOpSeparate + * instead. + */ +void GLAPIENTRY +_mesa_StencilOpSeparate(GLenum face, GLenum fail, GLenum zfail, GLenum zpass) +{ +   GET_CURRENT_CONTEXT(ctx); +   ASSERT_OUTSIDE_BEGIN_END(ctx); + +   if (face != GL_FRONT && face != GL_BACK && face != GL_FRONT_AND_BACK) { +      _mesa_error(ctx, GL_INVALID_ENUM, "glStencilOpSeparate(face)"); +      return; +   } + +   switch (fail) { +      case GL_KEEP: +      case GL_ZERO: +      case GL_REPLACE: +      case GL_INCR: +      case GL_DECR: +      case GL_INVERT: +         break; +      case GL_INCR_WRAP_EXT: +      case GL_DECR_WRAP_EXT: +         if (ctx->Extensions.EXT_stencil_wrap) { +            break; +         } +         /* FALL-THROUGH */ +      default: +         _mesa_error(ctx, GL_INVALID_ENUM, "glStencilOpSeparate(fail)"); +         return; +   } +   switch (zfail) { +      case GL_KEEP: +      case GL_ZERO: +      case GL_REPLACE: +      case GL_INCR: +      case GL_DECR: +      case GL_INVERT: +         break; +      case GL_INCR_WRAP_EXT: +      case GL_DECR_WRAP_EXT: +         if (ctx->Extensions.EXT_stencil_wrap) { +            break; +         } +         /* FALL-THROUGH */ +      default: +         _mesa_error(ctx, GL_INVALID_ENUM, "glStencilOpSeparate(zfail)"); +         return; +   } +   switch (zpass) { +      case GL_KEEP: +      case GL_ZERO: +      case GL_REPLACE: +      case GL_INCR: +      case GL_DECR: +      case GL_INVERT: +         break; +      case GL_INCR_WRAP_EXT: +      case GL_DECR_WRAP_EXT: +         if (ctx->Extensions.EXT_stencil_wrap) { +            break; +         } +         /* FALL-THROUGH */ +      default: +         _mesa_error(ctx, GL_INVALID_ENUM, "glStencilOpSeparate(zpass)"); +         return; +   } + +   FLUSH_VERTICES(ctx, _NEW_STENCIL); + +   if (face == GL_FRONT || face == GL_FRONT_AND_BACK) { +      ctx->Stencil.FailFunc[0] = fail; +      ctx->Stencil.ZFailFunc[0] = zfail; +      ctx->Stencil.ZPassFunc[0] = zpass; +   } +   if (face == GL_BACK || face == GL_FRONT_AND_BACK) { +      ctx->Stencil.FailFunc[1] = fail; +      ctx->Stencil.ZFailFunc[1] = zfail; +      ctx->Stencil.ZPassFunc[1] = zpass; +   } + +   if (ctx->Driver.StencilOpSeparate) { +      ctx->Driver.StencilOpSeparate(ctx, face, fail, zfail, zpass); +   } +} + + +/* OpenGL 2.0 */ +void GLAPIENTRY +_mesa_StencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask) +{ +   GET_CURRENT_CONTEXT(ctx); +   GLint maxref; +   ASSERT_OUTSIDE_BEGIN_END(ctx); + +   if (face != GL_FRONT && face != GL_BACK && face != GL_FRONT_AND_BACK) { +      _mesa_error(ctx, GL_INVALID_ENUM, "glStencilFuncSeparate(face)"); +      return; +   } + +   switch (func) { +      case GL_NEVER: +      case GL_LESS: +      case GL_LEQUAL: +      case GL_GREATER: +      case GL_GEQUAL: +      case GL_EQUAL: +      case GL_NOTEQUAL: +      case GL_ALWAYS: +         break; +      default: +         _mesa_error(ctx, GL_INVALID_ENUM, "glStencilFuncSeparate(func)"); +         return; +   } + +   maxref = (1 << STENCIL_BITS) - 1; +   ref = (GLstencil) CLAMP(ref, 0, maxref); + +   FLUSH_VERTICES(ctx, _NEW_STENCIL); + +   if (face == GL_FRONT || face == GL_FRONT_AND_BACK) { +      ctx->Stencil.Function[0] = func; +      ctx->Stencil.Ref[0] = ref; +      ctx->Stencil.ValueMask[0] = (GLstencil) mask; +   } +   if (face == GL_BACK || face == GL_FRONT_AND_BACK) { +      ctx->Stencil.Function[1] = func; +      ctx->Stencil.Ref[1] = ref; +      ctx->Stencil.ValueMask[1] = (GLstencil) mask; +   } + +   if (ctx->Driver.StencilFuncSeparate) { +      ctx->Driver.StencilFuncSeparate(ctx, face, func, ref, mask); +   } +} + + +/* OpenGL 2.0 */ +void GLAPIENTRY +_mesa_StencilMaskSeparate(GLenum face, GLuint mask) +{ +   GET_CURRENT_CONTEXT(ctx); +   ASSERT_OUTSIDE_BEGIN_END(ctx); + +   if (face != GL_FRONT && face != GL_BACK && face != GL_FRONT_AND_BACK) { +      _mesa_error(ctx, GL_INVALID_ENUM, "glStencilaMaskSeparate(face)"); +      return; +   } + +   FLUSH_VERTICES(ctx, _NEW_STENCIL); + +   if (face == GL_FRONT || face == GL_FRONT_AND_BACK) { +      ctx->Stencil.WriteMask[0] = (GLstencil) mask; +   } +   if (face == GL_BACK || face == GL_FRONT_AND_BACK) { +      ctx->Stencil.WriteMask[1] = (GLstencil) mask; +   } + +   if (ctx->Driver.StencilMaskSeparate) { +      ctx->Driver.StencilMaskSeparate(ctx, face, mask); +   } +} + +  /**   * Initialize the context stipple state.   * diff --git a/src/mesa/main/stencil.h b/src/mesa/main/stencil.h index 5620d14c73..ec2927cfd2 100644 --- a/src/mesa/main/stencil.h +++ b/src/mesa/main/stencil.h @@ -5,9 +5,9 @@  /*   * Mesa 3-D graphics library - * Version:  4.1 + * Version:  6.3   * - * Copyright (C) 1999-2002  Brian Paul   All Rights Reserved. + * Copyright (C) 1999-2005  Brian Paul   All Rights Reserved.   *   * Permission is hereby granted, free of charge, to any person obtaining a   * copy of this software and associated documentation files (the "Software"), @@ -55,6 +55,18 @@ extern void GLAPIENTRY  _mesa_ActiveStencilFaceEXT(GLenum face); +extern void GLAPIENTRY +_mesa_StencilOpSeparate(GLenum face, GLenum fail, GLenum zfail, GLenum zpass); + + +extern void GLAPIENTRY +_mesa_StencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask); + + +extern void GLAPIENTRY +_mesa_StencilMaskSeparate(GLenum face, GLuint mask); + +  extern void   _mesa_init_stencil( GLcontext * ctx ); | 
