Some initial work for OpenGL 2.0: glStencilFunc/Op/MaskSeparate() functions.

This commit is contained in:
Brian Paul 2005-01-12 04:01:08 +00:00
parent 591b72b6a9
commit a9e34c68ac
10 changed files with 512 additions and 184 deletions

View file

@ -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. -->

View file

@ -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

View file

@ -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

View file

@ -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.

View file

@ -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 )
};

View file

@ -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);

View file

@ -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;

View file

@ -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; */

View file

@ -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.
*

View file

@ -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 );