
/* Auto-generated file... Do not edit ! */

#include "config.h"
#include "wine_gl.h"

#include "opengl_ext.h"

/* These will be filled during a wglGetProcAddress call */
void (*func_glApplyTextureEXT)(GLenum) = (void *) 0xdeadbeef;
GLboolean (*func_glAreTexturesResidentEXT)(GLsizei,  const GLuint *,  GLboolean *) = (void *) 0xdeadbeef;
void (*func_glArrayElementEXT)(GLint) = (void *) 0xdeadbeef;
void (*func_glBindTextureEXT)(GLenum,  GLuint) = (void *) 0xdeadbeef;
void (*func_glBinormal3b)(GLbyte,  GLbyte,  GLbyte) = (void *) 0xdeadbeef;
void (*func_glBinormal3bv)(const GLbyte *) = (void *) 0xdeadbeef;
void (*func_glBinormal3d)(GLdouble,  GLdouble,  GLdouble) = (void *) 0xdeadbeef;
void (*func_glBinormal3dv)(const GLdouble *) = (void *) 0xdeadbeef;
void (*func_glBinormal3f)(GLfloat,  GLfloat,  GLfloat) = (void *) 0xdeadbeef;
void (*func_glBinormal3fv)(const GLfloat *) = (void *) 0xdeadbeef;
void (*func_glBinormal3i)(GLint,  GLint,  GLint) = (void *) 0xdeadbeef;
void (*func_glBinormal3iv)(const GLint *) = (void *) 0xdeadbeef;
void (*func_glBinormal3s)(GLshort,  GLshort,  GLshort) = (void *) 0xdeadbeef;
void (*func_glBinormal3sv)(const GLshort *) = (void *) 0xdeadbeef;
void (*func_glBinormalPointerEXT)(GLenum,  GLsizei,  const GLvoid *) = (void *) 0xdeadbeef;
void (*func_glBlendColorEXT)(GLclampf,  GLclampf,  GLclampf,  GLclampf) = (void *) 0xdeadbeef;
void (*func_glBlendEquationEXT)(GLenum) = (void *) 0xdeadbeef;
void (*func_glBlendFuncSeparateEXT)(GLenum,  GLenum,  GLenum,  GLenum) = (void *) 0xdeadbeef;
void (*func_glColor3fVertex3fSUN)(GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat) = (void *) 0xdeadbeef;
void (*func_glColor3fVertex3fvSUN)(const GLfloat *,  const GLfloat *) = (void *) 0xdeadbeef;
void (*func_glColor4fNormal3fVertex3fSUN)(GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat) = (void *) 0xdeadbeef;
void (*func_glColor4fNormal3fVertex3fvSUN)(const GLfloat *,  const GLfloat *,  const GLfloat *) = (void *) 0xdeadbeef;
void (*func_glColor4ubVertex2fSUN)(GLubyte,  GLubyte,  GLubyte,  GLubyte,  GLfloat,  GLfloat) = (void *) 0xdeadbeef;
void (*func_glColor4ubVertex2fvSUN)(const GLubyte *,  const GLfloat *) = (void *) 0xdeadbeef;
void (*func_glColor4ubVertex3fSUN)(GLubyte,  GLubyte,  GLubyte,  GLubyte,  GLfloat,  GLfloat,  GLfloat) = (void *) 0xdeadbeef;
void (*func_glColor4ubVertex3fvSUN)(const GLubyte *,  const GLfloat *) = (void *) 0xdeadbeef;
void (*func_glColorPointerEXT)(GLint,  GLenum,  GLsizei,  GLsizei,  const GLvoid *) = (void *) 0xdeadbeef;
void (*func_glColorPointerListIBM)(GLint,  GLenum,  GLint,  const GLvoid* *,  GLint) = (void *) 0xdeadbeef;
void (*func_glColorPointervINTEL)(GLint,  GLenum,  const GLvoid* *) = (void *) 0xdeadbeef;
void (*func_glColorSubTableEXT)(GLenum,  GLsizei,  GLsizei,  GLenum,  GLenum,  const GLvoid *) = (void *) 0xdeadbeef;
void (*func_glColorTableEXT)(GLenum,  GLenum,  GLsizei,  GLenum,  GLenum,  const GLvoid *) = (void *) 0xdeadbeef;
void (*func_glColorTableParameterfvSGI)(GLenum,  GLenum,  const GLfloat *) = (void *) 0xdeadbeef;
void (*func_glColorTableParameterivSGI)(GLenum,  GLenum,  const GLint *) = (void *) 0xdeadbeef;
void (*func_glColorTableSGI)(GLenum,  GLenum,  GLsizei,  GLenum,  GLenum,  const GLvoid *) = (void *) 0xdeadbeef;
void (*func_glCombinerInputNV)(GLenum,  GLenum,  GLenum,  GLenum,  GLenum,  GLenum) = (void *) 0xdeadbeef;
void (*func_glCombinerOutputNV)(GLenum,  GLenum,  GLenum,  GLenum,  GLenum,  GLenum,  GLenum,  GLboolean,  GLboolean,  GLboolean) = (void *) 0xdeadbeef;
void (*func_glCombinerParameterfNV)(GLenum,  GLfloat) = (void *) 0xdeadbeef;
void (*func_glCombinerParameterfvNV)(GLenum,  const GLfloat *) = (void *) 0xdeadbeef;
void (*func_glCombinerParameteriNV)(GLenum,  GLint) = (void *) 0xdeadbeef;
void (*func_glCombinerParameterivNV)(GLenum,  const GLint *) = (void *) 0xdeadbeef;
void (*func_glCompressedTexImage1DARB)(GLenum,  GLint,  GLenum,  GLsizei,  GLint,  GLsizei,  const GLvoid *) = (void *) 0xdeadbeef;
void (*func_glCompressedTexImage2DARB)(GLenum,  GLint,  GLenum,  GLsizei,  GLsizei,  GLint,  GLsizei,  const GLvoid *) = (void *) 0xdeadbeef;
void (*func_glCompressedTexImage3DARB)(GLenum,  GLint,  GLenum,  GLsizei,  GLsizei,  GLsizei,  GLint,  GLsizei,  const GLvoid *) = (void *) 0xdeadbeef;
void (*func_glCompressedTexSubImage1DARB)(GLenum,  GLint,  GLint,  GLsizei,  GLenum,  GLsizei,  const GLvoid *) = (void *) 0xdeadbeef;
void (*func_glCompressedTexSubImage2DARB)(GLenum,  GLint,  GLint,  GLint,  GLsizei,  GLsizei,  GLenum,  GLsizei,  const GLvoid *) = (void *) 0xdeadbeef;
void (*func_glCompressedTexSubImage3DARB)(GLenum,  GLint,  GLint,  GLint,  GLint,  GLsizei,  GLsizei,  GLsizei,  GLenum,  GLsizei,  const GLvoid *) = (void *) 0xdeadbeef;
void (*func_glConvolutionFilter1DEXT)(GLenum,  GLenum,  GLsizei,  GLenum,  GLenum,  const GLvoid *) = (void *) 0xdeadbeef;
void (*func_glConvolutionFilter2DEXT)(GLenum,  GLenum,  GLsizei,  GLsizei,  GLenum,  GLenum,  const GLvoid *) = (void *) 0xdeadbeef;
void (*func_glConvolutionParameterfEXT)(GLenum,  GLenum,  GLfloat) = (void *) 0xdeadbeef;
void (*func_glConvolutionParameterfvEXT)(GLenum,  GLenum,  const GLfloat *) = (void *) 0xdeadbeef;
void (*func_glConvolutionParameteriEXT)(GLenum,  GLenum,  GLint) = (void *) 0xdeadbeef;
void (*func_glConvolutionParameterivEXT)(GLenum,  GLenum,  const GLint *) = (void *) 0xdeadbeef;
void (*func_glCopyColorSubTableEXT)(GLenum,  GLsizei,  GLint,  GLint,  GLsizei) = (void *) 0xdeadbeef;
void (*func_glCopyColorTableSGI)(GLenum,  GLenum,  GLint,  GLint,  GLsizei) = (void *) 0xdeadbeef;
void (*func_glCopyConvolutionFilter1DEXT)(GLenum,  GLenum,  GLint,  GLint,  GLsizei) = (void *) 0xdeadbeef;
void (*func_glCopyConvolutionFilter2DEXT)(GLenum,  GLenum,  GLint,  GLint,  GLsizei,  GLsizei) = (void *) 0xdeadbeef;
void (*func_glCopyTexImage1DEXT)(GLenum,  GLint,  GLenum,  GLint,  GLint,  GLsizei,  GLint) = (void *) 0xdeadbeef;
void (*func_glCopyTexImage2DEXT)(GLenum,  GLint,  GLenum,  GLint,  GLint,  GLsizei,  GLsizei,  GLint) = (void *) 0xdeadbeef;
void (*func_glCopyTexSubImage1DEXT)(GLenum,  GLint,  GLint,  GLint,  GLint,  GLsizei) = (void *) 0xdeadbeef;
void (*func_glCopyTexSubImage2DEXT)(GLenum,  GLint,  GLint,  GLint,  GLint,  GLint,  GLsizei,  GLsizei) = (void *) 0xdeadbeef;
void (*func_glCopyTexSubImage3DEXT)(GLenum,  GLint,  GLint,  GLint,  GLint,  GLint,  GLint,  GLsizei,  GLsizei) = (void *) 0xdeadbeef;
void (*func_glCullParameterdvEXT)(GLenum,  GLdouble *) = (void *) 0xdeadbeef;
void (*func_glCullParameterfvEXT)(GLenum,  GLfloat *) = (void *) 0xdeadbeef;
void (*func_glDeleteTexturesEXT)(GLsizei,  const GLuint *) = (void *) 0xdeadbeef;
void (*func_glDetailTexFuncSGIS)(GLenum,  GLsizei,  const GLfloat *) = (void *) 0xdeadbeef;
void (*func_glDrawArraysEXT)(GLenum,  GLint,  GLsizei) = (void *) 0xdeadbeef;
void (*func_glDrawRangeElementsEXT)(GLenum,  GLuint,  GLuint,  GLsizei,  GLenum,  const GLvoid *) = (void *) 0xdeadbeef;
void (*func_glEdgeFlagPointerEXT)(GLsizei,  GLsizei,  const GLboolean *) = (void *) 0xdeadbeef;
void (*func_glEdgeFlagPointerListIBM)(GLint,  const GLboolean* *,  GLint) = (void *) 0xdeadbeef;
void (*func_glFinalCombinerInputNV)(GLenum,  GLenum,  GLenum,  GLenum) = (void *) 0xdeadbeef;
void (*func_glFinishTextureSUNX)(void) = (void *) 0xdeadbeef;
void (*func_glFlushRasterSGIX)(void) = (void *) 0xdeadbeef;
void (*func_glFlushVertexArrayRangeNV)(void) = (void *) 0xdeadbeef;
void (*func_glFogCoordPointerEXT)(GLenum,  GLsizei,  const GLvoid *) = (void *) 0xdeadbeef;
void (*func_glFogCoordPointerListIBM)(GLenum,  GLint,  const GLvoid* *,  GLint) = (void *) 0xdeadbeef;
void (*func_glFogCoorddEXT)(GLdouble) = (void *) 0xdeadbeef;
void (*func_glFogCoorddvEXT)(const GLdouble *) = (void *) 0xdeadbeef;
void (*func_glFogCoordfEXT)(GLfloat) = (void *) 0xdeadbeef;
void (*func_glFogCoordfvEXT)(const GLfloat *) = (void *) 0xdeadbeef;
void (*func_glFogFuncSGIS)(GLsizei,  const GLfloat *) = (void *) 0xdeadbeef;
void (*func_glFragmentColorMaterialSGIX)(GLenum,  GLenum) = (void *) 0xdeadbeef;
void (*func_glFragmentLightModelfSGIX)(GLenum,  GLfloat) = (void *) 0xdeadbeef;
void (*func_glFragmentLightModelfvSGIX)(GLenum,  const GLfloat *) = (void *) 0xdeadbeef;
void (*func_glFragmentLightModeliSGIX)(GLenum,  GLint) = (void *) 0xdeadbeef;
void (*func_glFragmentLightModelivSGIX)(GLenum,  const GLint *) = (void *) 0xdeadbeef;
void (*func_glFragmentLightfSGIX)(GLenum,  GLenum,  GLfloat) = (void *) 0xdeadbeef;
void (*func_glFragmentLightfvSGIX)(GLenum,  GLenum,  const GLfloat *) = (void *) 0xdeadbeef;
void (*func_glFragmentLightiSGIX)(GLenum,  GLenum,  GLint) = (void *) 0xdeadbeef;
void (*func_glFragmentLightivSGIX)(GLenum,  GLenum,  const GLint *) = (void *) 0xdeadbeef;
void (*func_glFragmentMaterialfSGIX)(GLenum,  GLenum,  GLfloat) = (void *) 0xdeadbeef;
void (*func_glFragmentMaterialfvSGIX)(GLenum,  GLenum,  const GLfloat *) = (void *) 0xdeadbeef;
void (*func_glFragmentMaterialiSGIX)(GLenum,  GLenum,  GLint) = (void *) 0xdeadbeef;
void (*func_glFragmentMaterialivSGIX)(GLenum,  GLenum,  const GLint *) = (void *) 0xdeadbeef;
void (*func_glFrameZoomSGIX)(GLint) = (void *) 0xdeadbeef;
void (*func_glGenTexturesEXT)(GLsizei,  GLuint *) = (void *) 0xdeadbeef;
void (*func_glGetColorTableEXT)(GLenum,  GLenum,  GLenum,  GLvoid *) = (void *) 0xdeadbeef;
void (*func_glGetColorTableParameterfvEXT)(GLenum,  GLenum,  GLfloat *) = (void *) 0xdeadbeef;
void (*func_glGetColorTableParameterfvSGI)(GLenum,  GLenum,  GLfloat *) = (void *) 0xdeadbeef;
void (*func_glGetColorTableParameterivEXT)(GLenum,  GLenum,  GLint *) = (void *) 0xdeadbeef;
void (*func_glGetColorTableParameterivSGI)(GLenum,  GLenum,  GLint *) = (void *) 0xdeadbeef;
void (*func_glGetColorTableSGI)(GLenum,  GLenum,  GLenum,  GLvoid *) = (void *) 0xdeadbeef;
void (*func_glGetCombinerInputParameterfvNV)(GLenum,  GLenum,  GLenum,  GLenum,  GLfloat *) = (void *) 0xdeadbeef;
void (*func_glGetCombinerInputParameterivNV)(GLenum,  GLenum,  GLenum,  GLenum,  GLint *) = (void *) 0xdeadbeef;
void (*func_glGetCombinerOutputParameterfvNV)(GLenum,  GLenum,  GLenum,  GLfloat *) = (void *) 0xdeadbeef;
void (*func_glGetCombinerOutputParameterivNV)(GLenum,  GLenum,  GLenum,  GLint *) = (void *) 0xdeadbeef;
void (*func_glGetCompressedTexImageARB)(GLenum,  GLint,  void *) = (void *) 0xdeadbeef;
void (*func_glGetConvolutionFilterEXT)(GLenum,  GLenum,  GLenum,  GLvoid *) = (void *) 0xdeadbeef;
void (*func_glGetConvolutionParameterfvEXT)(GLenum,  GLenum,  GLfloat *) = (void *) 0xdeadbeef;
void (*func_glGetConvolutionParameterivEXT)(GLenum,  GLenum,  GLint *) = (void *) 0xdeadbeef;
void (*func_glGetDetailTexFuncSGIS)(GLenum,  GLfloat *) = (void *) 0xdeadbeef;
void (*func_glGetFinalCombinerInputParameterfvNV)(GLenum,  GLenum,  GLfloat *) = (void *) 0xdeadbeef;
void (*func_glGetFinalCombinerInputParameterivNV)(GLenum,  GLenum,  GLint *) = (void *) 0xdeadbeef;
void (*func_glGetFogFuncSGIS)(const GLfloat *) = (void *) 0xdeadbeef;
void (*func_glGetFragmentLightfvSGIX)(GLenum,  GLenum,  GLfloat *) = (void *) 0xdeadbeef;
void (*func_glGetFragmentLightivSGIX)(GLenum,  GLenum,  GLint *) = (void *) 0xdeadbeef;
void (*func_glGetFragmentMaterialfvSGIX)(GLenum,  GLenum,  GLfloat *) = (void *) 0xdeadbeef;
void (*func_glGetFragmentMaterialivSGIX)(GLenum,  GLenum,  GLint *) = (void *) 0xdeadbeef;
void (*func_glGetHistogramEXT)(GLenum,  GLboolean,  GLenum,  GLenum,  GLvoid *) = (void *) 0xdeadbeef;
void (*func_glGetHistogramParameterfvEXT)(GLenum,  GLenum,  GLfloat *) = (void *) 0xdeadbeef;
void (*func_glGetHistogramParameterivEXT)(GLenum,  GLenum,  GLint *) = (void *) 0xdeadbeef;
void (*func_glGetImageTransformParameterfvHP)(GLenum,  GLenum,  GLfloat *) = (void *) 0xdeadbeef;
void (*func_glGetImageTransformParameterivHP)(GLenum,  GLenum,  GLint *) = (void *) 0xdeadbeef;
GLint (*func_glGetInstrumentsSGIX)(void) = (void *) 0xdeadbeef;
void (*func_glGetListParameterfvSGIX)(GLuint,  GLenum,  GLfloat *) = (void *) 0xdeadbeef;
void (*func_glGetListParameterivSGIX)(GLuint,  GLenum,  GLint *) = (void *) 0xdeadbeef;
void (*func_glGetMinmaxEXT)(GLenum,  GLboolean,  GLenum,  GLenum,  GLvoid *) = (void *) 0xdeadbeef;
void (*func_glGetMinmaxParameterfvEXT)(GLenum,  GLenum,  GLfloat *) = (void *) 0xdeadbeef;
void (*func_glGetMinmaxParameterivEXT)(GLenum,  GLenum,  GLint *) = (void *) 0xdeadbeef;
void (*func_glGetPixelTexGenParameterfvSGIS)(GLenum,  GLfloat *) = (void *) 0xdeadbeef;
void (*func_glGetPixelTexGenParameterivSGIS)(GLenum,  GLint *) = (void *) 0xdeadbeef;
void (*func_glGetPointervEXT)(GLenum,  GLvoid* *) = (void *) 0xdeadbeef;
void (*func_glGetSeparableFilterEXT)(GLenum,  GLenum,  GLenum,  GLvoid *,  GLvoid *,  GLvoid *) = (void *) 0xdeadbeef;
void (*func_glGetSharpenTexFuncSGIS)(GLenum,  GLfloat *) = (void *) 0xdeadbeef;
void (*func_glGetTexFilterFuncSGIS)(GLenum,  GLenum,  GLfloat *) = (void *) 0xdeadbeef;
void (*func_glGlobalAlphaFactorbSUN)(GLbyte) = (void *) 0xdeadbeef;
void (*func_glGlobalAlphaFactordSUN)(GLdouble) = (void *) 0xdeadbeef;
void (*func_glGlobalAlphaFactorfSUN)(GLfloat) = (void *) 0xdeadbeef;
void (*func_glGlobalAlphaFactoriSUN)(GLint) = (void *) 0xdeadbeef;
void (*func_glGlobalAlphaFactorsSUN)(GLshort) = (void *) 0xdeadbeef;
void (*func_glGlobalAlphaFactorubSUN)(GLubyte) = (void *) 0xdeadbeef;
void (*func_glGlobalAlphaFactoruiSUN)(GLuint) = (void *) 0xdeadbeef;
void (*func_glGlobalAlphaFactorusSUN)(GLushort) = (void *) 0xdeadbeef;
void (*func_glHintPGI)(GLenum,  GLint) = (void *) 0xdeadbeef;
void (*func_glHistogramEXT)(GLenum,  GLsizei,  GLenum,  GLboolean) = (void *) 0xdeadbeef;
void (*func_glImageTransformParameterfHP)(GLenum,  GLenum,  GLfloat) = (void *) 0xdeadbeef;
void (*func_glImageTransformParameterfvHP)(GLenum,  GLenum,  const GLfloat *) = (void *) 0xdeadbeef;
void (*func_glImageTransformParameteriHP)(GLenum,  GLenum,  GLint) = (void *) 0xdeadbeef;
void (*func_glImageTransformParameterivHP)(GLenum,  GLenum,  const GLint *) = (void *) 0xdeadbeef;
void (*func_glIndexFuncEXT)(GLenum,  GLclampf) = (void *) 0xdeadbeef;
void (*func_glIndexMaterialEXT)(GLenum,  GLenum) = (void *) 0xdeadbeef;
void (*func_glIndexPointerEXT)(GLenum,  GLsizei,  GLsizei,  const GLvoid *) = (void *) 0xdeadbeef;
void (*func_glIndexPointerListIBM)(GLenum,  GLint,  const GLvoid* *,  GLint) = (void *) 0xdeadbeef;
void (*func_glInstrumentsBufferSGIX)(GLsizei,  GLint *) = (void *) 0xdeadbeef;
GLboolean (*func_glIsTextureEXT)(GLuint) = (void *) 0xdeadbeef;
void (*func_glLightEnviSGIX)(GLenum,  GLint) = (void *) 0xdeadbeef;
void (*func_glListParameterfSGIX)(GLuint,  GLenum,  GLfloat) = (void *) 0xdeadbeef;
void (*func_glListParameterfvSGIX)(GLuint,  GLenum,  const GLfloat *) = (void *) 0xdeadbeef;
void (*func_glListParameteriSGIX)(GLuint,  GLenum,  GLint) = (void *) 0xdeadbeef;
void (*func_glListParameterivSGIX)(GLuint,  GLenum,  const GLint *) = (void *) 0xdeadbeef;
void (*func_glLoadTransposeMatrixdARB)(const GLdouble *) = (void *) 0xdeadbeef;
void (*func_glLoadTransposeMatrixfARB)(const GLfloat *) = (void *) 0xdeadbeef;
void (*func_glLockArraysEXT)(GLint,  GLsizei) = (void *) 0xdeadbeef;
void (*func_glMinmaxEXT)(GLenum,  GLenum,  GLboolean) = (void *) 0xdeadbeef;
void (*func_glMultTransposeMatrixdARB)(const GLdouble *) = (void *) 0xdeadbeef;
void (*func_glMultTransposeMatrixfARB)(const GLfloat *) = (void *) 0xdeadbeef;
void (*func_glMultiDrawArraysEXT)(GLenum,  GLint *,  GLsizei *,  GLsizei) = (void *) 0xdeadbeef;
void (*func_glMultiDrawElementsEXT)(GLenum,  const GLsizei *,  GLenum,  const GLvoid* *,  GLsizei) = (void *) 0xdeadbeef;
void (*func_glMultiModeDrawArraysIBM)(GLenum,  const GLint *,  const GLsizei *,  GLsizei,  GLint) = (void *) 0xdeadbeef;
void (*func_glMultiModeDrawElementsIBM)(const GLenum *,  const GLsizei *,  GLenum,  const GLvoid* *,  GLsizei,  GLint) = (void *) 0xdeadbeef;
void (*func_glNormal3fVertex3fSUN)(GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat) = (void *) 0xdeadbeef;
void (*func_glNormal3fVertex3fvSUN)(const GLfloat *,  const GLfloat *) = (void *) 0xdeadbeef;
void (*func_glNormalPointerEXT)(GLenum,  GLsizei,  GLsizei,  const GLvoid *) = (void *) 0xdeadbeef;
void (*func_glNormalPointerListIBM)(GLenum,  GLint,  const GLvoid* *,  GLint) = (void *) 0xdeadbeef;
void (*func_glNormalPointervINTEL)(GLenum,  const GLvoid* *) = (void *) 0xdeadbeef;
void (*func_glPixelTexGenParameterfSGIS)(GLenum,  GLfloat) = (void *) 0xdeadbeef;
void (*func_glPixelTexGenParameterfvSGIS)(GLenum,  const GLfloat *) = (void *) 0xdeadbeef;
void (*func_glPixelTexGenParameteriSGIS)(GLenum,  GLint) = (void *) 0xdeadbeef;
void (*func_glPixelTexGenParameterivSGIS)(GLenum,  const GLint *) = (void *) 0xdeadbeef;
void (*func_glPixelTexGenSGIX)(GLenum) = (void *) 0xdeadbeef;
void (*func_glPixelTransformParameterfEXT)(GLenum,  GLenum,  GLfloat) = (void *) 0xdeadbeef;
void (*func_glPixelTransformParameterfvEXT)(GLenum,  GLenum,  const GLfloat *) = (void *) 0xdeadbeef;
void (*func_glPixelTransformParameteriEXT)(GLenum,  GLenum,  GLint) = (void *) 0xdeadbeef;
void (*func_glPixelTransformParameterivEXT)(GLenum,  GLenum,  const GLint *) = (void *) 0xdeadbeef;
void (*func_glPointParameterfEXT)(GLenum,  GLfloat) = (void *) 0xdeadbeef;
void (*func_glPointParameterfSGIS)(GLenum,  GLfloat) = (void *) 0xdeadbeef;
void (*func_glPointParameterfvEXT)(GLenum,  const GLfloat *) = (void *) 0xdeadbeef;
void (*func_glPointParameterfvSGIS)(GLenum,  const GLfloat *) = (void *) 0xdeadbeef;
GLint (*func_glPollInstrumentsSGIX)(GLint *) = (void *) 0xdeadbeef;
void (*func_glPolygonOffsetEXT)(GLfloat,  GLfloat) = (void *) 0xdeadbeef;
void (*func_glPrioritizeTexturesEXT)(GLsizei,  const GLuint *,  const GLclampf *) = (void *) 0xdeadbeef;
void (*func_glReadInstrumentsSGIX)(GLint) = (void *) 0xdeadbeef;
void (*func_glReferencePlaneSGIX)(const GLdouble *) = (void *) 0xdeadbeef;
void (*func_glReplacementCodePointer)(GLenum,  GLsizei,  const GLvoid* *) = (void *) 0xdeadbeef;
void (*func_glReplacementCodeubSUN)(GLubyte) = (void *) 0xdeadbeef;
void (*func_glReplacementCodeubvSUN)(const GLubyte *) = (void *) 0xdeadbeef;
void (*func_glReplacementCodeuiColor3fVertex3fSUN)(GLenum,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat) = (void *) 0xdeadbeef;
void (*func_glReplacementCodeuiColor3fVertex3fvSUN)(const GLenum *,  const GLfloat *,  const GLfloat *) = (void *) 0xdeadbeef;
void (*func_glReplacementCodeuiColor4fNormal3fVertex3fSUN)(GLenum,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat) = (void *) 0xdeadbeef;
void (*func_glReplacementCodeuiColor4fNormal3fVertex3fvSUN)(const GLenum *,  const GLfloat *,  const GLfloat *,  const GLfloat *) = (void *) 0xdeadbeef;
void (*func_glReplacementCodeuiColor4ubVertex3fSUN)(GLenum,  GLubyte,  GLubyte,  GLubyte,  GLubyte,  GLfloat,  GLfloat,  GLfloat) = (void *) 0xdeadbeef;
void (*func_glReplacementCodeuiColor4ubVertex3fvSUN)(const GLenum *,  const GLubyte *,  const GLfloat *) = (void *) 0xdeadbeef;
void (*func_glReplacementCodeuiNormal3fVertex3fSUN)(GLenum,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat) = (void *) 0xdeadbeef;
void (*func_glReplacementCodeuiNormal3fVertex3fvSUN)(const GLenum *,  const GLfloat *,  const GLfloat *) = (void *) 0xdeadbeef;
void (*func_glReplacementCodeuiSUN)(GLuint) = (void *) 0xdeadbeef;
void (*func_glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN)(GLenum,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat) = (void *) 0xdeadbeef;
void (*func_glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN)(const GLenum *,  const GLfloat *,  const GLfloat *,  const GLfloat *,  const GLfloat *) = (void *) 0xdeadbeef;
void (*func_glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN)(GLenum,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat) = (void *) 0xdeadbeef;
void (*func_glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN)(const GLenum *,  const GLfloat *,  const GLfloat *,  const GLfloat *) = (void *) 0xdeadbeef;
void (*func_glReplacementCodeuiTexCoord2fVertex3fSUN)(GLenum,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat) = (void *) 0xdeadbeef;
void (*func_glReplacementCodeuiTexCoord2fVertex3fvSUN)(const GLenum *,  const GLfloat *,  const GLfloat *) = (void *) 0xdeadbeef;
void (*func_glReplacementCodeuiVertex3fSUN)(GLenum,  GLfloat,  GLfloat,  GLfloat) = (void *) 0xdeadbeef;
void (*func_glReplacementCodeuiVertex3fvSUN)(const GLenum *,  const GLfloat *) = (void *) 0xdeadbeef;
void (*func_glReplacementCodeuivSUN)(const GLuint *) = (void *) 0xdeadbeef;
void (*func_glReplacementCodeusSUN)(GLushort) = (void *) 0xdeadbeef;
void (*func_glReplacementCodeusvSUN)(const GLushort *) = (void *) 0xdeadbeef;
void (*func_glResetHistogramEXT)(GLenum) = (void *) 0xdeadbeef;
void (*func_glResetMinmaxEXT)(GLenum) = (void *) 0xdeadbeef;
void (*func_glResizeBuffersMESA)(void) = (void *) 0xdeadbeef;
void (*func_glSampleCoverageARB)(GLclampf,  GLboolean) = (void *) 0xdeadbeef;
void (*func_glSampleMaskEXT)(GLclampf,  GLboolean) = (void *) 0xdeadbeef;
void (*func_glSampleMaskSGIS)(GLclampf,  GLboolean) = (void *) 0xdeadbeef;
void (*func_glSamplePassARB)(GLenum) = (void *) 0xdeadbeef;
void (*func_glSamplePatternEXT)(GLenum) = (void *) 0xdeadbeef;
void (*func_glSamplePatternSGIS)(GLenum) = (void *) 0xdeadbeef;
void (*func_glSecondaryColor3bEXT)(GLbyte,  GLbyte,  GLbyte) = (void *) 0xdeadbeef;
void (*func_glSecondaryColor3bvEXT)(const GLbyte *) = (void *) 0xdeadbeef;
void (*func_glSecondaryColor3dEXT)(GLdouble,  GLdouble,  GLdouble) = (void *) 0xdeadbeef;
void (*func_glSecondaryColor3dvEXT)(const GLdouble *) = (void *) 0xdeadbeef;
void (*func_glSecondaryColor3fEXT)(GLfloat,  GLfloat,  GLfloat) = (void *) 0xdeadbeef;
void (*func_glSecondaryColor3fvEXT)(const GLfloat *) = (void *) 0xdeadbeef;
void (*func_glSecondaryColor3iEXT)(GLint,  GLint,  GLint) = (void *) 0xdeadbeef;
void (*func_glSecondaryColor3ivEXT)(const GLint *) = (void *) 0xdeadbeef;
void (*func_glSecondaryColor3sEXT)(GLshort,  GLshort,  GLshort) = (void *) 0xdeadbeef;
void (*func_glSecondaryColor3svEXT)(const GLshort *) = (void *) 0xdeadbeef;
void (*func_glSecondaryColor3ubEXT)(GLubyte,  GLubyte,  GLubyte) = (void *) 0xdeadbeef;
void (*func_glSecondaryColor3ubvEXT)(const GLubyte *) = (void *) 0xdeadbeef;
void (*func_glSecondaryColor3uiEXT)(GLuint,  GLuint,  GLuint) = (void *) 0xdeadbeef;
void (*func_glSecondaryColor3uivEXT)(const GLuint *) = (void *) 0xdeadbeef;
void (*func_glSecondaryColor3usEXT)(GLushort,  GLushort,  GLushort) = (void *) 0xdeadbeef;
void (*func_glSecondaryColor3usvEXT)(const GLushort *) = (void *) 0xdeadbeef;
void (*func_glSecondaryColorPointerEXT)(GLint,  GLenum,  GLsizei,  GLvoid *) = (void *) 0xdeadbeef;
void (*func_glSecondaryColorPointerListIBM)(GLint,  GLenum,  GLint,  const GLvoid* *,  GLint) = (void *) 0xdeadbeef;
void (*func_glSeparableFilter2DEXT)(GLenum,  GLenum,  GLsizei,  GLsizei,  GLenum,  GLenum,  const GLvoid *,  const GLvoid *) = (void *) 0xdeadbeef;
void (*func_glSharpenTexFuncSGIS)(GLenum,  GLsizei,  const GLfloat *) = (void *) 0xdeadbeef;
void (*func_glSpriteParameterfSGIX)(GLenum,  GLfloat) = (void *) 0xdeadbeef;
void (*func_glSpriteParameterfvSGIX)(GLenum,  const GLfloat *) = (void *) 0xdeadbeef;
void (*func_glSpriteParameteriSGIX)(GLenum,  GLint) = (void *) 0xdeadbeef;
void (*func_glSpriteParameterivSGIX)(GLenum,  const GLint *) = (void *) 0xdeadbeef;
void (*func_glStartInstrumentsSGIX)(void) = (void *) 0xdeadbeef;
void (*func_glStopInstrumentsSGIX)(GLint) = (void *) 0xdeadbeef;
void (*func_glTagSampleBufferSGIX)(void) = (void *) 0xdeadbeef;
void (*func_glTangent3b)(GLbyte,  GLbyte,  GLbyte) = (void *) 0xdeadbeef;
void (*func_glTangent3bv)(const GLbyte *) = (void *) 0xdeadbeef;
void (*func_glTangent3d)(GLdouble,  GLdouble,  GLdouble) = (void *) 0xdeadbeef;
void (*func_glTangent3dv)(const GLdouble *) = (void *) 0xdeadbeef;
void (*func_glTangent3f)(GLfloat,  GLfloat,  GLfloat) = (void *) 0xdeadbeef;
void (*func_glTangent3fv)(const GLfloat *) = (void *) 0xdeadbeef;
void (*func_glTangent3i)(GLint,  GLint,  GLint) = (void *) 0xdeadbeef;
void (*func_glTangent3iv)(const GLint *) = (void *) 0xdeadbeef;
void (*func_glTangent3s)(GLshort,  GLshort,  GLshort) = (void *) 0xdeadbeef;
void (*func_glTangent3sv)(const GLshort *) = (void *) 0xdeadbeef;
void (*func_glTangentPointerEXT)(GLenum,  GLsizei,  const GLvoid *) = (void *) 0xdeadbeef;
void (*func_glTbufferMask3DFX)(GLuint) = (void *) 0xdeadbeef;
void (*func_glTexCoord2fColor3fVertex3fSUN)(GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat) = (void *) 0xdeadbeef;
void (*func_glTexCoord2fColor3fVertex3fvSUN)(const GLfloat *,  const GLfloat *,  const GLfloat *) = (void *) 0xdeadbeef;
void (*func_glTexCoord2fColor4fNormal3fVertex3fSUN)(GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat) = (void *) 0xdeadbeef;
void (*func_glTexCoord2fColor4fNormal3fVertex3fvSUN)(const GLfloat *,  const GLfloat *,  const GLfloat *,  const GLfloat *) = (void *) 0xdeadbeef;
void (*func_glTexCoord2fColor4ubVertex3fSUN)(GLfloat,  GLfloat,  GLubyte,  GLubyte,  GLubyte,  GLubyte,  GLfloat,  GLfloat,  GLfloat) = (void *) 0xdeadbeef;
void (*func_glTexCoord2fColor4ubVertex3fvSUN)(const GLfloat *,  const GLubyte *,  const GLfloat *) = (void *) 0xdeadbeef;
void (*func_glTexCoord2fNormal3fVertex3fSUN)(GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat) = (void *) 0xdeadbeef;
void (*func_glTexCoord2fNormal3fVertex3fvSUN)(const GLfloat *,  const GLfloat *,  const GLfloat *) = (void *) 0xdeadbeef;
void (*func_glTexCoord2fVertex3fSUN)(GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat) = (void *) 0xdeadbeef;
void (*func_glTexCoord2fVertex3fvSUN)(const GLfloat *,  const GLfloat *) = (void *) 0xdeadbeef;
void (*func_glTexCoord4fColor4fNormal3fVertex4fSUN)(GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat) = (void *) 0xdeadbeef;
void (*func_glTexCoord4fColor4fNormal3fVertex4fvSUN)(const GLfloat *,  const GLfloat *,  const GLfloat *,  const GLfloat *) = (void *) 0xdeadbeef;
void (*func_glTexCoord4fVertex4fSUN)(GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat) = (void *) 0xdeadbeef;
void (*func_glTexCoord4fVertex4fvSUN)(const GLfloat *,  const GLfloat *) = (void *) 0xdeadbeef;
void (*func_glTexCoordPointerEXT)(GLint,  GLenum,  GLsizei,  GLsizei,  const GLvoid *) = (void *) 0xdeadbeef;
void (*func_glTexCoordPointerListIBM)(GLint,  GLenum,  GLint,  const GLvoid* *,  GLint) = (void *) 0xdeadbeef;
void (*func_glTexCoordPointervINTEL)(GLint,  GLenum,  const GLvoid* *) = (void *) 0xdeadbeef;
void (*func_glTexFilterFuncSGIS)(GLenum,  GLenum,  GLsizei,  const GLfloat *) = (void *) 0xdeadbeef;
void (*func_glTexImage3DEXT)(GLenum,  GLint,  GLenum,  GLsizei,  GLsizei,  GLsizei,  GLint,  GLenum,  GLenum,  const GLvoid *) = (void *) 0xdeadbeef;
void (*func_glTexImage4DSGIS)(GLenum,  GLint,  GLenum,  GLsizei,  GLsizei,  GLsizei,  GLsizei,  GLint,  GLenum,  GLenum,  const GLvoid *) = (void *) 0xdeadbeef;
void (*func_glTexSubImage1DEXT)(GLenum,  GLint,  GLint,  GLsizei,  GLenum,  GLenum,  const GLvoid *) = (void *) 0xdeadbeef;
void (*func_glTexSubImage2DEXT)(GLenum,  GLint,  GLint,  GLint,  GLsizei,  GLsizei,  GLenum,  GLenum,  const GLvoid *) = (void *) 0xdeadbeef;
void (*func_glTexSubImage3DEXT)(GLenum,  GLint,  GLint,  GLint,  GLint,  GLsizei,  GLsizei,  GLsizei,  GLenum,  GLenum,  const GLvoid *) = (void *) 0xdeadbeef;
void (*func_glTexSubImage4DSGIS)(GLenum,  GLint,  GLint,  GLint,  GLint,  GLint,  GLsizei,  GLsizei,  GLsizei,  GLsizei,  GLenum,  GLenum,  const GLvoid *) = (void *) 0xdeadbeef;
void (*func_glTextureLightEXT)(GLenum) = (void *) 0xdeadbeef;
void (*func_glTextureMaterialEXT)(GLenum,  GLenum) = (void *) 0xdeadbeef;
void (*func_glTextureNormalEXT)(GLenum) = (void *) 0xdeadbeef;
void (*func_glUnlockArraysEXT)(void) = (void *) 0xdeadbeef;
void (*func_glVertexArrayRangeNV)(GLsizei,  const GLvoid *) = (void *) 0xdeadbeef;
void (*func_glVertexPointerEXT)(GLint,  GLenum,  GLsizei,  GLsizei,  const GLvoid *) = (void *) 0xdeadbeef;
void (*func_glVertexPointerListIBM)(GLint,  GLenum,  GLint,  const GLvoid* *,  GLint) = (void *) 0xdeadbeef;
void (*func_glVertexPointervINTEL)(GLint,  GLenum,  const GLvoid* *) = (void *) 0xdeadbeef;
void (*func_glVertexWeightPointerEXT)(GLsizei,  GLenum,  GLsizei,  const GLvoid *) = (void *) 0xdeadbeef;
void (*func_glVertexWeightfEXT)(GLfloat) = (void *) 0xdeadbeef;
void (*func_glVertexWeightfvEXT)(const GLfloat *) = (void *) 0xdeadbeef;
void (*func_glWindowPos2dMESA)(GLdouble,  GLdouble) = (void *) 0xdeadbeef;
void (*func_glWindowPos2dvMESA)(const GLdouble *) = (void *) 0xdeadbeef;
void (*func_glWindowPos2fMESA)(GLfloat,  GLfloat) = (void *) 0xdeadbeef;
void (*func_glWindowPos2fvMESA)(const GLfloat *) = (void *) 0xdeadbeef;
void (*func_glWindowPos2iMESA)(GLint,  GLint) = (void *) 0xdeadbeef;
void (*func_glWindowPos2ivMESA)(const GLint *) = (void *) 0xdeadbeef;
void (*func_glWindowPos2sMESA)(GLshort,  GLshort) = (void *) 0xdeadbeef;
void (*func_glWindowPos2svMESA)(const GLshort *) = (void *) 0xdeadbeef;
void (*func_glWindowPos3dMESA)(GLdouble,  GLdouble,  GLdouble) = (void *) 0xdeadbeef;
void (*func_glWindowPos3dvMESA)(const GLdouble *) = (void *) 0xdeadbeef;
void (*func_glWindowPos3fMESA)(GLfloat,  GLfloat,  GLfloat) = (void *) 0xdeadbeef;
void (*func_glWindowPos3fvMESA)(const GLfloat *) = (void *) 0xdeadbeef;
void (*func_glWindowPos3iMESA)(GLint,  GLint,  GLint) = (void *) 0xdeadbeef;
void (*func_glWindowPos3ivMESA)(const GLint *) = (void *) 0xdeadbeef;
void (*func_glWindowPos3sMESA)(GLshort,  GLshort,  GLshort) = (void *) 0xdeadbeef;
void (*func_glWindowPos3svMESA)(const GLshort *) = (void *) 0xdeadbeef;
void (*func_glWindowPos4dMESA)(GLdouble,  GLdouble,  GLdouble,  GLdouble) = (void *) 0xdeadbeef;
void (*func_glWindowPos4dvMESA)(const GLdouble *) = (void *) 0xdeadbeef;
void (*func_glWindowPos4fMESA)(GLfloat,  GLfloat,  GLfloat,  GLfloat) = (void *) 0xdeadbeef;
void (*func_glWindowPos4fvMESA)(const GLfloat *) = (void *) 0xdeadbeef;
void (*func_glWindowPos4iMESA)(GLint,  GLint,  GLint,  GLint) = (void *) 0xdeadbeef;
void (*func_glWindowPos4ivMESA)(const GLint *) = (void *) 0xdeadbeef;
void (*func_glWindowPos4sMESA)(GLshort,  GLshort,  GLshort,  GLshort) = (void *) 0xdeadbeef;
void (*func_glWindowPos4svMESA)(const GLshort *) = (void *) 0xdeadbeef;

/* The function prototypes */
void WINAPI wine_glApplyTextureEXT(GLenum) ;
GLboolean WINAPI wine_glAreTexturesResidentEXT(GLsizei,  const GLuint *,  GLboolean *) ;
void WINAPI wine_glArrayElementEXT(GLint) ;
void WINAPI wine_glBindTextureEXT(GLenum,  GLuint) ;
void WINAPI wine_glBinormal3b(GLbyte,  GLbyte,  GLbyte) ;
void WINAPI wine_glBinormal3bv(const GLbyte *) ;
void WINAPI wine_glBinormal3d(GLdouble,  GLdouble,  GLdouble) ;
void WINAPI wine_glBinormal3dv(const GLdouble *) ;
void WINAPI wine_glBinormal3f(GLfloat,  GLfloat,  GLfloat) ;
void WINAPI wine_glBinormal3fv(const GLfloat *) ;
void WINAPI wine_glBinormal3i(GLint,  GLint,  GLint) ;
void WINAPI wine_glBinormal3iv(const GLint *) ;
void WINAPI wine_glBinormal3s(GLshort,  GLshort,  GLshort) ;
void WINAPI wine_glBinormal3sv(const GLshort *) ;
void WINAPI wine_glBinormalPointerEXT(GLenum,  GLsizei,  const GLvoid *) ;
void WINAPI wine_glBlendColorEXT(GLclampf,  GLclampf,  GLclampf,  GLclampf) ;
void WINAPI wine_glBlendEquationEXT(GLenum) ;
void WINAPI wine_glBlendFuncSeparateEXT(GLenum,  GLenum,  GLenum,  GLenum) ;
void WINAPI wine_glColor3fVertex3fSUN(GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat) ;
void WINAPI wine_glColor3fVertex3fvSUN(const GLfloat *,  const GLfloat *) ;
void WINAPI wine_glColor4fNormal3fVertex3fSUN(GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat) ;
void WINAPI wine_glColor4fNormal3fVertex3fvSUN(const GLfloat *,  const GLfloat *,  const GLfloat *) ;
void WINAPI wine_glColor4ubVertex2fSUN(GLubyte,  GLubyte,  GLubyte,  GLubyte,  GLfloat,  GLfloat) ;
void WINAPI wine_glColor4ubVertex2fvSUN(const GLubyte *,  const GLfloat *) ;
void WINAPI wine_glColor4ubVertex3fSUN(GLubyte,  GLubyte,  GLubyte,  GLubyte,  GLfloat,  GLfloat,  GLfloat) ;
void WINAPI wine_glColor4ubVertex3fvSUN(const GLubyte *,  const GLfloat *) ;
void WINAPI wine_glColorPointerEXT(GLint,  GLenum,  GLsizei,  GLsizei,  const GLvoid *) ;
void WINAPI wine_glColorPointerListIBM(GLint,  GLenum,  GLint,  const GLvoid* *,  GLint) ;
void WINAPI wine_glColorPointervINTEL(GLint,  GLenum,  const GLvoid* *) ;
void WINAPI wine_glColorSubTableEXT(GLenum,  GLsizei,  GLsizei,  GLenum,  GLenum,  const GLvoid *) ;
void WINAPI wine_glColorTableEXT(GLenum,  GLenum,  GLsizei,  GLenum,  GLenum,  const GLvoid *) ;
void WINAPI wine_glColorTableParameterfvSGI(GLenum,  GLenum,  const GLfloat *) ;
void WINAPI wine_glColorTableParameterivSGI(GLenum,  GLenum,  const GLint *) ;
void WINAPI wine_glColorTableSGI(GLenum,  GLenum,  GLsizei,  GLenum,  GLenum,  const GLvoid *) ;
void WINAPI wine_glCombinerInputNV(GLenum,  GLenum,  GLenum,  GLenum,  GLenum,  GLenum) ;
void WINAPI wine_glCombinerOutputNV(GLenum,  GLenum,  GLenum,  GLenum,  GLenum,  GLenum,  GLenum,  GLboolean,  GLboolean,  GLboolean) ;
void WINAPI wine_glCombinerParameterfNV(GLenum,  GLfloat) ;
void WINAPI wine_glCombinerParameterfvNV(GLenum,  const GLfloat *) ;
void WINAPI wine_glCombinerParameteriNV(GLenum,  GLint) ;
void WINAPI wine_glCombinerParameterivNV(GLenum,  const GLint *) ;
void WINAPI wine_glCompressedTexImage1DARB(GLenum,  GLint,  GLenum,  GLsizei,  GLint,  GLsizei,  const GLvoid *) ;
void WINAPI wine_glCompressedTexImage2DARB(GLenum,  GLint,  GLenum,  GLsizei,  GLsizei,  GLint,  GLsizei,  const GLvoid *) ;
void WINAPI wine_glCompressedTexImage3DARB(GLenum,  GLint,  GLenum,  GLsizei,  GLsizei,  GLsizei,  GLint,  GLsizei,  const GLvoid *) ;
void WINAPI wine_glCompressedTexSubImage1DARB(GLenum,  GLint,  GLint,  GLsizei,  GLenum,  GLsizei,  const GLvoid *) ;
void WINAPI wine_glCompressedTexSubImage2DARB(GLenum,  GLint,  GLint,  GLint,  GLsizei,  GLsizei,  GLenum,  GLsizei,  const GLvoid *) ;
void WINAPI wine_glCompressedTexSubImage3DARB(GLenum,  GLint,  GLint,  GLint,  GLint,  GLsizei,  GLsizei,  GLsizei,  GLenum,  GLsizei,  const GLvoid *) ;
void WINAPI wine_glConvolutionFilter1DEXT(GLenum,  GLenum,  GLsizei,  GLenum,  GLenum,  const GLvoid *) ;
void WINAPI wine_glConvolutionFilter2DEXT(GLenum,  GLenum,  GLsizei,  GLsizei,  GLenum,  GLenum,  const GLvoid *) ;
void WINAPI wine_glConvolutionParameterfEXT(GLenum,  GLenum,  GLfloat) ;
void WINAPI wine_glConvolutionParameterfvEXT(GLenum,  GLenum,  const GLfloat *) ;
void WINAPI wine_glConvolutionParameteriEXT(GLenum,  GLenum,  GLint) ;
void WINAPI wine_glConvolutionParameterivEXT(GLenum,  GLenum,  const GLint *) ;
void WINAPI wine_glCopyColorSubTableEXT(GLenum,  GLsizei,  GLint,  GLint,  GLsizei) ;
void WINAPI wine_glCopyColorTableSGI(GLenum,  GLenum,  GLint,  GLint,  GLsizei) ;
void WINAPI wine_glCopyConvolutionFilter1DEXT(GLenum,  GLenum,  GLint,  GLint,  GLsizei) ;
void WINAPI wine_glCopyConvolutionFilter2DEXT(GLenum,  GLenum,  GLint,  GLint,  GLsizei,  GLsizei) ;
void WINAPI wine_glCopyTexImage1DEXT(GLenum,  GLint,  GLenum,  GLint,  GLint,  GLsizei,  GLint) ;
void WINAPI wine_glCopyTexImage2DEXT(GLenum,  GLint,  GLenum,  GLint,  GLint,  GLsizei,  GLsizei,  GLint) ;
void WINAPI wine_glCopyTexSubImage1DEXT(GLenum,  GLint,  GLint,  GLint,  GLint,  GLsizei) ;
void WINAPI wine_glCopyTexSubImage2DEXT(GLenum,  GLint,  GLint,  GLint,  GLint,  GLint,  GLsizei,  GLsizei) ;
void WINAPI wine_glCopyTexSubImage3DEXT(GLenum,  GLint,  GLint,  GLint,  GLint,  GLint,  GLint,  GLsizei,  GLsizei) ;
void WINAPI wine_glCullParameterdvEXT(GLenum,  GLdouble *) ;
void WINAPI wine_glCullParameterfvEXT(GLenum,  GLfloat *) ;
void WINAPI wine_glDeleteTexturesEXT(GLsizei,  const GLuint *) ;
void WINAPI wine_glDetailTexFuncSGIS(GLenum,  GLsizei,  const GLfloat *) ;
void WINAPI wine_glDrawArraysEXT(GLenum,  GLint,  GLsizei) ;
void WINAPI wine_glDrawRangeElementsEXT(GLenum,  GLuint,  GLuint,  GLsizei,  GLenum,  const GLvoid *) ;
void WINAPI wine_glEdgeFlagPointerEXT(GLsizei,  GLsizei,  const GLboolean *) ;
void WINAPI wine_glEdgeFlagPointerListIBM(GLint,  const GLboolean* *,  GLint) ;
void WINAPI wine_glFinalCombinerInputNV(GLenum,  GLenum,  GLenum,  GLenum) ;
void WINAPI wine_glFinishTextureSUNX(void) ;
void WINAPI wine_glFlushRasterSGIX(void) ;
void WINAPI wine_glFlushVertexArrayRangeNV(void) ;
void WINAPI wine_glFogCoordPointerEXT(GLenum,  GLsizei,  const GLvoid *) ;
void WINAPI wine_glFogCoordPointerListIBM(GLenum,  GLint,  const GLvoid* *,  GLint) ;
void WINAPI wine_glFogCoorddEXT(GLdouble) ;
void WINAPI wine_glFogCoorddvEXT(const GLdouble *) ;
void WINAPI wine_glFogCoordfEXT(GLfloat) ;
void WINAPI wine_glFogCoordfvEXT(const GLfloat *) ;
void WINAPI wine_glFogFuncSGIS(GLsizei,  const GLfloat *) ;
void WINAPI wine_glFragmentColorMaterialSGIX(GLenum,  GLenum) ;
void WINAPI wine_glFragmentLightModelfSGIX(GLenum,  GLfloat) ;
void WINAPI wine_glFragmentLightModelfvSGIX(GLenum,  const GLfloat *) ;
void WINAPI wine_glFragmentLightModeliSGIX(GLenum,  GLint) ;
void WINAPI wine_glFragmentLightModelivSGIX(GLenum,  const GLint *) ;
void WINAPI wine_glFragmentLightfSGIX(GLenum,  GLenum,  GLfloat) ;
void WINAPI wine_glFragmentLightfvSGIX(GLenum,  GLenum,  const GLfloat *) ;
void WINAPI wine_glFragmentLightiSGIX(GLenum,  GLenum,  GLint) ;
void WINAPI wine_glFragmentLightivSGIX(GLenum,  GLenum,  const GLint *) ;
void WINAPI wine_glFragmentMaterialfSGIX(GLenum,  GLenum,  GLfloat) ;
void WINAPI wine_glFragmentMaterialfvSGIX(GLenum,  GLenum,  const GLfloat *) ;
void WINAPI wine_glFragmentMaterialiSGIX(GLenum,  GLenum,  GLint) ;
void WINAPI wine_glFragmentMaterialivSGIX(GLenum,  GLenum,  const GLint *) ;
void WINAPI wine_glFrameZoomSGIX(GLint) ;
void WINAPI wine_glGenTexturesEXT(GLsizei,  GLuint *) ;
void WINAPI wine_glGetColorTableEXT(GLenum,  GLenum,  GLenum,  GLvoid *) ;
void WINAPI wine_glGetColorTableParameterfvEXT(GLenum,  GLenum,  GLfloat *) ;
void WINAPI wine_glGetColorTableParameterfvSGI(GLenum,  GLenum,  GLfloat *) ;
void WINAPI wine_glGetColorTableParameterivEXT(GLenum,  GLenum,  GLint *) ;
void WINAPI wine_glGetColorTableParameterivSGI(GLenum,  GLenum,  GLint *) ;
void WINAPI wine_glGetColorTableSGI(GLenum,  GLenum,  GLenum,  GLvoid *) ;
void WINAPI wine_glGetCombinerInputParameterfvNV(GLenum,  GLenum,  GLenum,  GLenum,  GLfloat *) ;
void WINAPI wine_glGetCombinerInputParameterivNV(GLenum,  GLenum,  GLenum,  GLenum,  GLint *) ;
void WINAPI wine_glGetCombinerOutputParameterfvNV(GLenum,  GLenum,  GLenum,  GLfloat *) ;
void WINAPI wine_glGetCombinerOutputParameterivNV(GLenum,  GLenum,  GLenum,  GLint *) ;
void WINAPI wine_glGetCompressedTexImageARB(GLenum,  GLint,  void *) ;
void WINAPI wine_glGetConvolutionFilterEXT(GLenum,  GLenum,  GLenum,  GLvoid *) ;
void WINAPI wine_glGetConvolutionParameterfvEXT(GLenum,  GLenum,  GLfloat *) ;
void WINAPI wine_glGetConvolutionParameterivEXT(GLenum,  GLenum,  GLint *) ;
void WINAPI wine_glGetDetailTexFuncSGIS(GLenum,  GLfloat *) ;
void WINAPI wine_glGetFinalCombinerInputParameterfvNV(GLenum,  GLenum,  GLfloat *) ;
void WINAPI wine_glGetFinalCombinerInputParameterivNV(GLenum,  GLenum,  GLint *) ;
void WINAPI wine_glGetFogFuncSGIS(const GLfloat *) ;
void WINAPI wine_glGetFragmentLightfvSGIX(GLenum,  GLenum,  GLfloat *) ;
void WINAPI wine_glGetFragmentLightivSGIX(GLenum,  GLenum,  GLint *) ;
void WINAPI wine_glGetFragmentMaterialfvSGIX(GLenum,  GLenum,  GLfloat *) ;
void WINAPI wine_glGetFragmentMaterialivSGIX(GLenum,  GLenum,  GLint *) ;
void WINAPI wine_glGetHistogramEXT(GLenum,  GLboolean,  GLenum,  GLenum,  GLvoid *) ;
void WINAPI wine_glGetHistogramParameterfvEXT(GLenum,  GLenum,  GLfloat *) ;
void WINAPI wine_glGetHistogramParameterivEXT(GLenum,  GLenum,  GLint *) ;
void WINAPI wine_glGetImageTransformParameterfvHP(GLenum,  GLenum,  GLfloat *) ;
void WINAPI wine_glGetImageTransformParameterivHP(GLenum,  GLenum,  GLint *) ;
GLint WINAPI wine_glGetInstrumentsSGIX(void) ;
void WINAPI wine_glGetListParameterfvSGIX(GLuint,  GLenum,  GLfloat *) ;
void WINAPI wine_glGetListParameterivSGIX(GLuint,  GLenum,  GLint *) ;
void WINAPI wine_glGetMinmaxEXT(GLenum,  GLboolean,  GLenum,  GLenum,  GLvoid *) ;
void WINAPI wine_glGetMinmaxParameterfvEXT(GLenum,  GLenum,  GLfloat *) ;
void WINAPI wine_glGetMinmaxParameterivEXT(GLenum,  GLenum,  GLint *) ;
void WINAPI wine_glGetPixelTexGenParameterfvSGIS(GLenum,  GLfloat *) ;
void WINAPI wine_glGetPixelTexGenParameterivSGIS(GLenum,  GLint *) ;
void WINAPI wine_glGetPointervEXT(GLenum,  GLvoid* *) ;
void WINAPI wine_glGetSeparableFilterEXT(GLenum,  GLenum,  GLenum,  GLvoid *,  GLvoid *,  GLvoid *) ;
void WINAPI wine_glGetSharpenTexFuncSGIS(GLenum,  GLfloat *) ;
void WINAPI wine_glGetTexFilterFuncSGIS(GLenum,  GLenum,  GLfloat *) ;
void WINAPI wine_glGlobalAlphaFactorbSUN(GLbyte) ;
void WINAPI wine_glGlobalAlphaFactordSUN(GLdouble) ;
void WINAPI wine_glGlobalAlphaFactorfSUN(GLfloat) ;
void WINAPI wine_glGlobalAlphaFactoriSUN(GLint) ;
void WINAPI wine_glGlobalAlphaFactorsSUN(GLshort) ;
void WINAPI wine_glGlobalAlphaFactorubSUN(GLubyte) ;
void WINAPI wine_glGlobalAlphaFactoruiSUN(GLuint) ;
void WINAPI wine_glGlobalAlphaFactorusSUN(GLushort) ;
void WINAPI wine_glHintPGI(GLenum,  GLint) ;
void WINAPI wine_glHistogramEXT(GLenum,  GLsizei,  GLenum,  GLboolean) ;
void WINAPI wine_glImageTransformParameterfHP(GLenum,  GLenum,  GLfloat) ;
void WINAPI wine_glImageTransformParameterfvHP(GLenum,  GLenum,  const GLfloat *) ;
void WINAPI wine_glImageTransformParameteriHP(GLenum,  GLenum,  GLint) ;
void WINAPI wine_glImageTransformParameterivHP(GLenum,  GLenum,  const GLint *) ;
void WINAPI wine_glIndexFuncEXT(GLenum,  GLclampf) ;
void WINAPI wine_glIndexMaterialEXT(GLenum,  GLenum) ;
void WINAPI wine_glIndexPointerEXT(GLenum,  GLsizei,  GLsizei,  const GLvoid *) ;
void WINAPI wine_glIndexPointerListIBM(GLenum,  GLint,  const GLvoid* *,  GLint) ;
void WINAPI wine_glInstrumentsBufferSGIX(GLsizei,  GLint *) ;
GLboolean WINAPI wine_glIsTextureEXT(GLuint) ;
void WINAPI wine_glLightEnviSGIX(GLenum,  GLint) ;
void WINAPI wine_glListParameterfSGIX(GLuint,  GLenum,  GLfloat) ;
void WINAPI wine_glListParameterfvSGIX(GLuint,  GLenum,  const GLfloat *) ;
void WINAPI wine_glListParameteriSGIX(GLuint,  GLenum,  GLint) ;
void WINAPI wine_glListParameterivSGIX(GLuint,  GLenum,  const GLint *) ;
void WINAPI wine_glLoadTransposeMatrixdARB(const GLdouble *) ;
void WINAPI wine_glLoadTransposeMatrixfARB(const GLfloat *) ;
void WINAPI wine_glLockArraysEXT(GLint,  GLsizei) ;
void WINAPI wine_glMinmaxEXT(GLenum,  GLenum,  GLboolean) ;
void WINAPI wine_glMultTransposeMatrixdARB(const GLdouble *) ;
void WINAPI wine_glMultTransposeMatrixfARB(const GLfloat *) ;
void WINAPI wine_glMultiDrawArraysEXT(GLenum,  GLint *,  GLsizei *,  GLsizei) ;
void WINAPI wine_glMultiDrawElementsEXT(GLenum,  const GLsizei *,  GLenum,  const GLvoid* *,  GLsizei) ;
void WINAPI wine_glMultiModeDrawArraysIBM(GLenum,  const GLint *,  const GLsizei *,  GLsizei,  GLint) ;
void WINAPI wine_glMultiModeDrawElementsIBM(const GLenum *,  const GLsizei *,  GLenum,  const GLvoid* *,  GLsizei,  GLint) ;
void WINAPI wine_glNormal3fVertex3fSUN(GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat) ;
void WINAPI wine_glNormal3fVertex3fvSUN(const GLfloat *,  const GLfloat *) ;
void WINAPI wine_glNormalPointerEXT(GLenum,  GLsizei,  GLsizei,  const GLvoid *) ;
void WINAPI wine_glNormalPointerListIBM(GLenum,  GLint,  const GLvoid* *,  GLint) ;
void WINAPI wine_glNormalPointervINTEL(GLenum,  const GLvoid* *) ;
void WINAPI wine_glPixelTexGenParameterfSGIS(GLenum,  GLfloat) ;
void WINAPI wine_glPixelTexGenParameterfvSGIS(GLenum,  const GLfloat *) ;
void WINAPI wine_glPixelTexGenParameteriSGIS(GLenum,  GLint) ;
void WINAPI wine_glPixelTexGenParameterivSGIS(GLenum,  const GLint *) ;
void WINAPI wine_glPixelTexGenSGIX(GLenum) ;
void WINAPI wine_glPixelTransformParameterfEXT(GLenum,  GLenum,  GLfloat) ;
void WINAPI wine_glPixelTransformParameterfvEXT(GLenum,  GLenum,  const GLfloat *) ;
void WINAPI wine_glPixelTransformParameteriEXT(GLenum,  GLenum,  GLint) ;
void WINAPI wine_glPixelTransformParameterivEXT(GLenum,  GLenum,  const GLint *) ;
void WINAPI wine_glPointParameterfEXT(GLenum,  GLfloat) ;
void WINAPI wine_glPointParameterfSGIS(GLenum,  GLfloat) ;
void WINAPI wine_glPointParameterfvEXT(GLenum,  const GLfloat *) ;
void WINAPI wine_glPointParameterfvSGIS(GLenum,  const GLfloat *) ;
GLint WINAPI wine_glPollInstrumentsSGIX(GLint *) ;
void WINAPI wine_glPolygonOffsetEXT(GLfloat,  GLfloat) ;
void WINAPI wine_glPrioritizeTexturesEXT(GLsizei,  const GLuint *,  const GLclampf *) ;
void WINAPI wine_glReadInstrumentsSGIX(GLint) ;
void WINAPI wine_glReferencePlaneSGIX(const GLdouble *) ;
void WINAPI wine_glReplacementCodePointer(GLenum,  GLsizei,  const GLvoid* *) ;
void WINAPI wine_glReplacementCodeubSUN(GLubyte) ;
void WINAPI wine_glReplacementCodeubvSUN(const GLubyte *) ;
void WINAPI wine_glReplacementCodeuiColor3fVertex3fSUN(GLenum,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat) ;
void WINAPI wine_glReplacementCodeuiColor3fVertex3fvSUN(const GLenum *,  const GLfloat *,  const GLfloat *) ;
void WINAPI wine_glReplacementCodeuiColor4fNormal3fVertex3fSUN(GLenum,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat) ;
void WINAPI wine_glReplacementCodeuiColor4fNormal3fVertex3fvSUN(const GLenum *,  const GLfloat *,  const GLfloat *,  const GLfloat *) ;
void WINAPI wine_glReplacementCodeuiColor4ubVertex3fSUN(GLenum,  GLubyte,  GLubyte,  GLubyte,  GLubyte,  GLfloat,  GLfloat,  GLfloat) ;
void WINAPI wine_glReplacementCodeuiColor4ubVertex3fvSUN(const GLenum *,  const GLubyte *,  const GLfloat *) ;
void WINAPI wine_glReplacementCodeuiNormal3fVertex3fSUN(GLenum,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat) ;
void WINAPI wine_glReplacementCodeuiNormal3fVertex3fvSUN(const GLenum *,  const GLfloat *,  const GLfloat *) ;
void WINAPI wine_glReplacementCodeuiSUN(GLuint) ;
void WINAPI wine_glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN(GLenum,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat) ;
void WINAPI wine_glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN(const GLenum *,  const GLfloat *,  const GLfloat *,  const GLfloat *,  const GLfloat *) ;
void WINAPI wine_glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN(GLenum,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat) ;
void WINAPI wine_glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN(const GLenum *,  const GLfloat *,  const GLfloat *,  const GLfloat *) ;
void WINAPI wine_glReplacementCodeuiTexCoord2fVertex3fSUN(GLenum,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat) ;
void WINAPI wine_glReplacementCodeuiTexCoord2fVertex3fvSUN(const GLenum *,  const GLfloat *,  const GLfloat *) ;
void WINAPI wine_glReplacementCodeuiVertex3fSUN(GLenum,  GLfloat,  GLfloat,  GLfloat) ;
void WINAPI wine_glReplacementCodeuiVertex3fvSUN(const GLenum *,  const GLfloat *) ;
void WINAPI wine_glReplacementCodeuivSUN(const GLuint *) ;
void WINAPI wine_glReplacementCodeusSUN(GLushort) ;
void WINAPI wine_glReplacementCodeusvSUN(const GLushort *) ;
void WINAPI wine_glResetHistogramEXT(GLenum) ;
void WINAPI wine_glResetMinmaxEXT(GLenum) ;
void WINAPI wine_glResizeBuffersMESA(void) ;
void WINAPI wine_glSampleCoverageARB(GLclampf,  GLboolean) ;
void WINAPI wine_glSampleMaskEXT(GLclampf,  GLboolean) ;
void WINAPI wine_glSampleMaskSGIS(GLclampf,  GLboolean) ;
void WINAPI wine_glSamplePassARB(GLenum) ;
void WINAPI wine_glSamplePatternEXT(GLenum) ;
void WINAPI wine_glSamplePatternSGIS(GLenum) ;
void WINAPI wine_glSecondaryColor3bEXT(GLbyte,  GLbyte,  GLbyte) ;
void WINAPI wine_glSecondaryColor3bvEXT(const GLbyte *) ;
void WINAPI wine_glSecondaryColor3dEXT(GLdouble,  GLdouble,  GLdouble) ;
void WINAPI wine_glSecondaryColor3dvEXT(const GLdouble *) ;
void WINAPI wine_glSecondaryColor3fEXT(GLfloat,  GLfloat,  GLfloat) ;
void WINAPI wine_glSecondaryColor3fvEXT(const GLfloat *) ;
void WINAPI wine_glSecondaryColor3iEXT(GLint,  GLint,  GLint) ;
void WINAPI wine_glSecondaryColor3ivEXT(const GLint *) ;
void WINAPI wine_glSecondaryColor3sEXT(GLshort,  GLshort,  GLshort) ;
void WINAPI wine_glSecondaryColor3svEXT(const GLshort *) ;
void WINAPI wine_glSecondaryColor3ubEXT(GLubyte,  GLubyte,  GLubyte) ;
void WINAPI wine_glSecondaryColor3ubvEXT(const GLubyte *) ;
void WINAPI wine_glSecondaryColor3uiEXT(GLuint,  GLuint,  GLuint) ;
void WINAPI wine_glSecondaryColor3uivEXT(const GLuint *) ;
void WINAPI wine_glSecondaryColor3usEXT(GLushort,  GLushort,  GLushort) ;
void WINAPI wine_glSecondaryColor3usvEXT(const GLushort *) ;
void WINAPI wine_glSecondaryColorPointerEXT(GLint,  GLenum,  GLsizei,  GLvoid *) ;
void WINAPI wine_glSecondaryColorPointerListIBM(GLint,  GLenum,  GLint,  const GLvoid* *,  GLint) ;
void WINAPI wine_glSeparableFilter2DEXT(GLenum,  GLenum,  GLsizei,  GLsizei,  GLenum,  GLenum,  const GLvoid *,  const GLvoid *) ;
void WINAPI wine_glSharpenTexFuncSGIS(GLenum,  GLsizei,  const GLfloat *) ;
void WINAPI wine_glSpriteParameterfSGIX(GLenum,  GLfloat) ;
void WINAPI wine_glSpriteParameterfvSGIX(GLenum,  const GLfloat *) ;
void WINAPI wine_glSpriteParameteriSGIX(GLenum,  GLint) ;
void WINAPI wine_glSpriteParameterivSGIX(GLenum,  const GLint *) ;
void WINAPI wine_glStartInstrumentsSGIX(void) ;
void WINAPI wine_glStopInstrumentsSGIX(GLint) ;
void WINAPI wine_glTagSampleBufferSGIX(void) ;
void WINAPI wine_glTangent3b(GLbyte,  GLbyte,  GLbyte) ;
void WINAPI wine_glTangent3bv(const GLbyte *) ;
void WINAPI wine_glTangent3d(GLdouble,  GLdouble,  GLdouble) ;
void WINAPI wine_glTangent3dv(const GLdouble *) ;
void WINAPI wine_glTangent3f(GLfloat,  GLfloat,  GLfloat) ;
void WINAPI wine_glTangent3fv(const GLfloat *) ;
void WINAPI wine_glTangent3i(GLint,  GLint,  GLint) ;
void WINAPI wine_glTangent3iv(const GLint *) ;
void WINAPI wine_glTangent3s(GLshort,  GLshort,  GLshort) ;
void WINAPI wine_glTangent3sv(const GLshort *) ;
void WINAPI wine_glTangentPointerEXT(GLenum,  GLsizei,  const GLvoid *) ;
void WINAPI wine_glTbufferMask3DFX(GLuint) ;
void WINAPI wine_glTexCoord2fColor3fVertex3fSUN(GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat) ;
void WINAPI wine_glTexCoord2fColor3fVertex3fvSUN(const GLfloat *,  const GLfloat *,  const GLfloat *) ;
void WINAPI wine_glTexCoord2fColor4fNormal3fVertex3fSUN(GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat) ;
void WINAPI wine_glTexCoord2fColor4fNormal3fVertex3fvSUN(const GLfloat *,  const GLfloat *,  const GLfloat *,  const GLfloat *) ;
void WINAPI wine_glTexCoord2fColor4ubVertex3fSUN(GLfloat,  GLfloat,  GLubyte,  GLubyte,  GLubyte,  GLubyte,  GLfloat,  GLfloat,  GLfloat) ;
void WINAPI wine_glTexCoord2fColor4ubVertex3fvSUN(const GLfloat *,  const GLubyte *,  const GLfloat *) ;
void WINAPI wine_glTexCoord2fNormal3fVertex3fSUN(GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat) ;
void WINAPI wine_glTexCoord2fNormal3fVertex3fvSUN(const GLfloat *,  const GLfloat *,  const GLfloat *) ;
void WINAPI wine_glTexCoord2fVertex3fSUN(GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat) ;
void WINAPI wine_glTexCoord2fVertex3fvSUN(const GLfloat *,  const GLfloat *) ;
void WINAPI wine_glTexCoord4fColor4fNormal3fVertex4fSUN(GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat) ;
void WINAPI wine_glTexCoord4fColor4fNormal3fVertex4fvSUN(const GLfloat *,  const GLfloat *,  const GLfloat *,  const GLfloat *) ;
void WINAPI wine_glTexCoord4fVertex4fSUN(GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat,  GLfloat) ;
void WINAPI wine_glTexCoord4fVertex4fvSUN(const GLfloat *,  const GLfloat *) ;
void WINAPI wine_glTexCoordPointerEXT(GLint,  GLenum,  GLsizei,  GLsizei,  const GLvoid *) ;
void WINAPI wine_glTexCoordPointerListIBM(GLint,  GLenum,  GLint,  const GLvoid* *,  GLint) ;
void WINAPI wine_glTexCoordPointervINTEL(GLint,  GLenum,  const GLvoid* *) ;
void WINAPI wine_glTexFilterFuncSGIS(GLenum,  GLenum,  GLsizei,  const GLfloat *) ;
void WINAPI wine_glTexImage3DEXT(GLenum,  GLint,  GLenum,  GLsizei,  GLsizei,  GLsizei,  GLint,  GLenum,  GLenum,  const GLvoid *) ;
void WINAPI wine_glTexImage4DSGIS(GLenum,  GLint,  GLenum,  GLsizei,  GLsizei,  GLsizei,  GLsizei,  GLint,  GLenum,  GLenum,  const GLvoid *) ;
void WINAPI wine_glTexSubImage1DEXT(GLenum,  GLint,  GLint,  GLsizei,  GLenum,  GLenum,  const GLvoid *) ;
void WINAPI wine_glTexSubImage2DEXT(GLenum,  GLint,  GLint,  GLint,  GLsizei,  GLsizei,  GLenum,  GLenum,  const GLvoid *) ;
void WINAPI wine_glTexSubImage3DEXT(GLenum,  GLint,  GLint,  GLint,  GLint,  GLsizei,  GLsizei,  GLsizei,  GLenum,  GLenum,  const GLvoid *) ;
void WINAPI wine_glTexSubImage4DSGIS(GLenum,  GLint,  GLint,  GLint,  GLint,  GLint,  GLsizei,  GLsizei,  GLsizei,  GLsizei,  GLenum,  GLenum,  const GLvoid *) ;
void WINAPI wine_glTextureLightEXT(GLenum) ;
void WINAPI wine_glTextureMaterialEXT(GLenum,  GLenum) ;
void WINAPI wine_glTextureNormalEXT(GLenum) ;
void WINAPI wine_glUnlockArraysEXT(void) ;
void WINAPI wine_glVertexArrayRangeNV(GLsizei,  const GLvoid *) ;
void WINAPI wine_glVertexPointerEXT(GLint,  GLenum,  GLsizei,  GLsizei,  const GLvoid *) ;
void WINAPI wine_glVertexPointerListIBM(GLint,  GLenum,  GLint,  const GLvoid* *,  GLint) ;
void WINAPI wine_glVertexPointervINTEL(GLint,  GLenum,  const GLvoid* *) ;
void WINAPI wine_glVertexWeightPointerEXT(GLsizei,  GLenum,  GLsizei,  const GLvoid *) ;
void WINAPI wine_glVertexWeightfEXT(GLfloat) ;
void WINAPI wine_glVertexWeightfvEXT(const GLfloat *) ;
void WINAPI wine_glWindowPos2dMESA(GLdouble,  GLdouble) ;
void WINAPI wine_glWindowPos2dvMESA(const GLdouble *) ;
void WINAPI wine_glWindowPos2fMESA(GLfloat,  GLfloat) ;
void WINAPI wine_glWindowPos2fvMESA(const GLfloat *) ;
void WINAPI wine_glWindowPos2iMESA(GLint,  GLint) ;
void WINAPI wine_glWindowPos2ivMESA(const GLint *) ;
void WINAPI wine_glWindowPos2sMESA(GLshort,  GLshort) ;
void WINAPI wine_glWindowPos2svMESA(const GLshort *) ;
void WINAPI wine_glWindowPos3dMESA(GLdouble,  GLdouble,  GLdouble) ;
void WINAPI wine_glWindowPos3dvMESA(const GLdouble *) ;
void WINAPI wine_glWindowPos3fMESA(GLfloat,  GLfloat,  GLfloat) ;
void WINAPI wine_glWindowPos3fvMESA(const GLfloat *) ;
void WINAPI wine_glWindowPos3iMESA(GLint,  GLint,  GLint) ;
void WINAPI wine_glWindowPos3ivMESA(const GLint *) ;
void WINAPI wine_glWindowPos3sMESA(GLshort,  GLshort,  GLshort) ;
void WINAPI wine_glWindowPos3svMESA(const GLshort *) ;
void WINAPI wine_glWindowPos4dMESA(GLdouble,  GLdouble,  GLdouble,  GLdouble) ;
void WINAPI wine_glWindowPos4dvMESA(const GLdouble *) ;
void WINAPI wine_glWindowPos4fMESA(GLfloat,  GLfloat,  GLfloat,  GLfloat) ;
void WINAPI wine_glWindowPos4fvMESA(const GLfloat *) ;
void WINAPI wine_glWindowPos4iMESA(GLint,  GLint,  GLint,  GLint) ;
void WINAPI wine_glWindowPos4ivMESA(const GLint *) ;
void WINAPI wine_glWindowPos4sMESA(GLshort,  GLshort,  GLshort,  GLshort) ;
void WINAPI wine_glWindowPos4svMESA(const GLshort *) ;

/* The table giving the correspondance between names and functions */
int extension_registry_size = 322;
OpenGL_extension extension_registry[] = {
  { "glApplyTextureEXT", (void *) wine_glApplyTextureEXT, (void **) (&func_glApplyTextureEXT) },
  { "glAreTexturesResidentEXT", (void *) wine_glAreTexturesResidentEXT, (void **) (&func_glAreTexturesResidentEXT) },
  { "glArrayElementEXT", (void *) wine_glArrayElementEXT, (void **) (&func_glArrayElementEXT) },
  { "glBindTextureEXT", (void *) wine_glBindTextureEXT, (void **) (&func_glBindTextureEXT) },
  { "glBinormal3b", (void *) wine_glBinormal3b, (void **) (&func_glBinormal3b) },
  { "glBinormal3bv", (void *) wine_glBinormal3bv, (void **) (&func_glBinormal3bv) },
  { "glBinormal3d", (void *) wine_glBinormal3d, (void **) (&func_glBinormal3d) },
  { "glBinormal3dv", (void *) wine_glBinormal3dv, (void **) (&func_glBinormal3dv) },
  { "glBinormal3f", (void *) wine_glBinormal3f, (void **) (&func_glBinormal3f) },
  { "glBinormal3fv", (void *) wine_glBinormal3fv, (void **) (&func_glBinormal3fv) },
  { "glBinormal3i", (void *) wine_glBinormal3i, (void **) (&func_glBinormal3i) },
  { "glBinormal3iv", (void *) wine_glBinormal3iv, (void **) (&func_glBinormal3iv) },
  { "glBinormal3s", (void *) wine_glBinormal3s, (void **) (&func_glBinormal3s) },
  { "glBinormal3sv", (void *) wine_glBinormal3sv, (void **) (&func_glBinormal3sv) },
  { "glBinormalPointerEXT", (void *) wine_glBinormalPointerEXT, (void **) (&func_glBinormalPointerEXT) },
  { "glBlendColorEXT", (void *) wine_glBlendColorEXT, (void **) (&func_glBlendColorEXT) },
  { "glBlendEquationEXT", (void *) wine_glBlendEquationEXT, (void **) (&func_glBlendEquationEXT) },
  { "glBlendFuncSeparateEXT", (void *) wine_glBlendFuncSeparateEXT, (void **) (&func_glBlendFuncSeparateEXT) },
  { "glColor3fVertex3fSUN", (void *) wine_glColor3fVertex3fSUN, (void **) (&func_glColor3fVertex3fSUN) },
  { "glColor3fVertex3fvSUN", (void *) wine_glColor3fVertex3fvSUN, (void **) (&func_glColor3fVertex3fvSUN) },
  { "glColor4fNormal3fVertex3fSUN", (void *) wine_glColor4fNormal3fVertex3fSUN, (void **) (&func_glColor4fNormal3fVertex3fSUN) },
  { "glColor4fNormal3fVertex3fvSUN", (void *) wine_glColor4fNormal3fVertex3fvSUN, (void **) (&func_glColor4fNormal3fVertex3fvSUN) },
  { "glColor4ubVertex2fSUN", (void *) wine_glColor4ubVertex2fSUN, (void **) (&func_glColor4ubVertex2fSUN) },
  { "glColor4ubVertex2fvSUN", (void *) wine_glColor4ubVertex2fvSUN, (void **) (&func_glColor4ubVertex2fvSUN) },
  { "glColor4ubVertex3fSUN", (void *) wine_glColor4ubVertex3fSUN, (void **) (&func_glColor4ubVertex3fSUN) },
  { "glColor4ubVertex3fvSUN", (void *) wine_glColor4ubVertex3fvSUN, (void **) (&func_glColor4ubVertex3fvSUN) },
  { "glColorPointerEXT", (void *) wine_glColorPointerEXT, (void **) (&func_glColorPointerEXT) },
  { "glColorPointerListIBM", (void *) wine_glColorPointerListIBM, (void **) (&func_glColorPointerListIBM) },
  { "glColorPointervINTEL", (void *) wine_glColorPointervINTEL, (void **) (&func_glColorPointervINTEL) },
  { "glColorSubTableEXT", (void *) wine_glColorSubTableEXT, (void **) (&func_glColorSubTableEXT) },
  { "glColorTableEXT", (void *) wine_glColorTableEXT, (void **) (&func_glColorTableEXT) },
  { "glColorTableParameterfvSGI", (void *) wine_glColorTableParameterfvSGI, (void **) (&func_glColorTableParameterfvSGI) },
  { "glColorTableParameterivSGI", (void *) wine_glColorTableParameterivSGI, (void **) (&func_glColorTableParameterivSGI) },
  { "glColorTableSGI", (void *) wine_glColorTableSGI, (void **) (&func_glColorTableSGI) },
  { "glCombinerInputNV", (void *) wine_glCombinerInputNV, (void **) (&func_glCombinerInputNV) },
  { "glCombinerOutputNV", (void *) wine_glCombinerOutputNV, (void **) (&func_glCombinerOutputNV) },
  { "glCombinerParameterfNV", (void *) wine_glCombinerParameterfNV, (void **) (&func_glCombinerParameterfNV) },
  { "glCombinerParameterfvNV", (void *) wine_glCombinerParameterfvNV, (void **) (&func_glCombinerParameterfvNV) },
  { "glCombinerParameteriNV", (void *) wine_glCombinerParameteriNV, (void **) (&func_glCombinerParameteriNV) },
  { "glCombinerParameterivNV", (void *) wine_glCombinerParameterivNV, (void **) (&func_glCombinerParameterivNV) },
  { "glCompressedTexImage1DARB", (void *) wine_glCompressedTexImage1DARB, (void **) (&func_glCompressedTexImage1DARB) },
  { "glCompressedTexImage2DARB", (void *) wine_glCompressedTexImage2DARB, (void **) (&func_glCompressedTexImage2DARB) },
  { "glCompressedTexImage3DARB", (void *) wine_glCompressedTexImage3DARB, (void **) (&func_glCompressedTexImage3DARB) },
  { "glCompressedTexSubImage1DARB", (void *) wine_glCompressedTexSubImage1DARB, (void **) (&func_glCompressedTexSubImage1DARB) },
  { "glCompressedTexSubImage2DARB", (void *) wine_glCompressedTexSubImage2DARB, (void **) (&func_glCompressedTexSubImage2DARB) },
  { "glCompressedTexSubImage3DARB", (void *) wine_glCompressedTexSubImage3DARB, (void **) (&func_glCompressedTexSubImage3DARB) },
  { "glConvolutionFilter1DEXT", (void *) wine_glConvolutionFilter1DEXT, (void **) (&func_glConvolutionFilter1DEXT) },
  { "glConvolutionFilter2DEXT", (void *) wine_glConvolutionFilter2DEXT, (void **) (&func_glConvolutionFilter2DEXT) },
  { "glConvolutionParameterfEXT", (void *) wine_glConvolutionParameterfEXT, (void **) (&func_glConvolutionParameterfEXT) },
  { "glConvolutionParameterfvEXT", (void *) wine_glConvolutionParameterfvEXT, (void **) (&func_glConvolutionParameterfvEXT) },
  { "glConvolutionParameteriEXT", (void *) wine_glConvolutionParameteriEXT, (void **) (&func_glConvolutionParameteriEXT) },
  { "glConvolutionParameterivEXT", (void *) wine_glConvolutionParameterivEXT, (void **) (&func_glConvolutionParameterivEXT) },
  { "glCopyColorSubTableEXT", (void *) wine_glCopyColorSubTableEXT, (void **) (&func_glCopyColorSubTableEXT) },
  { "glCopyColorTableSGI", (void *) wine_glCopyColorTableSGI, (void **) (&func_glCopyColorTableSGI) },
  { "glCopyConvolutionFilter1DEXT", (void *) wine_glCopyConvolutionFilter1DEXT, (void **) (&func_glCopyConvolutionFilter1DEXT) },
  { "glCopyConvolutionFilter2DEXT", (void *) wine_glCopyConvolutionFilter2DEXT, (void **) (&func_glCopyConvolutionFilter2DEXT) },
  { "glCopyTexImage1DEXT", (void *) wine_glCopyTexImage1DEXT, (void **) (&func_glCopyTexImage1DEXT) },
  { "glCopyTexImage2DEXT", (void *) wine_glCopyTexImage2DEXT, (void **) (&func_glCopyTexImage2DEXT) },
  { "glCopyTexSubImage1DEXT", (void *) wine_glCopyTexSubImage1DEXT, (void **) (&func_glCopyTexSubImage1DEXT) },
  { "glCopyTexSubImage2DEXT", (void *) wine_glCopyTexSubImage2DEXT, (void **) (&func_glCopyTexSubImage2DEXT) },
  { "glCopyTexSubImage3DEXT", (void *) wine_glCopyTexSubImage3DEXT, (void **) (&func_glCopyTexSubImage3DEXT) },
  { "glCullParameterdvEXT", (void *) wine_glCullParameterdvEXT, (void **) (&func_glCullParameterdvEXT) },
  { "glCullParameterfvEXT", (void *) wine_glCullParameterfvEXT, (void **) (&func_glCullParameterfvEXT) },
  { "glDeleteTexturesEXT", (void *) wine_glDeleteTexturesEXT, (void **) (&func_glDeleteTexturesEXT) },
  { "glDetailTexFuncSGIS", (void *) wine_glDetailTexFuncSGIS, (void **) (&func_glDetailTexFuncSGIS) },
  { "glDrawArraysEXT", (void *) wine_glDrawArraysEXT, (void **) (&func_glDrawArraysEXT) },
  { "glDrawRangeElementsEXT", (void *) wine_glDrawRangeElementsEXT, (void **) (&func_glDrawRangeElementsEXT) },
  { "glEdgeFlagPointerEXT", (void *) wine_glEdgeFlagPointerEXT, (void **) (&func_glEdgeFlagPointerEXT) },
  { "glEdgeFlagPointerListIBM", (void *) wine_glEdgeFlagPointerListIBM, (void **) (&func_glEdgeFlagPointerListIBM) },
  { "glFinalCombinerInputNV", (void *) wine_glFinalCombinerInputNV, (void **) (&func_glFinalCombinerInputNV) },
  { "glFinishTextureSUNX", (void *) wine_glFinishTextureSUNX, (void **) (&func_glFinishTextureSUNX) },
  { "glFlushRasterSGIX", (void *) wine_glFlushRasterSGIX, (void **) (&func_glFlushRasterSGIX) },
  { "glFlushVertexArrayRangeNV", (void *) wine_glFlushVertexArrayRangeNV, (void **) (&func_glFlushVertexArrayRangeNV) },
  { "glFogCoordPointerEXT", (void *) wine_glFogCoordPointerEXT, (void **) (&func_glFogCoordPointerEXT) },
  { "glFogCoordPointerListIBM", (void *) wine_glFogCoordPointerListIBM, (void **) (&func_glFogCoordPointerListIBM) },
  { "glFogCoorddEXT", (void *) wine_glFogCoorddEXT, (void **) (&func_glFogCoorddEXT) },
  { "glFogCoorddvEXT", (void *) wine_glFogCoorddvEXT, (void **) (&func_glFogCoorddvEXT) },
  { "glFogCoordfEXT", (void *) wine_glFogCoordfEXT, (void **) (&func_glFogCoordfEXT) },
  { "glFogCoordfvEXT", (void *) wine_glFogCoordfvEXT, (void **) (&func_glFogCoordfvEXT) },
  { "glFogFuncSGIS", (void *) wine_glFogFuncSGIS, (void **) (&func_glFogFuncSGIS) },
  { "glFragmentColorMaterialSGIX", (void *) wine_glFragmentColorMaterialSGIX, (void **) (&func_glFragmentColorMaterialSGIX) },
  { "glFragmentLightModelfSGIX", (void *) wine_glFragmentLightModelfSGIX, (void **) (&func_glFragmentLightModelfSGIX) },
  { "glFragmentLightModelfvSGIX", (void *) wine_glFragmentLightModelfvSGIX, (void **) (&func_glFragmentLightModelfvSGIX) },
  { "glFragmentLightModeliSGIX", (void *) wine_glFragmentLightModeliSGIX, (void **) (&func_glFragmentLightModeliSGIX) },
  { "glFragmentLightModelivSGIX", (void *) wine_glFragmentLightModelivSGIX, (void **) (&func_glFragmentLightModelivSGIX) },
  { "glFragmentLightfSGIX", (void *) wine_glFragmentLightfSGIX, (void **) (&func_glFragmentLightfSGIX) },
  { "glFragmentLightfvSGIX", (void *) wine_glFragmentLightfvSGIX, (void **) (&func_glFragmentLightfvSGIX) },
  { "glFragmentLightiSGIX", (void *) wine_glFragmentLightiSGIX, (void **) (&func_glFragmentLightiSGIX) },
  { "glFragmentLightivSGIX", (void *) wine_glFragmentLightivSGIX, (void **) (&func_glFragmentLightivSGIX) },
  { "glFragmentMaterialfSGIX", (void *) wine_glFragmentMaterialfSGIX, (void **) (&func_glFragmentMaterialfSGIX) },
  { "glFragmentMaterialfvSGIX", (void *) wine_glFragmentMaterialfvSGIX, (void **) (&func_glFragmentMaterialfvSGIX) },
  { "glFragmentMaterialiSGIX", (void *) wine_glFragmentMaterialiSGIX, (void **) (&func_glFragmentMaterialiSGIX) },
  { "glFragmentMaterialivSGIX", (void *) wine_glFragmentMaterialivSGIX, (void **) (&func_glFragmentMaterialivSGIX) },
  { "glFrameZoomSGIX", (void *) wine_glFrameZoomSGIX, (void **) (&func_glFrameZoomSGIX) },
  { "glGenTexturesEXT", (void *) wine_glGenTexturesEXT, (void **) (&func_glGenTexturesEXT) },
  { "glGetColorTableEXT", (void *) wine_glGetColorTableEXT, (void **) (&func_glGetColorTableEXT) },
  { "glGetColorTableParameterfvEXT", (void *) wine_glGetColorTableParameterfvEXT, (void **) (&func_glGetColorTableParameterfvEXT) },
  { "glGetColorTableParameterfvSGI", (void *) wine_glGetColorTableParameterfvSGI, (void **) (&func_glGetColorTableParameterfvSGI) },
  { "glGetColorTableParameterivEXT", (void *) wine_glGetColorTableParameterivEXT, (void **) (&func_glGetColorTableParameterivEXT) },
  { "glGetColorTableParameterivSGI", (void *) wine_glGetColorTableParameterivSGI, (void **) (&func_glGetColorTableParameterivSGI) },
  { "glGetColorTableSGI", (void *) wine_glGetColorTableSGI, (void **) (&func_glGetColorTableSGI) },
  { "glGetCombinerInputParameterfvNV", (void *) wine_glGetCombinerInputParameterfvNV, (void **) (&func_glGetCombinerInputParameterfvNV) },
  { "glGetCombinerInputParameterivNV", (void *) wine_glGetCombinerInputParameterivNV, (void **) (&func_glGetCombinerInputParameterivNV) },
  { "glGetCombinerOutputParameterfvNV", (void *) wine_glGetCombinerOutputParameterfvNV, (void **) (&func_glGetCombinerOutputParameterfvNV) },
  { "glGetCombinerOutputParameterivNV", (void *) wine_glGetCombinerOutputParameterivNV, (void **) (&func_glGetCombinerOutputParameterivNV) },
  { "glGetCompressedTexImageARB", (void *) wine_glGetCompressedTexImageARB, (void **) (&func_glGetCompressedTexImageARB) },
  { "glGetConvolutionFilterEXT", (void *) wine_glGetConvolutionFilterEXT, (void **) (&func_glGetConvolutionFilterEXT) },
  { "glGetConvolutionParameterfvEXT", (void *) wine_glGetConvolutionParameterfvEXT, (void **) (&func_glGetConvolutionParameterfvEXT) },
  { "glGetConvolutionParameterivEXT", (void *) wine_glGetConvolutionParameterivEXT, (void **) (&func_glGetConvolutionParameterivEXT) },
  { "glGetDetailTexFuncSGIS", (void *) wine_glGetDetailTexFuncSGIS, (void **) (&func_glGetDetailTexFuncSGIS) },
  { "glGetFinalCombinerInputParameterfvNV", (void *) wine_glGetFinalCombinerInputParameterfvNV, (void **) (&func_glGetFinalCombinerInputParameterfvNV) },
  { "glGetFinalCombinerInputParameterivNV", (void *) wine_glGetFinalCombinerInputParameterivNV, (void **) (&func_glGetFinalCombinerInputParameterivNV) },
  { "glGetFogFuncSGIS", (void *) wine_glGetFogFuncSGIS, (void **) (&func_glGetFogFuncSGIS) },
  { "glGetFragmentLightfvSGIX", (void *) wine_glGetFragmentLightfvSGIX, (void **) (&func_glGetFragmentLightfvSGIX) },
  { "glGetFragmentLightivSGIX", (void *) wine_glGetFragmentLightivSGIX, (void **) (&func_glGetFragmentLightivSGIX) },
  { "glGetFragmentMaterialfvSGIX", (void *) wine_glGetFragmentMaterialfvSGIX, (void **) (&func_glGetFragmentMaterialfvSGIX) },
  { "glGetFragmentMaterialivSGIX", (void *) wine_glGetFragmentMaterialivSGIX, (void **) (&func_glGetFragmentMaterialivSGIX) },
  { "glGetHistogramEXT", (void *) wine_glGetHistogramEXT, (void **) (&func_glGetHistogramEXT) },
  { "glGetHistogramParameterfvEXT", (void *) wine_glGetHistogramParameterfvEXT, (void **) (&func_glGetHistogramParameterfvEXT) },
  { "glGetHistogramParameterivEXT", (void *) wine_glGetHistogramParameterivEXT, (void **) (&func_glGetHistogramParameterivEXT) },
  { "glGetImageTransformParameterfvHP", (void *) wine_glGetImageTransformParameterfvHP, (void **) (&func_glGetImageTransformParameterfvHP) },
  { "glGetImageTransformParameterivHP", (void *) wine_glGetImageTransformParameterivHP, (void **) (&func_glGetImageTransformParameterivHP) },
  { "glGetInstrumentsSGIX", (void *) wine_glGetInstrumentsSGIX, (void **) (&func_glGetInstrumentsSGIX) },
  { "glGetListParameterfvSGIX", (void *) wine_glGetListParameterfvSGIX, (void **) (&func_glGetListParameterfvSGIX) },
  { "glGetListParameterivSGIX", (void *) wine_glGetListParameterivSGIX, (void **) (&func_glGetListParameterivSGIX) },
  { "glGetMinmaxEXT", (void *) wine_glGetMinmaxEXT, (void **) (&func_glGetMinmaxEXT) },
  { "glGetMinmaxParameterfvEXT", (void *) wine_glGetMinmaxParameterfvEXT, (void **) (&func_glGetMinmaxParameterfvEXT) },
  { "glGetMinmaxParameterivEXT", (void *) wine_glGetMinmaxParameterivEXT, (void **) (&func_glGetMinmaxParameterivEXT) },
  { "glGetPixelTexGenParameterfvSGIS", (void *) wine_glGetPixelTexGenParameterfvSGIS, (void **) (&func_glGetPixelTexGenParameterfvSGIS) },
  { "glGetPixelTexGenParameterivSGIS", (void *) wine_glGetPixelTexGenParameterivSGIS, (void **) (&func_glGetPixelTexGenParameterivSGIS) },
  { "glGetPointervEXT", (void *) wine_glGetPointervEXT, (void **) (&func_glGetPointervEXT) },
  { "glGetSeparableFilterEXT", (void *) wine_glGetSeparableFilterEXT, (void **) (&func_glGetSeparableFilterEXT) },
  { "glGetSharpenTexFuncSGIS", (void *) wine_glGetSharpenTexFuncSGIS, (void **) (&func_glGetSharpenTexFuncSGIS) },
  { "glGetTexFilterFuncSGIS", (void *) wine_glGetTexFilterFuncSGIS, (void **) (&func_glGetTexFilterFuncSGIS) },
  { "glGlobalAlphaFactorbSUN", (void *) wine_glGlobalAlphaFactorbSUN, (void **) (&func_glGlobalAlphaFactorbSUN) },
  { "glGlobalAlphaFactordSUN", (void *) wine_glGlobalAlphaFactordSUN, (void **) (&func_glGlobalAlphaFactordSUN) },
  { "glGlobalAlphaFactorfSUN", (void *) wine_glGlobalAlphaFactorfSUN, (void **) (&func_glGlobalAlphaFactorfSUN) },
  { "glGlobalAlphaFactoriSUN", (void *) wine_glGlobalAlphaFactoriSUN, (void **) (&func_glGlobalAlphaFactoriSUN) },
  { "glGlobalAlphaFactorsSUN", (void *) wine_glGlobalAlphaFactorsSUN, (void **) (&func_glGlobalAlphaFactorsSUN) },
  { "glGlobalAlphaFactorubSUN", (void *) wine_glGlobalAlphaFactorubSUN, (void **) (&func_glGlobalAlphaFactorubSUN) },
  { "glGlobalAlphaFactoruiSUN", (void *) wine_glGlobalAlphaFactoruiSUN, (void **) (&func_glGlobalAlphaFactoruiSUN) },
  { "glGlobalAlphaFactorusSUN", (void *) wine_glGlobalAlphaFactorusSUN, (void **) (&func_glGlobalAlphaFactorusSUN) },
  { "glHintPGI", (void *) wine_glHintPGI, (void **) (&func_glHintPGI) },
  { "glHistogramEXT", (void *) wine_glHistogramEXT, (void **) (&func_glHistogramEXT) },
  { "glImageTransformParameterfHP", (void *) wine_glImageTransformParameterfHP, (void **) (&func_glImageTransformParameterfHP) },
  { "glImageTransformParameterfvHP", (void *) wine_glImageTransformParameterfvHP, (void **) (&func_glImageTransformParameterfvHP) },
  { "glImageTransformParameteriHP", (void *) wine_glImageTransformParameteriHP, (void **) (&func_glImageTransformParameteriHP) },
  { "glImageTransformParameterivHP", (void *) wine_glImageTransformParameterivHP, (void **) (&func_glImageTransformParameterivHP) },
  { "glIndexFuncEXT", (void *) wine_glIndexFuncEXT, (void **) (&func_glIndexFuncEXT) },
  { "glIndexMaterialEXT", (void *) wine_glIndexMaterialEXT, (void **) (&func_glIndexMaterialEXT) },
  { "glIndexPointerEXT", (void *) wine_glIndexPointerEXT, (void **) (&func_glIndexPointerEXT) },
  { "glIndexPointerListIBM", (void *) wine_glIndexPointerListIBM, (void **) (&func_glIndexPointerListIBM) },
  { "glInstrumentsBufferSGIX", (void *) wine_glInstrumentsBufferSGIX, (void **) (&func_glInstrumentsBufferSGIX) },
  { "glIsTextureEXT", (void *) wine_glIsTextureEXT, (void **) (&func_glIsTextureEXT) },
  { "glLightEnviSGIX", (void *) wine_glLightEnviSGIX, (void **) (&func_glLightEnviSGIX) },
  { "glListParameterfSGIX", (void *) wine_glListParameterfSGIX, (void **) (&func_glListParameterfSGIX) },
  { "glListParameterfvSGIX", (void *) wine_glListParameterfvSGIX, (void **) (&func_glListParameterfvSGIX) },
  { "glListParameteriSGIX", (void *) wine_glListParameteriSGIX, (void **) (&func_glListParameteriSGIX) },
  { "glListParameterivSGIX", (void *) wine_glListParameterivSGIX, (void **) (&func_glListParameterivSGIX) },
  { "glLoadTransposeMatrixdARB", (void *) wine_glLoadTransposeMatrixdARB, (void **) (&func_glLoadTransposeMatrixdARB) },
  { "glLoadTransposeMatrixfARB", (void *) wine_glLoadTransposeMatrixfARB, (void **) (&func_glLoadTransposeMatrixfARB) },
  { "glLockArraysEXT", (void *) wine_glLockArraysEXT, (void **) (&func_glLockArraysEXT) },
  { "glMinmaxEXT", (void *) wine_glMinmaxEXT, (void **) (&func_glMinmaxEXT) },
  { "glMultTransposeMatrixdARB", (void *) wine_glMultTransposeMatrixdARB, (void **) (&func_glMultTransposeMatrixdARB) },
  { "glMultTransposeMatrixfARB", (void *) wine_glMultTransposeMatrixfARB, (void **) (&func_glMultTransposeMatrixfARB) },
  { "glMultiDrawArraysEXT", (void *) wine_glMultiDrawArraysEXT, (void **) (&func_glMultiDrawArraysEXT) },
  { "glMultiDrawElementsEXT", (void *) wine_glMultiDrawElementsEXT, (void **) (&func_glMultiDrawElementsEXT) },
  { "glMultiModeDrawArraysIBM", (void *) wine_glMultiModeDrawArraysIBM, (void **) (&func_glMultiModeDrawArraysIBM) },
  { "glMultiModeDrawElementsIBM", (void *) wine_glMultiModeDrawElementsIBM, (void **) (&func_glMultiModeDrawElementsIBM) },
  { "glNormal3fVertex3fSUN", (void *) wine_glNormal3fVertex3fSUN, (void **) (&func_glNormal3fVertex3fSUN) },
  { "glNormal3fVertex3fvSUN", (void *) wine_glNormal3fVertex3fvSUN, (void **) (&func_glNormal3fVertex3fvSUN) },
  { "glNormalPointerEXT", (void *) wine_glNormalPointerEXT, (void **) (&func_glNormalPointerEXT) },
  { "glNormalPointerListIBM", (void *) wine_glNormalPointerListIBM, (void **) (&func_glNormalPointerListIBM) },
  { "glNormalPointervINTEL", (void *) wine_glNormalPointervINTEL, (void **) (&func_glNormalPointervINTEL) },
  { "glPixelTexGenParameterfSGIS", (void *) wine_glPixelTexGenParameterfSGIS, (void **) (&func_glPixelTexGenParameterfSGIS) },
  { "glPixelTexGenParameterfvSGIS", (void *) wine_glPixelTexGenParameterfvSGIS, (void **) (&func_glPixelTexGenParameterfvSGIS) },
  { "glPixelTexGenParameteriSGIS", (void *) wine_glPixelTexGenParameteriSGIS, (void **) (&func_glPixelTexGenParameteriSGIS) },
  { "glPixelTexGenParameterivSGIS", (void *) wine_glPixelTexGenParameterivSGIS, (void **) (&func_glPixelTexGenParameterivSGIS) },
  { "glPixelTexGenSGIX", (void *) wine_glPixelTexGenSGIX, (void **) (&func_glPixelTexGenSGIX) },
  { "glPixelTransformParameterfEXT", (void *) wine_glPixelTransformParameterfEXT, (void **) (&func_glPixelTransformParameterfEXT) },
  { "glPixelTransformParameterfvEXT", (void *) wine_glPixelTransformParameterfvEXT, (void **) (&func_glPixelTransformParameterfvEXT) },
  { "glPixelTransformParameteriEXT", (void *) wine_glPixelTransformParameteriEXT, (void **) (&func_glPixelTransformParameteriEXT) },
  { "glPixelTransformParameterivEXT", (void *) wine_glPixelTransformParameterivEXT, (void **) (&func_glPixelTransformParameterivEXT) },
  { "glPointParameterfEXT", (void *) wine_glPointParameterfEXT, (void **) (&func_glPointParameterfEXT) },
  { "glPointParameterfSGIS", (void *) wine_glPointParameterfSGIS, (void **) (&func_glPointParameterfSGIS) },
  { "glPointParameterfvEXT", (void *) wine_glPointParameterfvEXT, (void **) (&func_glPointParameterfvEXT) },
  { "glPointParameterfvSGIS", (void *) wine_glPointParameterfvSGIS, (void **) (&func_glPointParameterfvSGIS) },
  { "glPollInstrumentsSGIX", (void *) wine_glPollInstrumentsSGIX, (void **) (&func_glPollInstrumentsSGIX) },
  { "glPolygonOffsetEXT", (void *) wine_glPolygonOffsetEXT, (void **) (&func_glPolygonOffsetEXT) },
  { "glPrioritizeTexturesEXT", (void *) wine_glPrioritizeTexturesEXT, (void **) (&func_glPrioritizeTexturesEXT) },
  { "glReadInstrumentsSGIX", (void *) wine_glReadInstrumentsSGIX, (void **) (&func_glReadInstrumentsSGIX) },
  { "glReferencePlaneSGIX", (void *) wine_glReferencePlaneSGIX, (void **) (&func_glReferencePlaneSGIX) },
  { "glReplacementCodePointer", (void *) wine_glReplacementCodePointer, (void **) (&func_glReplacementCodePointer) },
  { "glReplacementCodeubSUN", (void *) wine_glReplacementCodeubSUN, (void **) (&func_glReplacementCodeubSUN) },
  { "glReplacementCodeubvSUN", (void *) wine_glReplacementCodeubvSUN, (void **) (&func_glReplacementCodeubvSUN) },
  { "glReplacementCodeuiColor3fVertex3fSUN", (void *) wine_glReplacementCodeuiColor3fVertex3fSUN, (void **) (&func_glReplacementCodeuiColor3fVertex3fSUN) },
  { "glReplacementCodeuiColor3fVertex3fvSUN", (void *) wine_glReplacementCodeuiColor3fVertex3fvSUN, (void **) (&func_glReplacementCodeuiColor3fVertex3fvSUN) },
  { "glReplacementCodeuiColor4fNormal3fVertex3fSUN", (void *) wine_glReplacementCodeuiColor4fNormal3fVertex3fSUN, (void **) (&func_glReplacementCodeuiColor4fNormal3fVertex3fSUN) },
  { "glReplacementCodeuiColor4fNormal3fVertex3fvSUN", (void *) wine_glReplacementCodeuiColor4fNormal3fVertex3fvSUN, (void **) (&func_glReplacementCodeuiColor4fNormal3fVertex3fvSUN) },
  { "glReplacementCodeuiColor4ubVertex3fSUN", (void *) wine_glReplacementCodeuiColor4ubVertex3fSUN, (void **) (&func_glReplacementCodeuiColor4ubVertex3fSUN) },
  { "glReplacementCodeuiColor4ubVertex3fvSUN", (void *) wine_glReplacementCodeuiColor4ubVertex3fvSUN, (void **) (&func_glReplacementCodeuiColor4ubVertex3fvSUN) },
  { "glReplacementCodeuiNormal3fVertex3fSUN", (void *) wine_glReplacementCodeuiNormal3fVertex3fSUN, (void **) (&func_glReplacementCodeuiNormal3fVertex3fSUN) },
  { "glReplacementCodeuiNormal3fVertex3fvSUN", (void *) wine_glReplacementCodeuiNormal3fVertex3fvSUN, (void **) (&func_glReplacementCodeuiNormal3fVertex3fvSUN) },
  { "glReplacementCodeuiSUN", (void *) wine_glReplacementCodeuiSUN, (void **) (&func_glReplacementCodeuiSUN) },
  { "glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN", (void *) wine_glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN, (void **) (&func_glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN) },
  { "glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN", (void *) wine_glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN, (void **) (&func_glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN) },
  { "glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN", (void *) wine_glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN, (void **) (&func_glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN) },
  { "glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN", (void *) wine_glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN, (void **) (&func_glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN) },
  { "glReplacementCodeuiTexCoord2fVertex3fSUN", (void *) wine_glReplacementCodeuiTexCoord2fVertex3fSUN, (void **) (&func_glReplacementCodeuiTexCoord2fVertex3fSUN) },
  { "glReplacementCodeuiTexCoord2fVertex3fvSUN", (void *) wine_glReplacementCodeuiTexCoord2fVertex3fvSUN, (void **) (&func_glReplacementCodeuiTexCoord2fVertex3fvSUN) },
  { "glReplacementCodeuiVertex3fSUN", (void *) wine_glReplacementCodeuiVertex3fSUN, (void **) (&func_glReplacementCodeuiVertex3fSUN) },
  { "glReplacementCodeuiVertex3fvSUN", (void *) wine_glReplacementCodeuiVertex3fvSUN, (void **) (&func_glReplacementCodeuiVertex3fvSUN) },
  { "glReplacementCodeuivSUN", (void *) wine_glReplacementCodeuivSUN, (void **) (&func_glReplacementCodeuivSUN) },
  { "glReplacementCodeusSUN", (void *) wine_glReplacementCodeusSUN, (void **) (&func_glReplacementCodeusSUN) },
  { "glReplacementCodeusvSUN", (void *) wine_glReplacementCodeusvSUN, (void **) (&func_glReplacementCodeusvSUN) },
  { "glResetHistogramEXT", (void *) wine_glResetHistogramEXT, (void **) (&func_glResetHistogramEXT) },
  { "glResetMinmaxEXT", (void *) wine_glResetMinmaxEXT, (void **) (&func_glResetMinmaxEXT) },
  { "glResizeBuffersMESA", (void *) wine_glResizeBuffersMESA, (void **) (&func_glResizeBuffersMESA) },
  { "glSampleCoverageARB", (void *) wine_glSampleCoverageARB, (void **) (&func_glSampleCoverageARB) },
  { "glSampleMaskEXT", (void *) wine_glSampleMaskEXT, (void **) (&func_glSampleMaskEXT) },
  { "glSampleMaskSGIS", (void *) wine_glSampleMaskSGIS, (void **) (&func_glSampleMaskSGIS) },
  { "glSamplePassARB", (void *) wine_glSamplePassARB, (void **) (&func_glSamplePassARB) },
  { "glSamplePatternEXT", (void *) wine_glSamplePatternEXT, (void **) (&func_glSamplePatternEXT) },
  { "glSamplePatternSGIS", (void *) wine_glSamplePatternSGIS, (void **) (&func_glSamplePatternSGIS) },
  { "glSecondaryColor3bEXT", (void *) wine_glSecondaryColor3bEXT, (void **) (&func_glSecondaryColor3bEXT) },
  { "glSecondaryColor3bvEXT", (void *) wine_glSecondaryColor3bvEXT, (void **) (&func_glSecondaryColor3bvEXT) },
  { "glSecondaryColor3dEXT", (void *) wine_glSecondaryColor3dEXT, (void **) (&func_glSecondaryColor3dEXT) },
  { "glSecondaryColor3dvEXT", (void *) wine_glSecondaryColor3dvEXT, (void **) (&func_glSecondaryColor3dvEXT) },
  { "glSecondaryColor3fEXT", (void *) wine_glSecondaryColor3fEXT, (void **) (&func_glSecondaryColor3fEXT) },
  { "glSecondaryColor3fvEXT", (void *) wine_glSecondaryColor3fvEXT, (void **) (&func_glSecondaryColor3fvEXT) },
  { "glSecondaryColor3iEXT", (void *) wine_glSecondaryColor3iEXT, (void **) (&func_glSecondaryColor3iEXT) },
  { "glSecondaryColor3ivEXT", (void *) wine_glSecondaryColor3ivEXT, (void **) (&func_glSecondaryColor3ivEXT) },
  { "glSecondaryColor3sEXT", (void *) wine_glSecondaryColor3sEXT, (void **) (&func_glSecondaryColor3sEXT) },
  { "glSecondaryColor3svEXT", (void *) wine_glSecondaryColor3svEXT, (void **) (&func_glSecondaryColor3svEXT) },
  { "glSecondaryColor3ubEXT", (void *) wine_glSecondaryColor3ubEXT, (void **) (&func_glSecondaryColor3ubEXT) },
  { "glSecondaryColor3ubvEXT", (void *) wine_glSecondaryColor3ubvEXT, (void **) (&func_glSecondaryColor3ubvEXT) },
  { "glSecondaryColor3uiEXT", (void *) wine_glSecondaryColor3uiEXT, (void **) (&func_glSecondaryColor3uiEXT) },
  { "glSecondaryColor3uivEXT", (void *) wine_glSecondaryColor3uivEXT, (void **) (&func_glSecondaryColor3uivEXT) },
  { "glSecondaryColor3usEXT", (void *) wine_glSecondaryColor3usEXT, (void **) (&func_glSecondaryColor3usEXT) },
  { "glSecondaryColor3usvEXT", (void *) wine_glSecondaryColor3usvEXT, (void **) (&func_glSecondaryColor3usvEXT) },
  { "glSecondaryColorPointerEXT", (void *) wine_glSecondaryColorPointerEXT, (void **) (&func_glSecondaryColorPointerEXT) },
  { "glSecondaryColorPointerListIBM", (void *) wine_glSecondaryColorPointerListIBM, (void **) (&func_glSecondaryColorPointerListIBM) },
  { "glSeparableFilter2DEXT", (void *) wine_glSeparableFilter2DEXT, (void **) (&func_glSeparableFilter2DEXT) },
  { "glSharpenTexFuncSGIS", (void *) wine_glSharpenTexFuncSGIS, (void **) (&func_glSharpenTexFuncSGIS) },
  { "glSpriteParameterfSGIX", (void *) wine_glSpriteParameterfSGIX, (void **) (&func_glSpriteParameterfSGIX) },
  { "glSpriteParameterfvSGIX", (void *) wine_glSpriteParameterfvSGIX, (void **) (&func_glSpriteParameterfvSGIX) },
  { "glSpriteParameteriSGIX", (void *) wine_glSpriteParameteriSGIX, (void **) (&func_glSpriteParameteriSGIX) },
  { "glSpriteParameterivSGIX", (void *) wine_glSpriteParameterivSGIX, (void **) (&func_glSpriteParameterivSGIX) },
  { "glStartInstrumentsSGIX", (void *) wine_glStartInstrumentsSGIX, (void **) (&func_glStartInstrumentsSGIX) },
  { "glStopInstrumentsSGIX", (void *) wine_glStopInstrumentsSGIX, (void **) (&func_glStopInstrumentsSGIX) },
  { "glTagSampleBufferSGIX", (void *) wine_glTagSampleBufferSGIX, (void **) (&func_glTagSampleBufferSGIX) },
  { "glTangent3b", (void *) wine_glTangent3b, (void **) (&func_glTangent3b) },
  { "glTangent3bv", (void *) wine_glTangent3bv, (void **) (&func_glTangent3bv) },
  { "glTangent3d", (void *) wine_glTangent3d, (void **) (&func_glTangent3d) },
  { "glTangent3dv", (void *) wine_glTangent3dv, (void **) (&func_glTangent3dv) },
  { "glTangent3f", (void *) wine_glTangent3f, (void **) (&func_glTangent3f) },
  { "glTangent3fv", (void *) wine_glTangent3fv, (void **) (&func_glTangent3fv) },
  { "glTangent3i", (void *) wine_glTangent3i, (void **) (&func_glTangent3i) },
  { "glTangent3iv", (void *) wine_glTangent3iv, (void **) (&func_glTangent3iv) },
  { "glTangent3s", (void *) wine_glTangent3s, (void **) (&func_glTangent3s) },
  { "glTangent3sv", (void *) wine_glTangent3sv, (void **) (&func_glTangent3sv) },
  { "glTangentPointerEXT", (void *) wine_glTangentPointerEXT, (void **) (&func_glTangentPointerEXT) },
  { "glTbufferMask3DFX", (void *) wine_glTbufferMask3DFX, (void **) (&func_glTbufferMask3DFX) },
  { "glTexCoord2fColor3fVertex3fSUN", (void *) wine_glTexCoord2fColor3fVertex3fSUN, (void **) (&func_glTexCoord2fColor3fVertex3fSUN) },
  { "glTexCoord2fColor3fVertex3fvSUN", (void *) wine_glTexCoord2fColor3fVertex3fvSUN, (void **) (&func_glTexCoord2fColor3fVertex3fvSUN) },
  { "glTexCoord2fColor4fNormal3fVertex3fSUN", (void *) wine_glTexCoord2fColor4fNormal3fVertex3fSUN, (void **) (&func_glTexCoord2fColor4fNormal3fVertex3fSUN) },
  { "glTexCoord2fColor4fNormal3fVertex3fvSUN", (void *) wine_glTexCoord2fColor4fNormal3fVertex3fvSUN, (void **) (&func_glTexCoord2fColor4fNormal3fVertex3fvSUN) },
  { "glTexCoord2fColor4ubVertex3fSUN", (void *) wine_glTexCoord2fColor4ubVertex3fSUN, (void **) (&func_glTexCoord2fColor4ubVertex3fSUN) },
  { "glTexCoord2fColor4ubVertex3fvSUN", (void *) wine_glTexCoord2fColor4ubVertex3fvSUN, (void **) (&func_glTexCoord2fColor4ubVertex3fvSUN) },
  { "glTexCoord2fNormal3fVertex3fSUN", (void *) wine_glTexCoord2fNormal3fVertex3fSUN, (void **) (&func_glTexCoord2fNormal3fVertex3fSUN) },
  { "glTexCoord2fNormal3fVertex3fvSUN", (void *) wine_glTexCoord2fNormal3fVertex3fvSUN, (void **) (&func_glTexCoord2fNormal3fVertex3fvSUN) },
  { "glTexCoord2fVertex3fSUN", (void *) wine_glTexCoord2fVertex3fSUN, (void **) (&func_glTexCoord2fVertex3fSUN) },
  { "glTexCoord2fVertex3fvSUN", (void *) wine_glTexCoord2fVertex3fvSUN, (void **) (&func_glTexCoord2fVertex3fvSUN) },
  { "glTexCoord4fColor4fNormal3fVertex4fSUN", (void *) wine_glTexCoord4fColor4fNormal3fVertex4fSUN, (void **) (&func_glTexCoord4fColor4fNormal3fVertex4fSUN) },
  { "glTexCoord4fColor4fNormal3fVertex4fvSUN", (void *) wine_glTexCoord4fColor4fNormal3fVertex4fvSUN, (void **) (&func_glTexCoord4fColor4fNormal3fVertex4fvSUN) },
  { "glTexCoord4fVertex4fSUN", (void *) wine_glTexCoord4fVertex4fSUN, (void **) (&func_glTexCoord4fVertex4fSUN) },
  { "glTexCoord4fVertex4fvSUN", (void *) wine_glTexCoord4fVertex4fvSUN, (void **) (&func_glTexCoord4fVertex4fvSUN) },
  { "glTexCoordPointerEXT", (void *) wine_glTexCoordPointerEXT, (void **) (&func_glTexCoordPointerEXT) },
  { "glTexCoordPointerListIBM", (void *) wine_glTexCoordPointerListIBM, (void **) (&func_glTexCoordPointerListIBM) },
  { "glTexCoordPointervINTEL", (void *) wine_glTexCoordPointervINTEL, (void **) (&func_glTexCoordPointervINTEL) },
  { "glTexFilterFuncSGIS", (void *) wine_glTexFilterFuncSGIS, (void **) (&func_glTexFilterFuncSGIS) },
  { "glTexImage3DEXT", (void *) wine_glTexImage3DEXT, (void **) (&func_glTexImage3DEXT) },
  { "glTexImage4DSGIS", (void *) wine_glTexImage4DSGIS, (void **) (&func_glTexImage4DSGIS) },
  { "glTexSubImage1DEXT", (void *) wine_glTexSubImage1DEXT, (void **) (&func_glTexSubImage1DEXT) },
  { "glTexSubImage2DEXT", (void *) wine_glTexSubImage2DEXT, (void **) (&func_glTexSubImage2DEXT) },
  { "glTexSubImage3DEXT", (void *) wine_glTexSubImage3DEXT, (void **) (&func_glTexSubImage3DEXT) },
  { "glTexSubImage4DSGIS", (void *) wine_glTexSubImage4DSGIS, (void **) (&func_glTexSubImage4DSGIS) },
  { "glTextureLightEXT", (void *) wine_glTextureLightEXT, (void **) (&func_glTextureLightEXT) },
  { "glTextureMaterialEXT", (void *) wine_glTextureMaterialEXT, (void **) (&func_glTextureMaterialEXT) },
  { "glTextureNormalEXT", (void *) wine_glTextureNormalEXT, (void **) (&func_glTextureNormalEXT) },
  { "glUnlockArraysEXT", (void *) wine_glUnlockArraysEXT, (void **) (&func_glUnlockArraysEXT) },
  { "glVertexArrayRangeNV", (void *) wine_glVertexArrayRangeNV, (void **) (&func_glVertexArrayRangeNV) },
  { "glVertexPointerEXT", (void *) wine_glVertexPointerEXT, (void **) (&func_glVertexPointerEXT) },
  { "glVertexPointerListIBM", (void *) wine_glVertexPointerListIBM, (void **) (&func_glVertexPointerListIBM) },
  { "glVertexPointervINTEL", (void *) wine_glVertexPointervINTEL, (void **) (&func_glVertexPointervINTEL) },
  { "glVertexWeightPointerEXT", (void *) wine_glVertexWeightPointerEXT, (void **) (&func_glVertexWeightPointerEXT) },
  { "glVertexWeightfEXT", (void *) wine_glVertexWeightfEXT, (void **) (&func_glVertexWeightfEXT) },
  { "glVertexWeightfvEXT", (void *) wine_glVertexWeightfvEXT, (void **) (&func_glVertexWeightfvEXT) },
  { "glWindowPos2dMESA", (void *) wine_glWindowPos2dMESA, (void **) (&func_glWindowPos2dMESA) },
  { "glWindowPos2dvMESA", (void *) wine_glWindowPos2dvMESA, (void **) (&func_glWindowPos2dvMESA) },
  { "glWindowPos2fMESA", (void *) wine_glWindowPos2fMESA, (void **) (&func_glWindowPos2fMESA) },
  { "glWindowPos2fvMESA", (void *) wine_glWindowPos2fvMESA, (void **) (&func_glWindowPos2fvMESA) },
  { "glWindowPos2iMESA", (void *) wine_glWindowPos2iMESA, (void **) (&func_glWindowPos2iMESA) },
  { "glWindowPos2ivMESA", (void *) wine_glWindowPos2ivMESA, (void **) (&func_glWindowPos2ivMESA) },
  { "glWindowPos2sMESA", (void *) wine_glWindowPos2sMESA, (void **) (&func_glWindowPos2sMESA) },
  { "glWindowPos2svMESA", (void *) wine_glWindowPos2svMESA, (void **) (&func_glWindowPos2svMESA) },
  { "glWindowPos3dMESA", (void *) wine_glWindowPos3dMESA, (void **) (&func_glWindowPos3dMESA) },
  { "glWindowPos3dvMESA", (void *) wine_glWindowPos3dvMESA, (void **) (&func_glWindowPos3dvMESA) },
  { "glWindowPos3fMESA", (void *) wine_glWindowPos3fMESA, (void **) (&func_glWindowPos3fMESA) },
  { "glWindowPos3fvMESA", (void *) wine_glWindowPos3fvMESA, (void **) (&func_glWindowPos3fvMESA) },
  { "glWindowPos3iMESA", (void *) wine_glWindowPos3iMESA, (void **) (&func_glWindowPos3iMESA) },
  { "glWindowPos3ivMESA", (void *) wine_glWindowPos3ivMESA, (void **) (&func_glWindowPos3ivMESA) },
  { "glWindowPos3sMESA", (void *) wine_glWindowPos3sMESA, (void **) (&func_glWindowPos3sMESA) },
  { "glWindowPos3svMESA", (void *) wine_glWindowPos3svMESA, (void **) (&func_glWindowPos3svMESA) },
  { "glWindowPos4dMESA", (void *) wine_glWindowPos4dMESA, (void **) (&func_glWindowPos4dMESA) },
  { "glWindowPos4dvMESA", (void *) wine_glWindowPos4dvMESA, (void **) (&func_glWindowPos4dvMESA) },
  { "glWindowPos4fMESA", (void *) wine_glWindowPos4fMESA, (void **) (&func_glWindowPos4fMESA) },
  { "glWindowPos4fvMESA", (void *) wine_glWindowPos4fvMESA, (void **) (&func_glWindowPos4fvMESA) },
  { "glWindowPos4iMESA", (void *) wine_glWindowPos4iMESA, (void **) (&func_glWindowPos4iMESA) },
  { "glWindowPos4ivMESA", (void *) wine_glWindowPos4ivMESA, (void **) (&func_glWindowPos4ivMESA) },
  { "glWindowPos4sMESA", (void *) wine_glWindowPos4sMESA, (void **) (&func_glWindowPos4sMESA) },
  { "glWindowPos4svMESA", (void *) wine_glWindowPos4svMESA, (void **) (&func_glWindowPos4svMESA) }
};

/* Now, the function declarations */
void WINAPI wine_glApplyTextureEXT(GLenum arg_0) {
  ENTER_GL();
  func_glApplyTextureEXT(arg_0);
  LEAVE_GL();
}

GLboolean WINAPI wine_glAreTexturesResidentEXT(GLsizei arg_0,  const GLuint * arg_1,  GLboolean * arg_2) {
  GLboolean ret;
  ENTER_GL();
    ret = func_glAreTexturesResidentEXT(arg_0, arg_1, arg_2);
  LEAVE_GL();
  return ret;
}

void WINAPI wine_glArrayElementEXT(GLint arg_0) {
  ENTER_GL();
  func_glArrayElementEXT(arg_0);
  LEAVE_GL();
}

void WINAPI wine_glBindTextureEXT(GLenum arg_0,  GLuint arg_1) {
  ENTER_GL();
  func_glBindTextureEXT(arg_0, arg_1);
  LEAVE_GL();
}

void WINAPI wine_glBinormal3b(GLbyte arg_0,  GLbyte arg_1,  GLbyte arg_2) {
  ENTER_GL();
  func_glBinormal3b(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glBinormal3bv(const GLbyte * arg_0) {
  ENTER_GL();
  func_glBinormal3bv(arg_0);
  LEAVE_GL();
}

void WINAPI wine_glBinormal3d(GLdouble arg_0,  GLdouble arg_1,  GLdouble arg_2) {
  ENTER_GL();
  func_glBinormal3d(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glBinormal3dv(const GLdouble * arg_0) {
  ENTER_GL();
  func_glBinormal3dv(arg_0);
  LEAVE_GL();
}

void WINAPI wine_glBinormal3f(GLfloat arg_0,  GLfloat arg_1,  GLfloat arg_2) {
  ENTER_GL();
  func_glBinormal3f(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glBinormal3fv(const GLfloat * arg_0) {
  ENTER_GL();
  func_glBinormal3fv(arg_0);
  LEAVE_GL();
}

void WINAPI wine_glBinormal3i(GLint arg_0,  GLint arg_1,  GLint arg_2) {
  ENTER_GL();
  func_glBinormal3i(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glBinormal3iv(const GLint * arg_0) {
  ENTER_GL();
  func_glBinormal3iv(arg_0);
  LEAVE_GL();
}

void WINAPI wine_glBinormal3s(GLshort arg_0,  GLshort arg_1,  GLshort arg_2) {
  ENTER_GL();
  func_glBinormal3s(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glBinormal3sv(const GLshort * arg_0) {
  ENTER_GL();
  func_glBinormal3sv(arg_0);
  LEAVE_GL();
}

void WINAPI wine_glBinormalPointerEXT(GLenum arg_0,  GLsizei arg_1,  const GLvoid * arg_2) {
  ENTER_GL();
  func_glBinormalPointerEXT(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glBlendColorEXT(GLclampf arg_0,  GLclampf arg_1,  GLclampf arg_2,  GLclampf arg_3) {
  ENTER_GL();
  func_glBlendColorEXT(arg_0, arg_1, arg_2, arg_3);
  LEAVE_GL();
}

void WINAPI wine_glBlendEquationEXT(GLenum arg_0) {
  ENTER_GL();
  func_glBlendEquationEXT(arg_0);
  LEAVE_GL();
}

void WINAPI wine_glBlendFuncSeparateEXT(GLenum arg_0,  GLenum arg_1,  GLenum arg_2,  GLenum arg_3) {
  ENTER_GL();
  func_glBlendFuncSeparateEXT(arg_0, arg_1, arg_2, arg_3);
  LEAVE_GL();
}

void WINAPI wine_glColor3fVertex3fSUN(GLfloat arg_0,  GLfloat arg_1,  GLfloat arg_2,  GLfloat arg_3,  GLfloat arg_4,  GLfloat arg_5) {
  ENTER_GL();
  func_glColor3fVertex3fSUN(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
  LEAVE_GL();
}

void WINAPI wine_glColor3fVertex3fvSUN(const GLfloat * arg_0,  const GLfloat * arg_1) {
  ENTER_GL();
  func_glColor3fVertex3fvSUN(arg_0, arg_1);
  LEAVE_GL();
}

void WINAPI wine_glColor4fNormal3fVertex3fSUN(GLfloat arg_0,  GLfloat arg_1,  GLfloat arg_2,  GLfloat arg_3,  GLfloat arg_4,  GLfloat arg_5,  GLfloat arg_6,  GLfloat arg_7,  GLfloat arg_8,  GLfloat arg_9) {
  ENTER_GL();
  func_glColor4fNormal3fVertex3fSUN(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5, arg_6, arg_7, arg_8, arg_9);
  LEAVE_GL();
}

void WINAPI wine_glColor4fNormal3fVertex3fvSUN(const GLfloat * arg_0,  const GLfloat * arg_1,  const GLfloat * arg_2) {
  ENTER_GL();
  func_glColor4fNormal3fVertex3fvSUN(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glColor4ubVertex2fSUN(GLubyte arg_0,  GLubyte arg_1,  GLubyte arg_2,  GLubyte arg_3,  GLfloat arg_4,  GLfloat arg_5) {
  ENTER_GL();
  func_glColor4ubVertex2fSUN(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
  LEAVE_GL();
}

void WINAPI wine_glColor4ubVertex2fvSUN(const GLubyte * arg_0,  const GLfloat * arg_1) {
  ENTER_GL();
  func_glColor4ubVertex2fvSUN(arg_0, arg_1);
  LEAVE_GL();
}

void WINAPI wine_glColor4ubVertex3fSUN(GLubyte arg_0,  GLubyte arg_1,  GLubyte arg_2,  GLubyte arg_3,  GLfloat arg_4,  GLfloat arg_5,  GLfloat arg_6) {
  ENTER_GL();
  func_glColor4ubVertex3fSUN(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5, arg_6);
  LEAVE_GL();
}

void WINAPI wine_glColor4ubVertex3fvSUN(const GLubyte * arg_0,  const GLfloat * arg_1) {
  ENTER_GL();
  func_glColor4ubVertex3fvSUN(arg_0, arg_1);
  LEAVE_GL();
}

void WINAPI wine_glColorPointerEXT(GLint arg_0,  GLenum arg_1,  GLsizei arg_2,  GLsizei arg_3,  const GLvoid * arg_4) {
  ENTER_GL();
  func_glColorPointerEXT(arg_0, arg_1, arg_2, arg_3, arg_4);
  LEAVE_GL();
}

void WINAPI wine_glColorPointerListIBM(GLint arg_0,  GLenum arg_1,  GLint arg_2,  const GLvoid* * arg_3,  GLint arg_4) {
  ENTER_GL();
  func_glColorPointerListIBM(arg_0, arg_1, arg_2, arg_3, arg_4);
  LEAVE_GL();
}

void WINAPI wine_glColorPointervINTEL(GLint arg_0,  GLenum arg_1,  const GLvoid* * arg_2) {
  ENTER_GL();
  func_glColorPointervINTEL(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glColorSubTableEXT(GLenum arg_0,  GLsizei arg_1,  GLsizei arg_2,  GLenum arg_3,  GLenum arg_4,  const GLvoid * arg_5) {
  ENTER_GL();
  func_glColorSubTableEXT(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
  LEAVE_GL();
}

void WINAPI wine_glColorTableEXT(GLenum arg_0,  GLenum arg_1,  GLsizei arg_2,  GLenum arg_3,  GLenum arg_4,  const GLvoid * arg_5) {
  ENTER_GL();
  func_glColorTableEXT(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
  LEAVE_GL();
}

void WINAPI wine_glColorTableParameterfvSGI(GLenum arg_0,  GLenum arg_1,  const GLfloat * arg_2) {
  ENTER_GL();
  func_glColorTableParameterfvSGI(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glColorTableParameterivSGI(GLenum arg_0,  GLenum arg_1,  const GLint * arg_2) {
  ENTER_GL();
  func_glColorTableParameterivSGI(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glColorTableSGI(GLenum arg_0,  GLenum arg_1,  GLsizei arg_2,  GLenum arg_3,  GLenum arg_4,  const GLvoid * arg_5) {
  ENTER_GL();
  func_glColorTableSGI(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
  LEAVE_GL();
}

void WINAPI wine_glCombinerInputNV(GLenum arg_0,  GLenum arg_1,  GLenum arg_2,  GLenum arg_3,  GLenum arg_4,  GLenum arg_5) {
  ENTER_GL();
  func_glCombinerInputNV(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
  LEAVE_GL();
}

void WINAPI wine_glCombinerOutputNV(GLenum arg_0,  GLenum arg_1,  GLenum arg_2,  GLenum arg_3,  GLenum arg_4,  GLenum arg_5,  GLenum arg_6,  GLboolean arg_7,  GLboolean arg_8,  GLboolean arg_9) {
  ENTER_GL();
  func_glCombinerOutputNV(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5, arg_6, arg_7, arg_8, arg_9);
  LEAVE_GL();
}

void WINAPI wine_glCombinerParameterfNV(GLenum arg_0,  GLfloat arg_1) {
  ENTER_GL();
  func_glCombinerParameterfNV(arg_0, arg_1);
  LEAVE_GL();
}

void WINAPI wine_glCombinerParameterfvNV(GLenum arg_0,  const GLfloat * arg_1) {
  ENTER_GL();
  func_glCombinerParameterfvNV(arg_0, arg_1);
  LEAVE_GL();
}

void WINAPI wine_glCombinerParameteriNV(GLenum arg_0,  GLint arg_1) {
  ENTER_GL();
  func_glCombinerParameteriNV(arg_0, arg_1);
  LEAVE_GL();
}

void WINAPI wine_glCombinerParameterivNV(GLenum arg_0,  const GLint * arg_1) {
  ENTER_GL();
  func_glCombinerParameterivNV(arg_0, arg_1);
  LEAVE_GL();
}

void WINAPI wine_glCompressedTexImage1DARB(GLenum arg_0,  GLint arg_1,  GLenum arg_2,  GLsizei arg_3,  GLint arg_4,  GLsizei arg_5,  const GLvoid * arg_6) {
  ENTER_GL();
  func_glCompressedTexImage1DARB(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5, arg_6);
  LEAVE_GL();
}

void WINAPI wine_glCompressedTexImage2DARB(GLenum arg_0,  GLint arg_1,  GLenum arg_2,  GLsizei arg_3,  GLsizei arg_4,  GLint arg_5,  GLsizei arg_6,  const GLvoid * arg_7) {
  ENTER_GL();
  func_glCompressedTexImage2DARB(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5, arg_6, arg_7);
  LEAVE_GL();
}

void WINAPI wine_glCompressedTexImage3DARB(GLenum arg_0,  GLint arg_1,  GLenum arg_2,  GLsizei arg_3,  GLsizei arg_4,  GLsizei arg_5,  GLint arg_6,  GLsizei arg_7,  const GLvoid * arg_8) {
  ENTER_GL();
  func_glCompressedTexImage3DARB(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5, arg_6, arg_7, arg_8);
  LEAVE_GL();
}

void WINAPI wine_glCompressedTexSubImage1DARB(GLenum arg_0,  GLint arg_1,  GLint arg_2,  GLsizei arg_3,  GLenum arg_4,  GLsizei arg_5,  const GLvoid * arg_6) {
  ENTER_GL();
  func_glCompressedTexSubImage1DARB(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5, arg_6);
  LEAVE_GL();
}

void WINAPI wine_glCompressedTexSubImage2DARB(GLenum arg_0,  GLint arg_1,  GLint arg_2,  GLint arg_3,  GLsizei arg_4,  GLsizei arg_5,  GLenum arg_6,  GLsizei arg_7,  const GLvoid * arg_8) {
  ENTER_GL();
  func_glCompressedTexSubImage2DARB(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5, arg_6, arg_7, arg_8);
  LEAVE_GL();
}

void WINAPI wine_glCompressedTexSubImage3DARB(GLenum arg_0,  GLint arg_1,  GLint arg_2,  GLint arg_3,  GLint arg_4,  GLsizei arg_5,  GLsizei arg_6,  GLsizei arg_7,  GLenum arg_8,  GLsizei arg_9,  const GLvoid * arg_10) {
  ENTER_GL();
  func_glCompressedTexSubImage3DARB(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5, arg_6, arg_7, arg_8, arg_9, arg_10);
  LEAVE_GL();
}

void WINAPI wine_glConvolutionFilter1DEXT(GLenum arg_0,  GLenum arg_1,  GLsizei arg_2,  GLenum arg_3,  GLenum arg_4,  const GLvoid * arg_5) {
  ENTER_GL();
  func_glConvolutionFilter1DEXT(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
  LEAVE_GL();
}

void WINAPI wine_glConvolutionFilter2DEXT(GLenum arg_0,  GLenum arg_1,  GLsizei arg_2,  GLsizei arg_3,  GLenum arg_4,  GLenum arg_5,  const GLvoid * arg_6) {
  ENTER_GL();
  func_glConvolutionFilter2DEXT(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5, arg_6);
  LEAVE_GL();
}

void WINAPI wine_glConvolutionParameterfEXT(GLenum arg_0,  GLenum arg_1,  GLfloat arg_2) {
  ENTER_GL();
  func_glConvolutionParameterfEXT(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glConvolutionParameterfvEXT(GLenum arg_0,  GLenum arg_1,  const GLfloat * arg_2) {
  ENTER_GL();
  func_glConvolutionParameterfvEXT(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glConvolutionParameteriEXT(GLenum arg_0,  GLenum arg_1,  GLint arg_2) {
  ENTER_GL();
  func_glConvolutionParameteriEXT(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glConvolutionParameterivEXT(GLenum arg_0,  GLenum arg_1,  const GLint * arg_2) {
  ENTER_GL();
  func_glConvolutionParameterivEXT(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glCopyColorSubTableEXT(GLenum arg_0,  GLsizei arg_1,  GLint arg_2,  GLint arg_3,  GLsizei arg_4) {
  ENTER_GL();
  func_glCopyColorSubTableEXT(arg_0, arg_1, arg_2, arg_3, arg_4);
  LEAVE_GL();
}

void WINAPI wine_glCopyColorTableSGI(GLenum arg_0,  GLenum arg_1,  GLint arg_2,  GLint arg_3,  GLsizei arg_4) {
  ENTER_GL();
  func_glCopyColorTableSGI(arg_0, arg_1, arg_2, arg_3, arg_4);
  LEAVE_GL();
}

void WINAPI wine_glCopyConvolutionFilter1DEXT(GLenum arg_0,  GLenum arg_1,  GLint arg_2,  GLint arg_3,  GLsizei arg_4) {
  ENTER_GL();
  func_glCopyConvolutionFilter1DEXT(arg_0, arg_1, arg_2, arg_3, arg_4);
  LEAVE_GL();
}

void WINAPI wine_glCopyConvolutionFilter2DEXT(GLenum arg_0,  GLenum arg_1,  GLint arg_2,  GLint arg_3,  GLsizei arg_4,  GLsizei arg_5) {
  ENTER_GL();
  func_glCopyConvolutionFilter2DEXT(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
  LEAVE_GL();
}

void WINAPI wine_glCopyTexImage1DEXT(GLenum arg_0,  GLint arg_1,  GLenum arg_2,  GLint arg_3,  GLint arg_4,  GLsizei arg_5,  GLint arg_6) {
  ENTER_GL();
  func_glCopyTexImage1DEXT(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5, arg_6);
  LEAVE_GL();
}

void WINAPI wine_glCopyTexImage2DEXT(GLenum arg_0,  GLint arg_1,  GLenum arg_2,  GLint arg_3,  GLint arg_4,  GLsizei arg_5,  GLsizei arg_6,  GLint arg_7) {
  ENTER_GL();
  func_glCopyTexImage2DEXT(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5, arg_6, arg_7);
  LEAVE_GL();
}

void WINAPI wine_glCopyTexSubImage1DEXT(GLenum arg_0,  GLint arg_1,  GLint arg_2,  GLint arg_3,  GLint arg_4,  GLsizei arg_5) {
  ENTER_GL();
  func_glCopyTexSubImage1DEXT(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
  LEAVE_GL();
}

void WINAPI wine_glCopyTexSubImage2DEXT(GLenum arg_0,  GLint arg_1,  GLint arg_2,  GLint arg_3,  GLint arg_4,  GLint arg_5,  GLsizei arg_6,  GLsizei arg_7) {
  ENTER_GL();
  func_glCopyTexSubImage2DEXT(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5, arg_6, arg_7);
  LEAVE_GL();
}

void WINAPI wine_glCopyTexSubImage3DEXT(GLenum arg_0,  GLint arg_1,  GLint arg_2,  GLint arg_3,  GLint arg_4,  GLint arg_5,  GLint arg_6,  GLsizei arg_7,  GLsizei arg_8) {
  ENTER_GL();
  func_glCopyTexSubImage3DEXT(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5, arg_6, arg_7, arg_8);
  LEAVE_GL();
}

void WINAPI wine_glCullParameterdvEXT(GLenum arg_0,  GLdouble * arg_1) {
  ENTER_GL();
  func_glCullParameterdvEXT(arg_0, arg_1);
  LEAVE_GL();
}

void WINAPI wine_glCullParameterfvEXT(GLenum arg_0,  GLfloat * arg_1) {
  ENTER_GL();
  func_glCullParameterfvEXT(arg_0, arg_1);
  LEAVE_GL();
}

void WINAPI wine_glDeleteTexturesEXT(GLsizei arg_0,  const GLuint * arg_1) {
  ENTER_GL();
  func_glDeleteTexturesEXT(arg_0, arg_1);
  LEAVE_GL();
}

void WINAPI wine_glDetailTexFuncSGIS(GLenum arg_0,  GLsizei arg_1,  const GLfloat * arg_2) {
  ENTER_GL();
  func_glDetailTexFuncSGIS(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glDrawArraysEXT(GLenum arg_0,  GLint arg_1,  GLsizei arg_2) {
  ENTER_GL();
  func_glDrawArraysEXT(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glDrawRangeElementsEXT(GLenum arg_0,  GLuint arg_1,  GLuint arg_2,  GLsizei arg_3,  GLenum arg_4,  const GLvoid * arg_5) {
  ENTER_GL();
  func_glDrawRangeElementsEXT(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
  LEAVE_GL();
}

void WINAPI wine_glEdgeFlagPointerEXT(GLsizei arg_0,  GLsizei arg_1,  const GLboolean * arg_2) {
  ENTER_GL();
  func_glEdgeFlagPointerEXT(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glEdgeFlagPointerListIBM(GLint arg_0,  const GLboolean* * arg_1,  GLint arg_2) {
  ENTER_GL();
  func_glEdgeFlagPointerListIBM(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glFinalCombinerInputNV(GLenum arg_0,  GLenum arg_1,  GLenum arg_2,  GLenum arg_3) {
  ENTER_GL();
  func_glFinalCombinerInputNV(arg_0, arg_1, arg_2, arg_3);
  LEAVE_GL();
}

void WINAPI wine_glFinishTextureSUNX() {
  ENTER_GL();
  func_glFinishTextureSUNX();
  LEAVE_GL();
}

void WINAPI wine_glFlushRasterSGIX() {
  ENTER_GL();
  func_glFlushRasterSGIX();
  LEAVE_GL();
}

void WINAPI wine_glFlushVertexArrayRangeNV() {
  ENTER_GL();
  func_glFlushVertexArrayRangeNV();
  LEAVE_GL();
}

void WINAPI wine_glFogCoordPointerEXT(GLenum arg_0,  GLsizei arg_1,  const GLvoid * arg_2) {
  ENTER_GL();
  func_glFogCoordPointerEXT(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glFogCoordPointerListIBM(GLenum arg_0,  GLint arg_1,  const GLvoid* * arg_2,  GLint arg_3) {
  ENTER_GL();
  func_glFogCoordPointerListIBM(arg_0, arg_1, arg_2, arg_3);
  LEAVE_GL();
}

void WINAPI wine_glFogCoorddEXT(GLdouble arg_0) {
  ENTER_GL();
  func_glFogCoorddEXT(arg_0);
  LEAVE_GL();
}

void WINAPI wine_glFogCoorddvEXT(const GLdouble * arg_0) {
  ENTER_GL();
  func_glFogCoorddvEXT(arg_0);
  LEAVE_GL();
}

void WINAPI wine_glFogCoordfEXT(GLfloat arg_0) {
  ENTER_GL();
  func_glFogCoordfEXT(arg_0);
  LEAVE_GL();
}

void WINAPI wine_glFogCoordfvEXT(const GLfloat * arg_0) {
  ENTER_GL();
  func_glFogCoordfvEXT(arg_0);
  LEAVE_GL();
}

void WINAPI wine_glFogFuncSGIS(GLsizei arg_0,  const GLfloat * arg_1) {
  ENTER_GL();
  func_glFogFuncSGIS(arg_0, arg_1);
  LEAVE_GL();
}

void WINAPI wine_glFragmentColorMaterialSGIX(GLenum arg_0,  GLenum arg_1) {
  ENTER_GL();
  func_glFragmentColorMaterialSGIX(arg_0, arg_1);
  LEAVE_GL();
}

void WINAPI wine_glFragmentLightModelfSGIX(GLenum arg_0,  GLfloat arg_1) {
  ENTER_GL();
  func_glFragmentLightModelfSGIX(arg_0, arg_1);
  LEAVE_GL();
}

void WINAPI wine_glFragmentLightModelfvSGIX(GLenum arg_0,  const GLfloat * arg_1) {
  ENTER_GL();
  func_glFragmentLightModelfvSGIX(arg_0, arg_1);
  LEAVE_GL();
}

void WINAPI wine_glFragmentLightModeliSGIX(GLenum arg_0,  GLint arg_1) {
  ENTER_GL();
  func_glFragmentLightModeliSGIX(arg_0, arg_1);
  LEAVE_GL();
}

void WINAPI wine_glFragmentLightModelivSGIX(GLenum arg_0,  const GLint * arg_1) {
  ENTER_GL();
  func_glFragmentLightModelivSGIX(arg_0, arg_1);
  LEAVE_GL();
}

void WINAPI wine_glFragmentLightfSGIX(GLenum arg_0,  GLenum arg_1,  GLfloat arg_2) {
  ENTER_GL();
  func_glFragmentLightfSGIX(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glFragmentLightfvSGIX(GLenum arg_0,  GLenum arg_1,  const GLfloat * arg_2) {
  ENTER_GL();
  func_glFragmentLightfvSGIX(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glFragmentLightiSGIX(GLenum arg_0,  GLenum arg_1,  GLint arg_2) {
  ENTER_GL();
  func_glFragmentLightiSGIX(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glFragmentLightivSGIX(GLenum arg_0,  GLenum arg_1,  const GLint * arg_2) {
  ENTER_GL();
  func_glFragmentLightivSGIX(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glFragmentMaterialfSGIX(GLenum arg_0,  GLenum arg_1,  GLfloat arg_2) {
  ENTER_GL();
  func_glFragmentMaterialfSGIX(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glFragmentMaterialfvSGIX(GLenum arg_0,  GLenum arg_1,  const GLfloat * arg_2) {
  ENTER_GL();
  func_glFragmentMaterialfvSGIX(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glFragmentMaterialiSGIX(GLenum arg_0,  GLenum arg_1,  GLint arg_2) {
  ENTER_GL();
  func_glFragmentMaterialiSGIX(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glFragmentMaterialivSGIX(GLenum arg_0,  GLenum arg_1,  const GLint * arg_2) {
  ENTER_GL();
  func_glFragmentMaterialivSGIX(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glFrameZoomSGIX(GLint arg_0) {
  ENTER_GL();
  func_glFrameZoomSGIX(arg_0);
  LEAVE_GL();
}

void WINAPI wine_glGenTexturesEXT(GLsizei arg_0,  GLuint * arg_1) {
  ENTER_GL();
  func_glGenTexturesEXT(arg_0, arg_1);
  LEAVE_GL();
}

void WINAPI wine_glGetColorTableEXT(GLenum arg_0,  GLenum arg_1,  GLenum arg_2,  GLvoid * arg_3) {
  ENTER_GL();
  func_glGetColorTableEXT(arg_0, arg_1, arg_2, arg_3);
  LEAVE_GL();
}

void WINAPI wine_glGetColorTableParameterfvEXT(GLenum arg_0,  GLenum arg_1,  GLfloat * arg_2) {
  ENTER_GL();
  func_glGetColorTableParameterfvEXT(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glGetColorTableParameterfvSGI(GLenum arg_0,  GLenum arg_1,  GLfloat * arg_2) {
  ENTER_GL();
  func_glGetColorTableParameterfvSGI(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glGetColorTableParameterivEXT(GLenum arg_0,  GLenum arg_1,  GLint * arg_2) {
  ENTER_GL();
  func_glGetColorTableParameterivEXT(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glGetColorTableParameterivSGI(GLenum arg_0,  GLenum arg_1,  GLint * arg_2) {
  ENTER_GL();
  func_glGetColorTableParameterivSGI(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glGetColorTableSGI(GLenum arg_0,  GLenum arg_1,  GLenum arg_2,  GLvoid * arg_3) {
  ENTER_GL();
  func_glGetColorTableSGI(arg_0, arg_1, arg_2, arg_3);
  LEAVE_GL();
}

void WINAPI wine_glGetCombinerInputParameterfvNV(GLenum arg_0,  GLenum arg_1,  GLenum arg_2,  GLenum arg_3,  GLfloat * arg_4) {
  ENTER_GL();
  func_glGetCombinerInputParameterfvNV(arg_0, arg_1, arg_2, arg_3, arg_4);
  LEAVE_GL();
}

void WINAPI wine_glGetCombinerInputParameterivNV(GLenum arg_0,  GLenum arg_1,  GLenum arg_2,  GLenum arg_3,  GLint * arg_4) {
  ENTER_GL();
  func_glGetCombinerInputParameterivNV(arg_0, arg_1, arg_2, arg_3, arg_4);
  LEAVE_GL();
}

void WINAPI wine_glGetCombinerOutputParameterfvNV(GLenum arg_0,  GLenum arg_1,  GLenum arg_2,  GLfloat * arg_3) {
  ENTER_GL();
  func_glGetCombinerOutputParameterfvNV(arg_0, arg_1, arg_2, arg_3);
  LEAVE_GL();
}

void WINAPI wine_glGetCombinerOutputParameterivNV(GLenum arg_0,  GLenum arg_1,  GLenum arg_2,  GLint * arg_3) {
  ENTER_GL();
  func_glGetCombinerOutputParameterivNV(arg_0, arg_1, arg_2, arg_3);
  LEAVE_GL();
}

void WINAPI wine_glGetCompressedTexImageARB(GLenum arg_0,  GLint arg_1,  void * arg_2) {
  ENTER_GL();
  func_glGetCompressedTexImageARB(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glGetConvolutionFilterEXT(GLenum arg_0,  GLenum arg_1,  GLenum arg_2,  GLvoid * arg_3) {
  ENTER_GL();
  func_glGetConvolutionFilterEXT(arg_0, arg_1, arg_2, arg_3);
  LEAVE_GL();
}

void WINAPI wine_glGetConvolutionParameterfvEXT(GLenum arg_0,  GLenum arg_1,  GLfloat * arg_2) {
  ENTER_GL();
  func_glGetConvolutionParameterfvEXT(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glGetConvolutionParameterivEXT(GLenum arg_0,  GLenum arg_1,  GLint * arg_2) {
  ENTER_GL();
  func_glGetConvolutionParameterivEXT(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glGetDetailTexFuncSGIS(GLenum arg_0,  GLfloat * arg_1) {
  ENTER_GL();
  func_glGetDetailTexFuncSGIS(arg_0, arg_1);
  LEAVE_GL();
}

void WINAPI wine_glGetFinalCombinerInputParameterfvNV(GLenum arg_0,  GLenum arg_1,  GLfloat * arg_2) {
  ENTER_GL();
  func_glGetFinalCombinerInputParameterfvNV(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glGetFinalCombinerInputParameterivNV(GLenum arg_0,  GLenum arg_1,  GLint * arg_2) {
  ENTER_GL();
  func_glGetFinalCombinerInputParameterivNV(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glGetFogFuncSGIS(const GLfloat * arg_0) {
  ENTER_GL();
  func_glGetFogFuncSGIS(arg_0);
  LEAVE_GL();
}

void WINAPI wine_glGetFragmentLightfvSGIX(GLenum arg_0,  GLenum arg_1,  GLfloat * arg_2) {
  ENTER_GL();
  func_glGetFragmentLightfvSGIX(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glGetFragmentLightivSGIX(GLenum arg_0,  GLenum arg_1,  GLint * arg_2) {
  ENTER_GL();
  func_glGetFragmentLightivSGIX(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glGetFragmentMaterialfvSGIX(GLenum arg_0,  GLenum arg_1,  GLfloat * arg_2) {
  ENTER_GL();
  func_glGetFragmentMaterialfvSGIX(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glGetFragmentMaterialivSGIX(GLenum arg_0,  GLenum arg_1,  GLint * arg_2) {
  ENTER_GL();
  func_glGetFragmentMaterialivSGIX(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glGetHistogramEXT(GLenum arg_0,  GLboolean arg_1,  GLenum arg_2,  GLenum arg_3,  GLvoid * arg_4) {
  ENTER_GL();
  func_glGetHistogramEXT(arg_0, arg_1, arg_2, arg_3, arg_4);
  LEAVE_GL();
}

void WINAPI wine_glGetHistogramParameterfvEXT(GLenum arg_0,  GLenum arg_1,  GLfloat * arg_2) {
  ENTER_GL();
  func_glGetHistogramParameterfvEXT(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glGetHistogramParameterivEXT(GLenum arg_0,  GLenum arg_1,  GLint * arg_2) {
  ENTER_GL();
  func_glGetHistogramParameterivEXT(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glGetImageTransformParameterfvHP(GLenum arg_0,  GLenum arg_1,  GLfloat * arg_2) {
  ENTER_GL();
  func_glGetImageTransformParameterfvHP(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glGetImageTransformParameterivHP(GLenum arg_0,  GLenum arg_1,  GLint * arg_2) {
  ENTER_GL();
  func_glGetImageTransformParameterivHP(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

GLint WINAPI wine_glGetInstrumentsSGIX() {
  GLint ret;
  ENTER_GL();
    ret = func_glGetInstrumentsSGIX();
  LEAVE_GL();
  return ret;
}

void WINAPI wine_glGetListParameterfvSGIX(GLuint arg_0,  GLenum arg_1,  GLfloat * arg_2) {
  ENTER_GL();
  func_glGetListParameterfvSGIX(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glGetListParameterivSGIX(GLuint arg_0,  GLenum arg_1,  GLint * arg_2) {
  ENTER_GL();
  func_glGetListParameterivSGIX(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glGetMinmaxEXT(GLenum arg_0,  GLboolean arg_1,  GLenum arg_2,  GLenum arg_3,  GLvoid * arg_4) {
  ENTER_GL();
  func_glGetMinmaxEXT(arg_0, arg_1, arg_2, arg_3, arg_4);
  LEAVE_GL();
}

void WINAPI wine_glGetMinmaxParameterfvEXT(GLenum arg_0,  GLenum arg_1,  GLfloat * arg_2) {
  ENTER_GL();
  func_glGetMinmaxParameterfvEXT(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glGetMinmaxParameterivEXT(GLenum arg_0,  GLenum arg_1,  GLint * arg_2) {
  ENTER_GL();
  func_glGetMinmaxParameterivEXT(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glGetPixelTexGenParameterfvSGIS(GLenum arg_0,  GLfloat * arg_1) {
  ENTER_GL();
  func_glGetPixelTexGenParameterfvSGIS(arg_0, arg_1);
  LEAVE_GL();
}

void WINAPI wine_glGetPixelTexGenParameterivSGIS(GLenum arg_0,  GLint * arg_1) {
  ENTER_GL();
  func_glGetPixelTexGenParameterivSGIS(arg_0, arg_1);
  LEAVE_GL();
}

void WINAPI wine_glGetPointervEXT(GLenum arg_0,  GLvoid* * arg_1) {
  ENTER_GL();
  func_glGetPointervEXT(arg_0, arg_1);
  LEAVE_GL();
}

void WINAPI wine_glGetSeparableFilterEXT(GLenum arg_0,  GLenum arg_1,  GLenum arg_2,  GLvoid * arg_3,  GLvoid * arg_4,  GLvoid * arg_5) {
  ENTER_GL();
  func_glGetSeparableFilterEXT(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
  LEAVE_GL();
}

void WINAPI wine_glGetSharpenTexFuncSGIS(GLenum arg_0,  GLfloat * arg_1) {
  ENTER_GL();
  func_glGetSharpenTexFuncSGIS(arg_0, arg_1);
  LEAVE_GL();
}

void WINAPI wine_glGetTexFilterFuncSGIS(GLenum arg_0,  GLenum arg_1,  GLfloat * arg_2) {
  ENTER_GL();
  func_glGetTexFilterFuncSGIS(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glGlobalAlphaFactorbSUN(GLbyte arg_0) {
  ENTER_GL();
  func_glGlobalAlphaFactorbSUN(arg_0);
  LEAVE_GL();
}

void WINAPI wine_glGlobalAlphaFactordSUN(GLdouble arg_0) {
  ENTER_GL();
  func_glGlobalAlphaFactordSUN(arg_0);
  LEAVE_GL();
}

void WINAPI wine_glGlobalAlphaFactorfSUN(GLfloat arg_0) {
  ENTER_GL();
  func_glGlobalAlphaFactorfSUN(arg_0);
  LEAVE_GL();
}

void WINAPI wine_glGlobalAlphaFactoriSUN(GLint arg_0) {
  ENTER_GL();
  func_glGlobalAlphaFactoriSUN(arg_0);
  LEAVE_GL();
}

void WINAPI wine_glGlobalAlphaFactorsSUN(GLshort arg_0) {
  ENTER_GL();
  func_glGlobalAlphaFactorsSUN(arg_0);
  LEAVE_GL();
}

void WINAPI wine_glGlobalAlphaFactorubSUN(GLubyte arg_0) {
  ENTER_GL();
  func_glGlobalAlphaFactorubSUN(arg_0);
  LEAVE_GL();
}

void WINAPI wine_glGlobalAlphaFactoruiSUN(GLuint arg_0) {
  ENTER_GL();
  func_glGlobalAlphaFactoruiSUN(arg_0);
  LEAVE_GL();
}

void WINAPI wine_glGlobalAlphaFactorusSUN(GLushort arg_0) {
  ENTER_GL();
  func_glGlobalAlphaFactorusSUN(arg_0);
  LEAVE_GL();
}

void WINAPI wine_glHintPGI(GLenum arg_0,  GLint arg_1) {
  ENTER_GL();
  func_glHintPGI(arg_0, arg_1);
  LEAVE_GL();
}

void WINAPI wine_glHistogramEXT(GLenum arg_0,  GLsizei arg_1,  GLenum arg_2,  GLboolean arg_3) {
  ENTER_GL();
  func_glHistogramEXT(arg_0, arg_1, arg_2, arg_3);
  LEAVE_GL();
}

void WINAPI wine_glImageTransformParameterfHP(GLenum arg_0,  GLenum arg_1,  GLfloat arg_2) {
  ENTER_GL();
  func_glImageTransformParameterfHP(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glImageTransformParameterfvHP(GLenum arg_0,  GLenum arg_1,  const GLfloat * arg_2) {
  ENTER_GL();
  func_glImageTransformParameterfvHP(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glImageTransformParameteriHP(GLenum arg_0,  GLenum arg_1,  GLint arg_2) {
  ENTER_GL();
  func_glImageTransformParameteriHP(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glImageTransformParameterivHP(GLenum arg_0,  GLenum arg_1,  const GLint * arg_2) {
  ENTER_GL();
  func_glImageTransformParameterivHP(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glIndexFuncEXT(GLenum arg_0,  GLclampf arg_1) {
  ENTER_GL();
  func_glIndexFuncEXT(arg_0, arg_1);
  LEAVE_GL();
}

void WINAPI wine_glIndexMaterialEXT(GLenum arg_0,  GLenum arg_1) {
  ENTER_GL();
  func_glIndexMaterialEXT(arg_0, arg_1);
  LEAVE_GL();
}

void WINAPI wine_glIndexPointerEXT(GLenum arg_0,  GLsizei arg_1,  GLsizei arg_2,  const GLvoid * arg_3) {
  ENTER_GL();
  func_glIndexPointerEXT(arg_0, arg_1, arg_2, arg_3);
  LEAVE_GL();
}

void WINAPI wine_glIndexPointerListIBM(GLenum arg_0,  GLint arg_1,  const GLvoid* * arg_2,  GLint arg_3) {
  ENTER_GL();
  func_glIndexPointerListIBM(arg_0, arg_1, arg_2, arg_3);
  LEAVE_GL();
}

void WINAPI wine_glInstrumentsBufferSGIX(GLsizei arg_0,  GLint * arg_1) {
  ENTER_GL();
  func_glInstrumentsBufferSGIX(arg_0, arg_1);
  LEAVE_GL();
}

GLboolean WINAPI wine_glIsTextureEXT(GLuint arg_0) {
  GLboolean ret;
  ENTER_GL();
    ret = func_glIsTextureEXT(arg_0);
  LEAVE_GL();
  return ret;
}

void WINAPI wine_glLightEnviSGIX(GLenum arg_0,  GLint arg_1) {
  ENTER_GL();
  func_glLightEnviSGIX(arg_0, arg_1);
  LEAVE_GL();
}

void WINAPI wine_glListParameterfSGIX(GLuint arg_0,  GLenum arg_1,  GLfloat arg_2) {
  ENTER_GL();
  func_glListParameterfSGIX(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glListParameterfvSGIX(GLuint arg_0,  GLenum arg_1,  const GLfloat * arg_2) {
  ENTER_GL();
  func_glListParameterfvSGIX(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glListParameteriSGIX(GLuint arg_0,  GLenum arg_1,  GLint arg_2) {
  ENTER_GL();
  func_glListParameteriSGIX(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glListParameterivSGIX(GLuint arg_0,  GLenum arg_1,  const GLint * arg_2) {
  ENTER_GL();
  func_glListParameterivSGIX(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glLoadTransposeMatrixdARB(const GLdouble * arg_0) {
  ENTER_GL();
  func_glLoadTransposeMatrixdARB(arg_0);
  LEAVE_GL();
}

void WINAPI wine_glLoadTransposeMatrixfARB(const GLfloat * arg_0) {
  ENTER_GL();
  func_glLoadTransposeMatrixfARB(arg_0);
  LEAVE_GL();
}

void WINAPI wine_glLockArraysEXT(GLint arg_0,  GLsizei arg_1) {
  ENTER_GL();
  func_glLockArraysEXT(arg_0, arg_1);
  LEAVE_GL();
}

void WINAPI wine_glMinmaxEXT(GLenum arg_0,  GLenum arg_1,  GLboolean arg_2) {
  ENTER_GL();
  func_glMinmaxEXT(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glMultTransposeMatrixdARB(const GLdouble * arg_0) {
  ENTER_GL();
  func_glMultTransposeMatrixdARB(arg_0);
  LEAVE_GL();
}

void WINAPI wine_glMultTransposeMatrixfARB(const GLfloat * arg_0) {
  ENTER_GL();
  func_glMultTransposeMatrixfARB(arg_0);
  LEAVE_GL();
}

void WINAPI wine_glMultiDrawArraysEXT(GLenum arg_0,  GLint * arg_1,  GLsizei * arg_2,  GLsizei arg_3) {
  ENTER_GL();
  func_glMultiDrawArraysEXT(arg_0, arg_1, arg_2, arg_3);
  LEAVE_GL();
}

void WINAPI wine_glMultiDrawElementsEXT(GLenum arg_0,  const GLsizei * arg_1,  GLenum arg_2,  const GLvoid* * arg_3,  GLsizei arg_4) {
  ENTER_GL();
  func_glMultiDrawElementsEXT(arg_0, arg_1, arg_2, arg_3, arg_4);
  LEAVE_GL();
}

void WINAPI wine_glMultiModeDrawArraysIBM(GLenum arg_0,  const GLint * arg_1,  const GLsizei * arg_2,  GLsizei arg_3,  GLint arg_4) {
  ENTER_GL();
  func_glMultiModeDrawArraysIBM(arg_0, arg_1, arg_2, arg_3, arg_4);
  LEAVE_GL();
}

void WINAPI wine_glMultiModeDrawElementsIBM(const GLenum * arg_0,  const GLsizei * arg_1,  GLenum arg_2,  const GLvoid* * arg_3,  GLsizei arg_4,  GLint arg_5) {
  ENTER_GL();
  func_glMultiModeDrawElementsIBM(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
  LEAVE_GL();
}

void WINAPI wine_glNormal3fVertex3fSUN(GLfloat arg_0,  GLfloat arg_1,  GLfloat arg_2,  GLfloat arg_3,  GLfloat arg_4,  GLfloat arg_5) {
  ENTER_GL();
  func_glNormal3fVertex3fSUN(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
  LEAVE_GL();
}

void WINAPI wine_glNormal3fVertex3fvSUN(const GLfloat * arg_0,  const GLfloat * arg_1) {
  ENTER_GL();
  func_glNormal3fVertex3fvSUN(arg_0, arg_1);
  LEAVE_GL();
}

void WINAPI wine_glNormalPointerEXT(GLenum arg_0,  GLsizei arg_1,  GLsizei arg_2,  const GLvoid * arg_3) {
  ENTER_GL();
  func_glNormalPointerEXT(arg_0, arg_1, arg_2, arg_3);
  LEAVE_GL();
}

void WINAPI wine_glNormalPointerListIBM(GLenum arg_0,  GLint arg_1,  const GLvoid* * arg_2,  GLint arg_3) {
  ENTER_GL();
  func_glNormalPointerListIBM(arg_0, arg_1, arg_2, arg_3);
  LEAVE_GL();
}

void WINAPI wine_glNormalPointervINTEL(GLenum arg_0,  const GLvoid* * arg_1) {
  ENTER_GL();
  func_glNormalPointervINTEL(arg_0, arg_1);
  LEAVE_GL();
}

void WINAPI wine_glPixelTexGenParameterfSGIS(GLenum arg_0,  GLfloat arg_1) {
  ENTER_GL();
  func_glPixelTexGenParameterfSGIS(arg_0, arg_1);
  LEAVE_GL();
}

void WINAPI wine_glPixelTexGenParameterfvSGIS(GLenum arg_0,  const GLfloat * arg_1) {
  ENTER_GL();
  func_glPixelTexGenParameterfvSGIS(arg_0, arg_1);
  LEAVE_GL();
}

void WINAPI wine_glPixelTexGenParameteriSGIS(GLenum arg_0,  GLint arg_1) {
  ENTER_GL();
  func_glPixelTexGenParameteriSGIS(arg_0, arg_1);
  LEAVE_GL();
}

void WINAPI wine_glPixelTexGenParameterivSGIS(GLenum arg_0,  const GLint * arg_1) {
  ENTER_GL();
  func_glPixelTexGenParameterivSGIS(arg_0, arg_1);
  LEAVE_GL();
}

void WINAPI wine_glPixelTexGenSGIX(GLenum arg_0) {
  ENTER_GL();
  func_glPixelTexGenSGIX(arg_0);
  LEAVE_GL();
}

void WINAPI wine_glPixelTransformParameterfEXT(GLenum arg_0,  GLenum arg_1,  GLfloat arg_2) {
  ENTER_GL();
  func_glPixelTransformParameterfEXT(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glPixelTransformParameterfvEXT(GLenum arg_0,  GLenum arg_1,  const GLfloat * arg_2) {
  ENTER_GL();
  func_glPixelTransformParameterfvEXT(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glPixelTransformParameteriEXT(GLenum arg_0,  GLenum arg_1,  GLint arg_2) {
  ENTER_GL();
  func_glPixelTransformParameteriEXT(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glPixelTransformParameterivEXT(GLenum arg_0,  GLenum arg_1,  const GLint * arg_2) {
  ENTER_GL();
  func_glPixelTransformParameterivEXT(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glPointParameterfEXT(GLenum arg_0,  GLfloat arg_1) {
  ENTER_GL();
  func_glPointParameterfEXT(arg_0, arg_1);
  LEAVE_GL();
}

void WINAPI wine_glPointParameterfSGIS(GLenum arg_0,  GLfloat arg_1) {
  ENTER_GL();
  func_glPointParameterfSGIS(arg_0, arg_1);
  LEAVE_GL();
}

void WINAPI wine_glPointParameterfvEXT(GLenum arg_0,  const GLfloat * arg_1) {
  ENTER_GL();
  func_glPointParameterfvEXT(arg_0, arg_1);
  LEAVE_GL();
}

void WINAPI wine_glPointParameterfvSGIS(GLenum arg_0,  const GLfloat * arg_1) {
  ENTER_GL();
  func_glPointParameterfvSGIS(arg_0, arg_1);
  LEAVE_GL();
}

GLint WINAPI wine_glPollInstrumentsSGIX(GLint * arg_0) {
  GLint ret;
  ENTER_GL();
    ret = func_glPollInstrumentsSGIX(arg_0);
  LEAVE_GL();
  return ret;
}

void WINAPI wine_glPolygonOffsetEXT(GLfloat arg_0,  GLfloat arg_1) {
  ENTER_GL();
  func_glPolygonOffsetEXT(arg_0, arg_1);
  LEAVE_GL();
}

void WINAPI wine_glPrioritizeTexturesEXT(GLsizei arg_0,  const GLuint * arg_1,  const GLclampf * arg_2) {
  ENTER_GL();
  func_glPrioritizeTexturesEXT(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glReadInstrumentsSGIX(GLint arg_0) {
  ENTER_GL();
  func_glReadInstrumentsSGIX(arg_0);
  LEAVE_GL();
}

void WINAPI wine_glReferencePlaneSGIX(const GLdouble * arg_0) {
  ENTER_GL();
  func_glReferencePlaneSGIX(arg_0);
  LEAVE_GL();
}

void WINAPI wine_glReplacementCodePointer(GLenum arg_0,  GLsizei arg_1,  const GLvoid* * arg_2) {
  ENTER_GL();
  func_glReplacementCodePointer(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glReplacementCodeubSUN(GLubyte arg_0) {
  ENTER_GL();
  func_glReplacementCodeubSUN(arg_0);
  LEAVE_GL();
}

void WINAPI wine_glReplacementCodeubvSUN(const GLubyte * arg_0) {
  ENTER_GL();
  func_glReplacementCodeubvSUN(arg_0);
  LEAVE_GL();
}

void WINAPI wine_glReplacementCodeuiColor3fVertex3fSUN(GLenum arg_0,  GLfloat arg_1,  GLfloat arg_2,  GLfloat arg_3,  GLfloat arg_4,  GLfloat arg_5,  GLfloat arg_6) {
  ENTER_GL();
  func_glReplacementCodeuiColor3fVertex3fSUN(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5, arg_6);
  LEAVE_GL();
}

void WINAPI wine_glReplacementCodeuiColor3fVertex3fvSUN(const GLenum * arg_0,  const GLfloat * arg_1,  const GLfloat * arg_2) {
  ENTER_GL();
  func_glReplacementCodeuiColor3fVertex3fvSUN(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glReplacementCodeuiColor4fNormal3fVertex3fSUN(GLenum arg_0,  GLfloat arg_1,  GLfloat arg_2,  GLfloat arg_3,  GLfloat arg_4,  GLfloat arg_5,  GLfloat arg_6,  GLfloat arg_7,  GLfloat arg_8,  GLfloat arg_9,  GLfloat arg_10) {
  ENTER_GL();
  func_glReplacementCodeuiColor4fNormal3fVertex3fSUN(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5, arg_6, arg_7, arg_8, arg_9, arg_10);
  LEAVE_GL();
}

void WINAPI wine_glReplacementCodeuiColor4fNormal3fVertex3fvSUN(const GLenum * arg_0,  const GLfloat * arg_1,  const GLfloat * arg_2,  const GLfloat * arg_3) {
  ENTER_GL();
  func_glReplacementCodeuiColor4fNormal3fVertex3fvSUN(arg_0, arg_1, arg_2, arg_3);
  LEAVE_GL();
}

void WINAPI wine_glReplacementCodeuiColor4ubVertex3fSUN(GLenum arg_0,  GLubyte arg_1,  GLubyte arg_2,  GLubyte arg_3,  GLubyte arg_4,  GLfloat arg_5,  GLfloat arg_6,  GLfloat arg_7) {
  ENTER_GL();
  func_glReplacementCodeuiColor4ubVertex3fSUN(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5, arg_6, arg_7);
  LEAVE_GL();
}

void WINAPI wine_glReplacementCodeuiColor4ubVertex3fvSUN(const GLenum * arg_0,  const GLubyte * arg_1,  const GLfloat * arg_2) {
  ENTER_GL();
  func_glReplacementCodeuiColor4ubVertex3fvSUN(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glReplacementCodeuiNormal3fVertex3fSUN(GLenum arg_0,  GLfloat arg_1,  GLfloat arg_2,  GLfloat arg_3,  GLfloat arg_4,  GLfloat arg_5,  GLfloat arg_6) {
  ENTER_GL();
  func_glReplacementCodeuiNormal3fVertex3fSUN(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5, arg_6);
  LEAVE_GL();
}

void WINAPI wine_glReplacementCodeuiNormal3fVertex3fvSUN(const GLenum * arg_0,  const GLfloat * arg_1,  const GLfloat * arg_2) {
  ENTER_GL();
  func_glReplacementCodeuiNormal3fVertex3fvSUN(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glReplacementCodeuiSUN(GLuint arg_0) {
  ENTER_GL();
  func_glReplacementCodeuiSUN(arg_0);
  LEAVE_GL();
}

void WINAPI wine_glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN(GLenum arg_0,  GLfloat arg_1,  GLfloat arg_2,  GLfloat arg_3,  GLfloat arg_4,  GLfloat arg_5,  GLfloat arg_6,  GLfloat arg_7,  GLfloat arg_8,  GLfloat arg_9,  GLfloat arg_10,  GLfloat arg_11,  GLfloat arg_12) {
  ENTER_GL();
  func_glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5, arg_6, arg_7, arg_8, arg_9, arg_10, arg_11, arg_12);
  LEAVE_GL();
}

void WINAPI wine_glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN(const GLenum * arg_0,  const GLfloat * arg_1,  const GLfloat * arg_2,  const GLfloat * arg_3,  const GLfloat * arg_4) {
  ENTER_GL();
  func_glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN(arg_0, arg_1, arg_2, arg_3, arg_4);
  LEAVE_GL();
}

void WINAPI wine_glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN(GLenum arg_0,  GLfloat arg_1,  GLfloat arg_2,  GLfloat arg_3,  GLfloat arg_4,  GLfloat arg_5,  GLfloat arg_6,  GLfloat arg_7,  GLfloat arg_8) {
  ENTER_GL();
  func_glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5, arg_6, arg_7, arg_8);
  LEAVE_GL();
}

void WINAPI wine_glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN(const GLenum * arg_0,  const GLfloat * arg_1,  const GLfloat * arg_2,  const GLfloat * arg_3) {
  ENTER_GL();
  func_glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN(arg_0, arg_1, arg_2, arg_3);
  LEAVE_GL();
}

void WINAPI wine_glReplacementCodeuiTexCoord2fVertex3fSUN(GLenum arg_0,  GLfloat arg_1,  GLfloat arg_2,  GLfloat arg_3,  GLfloat arg_4,  GLfloat arg_5) {
  ENTER_GL();
  func_glReplacementCodeuiTexCoord2fVertex3fSUN(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
  LEAVE_GL();
}

void WINAPI wine_glReplacementCodeuiTexCoord2fVertex3fvSUN(const GLenum * arg_0,  const GLfloat * arg_1,  const GLfloat * arg_2) {
  ENTER_GL();
  func_glReplacementCodeuiTexCoord2fVertex3fvSUN(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glReplacementCodeuiVertex3fSUN(GLenum arg_0,  GLfloat arg_1,  GLfloat arg_2,  GLfloat arg_3) {
  ENTER_GL();
  func_glReplacementCodeuiVertex3fSUN(arg_0, arg_1, arg_2, arg_3);
  LEAVE_GL();
}

void WINAPI wine_glReplacementCodeuiVertex3fvSUN(const GLenum * arg_0,  const GLfloat * arg_1) {
  ENTER_GL();
  func_glReplacementCodeuiVertex3fvSUN(arg_0, arg_1);
  LEAVE_GL();
}

void WINAPI wine_glReplacementCodeuivSUN(const GLuint * arg_0) {
  ENTER_GL();
  func_glReplacementCodeuivSUN(arg_0);
  LEAVE_GL();
}

void WINAPI wine_glReplacementCodeusSUN(GLushort arg_0) {
  ENTER_GL();
  func_glReplacementCodeusSUN(arg_0);
  LEAVE_GL();
}

void WINAPI wine_glReplacementCodeusvSUN(const GLushort * arg_0) {
  ENTER_GL();
  func_glReplacementCodeusvSUN(arg_0);
  LEAVE_GL();
}

void WINAPI wine_glResetHistogramEXT(GLenum arg_0) {
  ENTER_GL();
  func_glResetHistogramEXT(arg_0);
  LEAVE_GL();
}

void WINAPI wine_glResetMinmaxEXT(GLenum arg_0) {
  ENTER_GL();
  func_glResetMinmaxEXT(arg_0);
  LEAVE_GL();
}

void WINAPI wine_glResizeBuffersMESA() {
  ENTER_GL();
  func_glResizeBuffersMESA();
  LEAVE_GL();
}

void WINAPI wine_glSampleCoverageARB(GLclampf arg_0,  GLboolean arg_1) {
  ENTER_GL();
  func_glSampleCoverageARB(arg_0, arg_1);
  LEAVE_GL();
}

void WINAPI wine_glSampleMaskEXT(GLclampf arg_0,  GLboolean arg_1) {
  ENTER_GL();
  func_glSampleMaskEXT(arg_0, arg_1);
  LEAVE_GL();
}

void WINAPI wine_glSampleMaskSGIS(GLclampf arg_0,  GLboolean arg_1) {
  ENTER_GL();
  func_glSampleMaskSGIS(arg_0, arg_1);
  LEAVE_GL();
}

void WINAPI wine_glSamplePassARB(GLenum arg_0) {
  ENTER_GL();
  func_glSamplePassARB(arg_0);
  LEAVE_GL();
}

void WINAPI wine_glSamplePatternEXT(GLenum arg_0) {
  ENTER_GL();
  func_glSamplePatternEXT(arg_0);
  LEAVE_GL();
}

void WINAPI wine_glSamplePatternSGIS(GLenum arg_0) {
  ENTER_GL();
  func_glSamplePatternSGIS(arg_0);
  LEAVE_GL();
}

void WINAPI wine_glSecondaryColor3bEXT(GLbyte arg_0,  GLbyte arg_1,  GLbyte arg_2) {
  ENTER_GL();
  func_glSecondaryColor3bEXT(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glSecondaryColor3bvEXT(const GLbyte * arg_0) {
  ENTER_GL();
  func_glSecondaryColor3bvEXT(arg_0);
  LEAVE_GL();
}

void WINAPI wine_glSecondaryColor3dEXT(GLdouble arg_0,  GLdouble arg_1,  GLdouble arg_2) {
  ENTER_GL();
  func_glSecondaryColor3dEXT(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glSecondaryColor3dvEXT(const GLdouble * arg_0) {
  ENTER_GL();
  func_glSecondaryColor3dvEXT(arg_0);
  LEAVE_GL();
}

void WINAPI wine_glSecondaryColor3fEXT(GLfloat arg_0,  GLfloat arg_1,  GLfloat arg_2) {
  ENTER_GL();
  func_glSecondaryColor3fEXT(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glSecondaryColor3fvEXT(const GLfloat * arg_0) {
  ENTER_GL();
  func_glSecondaryColor3fvEXT(arg_0);
  LEAVE_GL();
}

void WINAPI wine_glSecondaryColor3iEXT(GLint arg_0,  GLint arg_1,  GLint arg_2) {
  ENTER_GL();
  func_glSecondaryColor3iEXT(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glSecondaryColor3ivEXT(const GLint * arg_0) {
  ENTER_GL();
  func_glSecondaryColor3ivEXT(arg_0);
  LEAVE_GL();
}

void WINAPI wine_glSecondaryColor3sEXT(GLshort arg_0,  GLshort arg_1,  GLshort arg_2) {
  ENTER_GL();
  func_glSecondaryColor3sEXT(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glSecondaryColor3svEXT(const GLshort * arg_0) {
  ENTER_GL();
  func_glSecondaryColor3svEXT(arg_0);
  LEAVE_GL();
}

void WINAPI wine_glSecondaryColor3ubEXT(GLubyte arg_0,  GLubyte arg_1,  GLubyte arg_2) {
  ENTER_GL();
  func_glSecondaryColor3ubEXT(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glSecondaryColor3ubvEXT(const GLubyte * arg_0) {
  ENTER_GL();
  func_glSecondaryColor3ubvEXT(arg_0);
  LEAVE_GL();
}

void WINAPI wine_glSecondaryColor3uiEXT(GLuint arg_0,  GLuint arg_1,  GLuint arg_2) {
  ENTER_GL();
  func_glSecondaryColor3uiEXT(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glSecondaryColor3uivEXT(const GLuint * arg_0) {
  ENTER_GL();
  func_glSecondaryColor3uivEXT(arg_0);
  LEAVE_GL();
}

void WINAPI wine_glSecondaryColor3usEXT(GLushort arg_0,  GLushort arg_1,  GLushort arg_2) {
  ENTER_GL();
  func_glSecondaryColor3usEXT(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glSecondaryColor3usvEXT(const GLushort * arg_0) {
  ENTER_GL();
  func_glSecondaryColor3usvEXT(arg_0);
  LEAVE_GL();
}

void WINAPI wine_glSecondaryColorPointerEXT(GLint arg_0,  GLenum arg_1,  GLsizei arg_2,  GLvoid * arg_3) {
  ENTER_GL();
  func_glSecondaryColorPointerEXT(arg_0, arg_1, arg_2, arg_3);
  LEAVE_GL();
}

void WINAPI wine_glSecondaryColorPointerListIBM(GLint arg_0,  GLenum arg_1,  GLint arg_2,  const GLvoid* * arg_3,  GLint arg_4) {
  ENTER_GL();
  func_glSecondaryColorPointerListIBM(arg_0, arg_1, arg_2, arg_3, arg_4);
  LEAVE_GL();
}

void WINAPI wine_glSeparableFilter2DEXT(GLenum arg_0,  GLenum arg_1,  GLsizei arg_2,  GLsizei arg_3,  GLenum arg_4,  GLenum arg_5,  const GLvoid * arg_6,  const GLvoid * arg_7) {
  ENTER_GL();
  func_glSeparableFilter2DEXT(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5, arg_6, arg_7);
  LEAVE_GL();
}

void WINAPI wine_glSharpenTexFuncSGIS(GLenum arg_0,  GLsizei arg_1,  const GLfloat * arg_2) {
  ENTER_GL();
  func_glSharpenTexFuncSGIS(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glSpriteParameterfSGIX(GLenum arg_0,  GLfloat arg_1) {
  ENTER_GL();
  func_glSpriteParameterfSGIX(arg_0, arg_1);
  LEAVE_GL();
}

void WINAPI wine_glSpriteParameterfvSGIX(GLenum arg_0,  const GLfloat * arg_1) {
  ENTER_GL();
  func_glSpriteParameterfvSGIX(arg_0, arg_1);
  LEAVE_GL();
}

void WINAPI wine_glSpriteParameteriSGIX(GLenum arg_0,  GLint arg_1) {
  ENTER_GL();
  func_glSpriteParameteriSGIX(arg_0, arg_1);
  LEAVE_GL();
}

void WINAPI wine_glSpriteParameterivSGIX(GLenum arg_0,  const GLint * arg_1) {
  ENTER_GL();
  func_glSpriteParameterivSGIX(arg_0, arg_1);
  LEAVE_GL();
}

void WINAPI wine_glStartInstrumentsSGIX() {
  ENTER_GL();
  func_glStartInstrumentsSGIX();
  LEAVE_GL();
}

void WINAPI wine_glStopInstrumentsSGIX(GLint arg_0) {
  ENTER_GL();
  func_glStopInstrumentsSGIX(arg_0);
  LEAVE_GL();
}

void WINAPI wine_glTagSampleBufferSGIX() {
  ENTER_GL();
  func_glTagSampleBufferSGIX();
  LEAVE_GL();
}

void WINAPI wine_glTangent3b(GLbyte arg_0,  GLbyte arg_1,  GLbyte arg_2) {
  ENTER_GL();
  func_glTangent3b(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glTangent3bv(const GLbyte * arg_0) {
  ENTER_GL();
  func_glTangent3bv(arg_0);
  LEAVE_GL();
}

void WINAPI wine_glTangent3d(GLdouble arg_0,  GLdouble arg_1,  GLdouble arg_2) {
  ENTER_GL();
  func_glTangent3d(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glTangent3dv(const GLdouble * arg_0) {
  ENTER_GL();
  func_glTangent3dv(arg_0);
  LEAVE_GL();
}

void WINAPI wine_glTangent3f(GLfloat arg_0,  GLfloat arg_1,  GLfloat arg_2) {
  ENTER_GL();
  func_glTangent3f(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glTangent3fv(const GLfloat * arg_0) {
  ENTER_GL();
  func_glTangent3fv(arg_0);
  LEAVE_GL();
}

void WINAPI wine_glTangent3i(GLint arg_0,  GLint arg_1,  GLint arg_2) {
  ENTER_GL();
  func_glTangent3i(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glTangent3iv(const GLint * arg_0) {
  ENTER_GL();
  func_glTangent3iv(arg_0);
  LEAVE_GL();
}

void WINAPI wine_glTangent3s(GLshort arg_0,  GLshort arg_1,  GLshort arg_2) {
  ENTER_GL();
  func_glTangent3s(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glTangent3sv(const GLshort * arg_0) {
  ENTER_GL();
  func_glTangent3sv(arg_0);
  LEAVE_GL();
}

void WINAPI wine_glTangentPointerEXT(GLenum arg_0,  GLsizei arg_1,  const GLvoid * arg_2) {
  ENTER_GL();
  func_glTangentPointerEXT(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glTbufferMask3DFX(GLuint arg_0) {
  ENTER_GL();
  func_glTbufferMask3DFX(arg_0);
  LEAVE_GL();
}

void WINAPI wine_glTexCoord2fColor3fVertex3fSUN(GLfloat arg_0,  GLfloat arg_1,  GLfloat arg_2,  GLfloat arg_3,  GLfloat arg_4,  GLfloat arg_5,  GLfloat arg_6,  GLfloat arg_7) {
  ENTER_GL();
  func_glTexCoord2fColor3fVertex3fSUN(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5, arg_6, arg_7);
  LEAVE_GL();
}

void WINAPI wine_glTexCoord2fColor3fVertex3fvSUN(const GLfloat * arg_0,  const GLfloat * arg_1,  const GLfloat * arg_2) {
  ENTER_GL();
  func_glTexCoord2fColor3fVertex3fvSUN(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glTexCoord2fColor4fNormal3fVertex3fSUN(GLfloat arg_0,  GLfloat arg_1,  GLfloat arg_2,  GLfloat arg_3,  GLfloat arg_4,  GLfloat arg_5,  GLfloat arg_6,  GLfloat arg_7,  GLfloat arg_8,  GLfloat arg_9,  GLfloat arg_10,  GLfloat arg_11) {
  ENTER_GL();
  func_glTexCoord2fColor4fNormal3fVertex3fSUN(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5, arg_6, arg_7, arg_8, arg_9, arg_10, arg_11);
  LEAVE_GL();
}

void WINAPI wine_glTexCoord2fColor4fNormal3fVertex3fvSUN(const GLfloat * arg_0,  const GLfloat * arg_1,  const GLfloat * arg_2,  const GLfloat * arg_3) {
  ENTER_GL();
  func_glTexCoord2fColor4fNormal3fVertex3fvSUN(arg_0, arg_1, arg_2, arg_3);
  LEAVE_GL();
}

void WINAPI wine_glTexCoord2fColor4ubVertex3fSUN(GLfloat arg_0,  GLfloat arg_1,  GLubyte arg_2,  GLubyte arg_3,  GLubyte arg_4,  GLubyte arg_5,  GLfloat arg_6,  GLfloat arg_7,  GLfloat arg_8) {
  ENTER_GL();
  func_glTexCoord2fColor4ubVertex3fSUN(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5, arg_6, arg_7, arg_8);
  LEAVE_GL();
}

void WINAPI wine_glTexCoord2fColor4ubVertex3fvSUN(const GLfloat * arg_0,  const GLubyte * arg_1,  const GLfloat * arg_2) {
  ENTER_GL();
  func_glTexCoord2fColor4ubVertex3fvSUN(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glTexCoord2fNormal3fVertex3fSUN(GLfloat arg_0,  GLfloat arg_1,  GLfloat arg_2,  GLfloat arg_3,  GLfloat arg_4,  GLfloat arg_5,  GLfloat arg_6,  GLfloat arg_7) {
  ENTER_GL();
  func_glTexCoord2fNormal3fVertex3fSUN(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5, arg_6, arg_7);
  LEAVE_GL();
}

void WINAPI wine_glTexCoord2fNormal3fVertex3fvSUN(const GLfloat * arg_0,  const GLfloat * arg_1,  const GLfloat * arg_2) {
  ENTER_GL();
  func_glTexCoord2fNormal3fVertex3fvSUN(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glTexCoord2fVertex3fSUN(GLfloat arg_0,  GLfloat arg_1,  GLfloat arg_2,  GLfloat arg_3,  GLfloat arg_4) {
  ENTER_GL();
  func_glTexCoord2fVertex3fSUN(arg_0, arg_1, arg_2, arg_3, arg_4);
  LEAVE_GL();
}

void WINAPI wine_glTexCoord2fVertex3fvSUN(const GLfloat * arg_0,  const GLfloat * arg_1) {
  ENTER_GL();
  func_glTexCoord2fVertex3fvSUN(arg_0, arg_1);
  LEAVE_GL();
}

void WINAPI wine_glTexCoord4fColor4fNormal3fVertex4fSUN(GLfloat arg_0,  GLfloat arg_1,  GLfloat arg_2,  GLfloat arg_3,  GLfloat arg_4,  GLfloat arg_5,  GLfloat arg_6,  GLfloat arg_7,  GLfloat arg_8,  GLfloat arg_9,  GLfloat arg_10,  GLfloat arg_11,  GLfloat arg_12,  GLfloat arg_13,  GLfloat arg_14) {
  ENTER_GL();
  func_glTexCoord4fColor4fNormal3fVertex4fSUN(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5, arg_6, arg_7, arg_8, arg_9, arg_10, arg_11, arg_12, arg_13, arg_14);
  LEAVE_GL();
}

void WINAPI wine_glTexCoord4fColor4fNormal3fVertex4fvSUN(const GLfloat * arg_0,  const GLfloat * arg_1,  const GLfloat * arg_2,  const GLfloat * arg_3) {
  ENTER_GL();
  func_glTexCoord4fColor4fNormal3fVertex4fvSUN(arg_0, arg_1, arg_2, arg_3);
  LEAVE_GL();
}

void WINAPI wine_glTexCoord4fVertex4fSUN(GLfloat arg_0,  GLfloat arg_1,  GLfloat arg_2,  GLfloat arg_3,  GLfloat arg_4,  GLfloat arg_5,  GLfloat arg_6,  GLfloat arg_7) {
  ENTER_GL();
  func_glTexCoord4fVertex4fSUN(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5, arg_6, arg_7);
  LEAVE_GL();
}

void WINAPI wine_glTexCoord4fVertex4fvSUN(const GLfloat * arg_0,  const GLfloat * arg_1) {
  ENTER_GL();
  func_glTexCoord4fVertex4fvSUN(arg_0, arg_1);
  LEAVE_GL();
}

void WINAPI wine_glTexCoordPointerEXT(GLint arg_0,  GLenum arg_1,  GLsizei arg_2,  GLsizei arg_3,  const GLvoid * arg_4) {
  ENTER_GL();
  func_glTexCoordPointerEXT(arg_0, arg_1, arg_2, arg_3, arg_4);
  LEAVE_GL();
}

void WINAPI wine_glTexCoordPointerListIBM(GLint arg_0,  GLenum arg_1,  GLint arg_2,  const GLvoid* * arg_3,  GLint arg_4) {
  ENTER_GL();
  func_glTexCoordPointerListIBM(arg_0, arg_1, arg_2, arg_3, arg_4);
  LEAVE_GL();
}

void WINAPI wine_glTexCoordPointervINTEL(GLint arg_0,  GLenum arg_1,  const GLvoid* * arg_2) {
  ENTER_GL();
  func_glTexCoordPointervINTEL(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glTexFilterFuncSGIS(GLenum arg_0,  GLenum arg_1,  GLsizei arg_2,  const GLfloat * arg_3) {
  ENTER_GL();
  func_glTexFilterFuncSGIS(arg_0, arg_1, arg_2, arg_3);
  LEAVE_GL();
}

void WINAPI wine_glTexImage3DEXT(GLenum arg_0,  GLint arg_1,  GLenum arg_2,  GLsizei arg_3,  GLsizei arg_4,  GLsizei arg_5,  GLint arg_6,  GLenum arg_7,  GLenum arg_8,  const GLvoid * arg_9) {
  ENTER_GL();
  func_glTexImage3DEXT(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5, arg_6, arg_7, arg_8, arg_9);
  LEAVE_GL();
}

void WINAPI wine_glTexImage4DSGIS(GLenum arg_0,  GLint arg_1,  GLenum arg_2,  GLsizei arg_3,  GLsizei arg_4,  GLsizei arg_5,  GLsizei arg_6,  GLint arg_7,  GLenum arg_8,  GLenum arg_9,  const GLvoid * arg_10) {
  ENTER_GL();
  func_glTexImage4DSGIS(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5, arg_6, arg_7, arg_8, arg_9, arg_10);
  LEAVE_GL();
}

void WINAPI wine_glTexSubImage1DEXT(GLenum arg_0,  GLint arg_1,  GLint arg_2,  GLsizei arg_3,  GLenum arg_4,  GLenum arg_5,  const GLvoid * arg_6) {
  ENTER_GL();
  func_glTexSubImage1DEXT(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5, arg_6);
  LEAVE_GL();
}

void WINAPI wine_glTexSubImage2DEXT(GLenum arg_0,  GLint arg_1,  GLint arg_2,  GLint arg_3,  GLsizei arg_4,  GLsizei arg_5,  GLenum arg_6,  GLenum arg_7,  const GLvoid * arg_8) {
  ENTER_GL();
  func_glTexSubImage2DEXT(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5, arg_6, arg_7, arg_8);
  LEAVE_GL();
}

void WINAPI wine_glTexSubImage3DEXT(GLenum arg_0,  GLint arg_1,  GLint arg_2,  GLint arg_3,  GLint arg_4,  GLsizei arg_5,  GLsizei arg_6,  GLsizei arg_7,  GLenum arg_8,  GLenum arg_9,  const GLvoid * arg_10) {
  ENTER_GL();
  func_glTexSubImage3DEXT(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5, arg_6, arg_7, arg_8, arg_9, arg_10);
  LEAVE_GL();
}

void WINAPI wine_glTexSubImage4DSGIS(GLenum arg_0,  GLint arg_1,  GLint arg_2,  GLint arg_3,  GLint arg_4,  GLint arg_5,  GLsizei arg_6,  GLsizei arg_7,  GLsizei arg_8,  GLsizei arg_9,  GLenum arg_10,  GLenum arg_11,  const GLvoid * arg_12) {
  ENTER_GL();
  func_glTexSubImage4DSGIS(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5, arg_6, arg_7, arg_8, arg_9, arg_10, arg_11, arg_12);
  LEAVE_GL();
}

void WINAPI wine_glTextureLightEXT(GLenum arg_0) {
  ENTER_GL();
  func_glTextureLightEXT(arg_0);
  LEAVE_GL();
}

void WINAPI wine_glTextureMaterialEXT(GLenum arg_0,  GLenum arg_1) {
  ENTER_GL();
  func_glTextureMaterialEXT(arg_0, arg_1);
  LEAVE_GL();
}

void WINAPI wine_glTextureNormalEXT(GLenum arg_0) {
  ENTER_GL();
  func_glTextureNormalEXT(arg_0);
  LEAVE_GL();
}

void WINAPI wine_glUnlockArraysEXT() {
  ENTER_GL();
  func_glUnlockArraysEXT();
  LEAVE_GL();
}

void WINAPI wine_glVertexArrayRangeNV(GLsizei arg_0,  const GLvoid * arg_1) {
  ENTER_GL();
  func_glVertexArrayRangeNV(arg_0, arg_1);
  LEAVE_GL();
}

void WINAPI wine_glVertexPointerEXT(GLint arg_0,  GLenum arg_1,  GLsizei arg_2,  GLsizei arg_3,  const GLvoid * arg_4) {
  ENTER_GL();
  func_glVertexPointerEXT(arg_0, arg_1, arg_2, arg_3, arg_4);
  LEAVE_GL();
}

void WINAPI wine_glVertexPointerListIBM(GLint arg_0,  GLenum arg_1,  GLint arg_2,  const GLvoid* * arg_3,  GLint arg_4) {
  ENTER_GL();
  func_glVertexPointerListIBM(arg_0, arg_1, arg_2, arg_3, arg_4);
  LEAVE_GL();
}

void WINAPI wine_glVertexPointervINTEL(GLint arg_0,  GLenum arg_1,  const GLvoid* * arg_2) {
  ENTER_GL();
  func_glVertexPointervINTEL(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glVertexWeightPointerEXT(GLsizei arg_0,  GLenum arg_1,  GLsizei arg_2,  const GLvoid * arg_3) {
  ENTER_GL();
  func_glVertexWeightPointerEXT(arg_0, arg_1, arg_2, arg_3);
  LEAVE_GL();
}

void WINAPI wine_glVertexWeightfEXT(GLfloat arg_0) {
  ENTER_GL();
  func_glVertexWeightfEXT(arg_0);
  LEAVE_GL();
}

void WINAPI wine_glVertexWeightfvEXT(const GLfloat * arg_0) {
  ENTER_GL();
  func_glVertexWeightfvEXT(arg_0);
  LEAVE_GL();
}

void WINAPI wine_glWindowPos2dMESA(GLdouble arg_0,  GLdouble arg_1) {
  ENTER_GL();
  func_glWindowPos2dMESA(arg_0, arg_1);
  LEAVE_GL();
}

void WINAPI wine_glWindowPos2dvMESA(const GLdouble * arg_0) {
  ENTER_GL();
  func_glWindowPos2dvMESA(arg_0);
  LEAVE_GL();
}

void WINAPI wine_glWindowPos2fMESA(GLfloat arg_0,  GLfloat arg_1) {
  ENTER_GL();
  func_glWindowPos2fMESA(arg_0, arg_1);
  LEAVE_GL();
}

void WINAPI wine_glWindowPos2fvMESA(const GLfloat * arg_0) {
  ENTER_GL();
  func_glWindowPos2fvMESA(arg_0);
  LEAVE_GL();
}

void WINAPI wine_glWindowPos2iMESA(GLint arg_0,  GLint arg_1) {
  ENTER_GL();
  func_glWindowPos2iMESA(arg_0, arg_1);
  LEAVE_GL();
}

void WINAPI wine_glWindowPos2ivMESA(const GLint * arg_0) {
  ENTER_GL();
  func_glWindowPos2ivMESA(arg_0);
  LEAVE_GL();
}

void WINAPI wine_glWindowPos2sMESA(GLshort arg_0,  GLshort arg_1) {
  ENTER_GL();
  func_glWindowPos2sMESA(arg_0, arg_1);
  LEAVE_GL();
}

void WINAPI wine_glWindowPos2svMESA(const GLshort * arg_0) {
  ENTER_GL();
  func_glWindowPos2svMESA(arg_0);
  LEAVE_GL();
}

void WINAPI wine_glWindowPos3dMESA(GLdouble arg_0,  GLdouble arg_1,  GLdouble arg_2) {
  ENTER_GL();
  func_glWindowPos3dMESA(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glWindowPos3dvMESA(const GLdouble * arg_0) {
  ENTER_GL();
  func_glWindowPos3dvMESA(arg_0);
  LEAVE_GL();
}

void WINAPI wine_glWindowPos3fMESA(GLfloat arg_0,  GLfloat arg_1,  GLfloat arg_2) {
  ENTER_GL();
  func_glWindowPos3fMESA(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glWindowPos3fvMESA(const GLfloat * arg_0) {
  ENTER_GL();
  func_glWindowPos3fvMESA(arg_0);
  LEAVE_GL();
}

void WINAPI wine_glWindowPos3iMESA(GLint arg_0,  GLint arg_1,  GLint arg_2) {
  ENTER_GL();
  func_glWindowPos3iMESA(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glWindowPos3ivMESA(const GLint * arg_0) {
  ENTER_GL();
  func_glWindowPos3ivMESA(arg_0);
  LEAVE_GL();
}

void WINAPI wine_glWindowPos3sMESA(GLshort arg_0,  GLshort arg_1,  GLshort arg_2) {
  ENTER_GL();
  func_glWindowPos3sMESA(arg_0, arg_1, arg_2);
  LEAVE_GL();
}

void WINAPI wine_glWindowPos3svMESA(const GLshort * arg_0) {
  ENTER_GL();
  func_glWindowPos3svMESA(arg_0);
  LEAVE_GL();
}

void WINAPI wine_glWindowPos4dMESA(GLdouble arg_0,  GLdouble arg_1,  GLdouble arg_2,  GLdouble arg_3) {
  ENTER_GL();
  func_glWindowPos4dMESA(arg_0, arg_1, arg_2, arg_3);
  LEAVE_GL();
}

void WINAPI wine_glWindowPos4dvMESA(const GLdouble * arg_0) {
  ENTER_GL();
  func_glWindowPos4dvMESA(arg_0);
  LEAVE_GL();
}

void WINAPI wine_glWindowPos4fMESA(GLfloat arg_0,  GLfloat arg_1,  GLfloat arg_2,  GLfloat arg_3) {
  ENTER_GL();
  func_glWindowPos4fMESA(arg_0, arg_1, arg_2, arg_3);
  LEAVE_GL();
}

void WINAPI wine_glWindowPos4fvMESA(const GLfloat * arg_0) {
  ENTER_GL();
  func_glWindowPos4fvMESA(arg_0);
  LEAVE_GL();
}

void WINAPI wine_glWindowPos4iMESA(GLint arg_0,  GLint arg_1,  GLint arg_2,  GLint arg_3) {
  ENTER_GL();
  func_glWindowPos4iMESA(arg_0, arg_1, arg_2, arg_3);
  LEAVE_GL();
}

void WINAPI wine_glWindowPos4ivMESA(const GLint * arg_0) {
  ENTER_GL();
  func_glWindowPos4ivMESA(arg_0);
  LEAVE_GL();
}

void WINAPI wine_glWindowPos4sMESA(GLshort arg_0,  GLshort arg_1,  GLshort arg_2,  GLshort arg_3) {
  ENTER_GL();
  func_glWindowPos4sMESA(arg_0, arg_1, arg_2, arg_3);
  LEAVE_GL();
}

void WINAPI wine_glWindowPos4svMESA(const GLshort * arg_0) {
  ENTER_GL();
  func_glWindowPos4svMESA(arg_0);
  LEAVE_GL();
}

