summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorBrian Paul <[email protected]>2005-01-12 04:01:08 +0000
committerBrian Paul <[email protected]>2005-01-12 04:01:08 +0000
commita9e34c68ac0538699a144f67d3ce83ccb8f49be9 (patch)
treeae9f6d8f3dd361ecc4303e7e19dbe6c9330ee726 /src
parent591b72b6a9718e908b11c7c2fd3bbf9e5b432677 (diff)
Some initial work for OpenGL 2.0: glStencilFunc/Op/MaskSeparate() functions.
Diffstat (limited to 'src')
-rw-r--r--src/mesa/glapi/gl_API.xml24
-rw-r--r--src/mesa/glapi/glapioffsets.h3
-rw-r--r--src/mesa/glapi/glapitable.h3
-rw-r--r--src/mesa/glapi/glapitemp.h18
-rw-r--r--src/mesa/glapi/glprocs.h362
-rw-r--r--src/mesa/main/dd.h11
-rw-r--r--src/mesa/main/dlist.c80
-rw-r--r--src/mesa/main/state.c5
-rw-r--r--src/mesa/main/stencil.c174
-rw-r--r--src/mesa/main/stencil.h16
10 files changed, 512 insertions, 184 deletions
diff --git a/src/mesa/glapi/gl_API.xml b/src/mesa/glapi/gl_API.xml
index 662f20afb9d..367c63ca66c 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 2bd36e4110e..c4431a79a58 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 cc63407a409..48692540d58 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 d6da59cd81f..511f1c7c810 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 bdf9339cc12..c62fbab1f12 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 2b1131bc414..f7f7eacf060 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 8ef5269cd89..beacf5b1f99 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 64bb02cf01e..886a571eb8d 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 8c89e8cc13c..dfda4aa8fda 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 5620d14c730..ec2927cfd20 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 );