/* Automatically generated from http://www.opengl.org/registry files; DO NOT EDIT! */

#ifndef __WINE_WGL_DRIVER_H
#define __WINE_WGL_DRIVER_H

#ifndef WINE_GLAPI
#define WINE_GLAPI
#endif

#define WINE_WGL_DRIVER_VERSION 15

struct wgl_context;
struct wgl_pbuffer;

struct opengl_funcs
{
    struct
    {
        BOOL       (WINE_GLAPI *p_wglCopyContext)(struct wgl_context *,struct wgl_context *,UINT);
        struct wgl_context * (WINE_GLAPI *p_wglCreateContext)(HDC);
        void       (WINE_GLAPI *p_wglDeleteContext)(struct wgl_context *);
        INT        (WINE_GLAPI *p_wglDescribePixelFormat)(HDC,INT,UINT,PIXELFORMATDESCRIPTOR *);
        INT        (WINE_GLAPI *p_wglGetPixelFormat)(HDC);
        PROC       (WINE_GLAPI *p_wglGetProcAddress)(LPCSTR);
        BOOL       (WINE_GLAPI *p_wglMakeCurrent)(HDC,struct wgl_context *);
        BOOL       (WINE_GLAPI *p_wglSetPixelFormat)(HDC,INT,const PIXELFORMATDESCRIPTOR *);
        BOOL       (WINE_GLAPI *p_wglShareLists)(struct wgl_context *,struct wgl_context *);
        BOOL       (WINE_GLAPI *p_wglSwapBuffers)(HDC);
    } wgl;

    struct
    {
        void       (WINE_GLAPI *p_glAccum)(GLenum,GLfloat);
        void       (WINE_GLAPI *p_glAlphaFunc)(GLenum,GLfloat);
        GLboolean  (WINE_GLAPI *p_glAreTexturesResident)(GLsizei,const GLuint*,GLboolean*);
        void       (WINE_GLAPI *p_glArrayElement)(GLint);
        void       (WINE_GLAPI *p_glBegin)(GLenum);
        void       (WINE_GLAPI *p_glBindTexture)(GLenum,GLuint);
        void       (WINE_GLAPI *p_glBitmap)(GLsizei,GLsizei,GLfloat,GLfloat,GLfloat,GLfloat,const GLubyte*);
        void       (WINE_GLAPI *p_glBlendFunc)(GLenum,GLenum);
        void       (WINE_GLAPI *p_glCallList)(GLuint);
        void       (WINE_GLAPI *p_glCallLists)(GLsizei,GLenum,const void*);
        void       (WINE_GLAPI *p_glClear)(GLbitfield);
        void       (WINE_GLAPI *p_glClearAccum)(GLfloat,GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glClearColor)(GLfloat,GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glClearDepth)(GLdouble);
        void       (WINE_GLAPI *p_glClearIndex)(GLfloat);
        void       (WINE_GLAPI *p_glClearStencil)(GLint);
        void       (WINE_GLAPI *p_glClipPlane)(GLenum,const GLdouble*);
        void       (WINE_GLAPI *p_glColor3b)(GLbyte,GLbyte,GLbyte);
        void       (WINE_GLAPI *p_glColor3bv)(const GLbyte*);
        void       (WINE_GLAPI *p_glColor3d)(GLdouble,GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glColor3dv)(const GLdouble*);
        void       (WINE_GLAPI *p_glColor3f)(GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glColor3fv)(const GLfloat*);
        void       (WINE_GLAPI *p_glColor3i)(GLint,GLint,GLint);
        void       (WINE_GLAPI *p_glColor3iv)(const GLint*);
        void       (WINE_GLAPI *p_glColor3s)(GLshort,GLshort,GLshort);
        void       (WINE_GLAPI *p_glColor3sv)(const GLshort*);
        void       (WINE_GLAPI *p_glColor3ub)(GLubyte,GLubyte,GLubyte);
        void       (WINE_GLAPI *p_glColor3ubv)(const GLubyte*);
        void       (WINE_GLAPI *p_glColor3ui)(GLuint,GLuint,GLuint);
        void       (WINE_GLAPI *p_glColor3uiv)(const GLuint*);
        void       (WINE_GLAPI *p_glColor3us)(GLushort,GLushort,GLushort);
        void       (WINE_GLAPI *p_glColor3usv)(const GLushort*);
        void       (WINE_GLAPI *p_glColor4b)(GLbyte,GLbyte,GLbyte,GLbyte);
        void       (WINE_GLAPI *p_glColor4bv)(const GLbyte*);
        void       (WINE_GLAPI *p_glColor4d)(GLdouble,GLdouble,GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glColor4dv)(const GLdouble*);
        void       (WINE_GLAPI *p_glColor4f)(GLfloat,GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glColor4fv)(const GLfloat*);
        void       (WINE_GLAPI *p_glColor4i)(GLint,GLint,GLint,GLint);
        void       (WINE_GLAPI *p_glColor4iv)(const GLint*);
        void       (WINE_GLAPI *p_glColor4s)(GLshort,GLshort,GLshort,GLshort);
        void       (WINE_GLAPI *p_glColor4sv)(const GLshort*);
        void       (WINE_GLAPI *p_glColor4ub)(GLubyte,GLubyte,GLubyte,GLubyte);
        void       (WINE_GLAPI *p_glColor4ubv)(const GLubyte*);
        void       (WINE_GLAPI *p_glColor4ui)(GLuint,GLuint,GLuint,GLuint);
        void       (WINE_GLAPI *p_glColor4uiv)(const GLuint*);
        void       (WINE_GLAPI *p_glColor4us)(GLushort,GLushort,GLushort,GLushort);
        void       (WINE_GLAPI *p_glColor4usv)(const GLushort*);
        void       (WINE_GLAPI *p_glColorMask)(GLboolean,GLboolean,GLboolean,GLboolean);
        void       (WINE_GLAPI *p_glColorMaterial)(GLenum,GLenum);
        void       (WINE_GLAPI *p_glColorPointer)(GLint,GLenum,GLsizei,const void*);
        void       (WINE_GLAPI *p_glCopyPixels)(GLint,GLint,GLsizei,GLsizei,GLenum);
        void       (WINE_GLAPI *p_glCopyTexImage1D)(GLenum,GLint,GLenum,GLint,GLint,GLsizei,GLint);
        void       (WINE_GLAPI *p_glCopyTexImage2D)(GLenum,GLint,GLenum,GLint,GLint,GLsizei,GLsizei,GLint);
        void       (WINE_GLAPI *p_glCopyTexSubImage1D)(GLenum,GLint,GLint,GLint,GLint,GLsizei);
        void       (WINE_GLAPI *p_glCopyTexSubImage2D)(GLenum,GLint,GLint,GLint,GLint,GLint,GLsizei,GLsizei);
        void       (WINE_GLAPI *p_glCullFace)(GLenum);
        void       (WINE_GLAPI *p_glDeleteLists)(GLuint,GLsizei);
        void       (WINE_GLAPI *p_glDeleteTextures)(GLsizei,const GLuint*);
        void       (WINE_GLAPI *p_glDepthFunc)(GLenum);
        void       (WINE_GLAPI *p_glDepthMask)(GLboolean);
        void       (WINE_GLAPI *p_glDepthRange)(GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glDisable)(GLenum);
        void       (WINE_GLAPI *p_glDisableClientState)(GLenum);
        void       (WINE_GLAPI *p_glDrawArrays)(GLenum,GLint,GLsizei);
        void       (WINE_GLAPI *p_glDrawBuffer)(GLenum);
        void       (WINE_GLAPI *p_glDrawElements)(GLenum,GLsizei,GLenum,const void*);
        void       (WINE_GLAPI *p_glDrawPixels)(GLsizei,GLsizei,GLenum,GLenum,const void*);
        void       (WINE_GLAPI *p_glEdgeFlag)(GLboolean);
        void       (WINE_GLAPI *p_glEdgeFlagPointer)(GLsizei,const void*);
        void       (WINE_GLAPI *p_glEdgeFlagv)(const GLboolean*);
        void       (WINE_GLAPI *p_glEnable)(GLenum);
        void       (WINE_GLAPI *p_glEnableClientState)(GLenum);
        void       (WINE_GLAPI *p_glEnd)(void);
        void       (WINE_GLAPI *p_glEndList)(void);
        void       (WINE_GLAPI *p_glEvalCoord1d)(GLdouble);
        void       (WINE_GLAPI *p_glEvalCoord1dv)(const GLdouble*);
        void       (WINE_GLAPI *p_glEvalCoord1f)(GLfloat);
        void       (WINE_GLAPI *p_glEvalCoord1fv)(const GLfloat*);
        void       (WINE_GLAPI *p_glEvalCoord2d)(GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glEvalCoord2dv)(const GLdouble*);
        void       (WINE_GLAPI *p_glEvalCoord2f)(GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glEvalCoord2fv)(const GLfloat*);
        void       (WINE_GLAPI *p_glEvalMesh1)(GLenum,GLint,GLint);
        void       (WINE_GLAPI *p_glEvalMesh2)(GLenum,GLint,GLint,GLint,GLint);
        void       (WINE_GLAPI *p_glEvalPoint1)(GLint);
        void       (WINE_GLAPI *p_glEvalPoint2)(GLint,GLint);
        void       (WINE_GLAPI *p_glFeedbackBuffer)(GLsizei,GLenum,GLfloat*);
        void       (WINE_GLAPI *p_glFinish)(void);
        void       (WINE_GLAPI *p_glFlush)(void);
        void       (WINE_GLAPI *p_glFogf)(GLenum,GLfloat);
        void       (WINE_GLAPI *p_glFogfv)(GLenum,const GLfloat*);
        void       (WINE_GLAPI *p_glFogi)(GLenum,GLint);
        void       (WINE_GLAPI *p_glFogiv)(GLenum,const GLint*);
        void       (WINE_GLAPI *p_glFrontFace)(GLenum);
        void       (WINE_GLAPI *p_glFrustum)(GLdouble,GLdouble,GLdouble,GLdouble,GLdouble,GLdouble);
        GLuint     (WINE_GLAPI *p_glGenLists)(GLsizei);
        void       (WINE_GLAPI *p_glGenTextures)(GLsizei,GLuint*);
        void       (WINE_GLAPI *p_glGetBooleanv)(GLenum,GLboolean*);
        void       (WINE_GLAPI *p_glGetClipPlane)(GLenum,GLdouble*);
        void       (WINE_GLAPI *p_glGetDoublev)(GLenum,GLdouble*);
        GLenum     (WINE_GLAPI *p_glGetError)(void);
        void       (WINE_GLAPI *p_glGetFloatv)(GLenum,GLfloat*);
        void       (WINE_GLAPI *p_glGetIntegerv)(GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetLightfv)(GLenum,GLenum,GLfloat*);
        void       (WINE_GLAPI *p_glGetLightiv)(GLenum,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetMapdv)(GLenum,GLenum,GLdouble*);
        void       (WINE_GLAPI *p_glGetMapfv)(GLenum,GLenum,GLfloat*);
        void       (WINE_GLAPI *p_glGetMapiv)(GLenum,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetMaterialfv)(GLenum,GLenum,GLfloat*);
        void       (WINE_GLAPI *p_glGetMaterialiv)(GLenum,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetPixelMapfv)(GLenum,GLfloat*);
        void       (WINE_GLAPI *p_glGetPixelMapuiv)(GLenum,GLuint*);
        void       (WINE_GLAPI *p_glGetPixelMapusv)(GLenum,GLushort*);
        void       (WINE_GLAPI *p_glGetPointerv)(GLenum,void**);
        void       (WINE_GLAPI *p_glGetPolygonStipple)(GLubyte*);
        const GLubyte* (WINE_GLAPI *p_glGetString)(GLenum);
        void       (WINE_GLAPI *p_glGetTexEnvfv)(GLenum,GLenum,GLfloat*);
        void       (WINE_GLAPI *p_glGetTexEnviv)(GLenum,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetTexGendv)(GLenum,GLenum,GLdouble*);
        void       (WINE_GLAPI *p_glGetTexGenfv)(GLenum,GLenum,GLfloat*);
        void       (WINE_GLAPI *p_glGetTexGeniv)(GLenum,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetTexImage)(GLenum,GLint,GLenum,GLenum,void*);
        void       (WINE_GLAPI *p_glGetTexLevelParameterfv)(GLenum,GLint,GLenum,GLfloat*);
        void       (WINE_GLAPI *p_glGetTexLevelParameteriv)(GLenum,GLint,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetTexParameterfv)(GLenum,GLenum,GLfloat*);
        void       (WINE_GLAPI *p_glGetTexParameteriv)(GLenum,GLenum,GLint*);
        void       (WINE_GLAPI *p_glHint)(GLenum,GLenum);
        void       (WINE_GLAPI *p_glIndexMask)(GLuint);
        void       (WINE_GLAPI *p_glIndexPointer)(GLenum,GLsizei,const void*);
        void       (WINE_GLAPI *p_glIndexd)(GLdouble);
        void       (WINE_GLAPI *p_glIndexdv)(const GLdouble*);
        void       (WINE_GLAPI *p_glIndexf)(GLfloat);
        void       (WINE_GLAPI *p_glIndexfv)(const GLfloat*);
        void       (WINE_GLAPI *p_glIndexi)(GLint);
        void       (WINE_GLAPI *p_glIndexiv)(const GLint*);
        void       (WINE_GLAPI *p_glIndexs)(GLshort);
        void       (WINE_GLAPI *p_glIndexsv)(const GLshort*);
        void       (WINE_GLAPI *p_glIndexub)(GLubyte);
        void       (WINE_GLAPI *p_glIndexubv)(const GLubyte*);
        void       (WINE_GLAPI *p_glInitNames)(void);
        void       (WINE_GLAPI *p_glInterleavedArrays)(GLenum,GLsizei,const void*);
        GLboolean  (WINE_GLAPI *p_glIsEnabled)(GLenum);
        GLboolean  (WINE_GLAPI *p_glIsList)(GLuint);
        GLboolean  (WINE_GLAPI *p_glIsTexture)(GLuint);
        void       (WINE_GLAPI *p_glLightModelf)(GLenum,GLfloat);
        void       (WINE_GLAPI *p_glLightModelfv)(GLenum,const GLfloat*);
        void       (WINE_GLAPI *p_glLightModeli)(GLenum,GLint);
        void       (WINE_GLAPI *p_glLightModeliv)(GLenum,const GLint*);
        void       (WINE_GLAPI *p_glLightf)(GLenum,GLenum,GLfloat);
        void       (WINE_GLAPI *p_glLightfv)(GLenum,GLenum,const GLfloat*);
        void       (WINE_GLAPI *p_glLighti)(GLenum,GLenum,GLint);
        void       (WINE_GLAPI *p_glLightiv)(GLenum,GLenum,const GLint*);
        void       (WINE_GLAPI *p_glLineStipple)(GLint,GLushort);
        void       (WINE_GLAPI *p_glLineWidth)(GLfloat);
        void       (WINE_GLAPI *p_glListBase)(GLuint);
        void       (WINE_GLAPI *p_glLoadIdentity)(void);
        void       (WINE_GLAPI *p_glLoadMatrixd)(const GLdouble*);
        void       (WINE_GLAPI *p_glLoadMatrixf)(const GLfloat*);
        void       (WINE_GLAPI *p_glLoadName)(GLuint);
        void       (WINE_GLAPI *p_glLogicOp)(GLenum);
        void       (WINE_GLAPI *p_glMap1d)(GLenum,GLdouble,GLdouble,GLint,GLint,const GLdouble*);
        void       (WINE_GLAPI *p_glMap1f)(GLenum,GLfloat,GLfloat,GLint,GLint,const GLfloat*);
        void       (WINE_GLAPI *p_glMap2d)(GLenum,GLdouble,GLdouble,GLint,GLint,GLdouble,GLdouble,GLint,GLint,const GLdouble*);
        void       (WINE_GLAPI *p_glMap2f)(GLenum,GLfloat,GLfloat,GLint,GLint,GLfloat,GLfloat,GLint,GLint,const GLfloat*);
        void       (WINE_GLAPI *p_glMapGrid1d)(GLint,GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glMapGrid1f)(GLint,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glMapGrid2d)(GLint,GLdouble,GLdouble,GLint,GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glMapGrid2f)(GLint,GLfloat,GLfloat,GLint,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glMaterialf)(GLenum,GLenum,GLfloat);
        void       (WINE_GLAPI *p_glMaterialfv)(GLenum,GLenum,const GLfloat*);
        void       (WINE_GLAPI *p_glMateriali)(GLenum,GLenum,GLint);
        void       (WINE_GLAPI *p_glMaterialiv)(GLenum,GLenum,const GLint*);
        void       (WINE_GLAPI *p_glMatrixMode)(GLenum);
        void       (WINE_GLAPI *p_glMultMatrixd)(const GLdouble*);
        void       (WINE_GLAPI *p_glMultMatrixf)(const GLfloat*);
        void       (WINE_GLAPI *p_glNewList)(GLuint,GLenum);
        void       (WINE_GLAPI *p_glNormal3b)(GLbyte,GLbyte,GLbyte);
        void       (WINE_GLAPI *p_glNormal3bv)(const GLbyte*);
        void       (WINE_GLAPI *p_glNormal3d)(GLdouble,GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glNormal3dv)(const GLdouble*);
        void       (WINE_GLAPI *p_glNormal3f)(GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glNormal3fv)(const GLfloat*);
        void       (WINE_GLAPI *p_glNormal3i)(GLint,GLint,GLint);
        void       (WINE_GLAPI *p_glNormal3iv)(const GLint*);
        void       (WINE_GLAPI *p_glNormal3s)(GLshort,GLshort,GLshort);
        void       (WINE_GLAPI *p_glNormal3sv)(const GLshort*);
        void       (WINE_GLAPI *p_glNormalPointer)(GLenum,GLsizei,const void*);
        void       (WINE_GLAPI *p_glOrtho)(GLdouble,GLdouble,GLdouble,GLdouble,GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glPassThrough)(GLfloat);
        void       (WINE_GLAPI *p_glPixelMapfv)(GLenum,GLsizei,const GLfloat*);
        void       (WINE_GLAPI *p_glPixelMapuiv)(GLenum,GLsizei,const GLuint*);
        void       (WINE_GLAPI *p_glPixelMapusv)(GLenum,GLsizei,const GLushort*);
        void       (WINE_GLAPI *p_glPixelStoref)(GLenum,GLfloat);
        void       (WINE_GLAPI *p_glPixelStorei)(GLenum,GLint);
        void       (WINE_GLAPI *p_glPixelTransferf)(GLenum,GLfloat);
        void       (WINE_GLAPI *p_glPixelTransferi)(GLenum,GLint);
        void       (WINE_GLAPI *p_glPixelZoom)(GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glPointSize)(GLfloat);
        void       (WINE_GLAPI *p_glPolygonMode)(GLenum,GLenum);
        void       (WINE_GLAPI *p_glPolygonOffset)(GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glPolygonStipple)(const GLubyte*);
        void       (WINE_GLAPI *p_glPopAttrib)(void);
        void       (WINE_GLAPI *p_glPopClientAttrib)(void);
        void       (WINE_GLAPI *p_glPopMatrix)(void);
        void       (WINE_GLAPI *p_glPopName)(void);
        void       (WINE_GLAPI *p_glPrioritizeTextures)(GLsizei,const GLuint*,const GLfloat*);
        void       (WINE_GLAPI *p_glPushAttrib)(GLbitfield);
        void       (WINE_GLAPI *p_glPushClientAttrib)(GLbitfield);
        void       (WINE_GLAPI *p_glPushMatrix)(void);
        void       (WINE_GLAPI *p_glPushName)(GLuint);
        void       (WINE_GLAPI *p_glRasterPos2d)(GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glRasterPos2dv)(const GLdouble*);
        void       (WINE_GLAPI *p_glRasterPos2f)(GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glRasterPos2fv)(const GLfloat*);
        void       (WINE_GLAPI *p_glRasterPos2i)(GLint,GLint);
        void       (WINE_GLAPI *p_glRasterPos2iv)(const GLint*);
        void       (WINE_GLAPI *p_glRasterPos2s)(GLshort,GLshort);
        void       (WINE_GLAPI *p_glRasterPos2sv)(const GLshort*);
        void       (WINE_GLAPI *p_glRasterPos3d)(GLdouble,GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glRasterPos3dv)(const GLdouble*);
        void       (WINE_GLAPI *p_glRasterPos3f)(GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glRasterPos3fv)(const GLfloat*);
        void       (WINE_GLAPI *p_glRasterPos3i)(GLint,GLint,GLint);
        void       (WINE_GLAPI *p_glRasterPos3iv)(const GLint*);
        void       (WINE_GLAPI *p_glRasterPos3s)(GLshort,GLshort,GLshort);
        void       (WINE_GLAPI *p_glRasterPos3sv)(const GLshort*);
        void       (WINE_GLAPI *p_glRasterPos4d)(GLdouble,GLdouble,GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glRasterPos4dv)(const GLdouble*);
        void       (WINE_GLAPI *p_glRasterPos4f)(GLfloat,GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glRasterPos4fv)(const GLfloat*);
        void       (WINE_GLAPI *p_glRasterPos4i)(GLint,GLint,GLint,GLint);
        void       (WINE_GLAPI *p_glRasterPos4iv)(const GLint*);
        void       (WINE_GLAPI *p_glRasterPos4s)(GLshort,GLshort,GLshort,GLshort);
        void       (WINE_GLAPI *p_glRasterPos4sv)(const GLshort*);
        void       (WINE_GLAPI *p_glReadBuffer)(GLenum);
        void       (WINE_GLAPI *p_glReadPixels)(GLint,GLint,GLsizei,GLsizei,GLenum,GLenum,void*);
        void       (WINE_GLAPI *p_glRectd)(GLdouble,GLdouble,GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glRectdv)(const GLdouble*,const GLdouble*);
        void       (WINE_GLAPI *p_glRectf)(GLfloat,GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glRectfv)(const GLfloat*,const GLfloat*);
        void       (WINE_GLAPI *p_glRecti)(GLint,GLint,GLint,GLint);
        void       (WINE_GLAPI *p_glRectiv)(const GLint*,const GLint*);
        void       (WINE_GLAPI *p_glRects)(GLshort,GLshort,GLshort,GLshort);
        void       (WINE_GLAPI *p_glRectsv)(const GLshort*,const GLshort*);
        GLint      (WINE_GLAPI *p_glRenderMode)(GLenum);
        void       (WINE_GLAPI *p_glRotated)(GLdouble,GLdouble,GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glRotatef)(GLfloat,GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glScaled)(GLdouble,GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glScalef)(GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glScissor)(GLint,GLint,GLsizei,GLsizei);
        void       (WINE_GLAPI *p_glSelectBuffer)(GLsizei,GLuint*);
        void       (WINE_GLAPI *p_glShadeModel)(GLenum);
        void       (WINE_GLAPI *p_glStencilFunc)(GLenum,GLint,GLuint);
        void       (WINE_GLAPI *p_glStencilMask)(GLuint);
        void       (WINE_GLAPI *p_glStencilOp)(GLenum,GLenum,GLenum);
        void       (WINE_GLAPI *p_glTexCoord1d)(GLdouble);
        void       (WINE_GLAPI *p_glTexCoord1dv)(const GLdouble*);
        void       (WINE_GLAPI *p_glTexCoord1f)(GLfloat);
        void       (WINE_GLAPI *p_glTexCoord1fv)(const GLfloat*);
        void       (WINE_GLAPI *p_glTexCoord1i)(GLint);
        void       (WINE_GLAPI *p_glTexCoord1iv)(const GLint*);
        void       (WINE_GLAPI *p_glTexCoord1s)(GLshort);
        void       (WINE_GLAPI *p_glTexCoord1sv)(const GLshort*);
        void       (WINE_GLAPI *p_glTexCoord2d)(GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glTexCoord2dv)(const GLdouble*);
        void       (WINE_GLAPI *p_glTexCoord2f)(GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glTexCoord2fv)(const GLfloat*);
        void       (WINE_GLAPI *p_glTexCoord2i)(GLint,GLint);
        void       (WINE_GLAPI *p_glTexCoord2iv)(const GLint*);
        void       (WINE_GLAPI *p_glTexCoord2s)(GLshort,GLshort);
        void       (WINE_GLAPI *p_glTexCoord2sv)(const GLshort*);
        void       (WINE_GLAPI *p_glTexCoord3d)(GLdouble,GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glTexCoord3dv)(const GLdouble*);
        void       (WINE_GLAPI *p_glTexCoord3f)(GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glTexCoord3fv)(const GLfloat*);
        void       (WINE_GLAPI *p_glTexCoord3i)(GLint,GLint,GLint);
        void       (WINE_GLAPI *p_glTexCoord3iv)(const GLint*);
        void       (WINE_GLAPI *p_glTexCoord3s)(GLshort,GLshort,GLshort);
        void       (WINE_GLAPI *p_glTexCoord3sv)(const GLshort*);
        void       (WINE_GLAPI *p_glTexCoord4d)(GLdouble,GLdouble,GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glTexCoord4dv)(const GLdouble*);
        void       (WINE_GLAPI *p_glTexCoord4f)(GLfloat,GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glTexCoord4fv)(const GLfloat*);
        void       (WINE_GLAPI *p_glTexCoord4i)(GLint,GLint,GLint,GLint);
        void       (WINE_GLAPI *p_glTexCoord4iv)(const GLint*);
        void       (WINE_GLAPI *p_glTexCoord4s)(GLshort,GLshort,GLshort,GLshort);
        void       (WINE_GLAPI *p_glTexCoord4sv)(const GLshort*);
        void       (WINE_GLAPI *p_glTexCoordPointer)(GLint,GLenum,GLsizei,const void*);
        void       (WINE_GLAPI *p_glTexEnvf)(GLenum,GLenum,GLfloat);
        void       (WINE_GLAPI *p_glTexEnvfv)(GLenum,GLenum,const GLfloat*);
        void       (WINE_GLAPI *p_glTexEnvi)(GLenum,GLenum,GLint);
        void       (WINE_GLAPI *p_glTexEnviv)(GLenum,GLenum,const GLint*);
        void       (WINE_GLAPI *p_glTexGend)(GLenum,GLenum,GLdouble);
        void       (WINE_GLAPI *p_glTexGendv)(GLenum,GLenum,const GLdouble*);
        void       (WINE_GLAPI *p_glTexGenf)(GLenum,GLenum,GLfloat);
        void       (WINE_GLAPI *p_glTexGenfv)(GLenum,GLenum,const GLfloat*);
        void       (WINE_GLAPI *p_glTexGeni)(GLenum,GLenum,GLint);
        void       (WINE_GLAPI *p_glTexGeniv)(GLenum,GLenum,const GLint*);
        void       (WINE_GLAPI *p_glTexImage1D)(GLenum,GLint,GLint,GLsizei,GLint,GLenum,GLenum,const void*);
        void       (WINE_GLAPI *p_glTexImage2D)(GLenum,GLint,GLint,GLsizei,GLsizei,GLint,GLenum,GLenum,const void*);
        void       (WINE_GLAPI *p_glTexParameterf)(GLenum,GLenum,GLfloat);
        void       (WINE_GLAPI *p_glTexParameterfv)(GLenum,GLenum,const GLfloat*);
        void       (WINE_GLAPI *p_glTexParameteri)(GLenum,GLenum,GLint);
        void       (WINE_GLAPI *p_glTexParameteriv)(GLenum,GLenum,const GLint*);
        void       (WINE_GLAPI *p_glTexSubImage1D)(GLenum,GLint,GLint,GLsizei,GLenum,GLenum,const void*);
        void       (WINE_GLAPI *p_glTexSubImage2D)(GLenum,GLint,GLint,GLint,GLsizei,GLsizei,GLenum,GLenum,const void*);
        void       (WINE_GLAPI *p_glTranslated)(GLdouble,GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glTranslatef)(GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glVertex2d)(GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glVertex2dv)(const GLdouble*);
        void       (WINE_GLAPI *p_glVertex2f)(GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glVertex2fv)(const GLfloat*);
        void       (WINE_GLAPI *p_glVertex2i)(GLint,GLint);
        void       (WINE_GLAPI *p_glVertex2iv)(const GLint*);
        void       (WINE_GLAPI *p_glVertex2s)(GLshort,GLshort);
        void       (WINE_GLAPI *p_glVertex2sv)(const GLshort*);
        void       (WINE_GLAPI *p_glVertex3d)(GLdouble,GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glVertex3dv)(const GLdouble*);
        void       (WINE_GLAPI *p_glVertex3f)(GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glVertex3fv)(const GLfloat*);
        void       (WINE_GLAPI *p_glVertex3i)(GLint,GLint,GLint);
        void       (WINE_GLAPI *p_glVertex3iv)(const GLint*);
        void       (WINE_GLAPI *p_glVertex3s)(GLshort,GLshort,GLshort);
        void       (WINE_GLAPI *p_glVertex3sv)(const GLshort*);
        void       (WINE_GLAPI *p_glVertex4d)(GLdouble,GLdouble,GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glVertex4dv)(const GLdouble*);
        void       (WINE_GLAPI *p_glVertex4f)(GLfloat,GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glVertex4fv)(const GLfloat*);
        void       (WINE_GLAPI *p_glVertex4i)(GLint,GLint,GLint,GLint);
        void       (WINE_GLAPI *p_glVertex4iv)(const GLint*);
        void       (WINE_GLAPI *p_glVertex4s)(GLshort,GLshort,GLshort,GLshort);
        void       (WINE_GLAPI *p_glVertex4sv)(const GLshort*);
        void       (WINE_GLAPI *p_glVertexPointer)(GLint,GLenum,GLsizei,const void*);
        void       (WINE_GLAPI *p_glViewport)(GLint,GLint,GLsizei,GLsizei);
    } gl;

    struct
    {
        void       (WINE_GLAPI *p_glAccumxOES)(GLenum,GLfixed);
        void       (WINE_GLAPI *p_glActiveProgramEXT)(GLuint);
        void       (WINE_GLAPI *p_glActiveShaderProgram)(GLuint,GLuint);
        void       (WINE_GLAPI *p_glActiveStencilFaceEXT)(GLenum);
        void       (WINE_GLAPI *p_glActiveTexture)(GLenum);
        void       (WINE_GLAPI *p_glActiveTextureARB)(GLenum);
        void       (WINE_GLAPI *p_glActiveVaryingNV)(GLuint,const GLchar*);
        void       (WINE_GLAPI *p_glAlphaFragmentOp1ATI)(GLenum,GLuint,GLuint,GLuint,GLuint,GLuint);
        void       (WINE_GLAPI *p_glAlphaFragmentOp2ATI)(GLenum,GLuint,GLuint,GLuint,GLuint,GLuint,GLuint,GLuint,GLuint);
        void       (WINE_GLAPI *p_glAlphaFragmentOp3ATI)(GLenum,GLuint,GLuint,GLuint,GLuint,GLuint,GLuint,GLuint,GLuint,GLuint,GLuint,GLuint);
        void       (WINE_GLAPI *p_glAlphaFuncxOES)(GLenum,GLfixed);
        void       (WINE_GLAPI *p_glApplyFramebufferAttachmentCMAAINTEL)(void);
        void       (WINE_GLAPI *p_glApplyTextureEXT)(GLenum);
        GLboolean  (WINE_GLAPI *p_glAreProgramsResidentNV)(GLsizei,const GLuint*,GLboolean*);
        GLboolean  (WINE_GLAPI *p_glAreTexturesResidentEXT)(GLsizei,const GLuint*,GLboolean*);
        void       (WINE_GLAPI *p_glArrayElementEXT)(GLint);
        void       (WINE_GLAPI *p_glArrayObjectATI)(GLenum,GLint,GLenum,GLsizei,GLuint,GLuint);
        void       (WINE_GLAPI *p_glAsyncMarkerSGIX)(GLuint);
        void       (WINE_GLAPI *p_glAttachObjectARB)(GLhandleARB,GLhandleARB);
        void       (WINE_GLAPI *p_glAttachShader)(GLuint,GLuint);
        void       (WINE_GLAPI *p_glBeginConditionalRender)(GLuint,GLenum);
        void       (WINE_GLAPI *p_glBeginConditionalRenderNV)(GLuint,GLenum);
        void       (WINE_GLAPI *p_glBeginConditionalRenderNVX)(GLuint);
        void       (WINE_GLAPI *p_glBeginFragmentShaderATI)(void);
        void       (WINE_GLAPI *p_glBeginOcclusionQueryNV)(GLuint);
        void       (WINE_GLAPI *p_glBeginPerfMonitorAMD)(GLuint);
        void       (WINE_GLAPI *p_glBeginPerfQueryINTEL)(GLuint);
        void       (WINE_GLAPI *p_glBeginQuery)(GLenum,GLuint);
        void       (WINE_GLAPI *p_glBeginQueryARB)(GLenum,GLuint);
        void       (WINE_GLAPI *p_glBeginQueryIndexed)(GLenum,GLuint,GLuint);
        void       (WINE_GLAPI *p_glBeginTransformFeedback)(GLenum);
        void       (WINE_GLAPI *p_glBeginTransformFeedbackEXT)(GLenum);
        void       (WINE_GLAPI *p_glBeginTransformFeedbackNV)(GLenum);
        void       (WINE_GLAPI *p_glBeginVertexShaderEXT)(void);
        void       (WINE_GLAPI *p_glBeginVideoCaptureNV)(GLuint);
        void       (WINE_GLAPI *p_glBindAttribLocation)(GLuint,GLuint,const GLchar*);
        void       (WINE_GLAPI *p_glBindAttribLocationARB)(GLhandleARB,GLuint,const GLcharARB*);
        void       (WINE_GLAPI *p_glBindBuffer)(GLenum,GLuint);
        void       (WINE_GLAPI *p_glBindBufferARB)(GLenum,GLuint);
        void       (WINE_GLAPI *p_glBindBufferBase)(GLenum,GLuint,GLuint);
        void       (WINE_GLAPI *p_glBindBufferBaseEXT)(GLenum,GLuint,GLuint);
        void       (WINE_GLAPI *p_glBindBufferBaseNV)(GLenum,GLuint,GLuint);
        void       (WINE_GLAPI *p_glBindBufferOffsetEXT)(GLenum,GLuint,GLuint,GLintptr);
        void       (WINE_GLAPI *p_glBindBufferOffsetNV)(GLenum,GLuint,GLuint,GLintptr);
        void       (WINE_GLAPI *p_glBindBufferRange)(GLenum,GLuint,GLuint,GLintptr,GLsizeiptr);
        void       (WINE_GLAPI *p_glBindBufferRangeEXT)(GLenum,GLuint,GLuint,GLintptr,GLsizeiptr);
        void       (WINE_GLAPI *p_glBindBufferRangeNV)(GLenum,GLuint,GLuint,GLintptr,GLsizeiptr);
        void       (WINE_GLAPI *p_glBindBuffersBase)(GLenum,GLuint,GLsizei,const GLuint*);
        void       (WINE_GLAPI *p_glBindBuffersRange)(GLenum,GLuint,GLsizei,const GLuint*,const GLintptr*,const GLsizeiptr*);
        void       (WINE_GLAPI *p_glBindFragDataLocation)(GLuint,GLuint,const GLchar*);
        void       (WINE_GLAPI *p_glBindFragDataLocationEXT)(GLuint,GLuint,const GLchar*);
        void       (WINE_GLAPI *p_glBindFragDataLocationIndexed)(GLuint,GLuint,GLuint,const GLchar*);
        void       (WINE_GLAPI *p_glBindFragmentShaderATI)(GLuint);
        void       (WINE_GLAPI *p_glBindFramebuffer)(GLenum,GLuint);
        void       (WINE_GLAPI *p_glBindFramebufferEXT)(GLenum,GLuint);
        void       (WINE_GLAPI *p_glBindImageTexture)(GLuint,GLuint,GLint,GLboolean,GLint,GLenum,GLenum);
        void       (WINE_GLAPI *p_glBindImageTextureEXT)(GLuint,GLuint,GLint,GLboolean,GLint,GLenum,GLint);
        void       (WINE_GLAPI *p_glBindImageTextures)(GLuint,GLsizei,const GLuint*);
        GLuint     (WINE_GLAPI *p_glBindLightParameterEXT)(GLenum,GLenum);
        GLuint     (WINE_GLAPI *p_glBindMaterialParameterEXT)(GLenum,GLenum);
        void       (WINE_GLAPI *p_glBindMultiTextureEXT)(GLenum,GLenum,GLuint);
        GLuint     (WINE_GLAPI *p_glBindParameterEXT)(GLenum);
        void       (WINE_GLAPI *p_glBindProgramARB)(GLenum,GLuint);
        void       (WINE_GLAPI *p_glBindProgramNV)(GLenum,GLuint);
        void       (WINE_GLAPI *p_glBindProgramPipeline)(GLuint);
        void       (WINE_GLAPI *p_glBindRenderbuffer)(GLenum,GLuint);
        void       (WINE_GLAPI *p_glBindRenderbufferEXT)(GLenum,GLuint);
        void       (WINE_GLAPI *p_glBindSampler)(GLuint,GLuint);
        void       (WINE_GLAPI *p_glBindSamplers)(GLuint,GLsizei,const GLuint*);
        GLuint     (WINE_GLAPI *p_glBindTexGenParameterEXT)(GLenum,GLenum,GLenum);
        void       (WINE_GLAPI *p_glBindTextureEXT)(GLenum,GLuint);
        void       (WINE_GLAPI *p_glBindTextureUnit)(GLuint,GLuint);
        GLuint     (WINE_GLAPI *p_glBindTextureUnitParameterEXT)(GLenum,GLenum);
        void       (WINE_GLAPI *p_glBindTextures)(GLuint,GLsizei,const GLuint*);
        void       (WINE_GLAPI *p_glBindTransformFeedback)(GLenum,GLuint);
        void       (WINE_GLAPI *p_glBindTransformFeedbackNV)(GLenum,GLuint);
        void       (WINE_GLAPI *p_glBindVertexArray)(GLuint);
        void       (WINE_GLAPI *p_glBindVertexArrayAPPLE)(GLuint);
        void       (WINE_GLAPI *p_glBindVertexBuffer)(GLuint,GLuint,GLintptr,GLsizei);
        void       (WINE_GLAPI *p_glBindVertexBuffers)(GLuint,GLsizei,const GLuint*,const GLintptr*,const GLsizei*);
        void       (WINE_GLAPI *p_glBindVertexShaderEXT)(GLuint);
        void       (WINE_GLAPI *p_glBindVideoCaptureStreamBufferNV)(GLuint,GLuint,GLenum,GLintptrARB);
        void       (WINE_GLAPI *p_glBindVideoCaptureStreamTextureNV)(GLuint,GLuint,GLenum,GLenum,GLuint);
        void       (WINE_GLAPI *p_glBinormal3bEXT)(GLbyte,GLbyte,GLbyte);
        void       (WINE_GLAPI *p_glBinormal3bvEXT)(const GLbyte*);
        void       (WINE_GLAPI *p_glBinormal3dEXT)(GLdouble,GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glBinormal3dvEXT)(const GLdouble*);
        void       (WINE_GLAPI *p_glBinormal3fEXT)(GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glBinormal3fvEXT)(const GLfloat*);
        void       (WINE_GLAPI *p_glBinormal3iEXT)(GLint,GLint,GLint);
        void       (WINE_GLAPI *p_glBinormal3ivEXT)(const GLint*);
        void       (WINE_GLAPI *p_glBinormal3sEXT)(GLshort,GLshort,GLshort);
        void       (WINE_GLAPI *p_glBinormal3svEXT)(const GLshort*);
        void       (WINE_GLAPI *p_glBinormalPointerEXT)(GLenum,GLsizei,const void*);
        void       (WINE_GLAPI *p_glBitmapxOES)(GLsizei,GLsizei,GLfixed,GLfixed,GLfixed,GLfixed,const GLubyte*);
        void       (WINE_GLAPI *p_glBlendBarrierKHR)(void);
        void       (WINE_GLAPI *p_glBlendBarrierNV)(void);
        void       (WINE_GLAPI *p_glBlendColor)(GLfloat,GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glBlendColorEXT)(GLfloat,GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glBlendColorxOES)(GLfixed,GLfixed,GLfixed,GLfixed);
        void       (WINE_GLAPI *p_glBlendEquation)(GLenum);
        void       (WINE_GLAPI *p_glBlendEquationEXT)(GLenum);
        void       (WINE_GLAPI *p_glBlendEquationIndexedAMD)(GLuint,GLenum);
        void       (WINE_GLAPI *p_glBlendEquationSeparate)(GLenum,GLenum);
        void       (WINE_GLAPI *p_glBlendEquationSeparateEXT)(GLenum,GLenum);
        void       (WINE_GLAPI *p_glBlendEquationSeparateIndexedAMD)(GLuint,GLenum,GLenum);
        void       (WINE_GLAPI *p_glBlendEquationSeparatei)(GLuint,GLenum,GLenum);
        void       (WINE_GLAPI *p_glBlendEquationSeparateiARB)(GLuint,GLenum,GLenum);
        void       (WINE_GLAPI *p_glBlendEquationi)(GLuint,GLenum);
        void       (WINE_GLAPI *p_glBlendEquationiARB)(GLuint,GLenum);
        void       (WINE_GLAPI *p_glBlendFuncIndexedAMD)(GLuint,GLenum,GLenum);
        void       (WINE_GLAPI *p_glBlendFuncSeparate)(GLenum,GLenum,GLenum,GLenum);
        void       (WINE_GLAPI *p_glBlendFuncSeparateEXT)(GLenum,GLenum,GLenum,GLenum);
        void       (WINE_GLAPI *p_glBlendFuncSeparateINGR)(GLenum,GLenum,GLenum,GLenum);
        void       (WINE_GLAPI *p_glBlendFuncSeparateIndexedAMD)(GLuint,GLenum,GLenum,GLenum,GLenum);
        void       (WINE_GLAPI *p_glBlendFuncSeparatei)(GLuint,GLenum,GLenum,GLenum,GLenum);
        void       (WINE_GLAPI *p_glBlendFuncSeparateiARB)(GLuint,GLenum,GLenum,GLenum,GLenum);
        void       (WINE_GLAPI *p_glBlendFunci)(GLuint,GLenum,GLenum);
        void       (WINE_GLAPI *p_glBlendFunciARB)(GLuint,GLenum,GLenum);
        void       (WINE_GLAPI *p_glBlendParameteriNV)(GLenum,GLint);
        void       (WINE_GLAPI *p_glBlitFramebuffer)(GLint,GLint,GLint,GLint,GLint,GLint,GLint,GLint,GLbitfield,GLenum);
        void       (WINE_GLAPI *p_glBlitFramebufferEXT)(GLint,GLint,GLint,GLint,GLint,GLint,GLint,GLint,GLbitfield,GLenum);
        void       (WINE_GLAPI *p_glBlitNamedFramebuffer)(GLuint,GLuint,GLint,GLint,GLint,GLint,GLint,GLint,GLint,GLint,GLbitfield,GLenum);
        void       (WINE_GLAPI *p_glBufferAddressRangeNV)(GLenum,GLuint,GLuint64EXT,GLsizeiptr);
        void       (WINE_GLAPI *p_glBufferData)(GLenum,GLsizeiptr,const void*,GLenum);
        void       (WINE_GLAPI *p_glBufferDataARB)(GLenum,GLsizeiptrARB,const void*,GLenum);
        void       (WINE_GLAPI *p_glBufferPageCommitmentARB)(GLenum,GLintptr,GLsizeiptr,GLboolean);
        void       (WINE_GLAPI *p_glBufferParameteriAPPLE)(GLenum,GLenum,GLint);
        GLuint     (WINE_GLAPI *p_glBufferRegionEnabled)(void);
        void       (WINE_GLAPI *p_glBufferStorage)(GLenum,GLsizeiptr,const void*,GLbitfield);
        void       (WINE_GLAPI *p_glBufferSubData)(GLenum,GLintptr,GLsizeiptr,const void*);
        void       (WINE_GLAPI *p_glBufferSubDataARB)(GLenum,GLintptrARB,GLsizeiptrARB,const void*);
        void       (WINE_GLAPI *p_glCallCommandListNV)(GLuint);
        GLenum     (WINE_GLAPI *p_glCheckFramebufferStatus)(GLenum);
        GLenum     (WINE_GLAPI *p_glCheckFramebufferStatusEXT)(GLenum);
        GLenum     (WINE_GLAPI *p_glCheckNamedFramebufferStatus)(GLuint,GLenum);
        GLenum     (WINE_GLAPI *p_glCheckNamedFramebufferStatusEXT)(GLuint,GLenum);
        void       (WINE_GLAPI *p_glClampColor)(GLenum,GLenum);
        void       (WINE_GLAPI *p_glClampColorARB)(GLenum,GLenum);
        void       (WINE_GLAPI *p_glClearAccumxOES)(GLfixed,GLfixed,GLfixed,GLfixed);
        void       (WINE_GLAPI *p_glClearBufferData)(GLenum,GLenum,GLenum,GLenum,const void*);
        void       (WINE_GLAPI *p_glClearBufferSubData)(GLenum,GLenum,GLintptr,GLsizeiptr,GLenum,GLenum,const void*);
        void       (WINE_GLAPI *p_glClearBufferfi)(GLenum,GLint,GLfloat,GLint);
        void       (WINE_GLAPI *p_glClearBufferfv)(GLenum,GLint,const GLfloat*);
        void       (WINE_GLAPI *p_glClearBufferiv)(GLenum,GLint,const GLint*);
        void       (WINE_GLAPI *p_glClearBufferuiv)(GLenum,GLint,const GLuint*);
        void       (WINE_GLAPI *p_glClearColorIiEXT)(GLint,GLint,GLint,GLint);
        void       (WINE_GLAPI *p_glClearColorIuiEXT)(GLuint,GLuint,GLuint,GLuint);
        void       (WINE_GLAPI *p_glClearColorxOES)(GLfixed,GLfixed,GLfixed,GLfixed);
        void       (WINE_GLAPI *p_glClearDepthdNV)(GLdouble);
        void       (WINE_GLAPI *p_glClearDepthf)(GLfloat);
        void       (WINE_GLAPI *p_glClearDepthfOES)(GLclampf);
        void       (WINE_GLAPI *p_glClearDepthxOES)(GLfixed);
        void       (WINE_GLAPI *p_glClearNamedBufferData)(GLuint,GLenum,GLenum,GLenum,const void*);
        void       (WINE_GLAPI *p_glClearNamedBufferDataEXT)(GLuint,GLenum,GLenum,GLenum,const void*);
        void       (WINE_GLAPI *p_glClearNamedBufferSubData)(GLuint,GLenum,GLintptr,GLsizeiptr,GLenum,GLenum,const void*);
        void       (WINE_GLAPI *p_glClearNamedBufferSubDataEXT)(GLuint,GLenum,GLsizeiptr,GLsizeiptr,GLenum,GLenum,const void*);
        void       (WINE_GLAPI *p_glClearNamedFramebufferfi)(GLuint,GLenum,GLint,GLfloat,GLint);
        void       (WINE_GLAPI *p_glClearNamedFramebufferfv)(GLuint,GLenum,GLint,const GLfloat*);
        void       (WINE_GLAPI *p_glClearNamedFramebufferiv)(GLuint,GLenum,GLint,const GLint*);
        void       (WINE_GLAPI *p_glClearNamedFramebufferuiv)(GLuint,GLenum,GLint,const GLuint*);
        void       (WINE_GLAPI *p_glClearTexImage)(GLuint,GLint,GLenum,GLenum,const void*);
        void       (WINE_GLAPI *p_glClearTexSubImage)(GLuint,GLint,GLint,GLint,GLint,GLsizei,GLsizei,GLsizei,GLenum,GLenum,const void*);
        void       (WINE_GLAPI *p_glClientActiveTexture)(GLenum);
        void       (WINE_GLAPI *p_glClientActiveTextureARB)(GLenum);
        void       (WINE_GLAPI *p_glClientActiveVertexStreamATI)(GLenum);
        void       (WINE_GLAPI *p_glClientAttribDefaultEXT)(GLbitfield);
        GLenum     (WINE_GLAPI *p_glClientWaitSync)(GLsync,GLbitfield,GLuint64);
        void       (WINE_GLAPI *p_glClipControl)(GLenum,GLenum);
        void       (WINE_GLAPI *p_glClipPlanefOES)(GLenum,const GLfloat*);
        void       (WINE_GLAPI *p_glClipPlanexOES)(GLenum,const GLfixed*);
        void       (WINE_GLAPI *p_glColor3fVertex3fSUN)(GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glColor3fVertex3fvSUN)(const GLfloat*,const GLfloat*);
        void       (WINE_GLAPI *p_glColor3hNV)(GLhalfNV,GLhalfNV,GLhalfNV);
        void       (WINE_GLAPI *p_glColor3hvNV)(const GLhalfNV*);
        void       (WINE_GLAPI *p_glColor3xOES)(GLfixed,GLfixed,GLfixed);
        void       (WINE_GLAPI *p_glColor3xvOES)(const GLfixed*);
        void       (WINE_GLAPI *p_glColor4fNormal3fVertex3fSUN)(GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glColor4fNormal3fVertex3fvSUN)(const GLfloat*,const GLfloat*,const GLfloat*);
        void       (WINE_GLAPI *p_glColor4hNV)(GLhalfNV,GLhalfNV,GLhalfNV,GLhalfNV);
        void       (WINE_GLAPI *p_glColor4hvNV)(const GLhalfNV*);
        void       (WINE_GLAPI *p_glColor4ubVertex2fSUN)(GLubyte,GLubyte,GLubyte,GLubyte,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glColor4ubVertex2fvSUN)(const GLubyte*,const GLfloat*);
        void       (WINE_GLAPI *p_glColor4ubVertex3fSUN)(GLubyte,GLubyte,GLubyte,GLubyte,GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glColor4ubVertex3fvSUN)(const GLubyte*,const GLfloat*);
        void       (WINE_GLAPI *p_glColor4xOES)(GLfixed,GLfixed,GLfixed,GLfixed);
        void       (WINE_GLAPI *p_glColor4xvOES)(const GLfixed*);
        void       (WINE_GLAPI *p_glColorFormatNV)(GLint,GLenum,GLsizei);
        void       (WINE_GLAPI *p_glColorFragmentOp1ATI)(GLenum,GLuint,GLuint,GLuint,GLuint,GLuint,GLuint);
        void       (WINE_GLAPI *p_glColorFragmentOp2ATI)(GLenum,GLuint,GLuint,GLuint,GLuint,GLuint,GLuint,GLuint,GLuint,GLuint);
        void       (WINE_GLAPI *p_glColorFragmentOp3ATI)(GLenum,GLuint,GLuint,GLuint,GLuint,GLuint,GLuint,GLuint,GLuint,GLuint,GLuint,GLuint,GLuint);
        void       (WINE_GLAPI *p_glColorMaskIndexedEXT)(GLuint,GLboolean,GLboolean,GLboolean,GLboolean);
        void       (WINE_GLAPI *p_glColorMaski)(GLuint,GLboolean,GLboolean,GLboolean,GLboolean);
        void       (WINE_GLAPI *p_glColorP3ui)(GLenum,GLuint);
        void       (WINE_GLAPI *p_glColorP3uiv)(GLenum,const GLuint*);
        void       (WINE_GLAPI *p_glColorP4ui)(GLenum,GLuint);
        void       (WINE_GLAPI *p_glColorP4uiv)(GLenum,const GLuint*);
        void       (WINE_GLAPI *p_glColorPointerEXT)(GLint,GLenum,GLsizei,GLsizei,const void*);
        void       (WINE_GLAPI *p_glColorPointerListIBM)(GLint,GLenum,GLint,const void**,GLint);
        void       (WINE_GLAPI *p_glColorPointervINTEL)(GLint,GLenum,const void**);
        void       (WINE_GLAPI *p_glColorSubTable)(GLenum,GLsizei,GLsizei,GLenum,GLenum,const void*);
        void       (WINE_GLAPI *p_glColorSubTableEXT)(GLenum,GLsizei,GLsizei,GLenum,GLenum,const void*);
        void       (WINE_GLAPI *p_glColorTable)(GLenum,GLenum,GLsizei,GLenum,GLenum,const void*);
        void       (WINE_GLAPI *p_glColorTableEXT)(GLenum,GLenum,GLsizei,GLenum,GLenum,const void*);
        void       (WINE_GLAPI *p_glColorTableParameterfv)(GLenum,GLenum,const GLfloat*);
        void       (WINE_GLAPI *p_glColorTableParameterfvSGI)(GLenum,GLenum,const GLfloat*);
        void       (WINE_GLAPI *p_glColorTableParameteriv)(GLenum,GLenum,const GLint*);
        void       (WINE_GLAPI *p_glColorTableParameterivSGI)(GLenum,GLenum,const GLint*);
        void       (WINE_GLAPI *p_glColorTableSGI)(GLenum,GLenum,GLsizei,GLenum,GLenum,const void*);
        void       (WINE_GLAPI *p_glCombinerInputNV)(GLenum,GLenum,GLenum,GLenum,GLenum,GLenum);
        void       (WINE_GLAPI *p_glCombinerOutputNV)(GLenum,GLenum,GLenum,GLenum,GLenum,GLenum,GLenum,GLboolean,GLboolean,GLboolean);
        void       (WINE_GLAPI *p_glCombinerParameterfNV)(GLenum,GLfloat);
        void       (WINE_GLAPI *p_glCombinerParameterfvNV)(GLenum,const GLfloat*);
        void       (WINE_GLAPI *p_glCombinerParameteriNV)(GLenum,GLint);
        void       (WINE_GLAPI *p_glCombinerParameterivNV)(GLenum,const GLint*);
        void       (WINE_GLAPI *p_glCombinerStageParameterfvNV)(GLenum,GLenum,const GLfloat*);
        void       (WINE_GLAPI *p_glCommandListSegmentsNV)(GLuint,GLuint);
        void       (WINE_GLAPI *p_glCompileCommandListNV)(GLuint);
        void       (WINE_GLAPI *p_glCompileShader)(GLuint);
        void       (WINE_GLAPI *p_glCompileShaderARB)(GLhandleARB);
        void       (WINE_GLAPI *p_glCompileShaderIncludeARB)(GLuint,GLsizei,const GLchar*const*,const GLint*);
        void       (WINE_GLAPI *p_glCompressedMultiTexImage1DEXT)(GLenum,GLenum,GLint,GLenum,GLsizei,GLint,GLsizei,const void*);
        void       (WINE_GLAPI *p_glCompressedMultiTexImage2DEXT)(GLenum,GLenum,GLint,GLenum,GLsizei,GLsizei,GLint,GLsizei,const void*);
        void       (WINE_GLAPI *p_glCompressedMultiTexImage3DEXT)(GLenum,GLenum,GLint,GLenum,GLsizei,GLsizei,GLsizei,GLint,GLsizei,const void*);
        void       (WINE_GLAPI *p_glCompressedMultiTexSubImage1DEXT)(GLenum,GLenum,GLint,GLint,GLsizei,GLenum,GLsizei,const void*);
        void       (WINE_GLAPI *p_glCompressedMultiTexSubImage2DEXT)(GLenum,GLenum,GLint,GLint,GLint,GLsizei,GLsizei,GLenum,GLsizei,const void*);
        void       (WINE_GLAPI *p_glCompressedMultiTexSubImage3DEXT)(GLenum,GLenum,GLint,GLint,GLint,GLint,GLsizei,GLsizei,GLsizei,GLenum,GLsizei,const void*);
        void       (WINE_GLAPI *p_glCompressedTexImage1D)(GLenum,GLint,GLenum,GLsizei,GLint,GLsizei,const void*);
        void       (WINE_GLAPI *p_glCompressedTexImage1DARB)(GLenum,GLint,GLenum,GLsizei,GLint,GLsizei,const void*);
        void       (WINE_GLAPI *p_glCompressedTexImage2D)(GLenum,GLint,GLenum,GLsizei,GLsizei,GLint,GLsizei,const void*);
        void       (WINE_GLAPI *p_glCompressedTexImage2DARB)(GLenum,GLint,GLenum,GLsizei,GLsizei,GLint,GLsizei,const void*);
        void       (WINE_GLAPI *p_glCompressedTexImage3D)(GLenum,GLint,GLenum,GLsizei,GLsizei,GLsizei,GLint,GLsizei,const void*);
        void       (WINE_GLAPI *p_glCompressedTexImage3DARB)(GLenum,GLint,GLenum,GLsizei,GLsizei,GLsizei,GLint,GLsizei,const void*);
        void       (WINE_GLAPI *p_glCompressedTexSubImage1D)(GLenum,GLint,GLint,GLsizei,GLenum,GLsizei,const void*);
        void       (WINE_GLAPI *p_glCompressedTexSubImage1DARB)(GLenum,GLint,GLint,GLsizei,GLenum,GLsizei,const void*);
        void       (WINE_GLAPI *p_glCompressedTexSubImage2D)(GLenum,GLint,GLint,GLint,GLsizei,GLsizei,GLenum,GLsizei,const void*);
        void       (WINE_GLAPI *p_glCompressedTexSubImage2DARB)(GLenum,GLint,GLint,GLint,GLsizei,GLsizei,GLenum,GLsizei,const void*);
        void       (WINE_GLAPI *p_glCompressedTexSubImage3D)(GLenum,GLint,GLint,GLint,GLint,GLsizei,GLsizei,GLsizei,GLenum,GLsizei,const void*);
        void       (WINE_GLAPI *p_glCompressedTexSubImage3DARB)(GLenum,GLint,GLint,GLint,GLint,GLsizei,GLsizei,GLsizei,GLenum,GLsizei,const void*);
        void       (WINE_GLAPI *p_glCompressedTextureImage1DEXT)(GLuint,GLenum,GLint,GLenum,GLsizei,GLint,GLsizei,const void*);
        void       (WINE_GLAPI *p_glCompressedTextureImage2DEXT)(GLuint,GLenum,GLint,GLenum,GLsizei,GLsizei,GLint,GLsizei,const void*);
        void       (WINE_GLAPI *p_glCompressedTextureImage3DEXT)(GLuint,GLenum,GLint,GLenum,GLsizei,GLsizei,GLsizei,GLint,GLsizei,const void*);
        void       (WINE_GLAPI *p_glCompressedTextureSubImage1D)(GLuint,GLint,GLint,GLsizei,GLenum,GLsizei,const void*);
        void       (WINE_GLAPI *p_glCompressedTextureSubImage1DEXT)(GLuint,GLenum,GLint,GLint,GLsizei,GLenum,GLsizei,const void*);
        void       (WINE_GLAPI *p_glCompressedTextureSubImage2D)(GLuint,GLint,GLint,GLint,GLsizei,GLsizei,GLenum,GLsizei,const void*);
        void       (WINE_GLAPI *p_glCompressedTextureSubImage2DEXT)(GLuint,GLenum,GLint,GLint,GLint,GLsizei,GLsizei,GLenum,GLsizei,const void*);
        void       (WINE_GLAPI *p_glCompressedTextureSubImage3D)(GLuint,GLint,GLint,GLint,GLint,GLsizei,GLsizei,GLsizei,GLenum,GLsizei,const void*);
        void       (WINE_GLAPI *p_glCompressedTextureSubImage3DEXT)(GLuint,GLenum,GLint,GLint,GLint,GLint,GLsizei,GLsizei,GLsizei,GLenum,GLsizei,const void*);
        void       (WINE_GLAPI *p_glConservativeRasterParameterfNV)(GLenum,GLfloat);
        void       (WINE_GLAPI *p_glConvolutionFilter1D)(GLenum,GLenum,GLsizei,GLenum,GLenum,const void*);
        void       (WINE_GLAPI *p_glConvolutionFilter1DEXT)(GLenum,GLenum,GLsizei,GLenum,GLenum,const void*);
        void       (WINE_GLAPI *p_glConvolutionFilter2D)(GLenum,GLenum,GLsizei,GLsizei,GLenum,GLenum,const void*);
        void       (WINE_GLAPI *p_glConvolutionFilter2DEXT)(GLenum,GLenum,GLsizei,GLsizei,GLenum,GLenum,const void*);
        void       (WINE_GLAPI *p_glConvolutionParameterf)(GLenum,GLenum,GLfloat);
        void       (WINE_GLAPI *p_glConvolutionParameterfEXT)(GLenum,GLenum,GLfloat);
        void       (WINE_GLAPI *p_glConvolutionParameterfv)(GLenum,GLenum,const GLfloat*);
        void       (WINE_GLAPI *p_glConvolutionParameterfvEXT)(GLenum,GLenum,const GLfloat*);
        void       (WINE_GLAPI *p_glConvolutionParameteri)(GLenum,GLenum,GLint);
        void       (WINE_GLAPI *p_glConvolutionParameteriEXT)(GLenum,GLenum,GLint);
        void       (WINE_GLAPI *p_glConvolutionParameteriv)(GLenum,GLenum,const GLint*);
        void       (WINE_GLAPI *p_glConvolutionParameterivEXT)(GLenum,GLenum,const GLint*);
        void       (WINE_GLAPI *p_glConvolutionParameterxOES)(GLenum,GLenum,GLfixed);
        void       (WINE_GLAPI *p_glConvolutionParameterxvOES)(GLenum,GLenum,const GLfixed*);
        void       (WINE_GLAPI *p_glCopyBufferSubData)(GLenum,GLenum,GLintptr,GLintptr,GLsizeiptr);
        void       (WINE_GLAPI *p_glCopyColorSubTable)(GLenum,GLsizei,GLint,GLint,GLsizei);
        void       (WINE_GLAPI *p_glCopyColorSubTableEXT)(GLenum,GLsizei,GLint,GLint,GLsizei);
        void       (WINE_GLAPI *p_glCopyColorTable)(GLenum,GLenum,GLint,GLint,GLsizei);
        void       (WINE_GLAPI *p_glCopyColorTableSGI)(GLenum,GLenum,GLint,GLint,GLsizei);
        void       (WINE_GLAPI *p_glCopyConvolutionFilter1D)(GLenum,GLenum,GLint,GLint,GLsizei);
        void       (WINE_GLAPI *p_glCopyConvolutionFilter1DEXT)(GLenum,GLenum,GLint,GLint,GLsizei);
        void       (WINE_GLAPI *p_glCopyConvolutionFilter2D)(GLenum,GLenum,GLint,GLint,GLsizei,GLsizei);
        void       (WINE_GLAPI *p_glCopyConvolutionFilter2DEXT)(GLenum,GLenum,GLint,GLint,GLsizei,GLsizei);
        void       (WINE_GLAPI *p_glCopyImageSubData)(GLuint,GLenum,GLint,GLint,GLint,GLint,GLuint,GLenum,GLint,GLint,GLint,GLint,GLsizei,GLsizei,GLsizei);
        void       (WINE_GLAPI *p_glCopyImageSubDataNV)(GLuint,GLenum,GLint,GLint,GLint,GLint,GLuint,GLenum,GLint,GLint,GLint,GLint,GLsizei,GLsizei,GLsizei);
        void       (WINE_GLAPI *p_glCopyMultiTexImage1DEXT)(GLenum,GLenum,GLint,GLenum,GLint,GLint,GLsizei,GLint);
        void       (WINE_GLAPI *p_glCopyMultiTexImage2DEXT)(GLenum,GLenum,GLint,GLenum,GLint,GLint,GLsizei,GLsizei,GLint);
        void       (WINE_GLAPI *p_glCopyMultiTexSubImage1DEXT)(GLenum,GLenum,GLint,GLint,GLint,GLint,GLsizei);
        void       (WINE_GLAPI *p_glCopyMultiTexSubImage2DEXT)(GLenum,GLenum,GLint,GLint,GLint,GLint,GLint,GLsizei,GLsizei);
        void       (WINE_GLAPI *p_glCopyMultiTexSubImage3DEXT)(GLenum,GLenum,GLint,GLint,GLint,GLint,GLint,GLint,GLsizei,GLsizei);
        void       (WINE_GLAPI *p_glCopyNamedBufferSubData)(GLuint,GLuint,GLintptr,GLintptr,GLsizeiptr);
        void       (WINE_GLAPI *p_glCopyPathNV)(GLuint,GLuint);
        void       (WINE_GLAPI *p_glCopyTexImage1DEXT)(GLenum,GLint,GLenum,GLint,GLint,GLsizei,GLint);
        void       (WINE_GLAPI *p_glCopyTexImage2DEXT)(GLenum,GLint,GLenum,GLint,GLint,GLsizei,GLsizei,GLint);
        void       (WINE_GLAPI *p_glCopyTexSubImage1DEXT)(GLenum,GLint,GLint,GLint,GLint,GLsizei);
        void       (WINE_GLAPI *p_glCopyTexSubImage2DEXT)(GLenum,GLint,GLint,GLint,GLint,GLint,GLsizei,GLsizei);
        void       (WINE_GLAPI *p_glCopyTexSubImage3D)(GLenum,GLint,GLint,GLint,GLint,GLint,GLint,GLsizei,GLsizei);
        void       (WINE_GLAPI *p_glCopyTexSubImage3DEXT)(GLenum,GLint,GLint,GLint,GLint,GLint,GLint,GLsizei,GLsizei);
        void       (WINE_GLAPI *p_glCopyTextureImage1DEXT)(GLuint,GLenum,GLint,GLenum,GLint,GLint,GLsizei,GLint);
        void       (WINE_GLAPI *p_glCopyTextureImage2DEXT)(GLuint,GLenum,GLint,GLenum,GLint,GLint,GLsizei,GLsizei,GLint);
        void       (WINE_GLAPI *p_glCopyTextureSubImage1D)(GLuint,GLint,GLint,GLint,GLint,GLsizei);
        void       (WINE_GLAPI *p_glCopyTextureSubImage1DEXT)(GLuint,GLenum,GLint,GLint,GLint,GLint,GLsizei);
        void       (WINE_GLAPI *p_glCopyTextureSubImage2D)(GLuint,GLint,GLint,GLint,GLint,GLint,GLsizei,GLsizei);
        void       (WINE_GLAPI *p_glCopyTextureSubImage2DEXT)(GLuint,GLenum,GLint,GLint,GLint,GLint,GLint,GLsizei,GLsizei);
        void       (WINE_GLAPI *p_glCopyTextureSubImage3D)(GLuint,GLint,GLint,GLint,GLint,GLint,GLint,GLsizei,GLsizei);
        void       (WINE_GLAPI *p_glCopyTextureSubImage3DEXT)(GLuint,GLenum,GLint,GLint,GLint,GLint,GLint,GLint,GLsizei,GLsizei);
        void       (WINE_GLAPI *p_glCoverFillPathInstancedNV)(GLsizei,GLenum,const void*,GLuint,GLenum,GLenum,const GLfloat*);
        void       (WINE_GLAPI *p_glCoverFillPathNV)(GLuint,GLenum);
        void       (WINE_GLAPI *p_glCoverStrokePathInstancedNV)(GLsizei,GLenum,const void*,GLuint,GLenum,GLenum,const GLfloat*);
        void       (WINE_GLAPI *p_glCoverStrokePathNV)(GLuint,GLenum);
        void       (WINE_GLAPI *p_glCoverageModulationNV)(GLenum);
        void       (WINE_GLAPI *p_glCoverageModulationTableNV)(GLsizei,const GLfloat*);
        void       (WINE_GLAPI *p_glCreateBuffers)(GLsizei,GLuint*);
        void       (WINE_GLAPI *p_glCreateCommandListsNV)(GLsizei,GLuint*);
        void       (WINE_GLAPI *p_glCreateFramebuffers)(GLsizei,GLuint*);
        void       (WINE_GLAPI *p_glCreatePerfQueryINTEL)(GLuint,GLuint*);
        GLuint     (WINE_GLAPI *p_glCreateProgram)(void);
        GLhandleARB (WINE_GLAPI *p_glCreateProgramObjectARB)(void);
        void       (WINE_GLAPI *p_glCreateProgramPipelines)(GLsizei,GLuint*);
        void       (WINE_GLAPI *p_glCreateQueries)(GLenum,GLsizei,GLuint*);
        void       (WINE_GLAPI *p_glCreateRenderbuffers)(GLsizei,GLuint*);
        void       (WINE_GLAPI *p_glCreateSamplers)(GLsizei,GLuint*);
        GLuint     (WINE_GLAPI *p_glCreateShader)(GLenum);
        GLhandleARB (WINE_GLAPI *p_glCreateShaderObjectARB)(GLenum);
        GLuint     (WINE_GLAPI *p_glCreateShaderProgramEXT)(GLenum,const GLchar*);
        GLuint     (WINE_GLAPI *p_glCreateShaderProgramv)(GLenum,GLsizei,const GLchar*const*);
        void       (WINE_GLAPI *p_glCreateStatesNV)(GLsizei,GLuint*);
        GLsync     (WINE_GLAPI *p_glCreateSyncFromCLeventARB)(void*,void*,GLbitfield);
        void       (WINE_GLAPI *p_glCreateTextures)(GLenum,GLsizei,GLuint*);
        void       (WINE_GLAPI *p_glCreateTransformFeedbacks)(GLsizei,GLuint*);
        void       (WINE_GLAPI *p_glCreateVertexArrays)(GLsizei,GLuint*);
        void       (WINE_GLAPI *p_glCullParameterdvEXT)(GLenum,GLdouble*);
        void       (WINE_GLAPI *p_glCullParameterfvEXT)(GLenum,GLfloat*);
        void       (WINE_GLAPI *p_glCurrentPaletteMatrixARB)(GLint);
        void       (WINE_GLAPI *p_glDebugMessageCallback)(void *,const void*);
        void       (WINE_GLAPI *p_glDebugMessageCallbackAMD)(void *,void*);
        void       (WINE_GLAPI *p_glDebugMessageCallbackARB)(void *,const void*);
        void       (WINE_GLAPI *p_glDebugMessageControl)(GLenum,GLenum,GLenum,GLsizei,const GLuint*,GLboolean);
        void       (WINE_GLAPI *p_glDebugMessageControlARB)(GLenum,GLenum,GLenum,GLsizei,const GLuint*,GLboolean);
        void       (WINE_GLAPI *p_glDebugMessageEnableAMD)(GLenum,GLenum,GLsizei,const GLuint*,GLboolean);
        void       (WINE_GLAPI *p_glDebugMessageInsert)(GLenum,GLenum,GLuint,GLenum,GLsizei,const GLchar*);
        void       (WINE_GLAPI *p_glDebugMessageInsertAMD)(GLenum,GLenum,GLuint,GLsizei,const GLchar*);
        void       (WINE_GLAPI *p_glDebugMessageInsertARB)(GLenum,GLenum,GLuint,GLenum,GLsizei,const GLchar*);
        void       (WINE_GLAPI *p_glDeformSGIX)(GLbitfield);
        void       (WINE_GLAPI *p_glDeformationMap3dSGIX)(GLenum,GLdouble,GLdouble,GLint,GLint,GLdouble,GLdouble,GLint,GLint,GLdouble,GLdouble,GLint,GLint,const GLdouble*);
        void       (WINE_GLAPI *p_glDeformationMap3fSGIX)(GLenum,GLfloat,GLfloat,GLint,GLint,GLfloat,GLfloat,GLint,GLint,GLfloat,GLfloat,GLint,GLint,const GLfloat*);
        void       (WINE_GLAPI *p_glDeleteAsyncMarkersSGIX)(GLuint,GLsizei);
        void       (WINE_GLAPI *p_glDeleteBufferRegion)(GLenum);
        void       (WINE_GLAPI *p_glDeleteBuffers)(GLsizei,const GLuint*);
        void       (WINE_GLAPI *p_glDeleteBuffersARB)(GLsizei,const GLuint*);
        void       (WINE_GLAPI *p_glDeleteCommandListsNV)(GLsizei,const GLuint*);
        void       (WINE_GLAPI *p_glDeleteFencesAPPLE)(GLsizei,const GLuint*);
        void       (WINE_GLAPI *p_glDeleteFencesNV)(GLsizei,const GLuint*);
        void       (WINE_GLAPI *p_glDeleteFragmentShaderATI)(GLuint);
        void       (WINE_GLAPI *p_glDeleteFramebuffers)(GLsizei,const GLuint*);
        void       (WINE_GLAPI *p_glDeleteFramebuffersEXT)(GLsizei,const GLuint*);
        void       (WINE_GLAPI *p_glDeleteNamedStringARB)(GLint,const GLchar*);
        void       (WINE_GLAPI *p_glDeleteNamesAMD)(GLenum,GLuint,const GLuint*);
        void       (WINE_GLAPI *p_glDeleteObjectARB)(GLhandleARB);
        void       (WINE_GLAPI *p_glDeleteObjectBufferATI)(GLuint);
        void       (WINE_GLAPI *p_glDeleteOcclusionQueriesNV)(GLsizei,const GLuint*);
        void       (WINE_GLAPI *p_glDeletePathsNV)(GLuint,GLsizei);
        void       (WINE_GLAPI *p_glDeletePerfMonitorsAMD)(GLsizei,GLuint*);
        void       (WINE_GLAPI *p_glDeletePerfQueryINTEL)(GLuint);
        void       (WINE_GLAPI *p_glDeleteProgram)(GLuint);
        void       (WINE_GLAPI *p_glDeleteProgramPipelines)(GLsizei,const GLuint*);
        void       (WINE_GLAPI *p_glDeleteProgramsARB)(GLsizei,const GLuint*);
        void       (WINE_GLAPI *p_glDeleteProgramsNV)(GLsizei,const GLuint*);
        void       (WINE_GLAPI *p_glDeleteQueries)(GLsizei,const GLuint*);
        void       (WINE_GLAPI *p_glDeleteQueriesARB)(GLsizei,const GLuint*);
        void       (WINE_GLAPI *p_glDeleteRenderbuffers)(GLsizei,const GLuint*);
        void       (WINE_GLAPI *p_glDeleteRenderbuffersEXT)(GLsizei,const GLuint*);
        void       (WINE_GLAPI *p_glDeleteSamplers)(GLsizei,const GLuint*);
        void       (WINE_GLAPI *p_glDeleteShader)(GLuint);
        void       (WINE_GLAPI *p_glDeleteStatesNV)(GLsizei,const GLuint*);
        void       (WINE_GLAPI *p_glDeleteSync)(GLsync);
        void       (WINE_GLAPI *p_glDeleteTexturesEXT)(GLsizei,const GLuint*);
        void       (WINE_GLAPI *p_glDeleteTransformFeedbacks)(GLsizei,const GLuint*);
        void       (WINE_GLAPI *p_glDeleteTransformFeedbacksNV)(GLsizei,const GLuint*);
        void       (WINE_GLAPI *p_glDeleteVertexArrays)(GLsizei,const GLuint*);
        void       (WINE_GLAPI *p_glDeleteVertexArraysAPPLE)(GLsizei,const GLuint*);
        void       (WINE_GLAPI *p_glDeleteVertexShaderEXT)(GLuint);
        void       (WINE_GLAPI *p_glDepthBoundsEXT)(GLclampd,GLclampd);
        void       (WINE_GLAPI *p_glDepthBoundsdNV)(GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glDepthRangeArrayv)(GLuint,GLsizei,const GLdouble*);
        void       (WINE_GLAPI *p_glDepthRangeIndexed)(GLuint,GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glDepthRangedNV)(GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glDepthRangef)(GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glDepthRangefOES)(GLclampf,GLclampf);
        void       (WINE_GLAPI *p_glDepthRangexOES)(GLfixed,GLfixed);
        void       (WINE_GLAPI *p_glDetachObjectARB)(GLhandleARB,GLhandleARB);
        void       (WINE_GLAPI *p_glDetachShader)(GLuint,GLuint);
        void       (WINE_GLAPI *p_glDetailTexFuncSGIS)(GLenum,GLsizei,const GLfloat*);
        void       (WINE_GLAPI *p_glDisableClientStateIndexedEXT)(GLenum,GLuint);
        void       (WINE_GLAPI *p_glDisableClientStateiEXT)(GLenum,GLuint);
        void       (WINE_GLAPI *p_glDisableIndexedEXT)(GLenum,GLuint);
        void       (WINE_GLAPI *p_glDisableVariantClientStateEXT)(GLuint);
        void       (WINE_GLAPI *p_glDisableVertexArrayAttrib)(GLuint,GLuint);
        void       (WINE_GLAPI *p_glDisableVertexArrayAttribEXT)(GLuint,GLuint);
        void       (WINE_GLAPI *p_glDisableVertexArrayEXT)(GLuint,GLenum);
        void       (WINE_GLAPI *p_glDisableVertexAttribAPPLE)(GLuint,GLenum);
        void       (WINE_GLAPI *p_glDisableVertexAttribArray)(GLuint);
        void       (WINE_GLAPI *p_glDisableVertexAttribArrayARB)(GLuint);
        void       (WINE_GLAPI *p_glDisablei)(GLenum,GLuint);
        void       (WINE_GLAPI *p_glDispatchCompute)(GLuint,GLuint,GLuint);
        void       (WINE_GLAPI *p_glDispatchComputeGroupSizeARB)(GLuint,GLuint,GLuint,GLuint,GLuint,GLuint);
        void       (WINE_GLAPI *p_glDispatchComputeIndirect)(GLintptr);
        void       (WINE_GLAPI *p_glDrawArraysEXT)(GLenum,GLint,GLsizei);
        void       (WINE_GLAPI *p_glDrawArraysIndirect)(GLenum,const void*);
        void       (WINE_GLAPI *p_glDrawArraysInstanced)(GLenum,GLint,GLsizei,GLsizei);
        void       (WINE_GLAPI *p_glDrawArraysInstancedARB)(GLenum,GLint,GLsizei,GLsizei);
        void       (WINE_GLAPI *p_glDrawArraysInstancedBaseInstance)(GLenum,GLint,GLsizei,GLsizei,GLuint);
        void       (WINE_GLAPI *p_glDrawArraysInstancedEXT)(GLenum,GLint,GLsizei,GLsizei);
        void       (WINE_GLAPI *p_glDrawBufferRegion)(GLenum,GLint,GLint,GLsizei,GLsizei,GLint,GLint);
        void       (WINE_GLAPI *p_glDrawBuffers)(GLsizei,const GLenum*);
        void       (WINE_GLAPI *p_glDrawBuffersARB)(GLsizei,const GLenum*);
        void       (WINE_GLAPI *p_glDrawBuffersATI)(GLsizei,const GLenum*);
        void       (WINE_GLAPI *p_glDrawCommandsAddressNV)(GLenum,const GLuint64*,const GLsizei*,GLuint);
        void       (WINE_GLAPI *p_glDrawCommandsNV)(GLenum,GLuint,const GLintptr*,const GLsizei*,GLuint);
        void       (WINE_GLAPI *p_glDrawCommandsStatesAddressNV)(const GLuint64*,const GLsizei*,const GLuint*,const GLuint*,GLuint);
        void       (WINE_GLAPI *p_glDrawCommandsStatesNV)(GLuint,const GLintptr*,const GLsizei*,const GLuint*,const GLuint*,GLuint);
        void       (WINE_GLAPI *p_glDrawElementArrayAPPLE)(GLenum,GLint,GLsizei);
        void       (WINE_GLAPI *p_glDrawElementArrayATI)(GLenum,GLsizei);
        void       (WINE_GLAPI *p_glDrawElementsBaseVertex)(GLenum,GLsizei,GLenum,const void*,GLint);
        void       (WINE_GLAPI *p_glDrawElementsIndirect)(GLenum,GLenum,const void*);
        void       (WINE_GLAPI *p_glDrawElementsInstanced)(GLenum,GLsizei,GLenum,const void*,GLsizei);
        void       (WINE_GLAPI *p_glDrawElementsInstancedARB)(GLenum,GLsizei,GLenum,const void*,GLsizei);
        void       (WINE_GLAPI *p_glDrawElementsInstancedBaseInstance)(GLenum,GLsizei,GLenum,const void*,GLsizei,GLuint);
        void       (WINE_GLAPI *p_glDrawElementsInstancedBaseVertex)(GLenum,GLsizei,GLenum,const void*,GLsizei,GLint);
        void       (WINE_GLAPI *p_glDrawElementsInstancedBaseVertexBaseInstance)(GLenum,GLsizei,GLenum,const void*,GLsizei,GLint,GLuint);
        void       (WINE_GLAPI *p_glDrawElementsInstancedEXT)(GLenum,GLsizei,GLenum,const void*,GLsizei);
        void       (WINE_GLAPI *p_glDrawMeshArraysSUN)(GLenum,GLint,GLsizei,GLsizei);
        void       (WINE_GLAPI *p_glDrawRangeElementArrayAPPLE)(GLenum,GLuint,GLuint,GLint,GLsizei);
        void       (WINE_GLAPI *p_glDrawRangeElementArrayATI)(GLenum,GLuint,GLuint,GLsizei);
        void       (WINE_GLAPI *p_glDrawRangeElements)(GLenum,GLuint,GLuint,GLsizei,GLenum,const void*);
        void       (WINE_GLAPI *p_glDrawRangeElementsBaseVertex)(GLenum,GLuint,GLuint,GLsizei,GLenum,const void*,GLint);
        void       (WINE_GLAPI *p_glDrawRangeElementsEXT)(GLenum,GLuint,GLuint,GLsizei,GLenum,const void*);
        void       (WINE_GLAPI *p_glDrawTextureNV)(GLuint,GLuint,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glDrawTransformFeedback)(GLenum,GLuint);
        void       (WINE_GLAPI *p_glDrawTransformFeedbackInstanced)(GLenum,GLuint,GLsizei);
        void       (WINE_GLAPI *p_glDrawTransformFeedbackNV)(GLenum,GLuint);
        void       (WINE_GLAPI *p_glDrawTransformFeedbackStream)(GLenum,GLuint,GLuint);
        void       (WINE_GLAPI *p_glDrawTransformFeedbackStreamInstanced)(GLenum,GLuint,GLuint,GLsizei);
        void       (WINE_GLAPI *p_glEdgeFlagFormatNV)(GLsizei);
        void       (WINE_GLAPI *p_glEdgeFlagPointerEXT)(GLsizei,GLsizei,const GLboolean*);
        void       (WINE_GLAPI *p_glEdgeFlagPointerListIBM)(GLint,const GLboolean**,GLint);
        void       (WINE_GLAPI *p_glElementPointerAPPLE)(GLenum,const void*);
        void       (WINE_GLAPI *p_glElementPointerATI)(GLenum,const void*);
        void       (WINE_GLAPI *p_glEnableClientStateIndexedEXT)(GLenum,GLuint);
        void       (WINE_GLAPI *p_glEnableClientStateiEXT)(GLenum,GLuint);
        void       (WINE_GLAPI *p_glEnableIndexedEXT)(GLenum,GLuint);
        void       (WINE_GLAPI *p_glEnableVariantClientStateEXT)(GLuint);
        void       (WINE_GLAPI *p_glEnableVertexArrayAttrib)(GLuint,GLuint);
        void       (WINE_GLAPI *p_glEnableVertexArrayAttribEXT)(GLuint,GLuint);
        void       (WINE_GLAPI *p_glEnableVertexArrayEXT)(GLuint,GLenum);
        void       (WINE_GLAPI *p_glEnableVertexAttribAPPLE)(GLuint,GLenum);
        void       (WINE_GLAPI *p_glEnableVertexAttribArray)(GLuint);
        void       (WINE_GLAPI *p_glEnableVertexAttribArrayARB)(GLuint);
        void       (WINE_GLAPI *p_glEnablei)(GLenum,GLuint);
        void       (WINE_GLAPI *p_glEndConditionalRender)(void);
        void       (WINE_GLAPI *p_glEndConditionalRenderNV)(void);
        void       (WINE_GLAPI *p_glEndConditionalRenderNVX)(void);
        void       (WINE_GLAPI *p_glEndFragmentShaderATI)(void);
        void       (WINE_GLAPI *p_glEndOcclusionQueryNV)(void);
        void       (WINE_GLAPI *p_glEndPerfMonitorAMD)(GLuint);
        void       (WINE_GLAPI *p_glEndPerfQueryINTEL)(GLuint);
        void       (WINE_GLAPI *p_glEndQuery)(GLenum);
        void       (WINE_GLAPI *p_glEndQueryARB)(GLenum);
        void       (WINE_GLAPI *p_glEndQueryIndexed)(GLenum,GLuint);
        void       (WINE_GLAPI *p_glEndTransformFeedback)(void);
        void       (WINE_GLAPI *p_glEndTransformFeedbackEXT)(void);
        void       (WINE_GLAPI *p_glEndTransformFeedbackNV)(void);
        void       (WINE_GLAPI *p_glEndVertexShaderEXT)(void);
        void       (WINE_GLAPI *p_glEndVideoCaptureNV)(GLuint);
        void       (WINE_GLAPI *p_glEvalCoord1xOES)(GLfixed);
        void       (WINE_GLAPI *p_glEvalCoord1xvOES)(const GLfixed*);
        void       (WINE_GLAPI *p_glEvalCoord2xOES)(GLfixed,GLfixed);
        void       (WINE_GLAPI *p_glEvalCoord2xvOES)(const GLfixed*);
        void       (WINE_GLAPI *p_glEvalMapsNV)(GLenum,GLenum);
        void       (WINE_GLAPI *p_glEvaluateDepthValuesARB)(void);
        void       (WINE_GLAPI *p_glExecuteProgramNV)(GLenum,GLuint,const GLfloat*);
        void       (WINE_GLAPI *p_glExtractComponentEXT)(GLuint,GLuint,GLuint);
        void       (WINE_GLAPI *p_glFeedbackBufferxOES)(GLsizei,GLenum,const GLfixed*);
        GLsync     (WINE_GLAPI *p_glFenceSync)(GLenum,GLbitfield);
        void       (WINE_GLAPI *p_glFinalCombinerInputNV)(GLenum,GLenum,GLenum,GLenum);
        GLint      (WINE_GLAPI *p_glFinishAsyncSGIX)(GLuint*);
        void       (WINE_GLAPI *p_glFinishFenceAPPLE)(GLuint);
        void       (WINE_GLAPI *p_glFinishFenceNV)(GLuint);
        void       (WINE_GLAPI *p_glFinishObjectAPPLE)(GLenum,GLint);
        void       (WINE_GLAPI *p_glFinishTextureSUNX)(void);
        void       (WINE_GLAPI *p_glFlushMappedBufferRange)(GLenum,GLintptr,GLsizeiptr);
        void       (WINE_GLAPI *p_glFlushMappedBufferRangeAPPLE)(GLenum,GLintptr,GLsizeiptr);
        void       (WINE_GLAPI *p_glFlushMappedNamedBufferRange)(GLuint,GLintptr,GLsizeiptr);
        void       (WINE_GLAPI *p_glFlushMappedNamedBufferRangeEXT)(GLuint,GLintptr,GLsizeiptr);
        void       (WINE_GLAPI *p_glFlushPixelDataRangeNV)(GLenum);
        void       (WINE_GLAPI *p_glFlushRasterSGIX)(void);
        void       (WINE_GLAPI *p_glFlushStaticDataIBM)(GLenum);
        void       (WINE_GLAPI *p_glFlushVertexArrayRangeAPPLE)(GLsizei,void*);
        void       (WINE_GLAPI *p_glFlushVertexArrayRangeNV)(void);
        void       (WINE_GLAPI *p_glFogCoordFormatNV)(GLenum,GLsizei);
        void       (WINE_GLAPI *p_glFogCoordPointer)(GLenum,GLsizei,const void*);
        void       (WINE_GLAPI *p_glFogCoordPointerEXT)(GLenum,GLsizei,const void*);
        void       (WINE_GLAPI *p_glFogCoordPointerListIBM)(GLenum,GLint,const void**,GLint);
        void       (WINE_GLAPI *p_glFogCoordd)(GLdouble);
        void       (WINE_GLAPI *p_glFogCoorddEXT)(GLdouble);
        void       (WINE_GLAPI *p_glFogCoorddv)(const GLdouble*);
        void       (WINE_GLAPI *p_glFogCoorddvEXT)(const GLdouble*);
        void       (WINE_GLAPI *p_glFogCoordf)(GLfloat);
        void       (WINE_GLAPI *p_glFogCoordfEXT)(GLfloat);
        void       (WINE_GLAPI *p_glFogCoordfv)(const GLfloat*);
        void       (WINE_GLAPI *p_glFogCoordfvEXT)(const GLfloat*);
        void       (WINE_GLAPI *p_glFogCoordhNV)(GLhalfNV);
        void       (WINE_GLAPI *p_glFogCoordhvNV)(const GLhalfNV*);
        void       (WINE_GLAPI *p_glFogFuncSGIS)(GLsizei,const GLfloat*);
        void       (WINE_GLAPI *p_glFogxOES)(GLenum,GLfixed);
        void       (WINE_GLAPI *p_glFogxvOES)(GLenum,const GLfixed*);
        void       (WINE_GLAPI *p_glFragmentColorMaterialSGIX)(GLenum,GLenum);
        void       (WINE_GLAPI *p_glFragmentCoverageColorNV)(GLuint);
        void       (WINE_GLAPI *p_glFragmentLightModelfSGIX)(GLenum,GLfloat);
        void       (WINE_GLAPI *p_glFragmentLightModelfvSGIX)(GLenum,const GLfloat*);
        void       (WINE_GLAPI *p_glFragmentLightModeliSGIX)(GLenum,GLint);
        void       (WINE_GLAPI *p_glFragmentLightModelivSGIX)(GLenum,const GLint*);
        void       (WINE_GLAPI *p_glFragmentLightfSGIX)(GLenum,GLenum,GLfloat);
        void       (WINE_GLAPI *p_glFragmentLightfvSGIX)(GLenum,GLenum,const GLfloat*);
        void       (WINE_GLAPI *p_glFragmentLightiSGIX)(GLenum,GLenum,GLint);
        void       (WINE_GLAPI *p_glFragmentLightivSGIX)(GLenum,GLenum,const GLint*);
        void       (WINE_GLAPI *p_glFragmentMaterialfSGIX)(GLenum,GLenum,GLfloat);
        void       (WINE_GLAPI *p_glFragmentMaterialfvSGIX)(GLenum,GLenum,const GLfloat*);
        void       (WINE_GLAPI *p_glFragmentMaterialiSGIX)(GLenum,GLenum,GLint);
        void       (WINE_GLAPI *p_glFragmentMaterialivSGIX)(GLenum,GLenum,const GLint*);
        void       (WINE_GLAPI *p_glFrameTerminatorGREMEDY)(void);
        void       (WINE_GLAPI *p_glFrameZoomSGIX)(GLint);
        void       (WINE_GLAPI *p_glFramebufferDrawBufferEXT)(GLuint,GLenum);
        void       (WINE_GLAPI *p_glFramebufferDrawBuffersEXT)(GLuint,GLsizei,const GLenum*);
        void       (WINE_GLAPI *p_glFramebufferParameteri)(GLenum,GLenum,GLint);
        void       (WINE_GLAPI *p_glFramebufferReadBufferEXT)(GLuint,GLenum);
        void       (WINE_GLAPI *p_glFramebufferRenderbuffer)(GLenum,GLenum,GLenum,GLuint);
        void       (WINE_GLAPI *p_glFramebufferRenderbufferEXT)(GLenum,GLenum,GLenum,GLuint);
        void       (WINE_GLAPI *p_glFramebufferSampleLocationsfvARB)(GLenum,GLuint,GLsizei,const GLfloat*);
        void       (WINE_GLAPI *p_glFramebufferSampleLocationsfvNV)(GLenum,GLuint,GLsizei,const GLfloat*);
        void       (WINE_GLAPI *p_glFramebufferTexture)(GLenum,GLenum,GLuint,GLint);
        void       (WINE_GLAPI *p_glFramebufferTexture1D)(GLenum,GLenum,GLenum,GLuint,GLint);
        void       (WINE_GLAPI *p_glFramebufferTexture1DEXT)(GLenum,GLenum,GLenum,GLuint,GLint);
        void       (WINE_GLAPI *p_glFramebufferTexture2D)(GLenum,GLenum,GLenum,GLuint,GLint);
        void       (WINE_GLAPI *p_glFramebufferTexture2DEXT)(GLenum,GLenum,GLenum,GLuint,GLint);
        void       (WINE_GLAPI *p_glFramebufferTexture3D)(GLenum,GLenum,GLenum,GLuint,GLint,GLint);
        void       (WINE_GLAPI *p_glFramebufferTexture3DEXT)(GLenum,GLenum,GLenum,GLuint,GLint,GLint);
        void       (WINE_GLAPI *p_glFramebufferTextureARB)(GLenum,GLenum,GLuint,GLint);
        void       (WINE_GLAPI *p_glFramebufferTextureEXT)(GLenum,GLenum,GLuint,GLint);
        void       (WINE_GLAPI *p_glFramebufferTextureFaceARB)(GLenum,GLenum,GLuint,GLint,GLenum);
        void       (WINE_GLAPI *p_glFramebufferTextureFaceEXT)(GLenum,GLenum,GLuint,GLint,GLenum);
        void       (WINE_GLAPI *p_glFramebufferTextureLayer)(GLenum,GLenum,GLuint,GLint,GLint);
        void       (WINE_GLAPI *p_glFramebufferTextureLayerARB)(GLenum,GLenum,GLuint,GLint,GLint);
        void       (WINE_GLAPI *p_glFramebufferTextureLayerEXT)(GLenum,GLenum,GLuint,GLint,GLint);
        void       (WINE_GLAPI *p_glFramebufferTextureMultiviewOVR)(GLenum,GLenum,GLuint,GLint,GLint,GLsizei);
        void       (WINE_GLAPI *p_glFreeObjectBufferATI)(GLuint);
        void       (WINE_GLAPI *p_glFrustumfOES)(GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glFrustumxOES)(GLfixed,GLfixed,GLfixed,GLfixed,GLfixed,GLfixed);
        GLuint     (WINE_GLAPI *p_glGenAsyncMarkersSGIX)(GLsizei);
        void       (WINE_GLAPI *p_glGenBuffers)(GLsizei,GLuint*);
        void       (WINE_GLAPI *p_glGenBuffersARB)(GLsizei,GLuint*);
        void       (WINE_GLAPI *p_glGenFencesAPPLE)(GLsizei,GLuint*);
        void       (WINE_GLAPI *p_glGenFencesNV)(GLsizei,GLuint*);
        GLuint     (WINE_GLAPI *p_glGenFragmentShadersATI)(GLuint);
        void       (WINE_GLAPI *p_glGenFramebuffers)(GLsizei,GLuint*);
        void       (WINE_GLAPI *p_glGenFramebuffersEXT)(GLsizei,GLuint*);
        void       (WINE_GLAPI *p_glGenNamesAMD)(GLenum,GLuint,GLuint*);
        void       (WINE_GLAPI *p_glGenOcclusionQueriesNV)(GLsizei,GLuint*);
        GLuint     (WINE_GLAPI *p_glGenPathsNV)(GLsizei);
        void       (WINE_GLAPI *p_glGenPerfMonitorsAMD)(GLsizei,GLuint*);
        void       (WINE_GLAPI *p_glGenProgramPipelines)(GLsizei,GLuint*);
        void       (WINE_GLAPI *p_glGenProgramsARB)(GLsizei,GLuint*);
        void       (WINE_GLAPI *p_glGenProgramsNV)(GLsizei,GLuint*);
        void       (WINE_GLAPI *p_glGenQueries)(GLsizei,GLuint*);
        void       (WINE_GLAPI *p_glGenQueriesARB)(GLsizei,GLuint*);
        void       (WINE_GLAPI *p_glGenRenderbuffers)(GLsizei,GLuint*);
        void       (WINE_GLAPI *p_glGenRenderbuffersEXT)(GLsizei,GLuint*);
        void       (WINE_GLAPI *p_glGenSamplers)(GLsizei,GLuint*);
        GLuint     (WINE_GLAPI *p_glGenSymbolsEXT)(GLenum,GLenum,GLenum,GLuint);
        void       (WINE_GLAPI *p_glGenTexturesEXT)(GLsizei,GLuint*);
        void       (WINE_GLAPI *p_glGenTransformFeedbacks)(GLsizei,GLuint*);
        void       (WINE_GLAPI *p_glGenTransformFeedbacksNV)(GLsizei,GLuint*);
        void       (WINE_GLAPI *p_glGenVertexArrays)(GLsizei,GLuint*);
        void       (WINE_GLAPI *p_glGenVertexArraysAPPLE)(GLsizei,GLuint*);
        GLuint     (WINE_GLAPI *p_glGenVertexShadersEXT)(GLuint);
        void       (WINE_GLAPI *p_glGenerateMipmap)(GLenum);
        void       (WINE_GLAPI *p_glGenerateMipmapEXT)(GLenum);
        void       (WINE_GLAPI *p_glGenerateMultiTexMipmapEXT)(GLenum,GLenum);
        void       (WINE_GLAPI *p_glGenerateTextureMipmap)(GLuint);
        void       (WINE_GLAPI *p_glGenerateTextureMipmapEXT)(GLuint,GLenum);
        void       (WINE_GLAPI *p_glGetActiveAtomicCounterBufferiv)(GLuint,GLuint,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetActiveAttrib)(GLuint,GLuint,GLsizei,GLsizei*,GLint*,GLenum*,GLchar*);
        void       (WINE_GLAPI *p_glGetActiveAttribARB)(GLhandleARB,GLuint,GLsizei,GLsizei*,GLint*,GLenum*,GLcharARB*);
        void       (WINE_GLAPI *p_glGetActiveSubroutineName)(GLuint,GLenum,GLuint,GLsizei,GLsizei*,GLchar*);
        void       (WINE_GLAPI *p_glGetActiveSubroutineUniformName)(GLuint,GLenum,GLuint,GLsizei,GLsizei*,GLchar*);
        void       (WINE_GLAPI *p_glGetActiveSubroutineUniformiv)(GLuint,GLenum,GLuint,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetActiveUniform)(GLuint,GLuint,GLsizei,GLsizei*,GLint*,GLenum*,GLchar*);
        void       (WINE_GLAPI *p_glGetActiveUniformARB)(GLhandleARB,GLuint,GLsizei,GLsizei*,GLint*,GLenum*,GLcharARB*);
        void       (WINE_GLAPI *p_glGetActiveUniformBlockName)(GLuint,GLuint,GLsizei,GLsizei*,GLchar*);
        void       (WINE_GLAPI *p_glGetActiveUniformBlockiv)(GLuint,GLuint,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetActiveUniformName)(GLuint,GLuint,GLsizei,GLsizei*,GLchar*);
        void       (WINE_GLAPI *p_glGetActiveUniformsiv)(GLuint,GLsizei,const GLuint*,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetActiveVaryingNV)(GLuint,GLuint,GLsizei,GLsizei*,GLsizei*,GLenum*,GLchar*);
        void       (WINE_GLAPI *p_glGetArrayObjectfvATI)(GLenum,GLenum,GLfloat*);
        void       (WINE_GLAPI *p_glGetArrayObjectivATI)(GLenum,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetAttachedObjectsARB)(GLhandleARB,GLsizei,GLsizei*,GLhandleARB*);
        void       (WINE_GLAPI *p_glGetAttachedShaders)(GLuint,GLsizei,GLsizei*,GLuint*);
        GLint      (WINE_GLAPI *p_glGetAttribLocation)(GLuint,const GLchar*);
        GLint      (WINE_GLAPI *p_glGetAttribLocationARB)(GLhandleARB,const GLcharARB*);
        void       (WINE_GLAPI *p_glGetBooleanIndexedvEXT)(GLenum,GLuint,GLboolean*);
        void       (WINE_GLAPI *p_glGetBooleani_v)(GLenum,GLuint,GLboolean*);
        void       (WINE_GLAPI *p_glGetBufferParameteri64v)(GLenum,GLenum,GLint64*);
        void       (WINE_GLAPI *p_glGetBufferParameteriv)(GLenum,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetBufferParameterivARB)(GLenum,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetBufferParameterui64vNV)(GLenum,GLenum,GLuint64EXT*);
        void       (WINE_GLAPI *p_glGetBufferPointerv)(GLenum,GLenum,void**);
        void       (WINE_GLAPI *p_glGetBufferPointervARB)(GLenum,GLenum,void**);
        void       (WINE_GLAPI *p_glGetBufferSubData)(GLenum,GLintptr,GLsizeiptr,void*);
        void       (WINE_GLAPI *p_glGetBufferSubDataARB)(GLenum,GLintptrARB,GLsizeiptrARB,void*);
        void       (WINE_GLAPI *p_glGetClipPlanefOES)(GLenum,GLfloat*);
        void       (WINE_GLAPI *p_glGetClipPlanexOES)(GLenum,GLfixed*);
        void       (WINE_GLAPI *p_glGetColorTable)(GLenum,GLenum,GLenum,void*);
        void       (WINE_GLAPI *p_glGetColorTableEXT)(GLenum,GLenum,GLenum,void*);
        void       (WINE_GLAPI *p_glGetColorTableParameterfv)(GLenum,GLenum,GLfloat*);
        void       (WINE_GLAPI *p_glGetColorTableParameterfvEXT)(GLenum,GLenum,GLfloat*);
        void       (WINE_GLAPI *p_glGetColorTableParameterfvSGI)(GLenum,GLenum,GLfloat*);
        void       (WINE_GLAPI *p_glGetColorTableParameteriv)(GLenum,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetColorTableParameterivEXT)(GLenum,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetColorTableParameterivSGI)(GLenum,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetColorTableSGI)(GLenum,GLenum,GLenum,void*);
        void       (WINE_GLAPI *p_glGetCombinerInputParameterfvNV)(GLenum,GLenum,GLenum,GLenum,GLfloat*);
        void       (WINE_GLAPI *p_glGetCombinerInputParameterivNV)(GLenum,GLenum,GLenum,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetCombinerOutputParameterfvNV)(GLenum,GLenum,GLenum,GLfloat*);
        void       (WINE_GLAPI *p_glGetCombinerOutputParameterivNV)(GLenum,GLenum,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetCombinerStageParameterfvNV)(GLenum,GLenum,GLfloat*);
        GLuint     (WINE_GLAPI *p_glGetCommandHeaderNV)(GLenum,GLuint);
        void       (WINE_GLAPI *p_glGetCompressedMultiTexImageEXT)(GLenum,GLenum,GLint,void*);
        void       (WINE_GLAPI *p_glGetCompressedTexImage)(GLenum,GLint,void*);
        void       (WINE_GLAPI *p_glGetCompressedTexImageARB)(GLenum,GLint,void*);
        void       (WINE_GLAPI *p_glGetCompressedTextureImage)(GLuint,GLint,GLsizei,void*);
        void       (WINE_GLAPI *p_glGetCompressedTextureImageEXT)(GLuint,GLenum,GLint,void*);
        void       (WINE_GLAPI *p_glGetCompressedTextureSubImage)(GLuint,GLint,GLint,GLint,GLint,GLsizei,GLsizei,GLsizei,GLsizei,void*);
        void       (WINE_GLAPI *p_glGetConvolutionFilter)(GLenum,GLenum,GLenum,void*);
        void       (WINE_GLAPI *p_glGetConvolutionFilterEXT)(GLenum,GLenum,GLenum,void*);
        void       (WINE_GLAPI *p_glGetConvolutionParameterfv)(GLenum,GLenum,GLfloat*);
        void       (WINE_GLAPI *p_glGetConvolutionParameterfvEXT)(GLenum,GLenum,GLfloat*);
        void       (WINE_GLAPI *p_glGetConvolutionParameteriv)(GLenum,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetConvolutionParameterivEXT)(GLenum,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetConvolutionParameterxvOES)(GLenum,GLenum,GLfixed*);
        void       (WINE_GLAPI *p_glGetCoverageModulationTableNV)(GLsizei,GLfloat*);
        GLuint     (WINE_GLAPI *p_glGetDebugMessageLog)(GLuint,GLsizei,GLenum*,GLenum*,GLuint*,GLenum*,GLsizei*,GLchar*);
        GLuint     (WINE_GLAPI *p_glGetDebugMessageLogAMD)(GLuint,GLsizei,GLenum*,GLuint*,GLuint*,GLsizei*,GLchar*);
        GLuint     (WINE_GLAPI *p_glGetDebugMessageLogARB)(GLuint,GLsizei,GLenum*,GLenum*,GLuint*,GLenum*,GLsizei*,GLchar*);
        void       (WINE_GLAPI *p_glGetDetailTexFuncSGIS)(GLenum,GLfloat*);
        void       (WINE_GLAPI *p_glGetDoubleIndexedvEXT)(GLenum,GLuint,GLdouble*);
        void       (WINE_GLAPI *p_glGetDoublei_v)(GLenum,GLuint,GLdouble*);
        void       (WINE_GLAPI *p_glGetDoublei_vEXT)(GLenum,GLuint,GLdouble*);
        void       (WINE_GLAPI *p_glGetFenceivNV)(GLuint,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetFinalCombinerInputParameterfvNV)(GLenum,GLenum,GLfloat*);
        void       (WINE_GLAPI *p_glGetFinalCombinerInputParameterivNV)(GLenum,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetFirstPerfQueryIdINTEL)(GLuint*);
        void       (WINE_GLAPI *p_glGetFixedvOES)(GLenum,GLfixed*);
        void       (WINE_GLAPI *p_glGetFloatIndexedvEXT)(GLenum,GLuint,GLfloat*);
        void       (WINE_GLAPI *p_glGetFloati_v)(GLenum,GLuint,GLfloat*);
        void       (WINE_GLAPI *p_glGetFloati_vEXT)(GLenum,GLuint,GLfloat*);
        void       (WINE_GLAPI *p_glGetFogFuncSGIS)(GLfloat*);
        GLint      (WINE_GLAPI *p_glGetFragDataIndex)(GLuint,const GLchar*);
        GLint      (WINE_GLAPI *p_glGetFragDataLocation)(GLuint,const GLchar*);
        GLint      (WINE_GLAPI *p_glGetFragDataLocationEXT)(GLuint,const GLchar*);
        void       (WINE_GLAPI *p_glGetFragmentLightfvSGIX)(GLenum,GLenum,GLfloat*);
        void       (WINE_GLAPI *p_glGetFragmentLightivSGIX)(GLenum,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetFragmentMaterialfvSGIX)(GLenum,GLenum,GLfloat*);
        void       (WINE_GLAPI *p_glGetFragmentMaterialivSGIX)(GLenum,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetFramebufferAttachmentParameteriv)(GLenum,GLenum,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetFramebufferAttachmentParameterivEXT)(GLenum,GLenum,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetFramebufferParameteriv)(GLenum,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetFramebufferParameterivEXT)(GLuint,GLenum,GLint*);
        GLenum     (WINE_GLAPI *p_glGetGraphicsResetStatus)(void);
        GLenum     (WINE_GLAPI *p_glGetGraphicsResetStatusARB)(void);
        GLhandleARB (WINE_GLAPI *p_glGetHandleARB)(GLenum);
        void       (WINE_GLAPI *p_glGetHistogram)(GLenum,GLboolean,GLenum,GLenum,void*);
        void       (WINE_GLAPI *p_glGetHistogramEXT)(GLenum,GLboolean,GLenum,GLenum,void*);
        void       (WINE_GLAPI *p_glGetHistogramParameterfv)(GLenum,GLenum,GLfloat*);
        void       (WINE_GLAPI *p_glGetHistogramParameterfvEXT)(GLenum,GLenum,GLfloat*);
        void       (WINE_GLAPI *p_glGetHistogramParameteriv)(GLenum,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetHistogramParameterivEXT)(GLenum,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetHistogramParameterxvOES)(GLenum,GLenum,GLfixed*);
        GLuint64   (WINE_GLAPI *p_glGetImageHandleARB)(GLuint,GLint,GLboolean,GLint,GLenum);
        GLuint64   (WINE_GLAPI *p_glGetImageHandleNV)(GLuint,GLint,GLboolean,GLint,GLenum);
        void       (WINE_GLAPI *p_glGetImageTransformParameterfvHP)(GLenum,GLenum,GLfloat*);
        void       (WINE_GLAPI *p_glGetImageTransformParameterivHP)(GLenum,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetInfoLogARB)(GLhandleARB,GLsizei,GLsizei*,GLcharARB*);
        GLint      (WINE_GLAPI *p_glGetInstrumentsSGIX)(void);
        void       (WINE_GLAPI *p_glGetInteger64i_v)(GLenum,GLuint,GLint64*);
        void       (WINE_GLAPI *p_glGetInteger64v)(GLenum,GLint64*);
        void       (WINE_GLAPI *p_glGetIntegerIndexedvEXT)(GLenum,GLuint,GLint*);
        void       (WINE_GLAPI *p_glGetIntegeri_v)(GLenum,GLuint,GLint*);
        void       (WINE_GLAPI *p_glGetIntegerui64i_vNV)(GLenum,GLuint,GLuint64EXT*);
        void       (WINE_GLAPI *p_glGetIntegerui64vNV)(GLenum,GLuint64EXT*);
        void       (WINE_GLAPI *p_glGetInternalformatSampleivNV)(GLenum,GLenum,GLsizei,GLenum,GLsizei,GLint*);
        void       (WINE_GLAPI *p_glGetInternalformati64v)(GLenum,GLenum,GLenum,GLsizei,GLint64*);
        void       (WINE_GLAPI *p_glGetInternalformativ)(GLenum,GLenum,GLenum,GLsizei,GLint*);
        void       (WINE_GLAPI *p_glGetInvariantBooleanvEXT)(GLuint,GLenum,GLboolean*);
        void       (WINE_GLAPI *p_glGetInvariantFloatvEXT)(GLuint,GLenum,GLfloat*);
        void       (WINE_GLAPI *p_glGetInvariantIntegervEXT)(GLuint,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetLightxOES)(GLenum,GLenum,GLfixed*);
        void       (WINE_GLAPI *p_glGetListParameterfvSGIX)(GLuint,GLenum,GLfloat*);
        void       (WINE_GLAPI *p_glGetListParameterivSGIX)(GLuint,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetLocalConstantBooleanvEXT)(GLuint,GLenum,GLboolean*);
        void       (WINE_GLAPI *p_glGetLocalConstantFloatvEXT)(GLuint,GLenum,GLfloat*);
        void       (WINE_GLAPI *p_glGetLocalConstantIntegervEXT)(GLuint,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetMapAttribParameterfvNV)(GLenum,GLuint,GLenum,GLfloat*);
        void       (WINE_GLAPI *p_glGetMapAttribParameterivNV)(GLenum,GLuint,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetMapControlPointsNV)(GLenum,GLuint,GLenum,GLsizei,GLsizei,GLboolean,void*);
        void       (WINE_GLAPI *p_glGetMapParameterfvNV)(GLenum,GLenum,GLfloat*);
        void       (WINE_GLAPI *p_glGetMapParameterivNV)(GLenum,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetMapxvOES)(GLenum,GLenum,GLfixed*);
        void       (WINE_GLAPI *p_glGetMaterialxOES)(GLenum,GLenum,GLfixed);
        void       (WINE_GLAPI *p_glGetMinmax)(GLenum,GLboolean,GLenum,GLenum,void*);
        void       (WINE_GLAPI *p_glGetMinmaxEXT)(GLenum,GLboolean,GLenum,GLenum,void*);
        void       (WINE_GLAPI *p_glGetMinmaxParameterfv)(GLenum,GLenum,GLfloat*);
        void       (WINE_GLAPI *p_glGetMinmaxParameterfvEXT)(GLenum,GLenum,GLfloat*);
        void       (WINE_GLAPI *p_glGetMinmaxParameteriv)(GLenum,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetMinmaxParameterivEXT)(GLenum,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetMultiTexEnvfvEXT)(GLenum,GLenum,GLenum,GLfloat*);
        void       (WINE_GLAPI *p_glGetMultiTexEnvivEXT)(GLenum,GLenum,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetMultiTexGendvEXT)(GLenum,GLenum,GLenum,GLdouble*);
        void       (WINE_GLAPI *p_glGetMultiTexGenfvEXT)(GLenum,GLenum,GLenum,GLfloat*);
        void       (WINE_GLAPI *p_glGetMultiTexGenivEXT)(GLenum,GLenum,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetMultiTexImageEXT)(GLenum,GLenum,GLint,GLenum,GLenum,void*);
        void       (WINE_GLAPI *p_glGetMultiTexLevelParameterfvEXT)(GLenum,GLenum,GLint,GLenum,GLfloat*);
        void       (WINE_GLAPI *p_glGetMultiTexLevelParameterivEXT)(GLenum,GLenum,GLint,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetMultiTexParameterIivEXT)(GLenum,GLenum,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetMultiTexParameterIuivEXT)(GLenum,GLenum,GLenum,GLuint*);
        void       (WINE_GLAPI *p_glGetMultiTexParameterfvEXT)(GLenum,GLenum,GLenum,GLfloat*);
        void       (WINE_GLAPI *p_glGetMultiTexParameterivEXT)(GLenum,GLenum,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetMultisamplefv)(GLenum,GLuint,GLfloat*);
        void       (WINE_GLAPI *p_glGetMultisamplefvNV)(GLenum,GLuint,GLfloat*);
        void       (WINE_GLAPI *p_glGetNamedBufferParameteri64v)(GLuint,GLenum,GLint64*);
        void       (WINE_GLAPI *p_glGetNamedBufferParameteriv)(GLuint,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetNamedBufferParameterivEXT)(GLuint,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetNamedBufferParameterui64vNV)(GLuint,GLenum,GLuint64EXT*);
        void       (WINE_GLAPI *p_glGetNamedBufferPointerv)(GLuint,GLenum,void**);
        void       (WINE_GLAPI *p_glGetNamedBufferPointervEXT)(GLuint,GLenum,void**);
        void       (WINE_GLAPI *p_glGetNamedBufferSubData)(GLuint,GLintptr,GLsizeiptr,void*);
        void       (WINE_GLAPI *p_glGetNamedBufferSubDataEXT)(GLuint,GLintptr,GLsizeiptr,void*);
        void       (WINE_GLAPI *p_glGetNamedFramebufferAttachmentParameteriv)(GLuint,GLenum,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetNamedFramebufferAttachmentParameterivEXT)(GLuint,GLenum,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetNamedFramebufferParameteriv)(GLuint,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetNamedFramebufferParameterivEXT)(GLuint,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetNamedProgramLocalParameterIivEXT)(GLuint,GLenum,GLuint,GLint*);
        void       (WINE_GLAPI *p_glGetNamedProgramLocalParameterIuivEXT)(GLuint,GLenum,GLuint,GLuint*);
        void       (WINE_GLAPI *p_glGetNamedProgramLocalParameterdvEXT)(GLuint,GLenum,GLuint,GLdouble*);
        void       (WINE_GLAPI *p_glGetNamedProgramLocalParameterfvEXT)(GLuint,GLenum,GLuint,GLfloat*);
        void       (WINE_GLAPI *p_glGetNamedProgramStringEXT)(GLuint,GLenum,GLenum,void*);
        void       (WINE_GLAPI *p_glGetNamedProgramivEXT)(GLuint,GLenum,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetNamedRenderbufferParameteriv)(GLuint,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetNamedRenderbufferParameterivEXT)(GLuint,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetNamedStringARB)(GLint,const GLchar*,GLsizei,GLint*,GLchar*);
        void       (WINE_GLAPI *p_glGetNamedStringivARB)(GLint,const GLchar*,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetNextPerfQueryIdINTEL)(GLuint,GLuint*);
        void       (WINE_GLAPI *p_glGetObjectBufferfvATI)(GLuint,GLenum,GLfloat*);
        void       (WINE_GLAPI *p_glGetObjectBufferivATI)(GLuint,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetObjectLabel)(GLenum,GLuint,GLsizei,GLsizei*,GLchar*);
        void       (WINE_GLAPI *p_glGetObjectLabelEXT)(GLenum,GLuint,GLsizei,GLsizei*,GLchar*);
        void       (WINE_GLAPI *p_glGetObjectParameterfvARB)(GLhandleARB,GLenum,GLfloat*);
        void       (WINE_GLAPI *p_glGetObjectParameterivAPPLE)(GLenum,GLuint,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetObjectParameterivARB)(GLhandleARB,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetObjectPtrLabel)(const void*,GLsizei,GLsizei*,GLchar*);
        void       (WINE_GLAPI *p_glGetOcclusionQueryivNV)(GLuint,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetOcclusionQueryuivNV)(GLuint,GLenum,GLuint*);
        void       (WINE_GLAPI *p_glGetPathColorGenfvNV)(GLenum,GLenum,GLfloat*);
        void       (WINE_GLAPI *p_glGetPathColorGenivNV)(GLenum,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetPathCommandsNV)(GLuint,GLubyte*);
        void       (WINE_GLAPI *p_glGetPathCoordsNV)(GLuint,GLfloat*);
        void       (WINE_GLAPI *p_glGetPathDashArrayNV)(GLuint,GLfloat*);
        GLfloat    (WINE_GLAPI *p_glGetPathLengthNV)(GLuint,GLsizei,GLsizei);
        void       (WINE_GLAPI *p_glGetPathMetricRangeNV)(GLbitfield,GLuint,GLsizei,GLsizei,GLfloat*);
        void       (WINE_GLAPI *p_glGetPathMetricsNV)(GLbitfield,GLsizei,GLenum,const void*,GLuint,GLsizei,GLfloat*);
        void       (WINE_GLAPI *p_glGetPathParameterfvNV)(GLuint,GLenum,GLfloat*);
        void       (WINE_GLAPI *p_glGetPathParameterivNV)(GLuint,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetPathSpacingNV)(GLenum,GLsizei,GLenum,const void*,GLuint,GLfloat,GLfloat,GLenum,GLfloat*);
        void       (WINE_GLAPI *p_glGetPathTexGenfvNV)(GLenum,GLenum,GLfloat*);
        void       (WINE_GLAPI *p_glGetPathTexGenivNV)(GLenum,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetPerfCounterInfoINTEL)(GLuint,GLuint,GLuint,GLchar*,GLuint,GLchar*,GLuint*,GLuint*,GLuint*,GLuint*,GLuint64*);
        void       (WINE_GLAPI *p_glGetPerfMonitorCounterDataAMD)(GLuint,GLenum,GLsizei,GLuint*,GLint*);
        void       (WINE_GLAPI *p_glGetPerfMonitorCounterInfoAMD)(GLuint,GLuint,GLenum,void*);
        void       (WINE_GLAPI *p_glGetPerfMonitorCounterStringAMD)(GLuint,GLuint,GLsizei,GLsizei*,GLchar*);
        void       (WINE_GLAPI *p_glGetPerfMonitorCountersAMD)(GLuint,GLint*,GLint*,GLsizei,GLuint*);
        void       (WINE_GLAPI *p_glGetPerfMonitorGroupStringAMD)(GLuint,GLsizei,GLsizei*,GLchar*);
        void       (WINE_GLAPI *p_glGetPerfMonitorGroupsAMD)(GLint*,GLsizei,GLuint*);
        void       (WINE_GLAPI *p_glGetPerfQueryDataINTEL)(GLuint,GLuint,GLsizei,GLvoid*,GLuint*);
        void       (WINE_GLAPI *p_glGetPerfQueryIdByNameINTEL)(GLchar*,GLuint*);
        void       (WINE_GLAPI *p_glGetPerfQueryInfoINTEL)(GLuint,GLuint,GLchar*,GLuint*,GLuint*,GLuint*,GLuint*);
        void       (WINE_GLAPI *p_glGetPixelMapxv)(GLenum,GLint,GLfixed*);
        void       (WINE_GLAPI *p_glGetPixelTexGenParameterfvSGIS)(GLenum,GLfloat*);
        void       (WINE_GLAPI *p_glGetPixelTexGenParameterivSGIS)(GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetPixelTransformParameterfvEXT)(GLenum,GLenum,GLfloat*);
        void       (WINE_GLAPI *p_glGetPixelTransformParameterivEXT)(GLenum,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetPointerIndexedvEXT)(GLenum,GLuint,void**);
        void       (WINE_GLAPI *p_glGetPointeri_vEXT)(GLenum,GLuint,void**);
        void       (WINE_GLAPI *p_glGetPointervEXT)(GLenum,void**);
        void       (WINE_GLAPI *p_glGetProgramBinary)(GLuint,GLsizei,GLsizei*,GLenum*,void*);
        void       (WINE_GLAPI *p_glGetProgramEnvParameterIivNV)(GLenum,GLuint,GLint*);
        void       (WINE_GLAPI *p_glGetProgramEnvParameterIuivNV)(GLenum,GLuint,GLuint*);
        void       (WINE_GLAPI *p_glGetProgramEnvParameterdvARB)(GLenum,GLuint,GLdouble*);
        void       (WINE_GLAPI *p_glGetProgramEnvParameterfvARB)(GLenum,GLuint,GLfloat*);
        void       (WINE_GLAPI *p_glGetProgramInfoLog)(GLuint,GLsizei,GLsizei*,GLchar*);
        void       (WINE_GLAPI *p_glGetProgramInterfaceiv)(GLuint,GLenum,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetProgramLocalParameterIivNV)(GLenum,GLuint,GLint*);
        void       (WINE_GLAPI *p_glGetProgramLocalParameterIuivNV)(GLenum,GLuint,GLuint*);
        void       (WINE_GLAPI *p_glGetProgramLocalParameterdvARB)(GLenum,GLuint,GLdouble*);
        void       (WINE_GLAPI *p_glGetProgramLocalParameterfvARB)(GLenum,GLuint,GLfloat*);
        void       (WINE_GLAPI *p_glGetProgramNamedParameterdvNV)(GLuint,GLsizei,const GLubyte*,GLdouble*);
        void       (WINE_GLAPI *p_glGetProgramNamedParameterfvNV)(GLuint,GLsizei,const GLubyte*,GLfloat*);
        void       (WINE_GLAPI *p_glGetProgramParameterdvNV)(GLenum,GLuint,GLenum,GLdouble*);
        void       (WINE_GLAPI *p_glGetProgramParameterfvNV)(GLenum,GLuint,GLenum,GLfloat*);
        void       (WINE_GLAPI *p_glGetProgramPipelineInfoLog)(GLuint,GLsizei,GLsizei*,GLchar*);
        void       (WINE_GLAPI *p_glGetProgramPipelineiv)(GLuint,GLenum,GLint*);
        GLuint     (WINE_GLAPI *p_glGetProgramResourceIndex)(GLuint,GLenum,const GLchar*);
        GLint      (WINE_GLAPI *p_glGetProgramResourceLocation)(GLuint,GLenum,const GLchar*);
        GLint      (WINE_GLAPI *p_glGetProgramResourceLocationIndex)(GLuint,GLenum,const GLchar*);
        void       (WINE_GLAPI *p_glGetProgramResourceName)(GLuint,GLenum,GLuint,GLsizei,GLsizei*,GLchar*);
        void       (WINE_GLAPI *p_glGetProgramResourcefvNV)(GLuint,GLenum,GLuint,GLsizei,const GLenum*,GLsizei,GLsizei*,GLfloat*);
        void       (WINE_GLAPI *p_glGetProgramResourceiv)(GLuint,GLenum,GLuint,GLsizei,const GLenum*,GLsizei,GLsizei*,GLint*);
        void       (WINE_GLAPI *p_glGetProgramStageiv)(GLuint,GLenum,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetProgramStringARB)(GLenum,GLenum,void*);
        void       (WINE_GLAPI *p_glGetProgramStringNV)(GLuint,GLenum,GLubyte*);
        void       (WINE_GLAPI *p_glGetProgramSubroutineParameteruivNV)(GLenum,GLuint,GLuint*);
        void       (WINE_GLAPI *p_glGetProgramiv)(GLuint,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetProgramivARB)(GLenum,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetProgramivNV)(GLuint,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetQueryBufferObjecti64v)(GLuint,GLuint,GLenum,GLintptr);
        void       (WINE_GLAPI *p_glGetQueryBufferObjectiv)(GLuint,GLuint,GLenum,GLintptr);
        void       (WINE_GLAPI *p_glGetQueryBufferObjectui64v)(GLuint,GLuint,GLenum,GLintptr);
        void       (WINE_GLAPI *p_glGetQueryBufferObjectuiv)(GLuint,GLuint,GLenum,GLintptr);
        void       (WINE_GLAPI *p_glGetQueryIndexediv)(GLenum,GLuint,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetQueryObjecti64v)(GLuint,GLenum,GLint64*);
        void       (WINE_GLAPI *p_glGetQueryObjecti64vEXT)(GLuint,GLenum,GLint64*);
        void       (WINE_GLAPI *p_glGetQueryObjectiv)(GLuint,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetQueryObjectivARB)(GLuint,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetQueryObjectui64v)(GLuint,GLenum,GLuint64*);
        void       (WINE_GLAPI *p_glGetQueryObjectui64vEXT)(GLuint,GLenum,GLuint64*);
        void       (WINE_GLAPI *p_glGetQueryObjectuiv)(GLuint,GLenum,GLuint*);
        void       (WINE_GLAPI *p_glGetQueryObjectuivARB)(GLuint,GLenum,GLuint*);
        void       (WINE_GLAPI *p_glGetQueryiv)(GLenum,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetQueryivARB)(GLenum,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetRenderbufferParameteriv)(GLenum,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetRenderbufferParameterivEXT)(GLenum,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetSamplerParameterIiv)(GLuint,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetSamplerParameterIuiv)(GLuint,GLenum,GLuint*);
        void       (WINE_GLAPI *p_glGetSamplerParameterfv)(GLuint,GLenum,GLfloat*);
        void       (WINE_GLAPI *p_glGetSamplerParameteriv)(GLuint,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetSeparableFilter)(GLenum,GLenum,GLenum,void*,void*,void*);
        void       (WINE_GLAPI *p_glGetSeparableFilterEXT)(GLenum,GLenum,GLenum,void*,void*,void*);
        void       (WINE_GLAPI *p_glGetShaderInfoLog)(GLuint,GLsizei,GLsizei*,GLchar*);
        void       (WINE_GLAPI *p_glGetShaderPrecisionFormat)(GLenum,GLenum,GLint*,GLint*);
        void       (WINE_GLAPI *p_glGetShaderSource)(GLuint,GLsizei,GLsizei*,GLchar*);
        void       (WINE_GLAPI *p_glGetShaderSourceARB)(GLhandleARB,GLsizei,GLsizei*,GLcharARB*);
        void       (WINE_GLAPI *p_glGetShaderiv)(GLuint,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetSharpenTexFuncSGIS)(GLenum,GLfloat*);
        GLushort   (WINE_GLAPI *p_glGetStageIndexNV)(GLenum);
        const GLubyte* (WINE_GLAPI *p_glGetStringi)(GLenum,GLuint);
        GLuint     (WINE_GLAPI *p_glGetSubroutineIndex)(GLuint,GLenum,const GLchar*);
        GLint      (WINE_GLAPI *p_glGetSubroutineUniformLocation)(GLuint,GLenum,const GLchar*);
        void       (WINE_GLAPI *p_glGetSynciv)(GLsync,GLenum,GLsizei,GLsizei*,GLint*);
        void       (WINE_GLAPI *p_glGetTexBumpParameterfvATI)(GLenum,GLfloat*);
        void       (WINE_GLAPI *p_glGetTexBumpParameterivATI)(GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetTexEnvxvOES)(GLenum,GLenum,GLfixed*);
        void       (WINE_GLAPI *p_glGetTexFilterFuncSGIS)(GLenum,GLenum,GLfloat*);
        void       (WINE_GLAPI *p_glGetTexGenxvOES)(GLenum,GLenum,GLfixed*);
        void       (WINE_GLAPI *p_glGetTexLevelParameterxvOES)(GLenum,GLint,GLenum,GLfixed*);
        void       (WINE_GLAPI *p_glGetTexParameterIiv)(GLenum,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetTexParameterIivEXT)(GLenum,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetTexParameterIuiv)(GLenum,GLenum,GLuint*);
        void       (WINE_GLAPI *p_glGetTexParameterIuivEXT)(GLenum,GLenum,GLuint*);
        void       (WINE_GLAPI *p_glGetTexParameterPointervAPPLE)(GLenum,GLenum,void**);
        void       (WINE_GLAPI *p_glGetTexParameterxvOES)(GLenum,GLenum,GLfixed*);
        GLuint64   (WINE_GLAPI *p_glGetTextureHandleARB)(GLuint);
        GLuint64   (WINE_GLAPI *p_glGetTextureHandleNV)(GLuint);
        void       (WINE_GLAPI *p_glGetTextureImage)(GLuint,GLint,GLenum,GLenum,GLsizei,void*);
        void       (WINE_GLAPI *p_glGetTextureImageEXT)(GLuint,GLenum,GLint,GLenum,GLenum,void*);
        void       (WINE_GLAPI *p_glGetTextureLevelParameterfv)(GLuint,GLint,GLenum,GLfloat*);
        void       (WINE_GLAPI *p_glGetTextureLevelParameterfvEXT)(GLuint,GLenum,GLint,GLenum,GLfloat*);
        void       (WINE_GLAPI *p_glGetTextureLevelParameteriv)(GLuint,GLint,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetTextureLevelParameterivEXT)(GLuint,GLenum,GLint,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetTextureParameterIiv)(GLuint,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetTextureParameterIivEXT)(GLuint,GLenum,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetTextureParameterIuiv)(GLuint,GLenum,GLuint*);
        void       (WINE_GLAPI *p_glGetTextureParameterIuivEXT)(GLuint,GLenum,GLenum,GLuint*);
        void       (WINE_GLAPI *p_glGetTextureParameterfv)(GLuint,GLenum,GLfloat*);
        void       (WINE_GLAPI *p_glGetTextureParameterfvEXT)(GLuint,GLenum,GLenum,GLfloat*);
        void       (WINE_GLAPI *p_glGetTextureParameteriv)(GLuint,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetTextureParameterivEXT)(GLuint,GLenum,GLenum,GLint*);
        GLuint64   (WINE_GLAPI *p_glGetTextureSamplerHandleARB)(GLuint,GLuint);
        GLuint64   (WINE_GLAPI *p_glGetTextureSamplerHandleNV)(GLuint,GLuint);
        void       (WINE_GLAPI *p_glGetTextureSubImage)(GLuint,GLint,GLint,GLint,GLint,GLsizei,GLsizei,GLsizei,GLenum,GLenum,GLsizei,void*);
        void       (WINE_GLAPI *p_glGetTrackMatrixivNV)(GLenum,GLuint,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetTransformFeedbackVarying)(GLuint,GLuint,GLsizei,GLsizei*,GLsizei*,GLenum*,GLchar*);
        void       (WINE_GLAPI *p_glGetTransformFeedbackVaryingEXT)(GLuint,GLuint,GLsizei,GLsizei*,GLsizei*,GLenum*,GLchar*);
        void       (WINE_GLAPI *p_glGetTransformFeedbackVaryingNV)(GLuint,GLuint,GLint*);
        void       (WINE_GLAPI *p_glGetTransformFeedbacki64_v)(GLuint,GLenum,GLuint,GLint64*);
        void       (WINE_GLAPI *p_glGetTransformFeedbacki_v)(GLuint,GLenum,GLuint,GLint*);
        void       (WINE_GLAPI *p_glGetTransformFeedbackiv)(GLuint,GLenum,GLint*);
        GLuint     (WINE_GLAPI *p_glGetUniformBlockIndex)(GLuint,const GLchar*);
        GLint      (WINE_GLAPI *p_glGetUniformBufferSizeEXT)(GLuint,GLint);
        void       (WINE_GLAPI *p_glGetUniformIndices)(GLuint,GLsizei,const GLchar*const*,GLuint*);
        GLint      (WINE_GLAPI *p_glGetUniformLocation)(GLuint,const GLchar*);
        GLint      (WINE_GLAPI *p_glGetUniformLocationARB)(GLhandleARB,const GLcharARB*);
        GLintptr   (WINE_GLAPI *p_glGetUniformOffsetEXT)(GLuint,GLint);
        void       (WINE_GLAPI *p_glGetUniformSubroutineuiv)(GLenum,GLint,GLuint*);
        void       (WINE_GLAPI *p_glGetUniformdv)(GLuint,GLint,GLdouble*);
        void       (WINE_GLAPI *p_glGetUniformfv)(GLuint,GLint,GLfloat*);
        void       (WINE_GLAPI *p_glGetUniformfvARB)(GLhandleARB,GLint,GLfloat*);
        void       (WINE_GLAPI *p_glGetUniformi64vARB)(GLuint,GLint,GLint64*);
        void       (WINE_GLAPI *p_glGetUniformi64vNV)(GLuint,GLint,GLint64EXT*);
        void       (WINE_GLAPI *p_glGetUniformiv)(GLuint,GLint,GLint*);
        void       (WINE_GLAPI *p_glGetUniformivARB)(GLhandleARB,GLint,GLint*);
        void       (WINE_GLAPI *p_glGetUniformui64vARB)(GLuint,GLint,GLuint64*);
        void       (WINE_GLAPI *p_glGetUniformui64vNV)(GLuint,GLint,GLuint64EXT*);
        void       (WINE_GLAPI *p_glGetUniformuiv)(GLuint,GLint,GLuint*);
        void       (WINE_GLAPI *p_glGetUniformuivEXT)(GLuint,GLint,GLuint*);
        void       (WINE_GLAPI *p_glGetVariantArrayObjectfvATI)(GLuint,GLenum,GLfloat*);
        void       (WINE_GLAPI *p_glGetVariantArrayObjectivATI)(GLuint,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetVariantBooleanvEXT)(GLuint,GLenum,GLboolean*);
        void       (WINE_GLAPI *p_glGetVariantFloatvEXT)(GLuint,GLenum,GLfloat*);
        void       (WINE_GLAPI *p_glGetVariantIntegervEXT)(GLuint,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetVariantPointervEXT)(GLuint,GLenum,void**);
        GLint      (WINE_GLAPI *p_glGetVaryingLocationNV)(GLuint,const GLchar*);
        void       (WINE_GLAPI *p_glGetVertexArrayIndexed64iv)(GLuint,GLuint,GLenum,GLint64*);
        void       (WINE_GLAPI *p_glGetVertexArrayIndexediv)(GLuint,GLuint,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetVertexArrayIntegeri_vEXT)(GLuint,GLuint,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetVertexArrayIntegervEXT)(GLuint,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetVertexArrayPointeri_vEXT)(GLuint,GLuint,GLenum,void**);
        void       (WINE_GLAPI *p_glGetVertexArrayPointervEXT)(GLuint,GLenum,void**);
        void       (WINE_GLAPI *p_glGetVertexArrayiv)(GLuint,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetVertexAttribArrayObjectfvATI)(GLuint,GLenum,GLfloat*);
        void       (WINE_GLAPI *p_glGetVertexAttribArrayObjectivATI)(GLuint,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetVertexAttribIiv)(GLuint,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetVertexAttribIivEXT)(GLuint,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetVertexAttribIuiv)(GLuint,GLenum,GLuint*);
        void       (WINE_GLAPI *p_glGetVertexAttribIuivEXT)(GLuint,GLenum,GLuint*);
        void       (WINE_GLAPI *p_glGetVertexAttribLdv)(GLuint,GLenum,GLdouble*);
        void       (WINE_GLAPI *p_glGetVertexAttribLdvEXT)(GLuint,GLenum,GLdouble*);
        void       (WINE_GLAPI *p_glGetVertexAttribLi64vNV)(GLuint,GLenum,GLint64EXT*);
        void       (WINE_GLAPI *p_glGetVertexAttribLui64vARB)(GLuint,GLenum,GLuint64EXT*);
        void       (WINE_GLAPI *p_glGetVertexAttribLui64vNV)(GLuint,GLenum,GLuint64EXT*);
        void       (WINE_GLAPI *p_glGetVertexAttribPointerv)(GLuint,GLenum,void**);
        void       (WINE_GLAPI *p_glGetVertexAttribPointervARB)(GLuint,GLenum,void**);
        void       (WINE_GLAPI *p_glGetVertexAttribPointervNV)(GLuint,GLenum,void**);
        void       (WINE_GLAPI *p_glGetVertexAttribdv)(GLuint,GLenum,GLdouble*);
        void       (WINE_GLAPI *p_glGetVertexAttribdvARB)(GLuint,GLenum,GLdouble*);
        void       (WINE_GLAPI *p_glGetVertexAttribdvNV)(GLuint,GLenum,GLdouble*);
        void       (WINE_GLAPI *p_glGetVertexAttribfv)(GLuint,GLenum,GLfloat*);
        void       (WINE_GLAPI *p_glGetVertexAttribfvARB)(GLuint,GLenum,GLfloat*);
        void       (WINE_GLAPI *p_glGetVertexAttribfvNV)(GLuint,GLenum,GLfloat*);
        void       (WINE_GLAPI *p_glGetVertexAttribiv)(GLuint,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetVertexAttribivARB)(GLuint,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetVertexAttribivNV)(GLuint,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetVideoCaptureStreamdvNV)(GLuint,GLuint,GLenum,GLdouble*);
        void       (WINE_GLAPI *p_glGetVideoCaptureStreamfvNV)(GLuint,GLuint,GLenum,GLfloat*);
        void       (WINE_GLAPI *p_glGetVideoCaptureStreamivNV)(GLuint,GLuint,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetVideoCaptureivNV)(GLuint,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetVideoi64vNV)(GLuint,GLenum,GLint64EXT*);
        void       (WINE_GLAPI *p_glGetVideoivNV)(GLuint,GLenum,GLint*);
        void       (WINE_GLAPI *p_glGetVideoui64vNV)(GLuint,GLenum,GLuint64EXT*);
        void       (WINE_GLAPI *p_glGetVideouivNV)(GLuint,GLenum,GLuint*);
        void       (WINE_GLAPI *p_glGetnColorTable)(GLenum,GLenum,GLenum,GLsizei,void*);
        void       (WINE_GLAPI *p_glGetnColorTableARB)(GLenum,GLenum,GLenum,GLsizei,void*);
        void       (WINE_GLAPI *p_glGetnCompressedTexImage)(GLenum,GLint,GLsizei,void*);
        void       (WINE_GLAPI *p_glGetnCompressedTexImageARB)(GLenum,GLint,GLsizei,void*);
        void       (WINE_GLAPI *p_glGetnConvolutionFilter)(GLenum,GLenum,GLenum,GLsizei,void*);
        void       (WINE_GLAPI *p_glGetnConvolutionFilterARB)(GLenum,GLenum,GLenum,GLsizei,void*);
        void       (WINE_GLAPI *p_glGetnHistogram)(GLenum,GLboolean,GLenum,GLenum,GLsizei,void*);
        void       (WINE_GLAPI *p_glGetnHistogramARB)(GLenum,GLboolean,GLenum,GLenum,GLsizei,void*);
        void       (WINE_GLAPI *p_glGetnMapdv)(GLenum,GLenum,GLsizei,GLdouble*);
        void       (WINE_GLAPI *p_glGetnMapdvARB)(GLenum,GLenum,GLsizei,GLdouble*);
        void       (WINE_GLAPI *p_glGetnMapfv)(GLenum,GLenum,GLsizei,GLfloat*);
        void       (WINE_GLAPI *p_glGetnMapfvARB)(GLenum,GLenum,GLsizei,GLfloat*);
        void       (WINE_GLAPI *p_glGetnMapiv)(GLenum,GLenum,GLsizei,GLint*);
        void       (WINE_GLAPI *p_glGetnMapivARB)(GLenum,GLenum,GLsizei,GLint*);
        void       (WINE_GLAPI *p_glGetnMinmax)(GLenum,GLboolean,GLenum,GLenum,GLsizei,void*);
        void       (WINE_GLAPI *p_glGetnMinmaxARB)(GLenum,GLboolean,GLenum,GLenum,GLsizei,void*);
        void       (WINE_GLAPI *p_glGetnPixelMapfv)(GLenum,GLsizei,GLfloat*);
        void       (WINE_GLAPI *p_glGetnPixelMapfvARB)(GLenum,GLsizei,GLfloat*);
        void       (WINE_GLAPI *p_glGetnPixelMapuiv)(GLenum,GLsizei,GLuint*);
        void       (WINE_GLAPI *p_glGetnPixelMapuivARB)(GLenum,GLsizei,GLuint*);
        void       (WINE_GLAPI *p_glGetnPixelMapusv)(GLenum,GLsizei,GLushort*);
        void       (WINE_GLAPI *p_glGetnPixelMapusvARB)(GLenum,GLsizei,GLushort*);
        void       (WINE_GLAPI *p_glGetnPolygonStipple)(GLsizei,GLubyte*);
        void       (WINE_GLAPI *p_glGetnPolygonStippleARB)(GLsizei,GLubyte*);
        void       (WINE_GLAPI *p_glGetnSeparableFilter)(GLenum,GLenum,GLenum,GLsizei,void*,GLsizei,void*,void*);
        void       (WINE_GLAPI *p_glGetnSeparableFilterARB)(GLenum,GLenum,GLenum,GLsizei,void*,GLsizei,void*,void*);
        void       (WINE_GLAPI *p_glGetnTexImage)(GLenum,GLint,GLenum,GLenum,GLsizei,void*);
        void       (WINE_GLAPI *p_glGetnTexImageARB)(GLenum,GLint,GLenum,GLenum,GLsizei,void*);
        void       (WINE_GLAPI *p_glGetnUniformdv)(GLuint,GLint,GLsizei,GLdouble*);
        void       (WINE_GLAPI *p_glGetnUniformdvARB)(GLuint,GLint,GLsizei,GLdouble*);
        void       (WINE_GLAPI *p_glGetnUniformfv)(GLuint,GLint,GLsizei,GLfloat*);
        void       (WINE_GLAPI *p_glGetnUniformfvARB)(GLuint,GLint,GLsizei,GLfloat*);
        void       (WINE_GLAPI *p_glGetnUniformi64vARB)(GLuint,GLint,GLsizei,GLint64*);
        void       (WINE_GLAPI *p_glGetnUniformiv)(GLuint,GLint,GLsizei,GLint*);
        void       (WINE_GLAPI *p_glGetnUniformivARB)(GLuint,GLint,GLsizei,GLint*);
        void       (WINE_GLAPI *p_glGetnUniformui64vARB)(GLuint,GLint,GLsizei,GLuint64*);
        void       (WINE_GLAPI *p_glGetnUniformuiv)(GLuint,GLint,GLsizei,GLuint*);
        void       (WINE_GLAPI *p_glGetnUniformuivARB)(GLuint,GLint,GLsizei,GLuint*);
        void       (WINE_GLAPI *p_glGlobalAlphaFactorbSUN)(GLbyte);
        void       (WINE_GLAPI *p_glGlobalAlphaFactordSUN)(GLdouble);
        void       (WINE_GLAPI *p_glGlobalAlphaFactorfSUN)(GLfloat);
        void       (WINE_GLAPI *p_glGlobalAlphaFactoriSUN)(GLint);
        void       (WINE_GLAPI *p_glGlobalAlphaFactorsSUN)(GLshort);
        void       (WINE_GLAPI *p_glGlobalAlphaFactorubSUN)(GLubyte);
        void       (WINE_GLAPI *p_glGlobalAlphaFactoruiSUN)(GLuint);
        void       (WINE_GLAPI *p_glGlobalAlphaFactorusSUN)(GLushort);
        void       (WINE_GLAPI *p_glHintPGI)(GLenum,GLint);
        void       (WINE_GLAPI *p_glHistogram)(GLenum,GLsizei,GLenum,GLboolean);
        void       (WINE_GLAPI *p_glHistogramEXT)(GLenum,GLsizei,GLenum,GLboolean);
        void       (WINE_GLAPI *p_glIglooInterfaceSGIX)(GLenum,const void*);
        void       (WINE_GLAPI *p_glImageTransformParameterfHP)(GLenum,GLenum,GLfloat);
        void       (WINE_GLAPI *p_glImageTransformParameterfvHP)(GLenum,GLenum,const GLfloat*);
        void       (WINE_GLAPI *p_glImageTransformParameteriHP)(GLenum,GLenum,GLint);
        void       (WINE_GLAPI *p_glImageTransformParameterivHP)(GLenum,GLenum,const GLint*);
        GLsync     (WINE_GLAPI *p_glImportSyncEXT)(GLenum,GLintptr,GLbitfield);
        void       (WINE_GLAPI *p_glIndexFormatNV)(GLenum,GLsizei);
        void       (WINE_GLAPI *p_glIndexFuncEXT)(GLenum,GLclampf);
        void       (WINE_GLAPI *p_glIndexMaterialEXT)(GLenum,GLenum);
        void       (WINE_GLAPI *p_glIndexPointerEXT)(GLenum,GLsizei,GLsizei,const void*);
        void       (WINE_GLAPI *p_glIndexPointerListIBM)(GLenum,GLint,const void**,GLint);
        void       (WINE_GLAPI *p_glIndexxOES)(GLfixed);
        void       (WINE_GLAPI *p_glIndexxvOES)(const GLfixed*);
        void       (WINE_GLAPI *p_glInsertComponentEXT)(GLuint,GLuint,GLuint);
        void       (WINE_GLAPI *p_glInsertEventMarkerEXT)(GLsizei,const GLchar*);
        void       (WINE_GLAPI *p_glInstrumentsBufferSGIX)(GLsizei,GLint*);
        void       (WINE_GLAPI *p_glInterpolatePathsNV)(GLuint,GLuint,GLuint,GLfloat);
        void       (WINE_GLAPI *p_glInvalidateBufferData)(GLuint);
        void       (WINE_GLAPI *p_glInvalidateBufferSubData)(GLuint,GLintptr,GLsizeiptr);
        void       (WINE_GLAPI *p_glInvalidateFramebuffer)(GLenum,GLsizei,const GLenum*);
        void       (WINE_GLAPI *p_glInvalidateNamedFramebufferData)(GLuint,GLsizei,const GLenum*);
        void       (WINE_GLAPI *p_glInvalidateNamedFramebufferSubData)(GLuint,GLsizei,const GLenum*,GLint,GLint,GLsizei,GLsizei);
        void       (WINE_GLAPI *p_glInvalidateSubFramebuffer)(GLenum,GLsizei,const GLenum*,GLint,GLint,GLsizei,GLsizei);
        void       (WINE_GLAPI *p_glInvalidateTexImage)(GLuint,GLint);
        void       (WINE_GLAPI *p_glInvalidateTexSubImage)(GLuint,GLint,GLint,GLint,GLint,GLsizei,GLsizei,GLsizei);
        GLboolean  (WINE_GLAPI *p_glIsAsyncMarkerSGIX)(GLuint);
        GLboolean  (WINE_GLAPI *p_glIsBuffer)(GLuint);
        GLboolean  (WINE_GLAPI *p_glIsBufferARB)(GLuint);
        GLboolean  (WINE_GLAPI *p_glIsBufferResidentNV)(GLenum);
        GLboolean  (WINE_GLAPI *p_glIsCommandListNV)(GLuint);
        GLboolean  (WINE_GLAPI *p_glIsEnabledIndexedEXT)(GLenum,GLuint);
        GLboolean  (WINE_GLAPI *p_glIsEnabledi)(GLenum,GLuint);
        GLboolean  (WINE_GLAPI *p_glIsFenceAPPLE)(GLuint);
        GLboolean  (WINE_GLAPI *p_glIsFenceNV)(GLuint);
        GLboolean  (WINE_GLAPI *p_glIsFramebuffer)(GLuint);
        GLboolean  (WINE_GLAPI *p_glIsFramebufferEXT)(GLuint);
        GLboolean  (WINE_GLAPI *p_glIsImageHandleResidentARB)(GLuint64);
        GLboolean  (WINE_GLAPI *p_glIsImageHandleResidentNV)(GLuint64);
        GLboolean  (WINE_GLAPI *p_glIsNameAMD)(GLenum,GLuint);
        GLboolean  (WINE_GLAPI *p_glIsNamedBufferResidentNV)(GLuint);
        GLboolean  (WINE_GLAPI *p_glIsNamedStringARB)(GLint,const GLchar*);
        GLboolean  (WINE_GLAPI *p_glIsObjectBufferATI)(GLuint);
        GLboolean  (WINE_GLAPI *p_glIsOcclusionQueryNV)(GLuint);
        GLboolean  (WINE_GLAPI *p_glIsPathNV)(GLuint);
        GLboolean  (WINE_GLAPI *p_glIsPointInFillPathNV)(GLuint,GLuint,GLfloat,GLfloat);
        GLboolean  (WINE_GLAPI *p_glIsPointInStrokePathNV)(GLuint,GLfloat,GLfloat);
        GLboolean  (WINE_GLAPI *p_glIsProgram)(GLuint);
        GLboolean  (WINE_GLAPI *p_glIsProgramARB)(GLuint);
        GLboolean  (WINE_GLAPI *p_glIsProgramNV)(GLuint);
        GLboolean  (WINE_GLAPI *p_glIsProgramPipeline)(GLuint);
        GLboolean  (WINE_GLAPI *p_glIsQuery)(GLuint);
        GLboolean  (WINE_GLAPI *p_glIsQueryARB)(GLuint);
        GLboolean  (WINE_GLAPI *p_glIsRenderbuffer)(GLuint);
        GLboolean  (WINE_GLAPI *p_glIsRenderbufferEXT)(GLuint);
        GLboolean  (WINE_GLAPI *p_glIsSampler)(GLuint);
        GLboolean  (WINE_GLAPI *p_glIsShader)(GLuint);
        GLboolean  (WINE_GLAPI *p_glIsStateNV)(GLuint);
        GLboolean  (WINE_GLAPI *p_glIsSync)(GLsync);
        GLboolean  (WINE_GLAPI *p_glIsTextureEXT)(GLuint);
        GLboolean  (WINE_GLAPI *p_glIsTextureHandleResidentARB)(GLuint64);
        GLboolean  (WINE_GLAPI *p_glIsTextureHandleResidentNV)(GLuint64);
        GLboolean  (WINE_GLAPI *p_glIsTransformFeedback)(GLuint);
        GLboolean  (WINE_GLAPI *p_glIsTransformFeedbackNV)(GLuint);
        GLboolean  (WINE_GLAPI *p_glIsVariantEnabledEXT)(GLuint,GLenum);
        GLboolean  (WINE_GLAPI *p_glIsVertexArray)(GLuint);
        GLboolean  (WINE_GLAPI *p_glIsVertexArrayAPPLE)(GLuint);
        GLboolean  (WINE_GLAPI *p_glIsVertexAttribEnabledAPPLE)(GLuint,GLenum);
        void       (WINE_GLAPI *p_glLabelObjectEXT)(GLenum,GLuint,GLsizei,const GLchar*);
        void       (WINE_GLAPI *p_glLightEnviSGIX)(GLenum,GLint);
        void       (WINE_GLAPI *p_glLightModelxOES)(GLenum,GLfixed);
        void       (WINE_GLAPI *p_glLightModelxvOES)(GLenum,const GLfixed*);
        void       (WINE_GLAPI *p_glLightxOES)(GLenum,GLenum,GLfixed);
        void       (WINE_GLAPI *p_glLightxvOES)(GLenum,GLenum,const GLfixed*);
        void       (WINE_GLAPI *p_glLineWidthxOES)(GLfixed);
        void       (WINE_GLAPI *p_glLinkProgram)(GLuint);
        void       (WINE_GLAPI *p_glLinkProgramARB)(GLhandleARB);
        void       (WINE_GLAPI *p_glListDrawCommandsStatesClientNV)(GLuint,GLuint,const void**,const GLsizei*,const GLuint*,const GLuint*,GLuint);
        void       (WINE_GLAPI *p_glListParameterfSGIX)(GLuint,GLenum,GLfloat);
        void       (WINE_GLAPI *p_glListParameterfvSGIX)(GLuint,GLenum,const GLfloat*);
        void       (WINE_GLAPI *p_glListParameteriSGIX)(GLuint,GLenum,GLint);
        void       (WINE_GLAPI *p_glListParameterivSGIX)(GLuint,GLenum,const GLint*);
        void       (WINE_GLAPI *p_glLoadIdentityDeformationMapSGIX)(GLbitfield);
        void       (WINE_GLAPI *p_glLoadMatrixxOES)(const GLfixed*);
        void       (WINE_GLAPI *p_glLoadProgramNV)(GLenum,GLuint,GLsizei,const GLubyte*);
        void       (WINE_GLAPI *p_glLoadTransposeMatrixd)(const GLdouble*);
        void       (WINE_GLAPI *p_glLoadTransposeMatrixdARB)(const GLdouble*);
        void       (WINE_GLAPI *p_glLoadTransposeMatrixf)(const GLfloat*);
        void       (WINE_GLAPI *p_glLoadTransposeMatrixfARB)(const GLfloat*);
        void       (WINE_GLAPI *p_glLoadTransposeMatrixxOES)(const GLfixed*);
        void       (WINE_GLAPI *p_glLockArraysEXT)(GLint,GLsizei);
        void       (WINE_GLAPI *p_glMTexCoord2fSGIS)(GLenum,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glMTexCoord2fvSGIS)(GLenum,GLfloat *);
        void       (WINE_GLAPI *p_glMakeBufferNonResidentNV)(GLenum);
        void       (WINE_GLAPI *p_glMakeBufferResidentNV)(GLenum,GLenum);
        void       (WINE_GLAPI *p_glMakeImageHandleNonResidentARB)(GLuint64);
        void       (WINE_GLAPI *p_glMakeImageHandleNonResidentNV)(GLuint64);
        void       (WINE_GLAPI *p_glMakeImageHandleResidentARB)(GLuint64,GLenum);
        void       (WINE_GLAPI *p_glMakeImageHandleResidentNV)(GLuint64,GLenum);
        void       (WINE_GLAPI *p_glMakeNamedBufferNonResidentNV)(GLuint);
        void       (WINE_GLAPI *p_glMakeNamedBufferResidentNV)(GLuint,GLenum);
        void       (WINE_GLAPI *p_glMakeTextureHandleNonResidentARB)(GLuint64);
        void       (WINE_GLAPI *p_glMakeTextureHandleNonResidentNV)(GLuint64);
        void       (WINE_GLAPI *p_glMakeTextureHandleResidentARB)(GLuint64);
        void       (WINE_GLAPI *p_glMakeTextureHandleResidentNV)(GLuint64);
        void       (WINE_GLAPI *p_glMap1xOES)(GLenum,GLfixed,GLfixed,GLint,GLint,GLfixed);
        void       (WINE_GLAPI *p_glMap2xOES)(GLenum,GLfixed,GLfixed,GLint,GLint,GLfixed,GLfixed,GLint,GLint,GLfixed);
        void*      (WINE_GLAPI *p_glMapBuffer)(GLenum,GLenum);
        void*      (WINE_GLAPI *p_glMapBufferARB)(GLenum,GLenum);
        void*      (WINE_GLAPI *p_glMapBufferRange)(GLenum,GLintptr,GLsizeiptr,GLbitfield);
        void       (WINE_GLAPI *p_glMapControlPointsNV)(GLenum,GLuint,GLenum,GLsizei,GLsizei,GLint,GLint,GLboolean,const void*);
        void       (WINE_GLAPI *p_glMapGrid1xOES)(GLint,GLfixed,GLfixed);
        void       (WINE_GLAPI *p_glMapGrid2xOES)(GLint,GLfixed,GLfixed,GLfixed,GLfixed);
        void*      (WINE_GLAPI *p_glMapNamedBuffer)(GLuint,GLenum);
        void*      (WINE_GLAPI *p_glMapNamedBufferEXT)(GLuint,GLenum);
        void*      (WINE_GLAPI *p_glMapNamedBufferRange)(GLuint,GLintptr,GLsizeiptr,GLbitfield);
        void*      (WINE_GLAPI *p_glMapNamedBufferRangeEXT)(GLuint,GLintptr,GLsizeiptr,GLbitfield);
        void*      (WINE_GLAPI *p_glMapObjectBufferATI)(GLuint);
        void       (WINE_GLAPI *p_glMapParameterfvNV)(GLenum,GLenum,const GLfloat*);
        void       (WINE_GLAPI *p_glMapParameterivNV)(GLenum,GLenum,const GLint*);
        void*      (WINE_GLAPI *p_glMapTexture2DINTEL)(GLuint,GLint,GLbitfield,GLint*,GLenum*);
        void       (WINE_GLAPI *p_glMapVertexAttrib1dAPPLE)(GLuint,GLuint,GLdouble,GLdouble,GLint,GLint,const GLdouble*);
        void       (WINE_GLAPI *p_glMapVertexAttrib1fAPPLE)(GLuint,GLuint,GLfloat,GLfloat,GLint,GLint,const GLfloat*);
        void       (WINE_GLAPI *p_glMapVertexAttrib2dAPPLE)(GLuint,GLuint,GLdouble,GLdouble,GLint,GLint,GLdouble,GLdouble,GLint,GLint,const GLdouble*);
        void       (WINE_GLAPI *p_glMapVertexAttrib2fAPPLE)(GLuint,GLuint,GLfloat,GLfloat,GLint,GLint,GLfloat,GLfloat,GLint,GLint,const GLfloat*);
        void       (WINE_GLAPI *p_glMaterialxOES)(GLenum,GLenum,GLfixed);
        void       (WINE_GLAPI *p_glMaterialxvOES)(GLenum,GLenum,const GLfixed*);
        void       (WINE_GLAPI *p_glMatrixFrustumEXT)(GLenum,GLdouble,GLdouble,GLdouble,GLdouble,GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glMatrixIndexPointerARB)(GLint,GLenum,GLsizei,const void*);
        void       (WINE_GLAPI *p_glMatrixIndexubvARB)(GLint,const GLubyte*);
        void       (WINE_GLAPI *p_glMatrixIndexuivARB)(GLint,const GLuint*);
        void       (WINE_GLAPI *p_glMatrixIndexusvARB)(GLint,const GLushort*);
        void       (WINE_GLAPI *p_glMatrixLoad3x2fNV)(GLenum,const GLfloat*);
        void       (WINE_GLAPI *p_glMatrixLoad3x3fNV)(GLenum,const GLfloat*);
        void       (WINE_GLAPI *p_glMatrixLoadIdentityEXT)(GLenum);
        void       (WINE_GLAPI *p_glMatrixLoadTranspose3x3fNV)(GLenum,const GLfloat*);
        void       (WINE_GLAPI *p_glMatrixLoadTransposedEXT)(GLenum,const GLdouble*);
        void       (WINE_GLAPI *p_glMatrixLoadTransposefEXT)(GLenum,const GLfloat*);
        void       (WINE_GLAPI *p_glMatrixLoaddEXT)(GLenum,const GLdouble*);
        void       (WINE_GLAPI *p_glMatrixLoadfEXT)(GLenum,const GLfloat*);
        void       (WINE_GLAPI *p_glMatrixMult3x2fNV)(GLenum,const GLfloat*);
        void       (WINE_GLAPI *p_glMatrixMult3x3fNV)(GLenum,const GLfloat*);
        void       (WINE_GLAPI *p_glMatrixMultTranspose3x3fNV)(GLenum,const GLfloat*);
        void       (WINE_GLAPI *p_glMatrixMultTransposedEXT)(GLenum,const GLdouble*);
        void       (WINE_GLAPI *p_glMatrixMultTransposefEXT)(GLenum,const GLfloat*);
        void       (WINE_GLAPI *p_glMatrixMultdEXT)(GLenum,const GLdouble*);
        void       (WINE_GLAPI *p_glMatrixMultfEXT)(GLenum,const GLfloat*);
        void       (WINE_GLAPI *p_glMatrixOrthoEXT)(GLenum,GLdouble,GLdouble,GLdouble,GLdouble,GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glMatrixPopEXT)(GLenum);
        void       (WINE_GLAPI *p_glMatrixPushEXT)(GLenum);
        void       (WINE_GLAPI *p_glMatrixRotatedEXT)(GLenum,GLdouble,GLdouble,GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glMatrixRotatefEXT)(GLenum,GLfloat,GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glMatrixScaledEXT)(GLenum,GLdouble,GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glMatrixScalefEXT)(GLenum,GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glMatrixTranslatedEXT)(GLenum,GLdouble,GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glMatrixTranslatefEXT)(GLenum,GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glMaxShaderCompilerThreadsARB)(GLuint);
        void       (WINE_GLAPI *p_glMemoryBarrier)(GLbitfield);
        void       (WINE_GLAPI *p_glMemoryBarrierByRegion)(GLbitfield);
        void       (WINE_GLAPI *p_glMemoryBarrierEXT)(GLbitfield);
        void       (WINE_GLAPI *p_glMinSampleShading)(GLfloat);
        void       (WINE_GLAPI *p_glMinSampleShadingARB)(GLfloat);
        void       (WINE_GLAPI *p_glMinmax)(GLenum,GLenum,GLboolean);
        void       (WINE_GLAPI *p_glMinmaxEXT)(GLenum,GLenum,GLboolean);
        void       (WINE_GLAPI *p_glMultMatrixxOES)(const GLfixed*);
        void       (WINE_GLAPI *p_glMultTransposeMatrixd)(const GLdouble*);
        void       (WINE_GLAPI *p_glMultTransposeMatrixdARB)(const GLdouble*);
        void       (WINE_GLAPI *p_glMultTransposeMatrixf)(const GLfloat*);
        void       (WINE_GLAPI *p_glMultTransposeMatrixfARB)(const GLfloat*);
        void       (WINE_GLAPI *p_glMultTransposeMatrixxOES)(const GLfixed*);
        void       (WINE_GLAPI *p_glMultiDrawArrays)(GLenum,const GLint*,const GLsizei*,GLsizei);
        void       (WINE_GLAPI *p_glMultiDrawArraysEXT)(GLenum,const GLint*,const GLsizei*,GLsizei);
        void       (WINE_GLAPI *p_glMultiDrawArraysIndirect)(GLenum,const void*,GLsizei,GLsizei);
        void       (WINE_GLAPI *p_glMultiDrawArraysIndirectAMD)(GLenum,const void*,GLsizei,GLsizei);
        void       (WINE_GLAPI *p_glMultiDrawArraysIndirectBindlessCountNV)(GLenum,const void*,GLsizei,GLsizei,GLsizei,GLint);
        void       (WINE_GLAPI *p_glMultiDrawArraysIndirectBindlessNV)(GLenum,const void*,GLsizei,GLsizei,GLint);
        void       (WINE_GLAPI *p_glMultiDrawArraysIndirectCountARB)(GLenum,GLintptr,GLintptr,GLsizei,GLsizei);
        void       (WINE_GLAPI *p_glMultiDrawElementArrayAPPLE)(GLenum,const GLint*,const GLsizei*,GLsizei);
        void       (WINE_GLAPI *p_glMultiDrawElements)(GLenum,const GLsizei*,GLenum,const void*const*,GLsizei);
        void       (WINE_GLAPI *p_glMultiDrawElementsBaseVertex)(GLenum,const GLsizei*,GLenum,const void*const*,GLsizei,const GLint*);
        void       (WINE_GLAPI *p_glMultiDrawElementsEXT)(GLenum,const GLsizei*,GLenum,const void*const*,GLsizei);
        void       (WINE_GLAPI *p_glMultiDrawElementsIndirect)(GLenum,GLenum,const void*,GLsizei,GLsizei);
        void       (WINE_GLAPI *p_glMultiDrawElementsIndirectAMD)(GLenum,GLenum,const void*,GLsizei,GLsizei);
        void       (WINE_GLAPI *p_glMultiDrawElementsIndirectBindlessCountNV)(GLenum,GLenum,const void*,GLsizei,GLsizei,GLsizei,GLint);
        void       (WINE_GLAPI *p_glMultiDrawElementsIndirectBindlessNV)(GLenum,GLenum,const void*,GLsizei,GLsizei,GLint);
        void       (WINE_GLAPI *p_glMultiDrawElementsIndirectCountARB)(GLenum,GLenum,GLintptr,GLintptr,GLsizei,GLsizei);
        void       (WINE_GLAPI *p_glMultiDrawRangeElementArrayAPPLE)(GLenum,GLuint,GLuint,const GLint*,const GLsizei*,GLsizei);
        void       (WINE_GLAPI *p_glMultiModeDrawArraysIBM)(const GLenum*,const GLint*,const GLsizei*,GLsizei,GLint);
        void       (WINE_GLAPI *p_glMultiModeDrawElementsIBM)(const GLenum*,const GLsizei*,GLenum,const void*const*,GLsizei,GLint);
        void       (WINE_GLAPI *p_glMultiTexBufferEXT)(GLenum,GLenum,GLenum,GLuint);
        void       (WINE_GLAPI *p_glMultiTexCoord1bOES)(GLenum,GLbyte);
        void       (WINE_GLAPI *p_glMultiTexCoord1bvOES)(GLenum,const GLbyte*);
        void       (WINE_GLAPI *p_glMultiTexCoord1d)(GLenum,GLdouble);
        void       (WINE_GLAPI *p_glMultiTexCoord1dARB)(GLenum,GLdouble);
        void       (WINE_GLAPI *p_glMultiTexCoord1dSGIS)(GLenum,GLdouble);
        void       (WINE_GLAPI *p_glMultiTexCoord1dv)(GLenum,const GLdouble*);
        void       (WINE_GLAPI *p_glMultiTexCoord1dvARB)(GLenum,const GLdouble*);
        void       (WINE_GLAPI *p_glMultiTexCoord1dvSGIS)(GLenum,GLdouble *);
        void       (WINE_GLAPI *p_glMultiTexCoord1f)(GLenum,GLfloat);
        void       (WINE_GLAPI *p_glMultiTexCoord1fARB)(GLenum,GLfloat);
        void       (WINE_GLAPI *p_glMultiTexCoord1fSGIS)(GLenum,GLfloat);
        void       (WINE_GLAPI *p_glMultiTexCoord1fv)(GLenum,const GLfloat*);
        void       (WINE_GLAPI *p_glMultiTexCoord1fvARB)(GLenum,const GLfloat*);
        void       (WINE_GLAPI *p_glMultiTexCoord1fvSGIS)(GLenum,const GLfloat *);
        void       (WINE_GLAPI *p_glMultiTexCoord1hNV)(GLenum,GLhalfNV);
        void       (WINE_GLAPI *p_glMultiTexCoord1hvNV)(GLenum,const GLhalfNV*);
        void       (WINE_GLAPI *p_glMultiTexCoord1i)(GLenum,GLint);
        void       (WINE_GLAPI *p_glMultiTexCoord1iARB)(GLenum,GLint);
        void       (WINE_GLAPI *p_glMultiTexCoord1iSGIS)(GLenum,GLint);
        void       (WINE_GLAPI *p_glMultiTexCoord1iv)(GLenum,const GLint*);
        void       (WINE_GLAPI *p_glMultiTexCoord1ivARB)(GLenum,const GLint*);
        void       (WINE_GLAPI *p_glMultiTexCoord1ivSGIS)(GLenum,GLint *);
        void       (WINE_GLAPI *p_glMultiTexCoord1s)(GLenum,GLshort);
        void       (WINE_GLAPI *p_glMultiTexCoord1sARB)(GLenum,GLshort);
        void       (WINE_GLAPI *p_glMultiTexCoord1sSGIS)(GLenum,GLshort);
        void       (WINE_GLAPI *p_glMultiTexCoord1sv)(GLenum,const GLshort*);
        void       (WINE_GLAPI *p_glMultiTexCoord1svARB)(GLenum,const GLshort*);
        void       (WINE_GLAPI *p_glMultiTexCoord1svSGIS)(GLenum,GLshort *);
        void       (WINE_GLAPI *p_glMultiTexCoord1xOES)(GLenum,GLfixed);
        void       (WINE_GLAPI *p_glMultiTexCoord1xvOES)(GLenum,const GLfixed*);
        void       (WINE_GLAPI *p_glMultiTexCoord2bOES)(GLenum,GLbyte,GLbyte);
        void       (WINE_GLAPI *p_glMultiTexCoord2bvOES)(GLenum,const GLbyte*);
        void       (WINE_GLAPI *p_glMultiTexCoord2d)(GLenum,GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glMultiTexCoord2dARB)(GLenum,GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glMultiTexCoord2dSGIS)(GLenum,GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glMultiTexCoord2dv)(GLenum,const GLdouble*);
        void       (WINE_GLAPI *p_glMultiTexCoord2dvARB)(GLenum,const GLdouble*);
        void       (WINE_GLAPI *p_glMultiTexCoord2dvSGIS)(GLenum,GLdouble *);
        void       (WINE_GLAPI *p_glMultiTexCoord2f)(GLenum,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glMultiTexCoord2fARB)(GLenum,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glMultiTexCoord2fSGIS)(GLenum,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glMultiTexCoord2fv)(GLenum,const GLfloat*);
        void       (WINE_GLAPI *p_glMultiTexCoord2fvARB)(GLenum,const GLfloat*);
        void       (WINE_GLAPI *p_glMultiTexCoord2fvSGIS)(GLenum,GLfloat *);
        void       (WINE_GLAPI *p_glMultiTexCoord2hNV)(GLenum,GLhalfNV,GLhalfNV);
        void       (WINE_GLAPI *p_glMultiTexCoord2hvNV)(GLenum,const GLhalfNV*);
        void       (WINE_GLAPI *p_glMultiTexCoord2i)(GLenum,GLint,GLint);
        void       (WINE_GLAPI *p_glMultiTexCoord2iARB)(GLenum,GLint,GLint);
        void       (WINE_GLAPI *p_glMultiTexCoord2iSGIS)(GLenum,GLint,GLint);
        void       (WINE_GLAPI *p_glMultiTexCoord2iv)(GLenum,const GLint*);
        void       (WINE_GLAPI *p_glMultiTexCoord2ivARB)(GLenum,const GLint*);
        void       (WINE_GLAPI *p_glMultiTexCoord2ivSGIS)(GLenum,GLint *);
        void       (WINE_GLAPI *p_glMultiTexCoord2s)(GLenum,GLshort,GLshort);
        void       (WINE_GLAPI *p_glMultiTexCoord2sARB)(GLenum,GLshort,GLshort);
        void       (WINE_GLAPI *p_glMultiTexCoord2sSGIS)(GLenum,GLshort,GLshort);
        void       (WINE_GLAPI *p_glMultiTexCoord2sv)(GLenum,const GLshort*);
        void       (WINE_GLAPI *p_glMultiTexCoord2svARB)(GLenum,const GLshort*);
        void       (WINE_GLAPI *p_glMultiTexCoord2svSGIS)(GLenum,GLshort *);
        void       (WINE_GLAPI *p_glMultiTexCoord2xOES)(GLenum,GLfixed,GLfixed);
        void       (WINE_GLAPI *p_glMultiTexCoord2xvOES)(GLenum,const GLfixed*);
        void       (WINE_GLAPI *p_glMultiTexCoord3bOES)(GLenum,GLbyte,GLbyte,GLbyte);
        void       (WINE_GLAPI *p_glMultiTexCoord3bvOES)(GLenum,const GLbyte*);
        void       (WINE_GLAPI *p_glMultiTexCoord3d)(GLenum,GLdouble,GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glMultiTexCoord3dARB)(GLenum,GLdouble,GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glMultiTexCoord3dSGIS)(GLenum,GLdouble,GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glMultiTexCoord3dv)(GLenum,const GLdouble*);
        void       (WINE_GLAPI *p_glMultiTexCoord3dvARB)(GLenum,const GLdouble*);
        void       (WINE_GLAPI *p_glMultiTexCoord3dvSGIS)(GLenum,GLdouble *);
        void       (WINE_GLAPI *p_glMultiTexCoord3f)(GLenum,GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glMultiTexCoord3fARB)(GLenum,GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glMultiTexCoord3fSGIS)(GLenum,GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glMultiTexCoord3fv)(GLenum,const GLfloat*);
        void       (WINE_GLAPI *p_glMultiTexCoord3fvARB)(GLenum,const GLfloat*);
        void       (WINE_GLAPI *p_glMultiTexCoord3fvSGIS)(GLenum,GLfloat *);
        void       (WINE_GLAPI *p_glMultiTexCoord3hNV)(GLenum,GLhalfNV,GLhalfNV,GLhalfNV);
        void       (WINE_GLAPI *p_glMultiTexCoord3hvNV)(GLenum,const GLhalfNV*);
        void       (WINE_GLAPI *p_glMultiTexCoord3i)(GLenum,GLint,GLint,GLint);
        void       (WINE_GLAPI *p_glMultiTexCoord3iARB)(GLenum,GLint,GLint,GLint);
        void       (WINE_GLAPI *p_glMultiTexCoord3iSGIS)(GLenum,GLint,GLint,GLint);
        void       (WINE_GLAPI *p_glMultiTexCoord3iv)(GLenum,const GLint*);
        void       (WINE_GLAPI *p_glMultiTexCoord3ivARB)(GLenum,const GLint*);
        void       (WINE_GLAPI *p_glMultiTexCoord3ivSGIS)(GLenum,GLint *);
        void       (WINE_GLAPI *p_glMultiTexCoord3s)(GLenum,GLshort,GLshort,GLshort);
        void       (WINE_GLAPI *p_glMultiTexCoord3sARB)(GLenum,GLshort,GLshort,GLshort);
        void       (WINE_GLAPI *p_glMultiTexCoord3sSGIS)(GLenum,GLshort,GLshort,GLshort);
        void       (WINE_GLAPI *p_glMultiTexCoord3sv)(GLenum,const GLshort*);
        void       (WINE_GLAPI *p_glMultiTexCoord3svARB)(GLenum,const GLshort*);
        void       (WINE_GLAPI *p_glMultiTexCoord3svSGIS)(GLenum,GLshort *);
        void       (WINE_GLAPI *p_glMultiTexCoord3xOES)(GLenum,GLfixed,GLfixed,GLfixed);
        void       (WINE_GLAPI *p_glMultiTexCoord3xvOES)(GLenum,const GLfixed*);
        void       (WINE_GLAPI *p_glMultiTexCoord4bOES)(GLenum,GLbyte,GLbyte,GLbyte,GLbyte);
        void       (WINE_GLAPI *p_glMultiTexCoord4bvOES)(GLenum,const GLbyte*);
        void       (WINE_GLAPI *p_glMultiTexCoord4d)(GLenum,GLdouble,GLdouble,GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glMultiTexCoord4dARB)(GLenum,GLdouble,GLdouble,GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glMultiTexCoord4dSGIS)(GLenum,GLdouble,GLdouble,GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glMultiTexCoord4dv)(GLenum,const GLdouble*);
        void       (WINE_GLAPI *p_glMultiTexCoord4dvARB)(GLenum,const GLdouble*);
        void       (WINE_GLAPI *p_glMultiTexCoord4dvSGIS)(GLenum,GLdouble *);
        void       (WINE_GLAPI *p_glMultiTexCoord4f)(GLenum,GLfloat,GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glMultiTexCoord4fARB)(GLenum,GLfloat,GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glMultiTexCoord4fSGIS)(GLenum,GLfloat,GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glMultiTexCoord4fv)(GLenum,const GLfloat*);
        void       (WINE_GLAPI *p_glMultiTexCoord4fvARB)(GLenum,const GLfloat*);
        void       (WINE_GLAPI *p_glMultiTexCoord4fvSGIS)(GLenum,GLfloat *);
        void       (WINE_GLAPI *p_glMultiTexCoord4hNV)(GLenum,GLhalfNV,GLhalfNV,GLhalfNV,GLhalfNV);
        void       (WINE_GLAPI *p_glMultiTexCoord4hvNV)(GLenum,const GLhalfNV*);
        void       (WINE_GLAPI *p_glMultiTexCoord4i)(GLenum,GLint,GLint,GLint,GLint);
        void       (WINE_GLAPI *p_glMultiTexCoord4iARB)(GLenum,GLint,GLint,GLint,GLint);
        void       (WINE_GLAPI *p_glMultiTexCoord4iSGIS)(GLenum,GLint,GLint,GLint,GLint);
        void       (WINE_GLAPI *p_glMultiTexCoord4iv)(GLenum,const GLint*);
        void       (WINE_GLAPI *p_glMultiTexCoord4ivARB)(GLenum,const GLint*);
        void       (WINE_GLAPI *p_glMultiTexCoord4ivSGIS)(GLenum,GLint *);
        void       (WINE_GLAPI *p_glMultiTexCoord4s)(GLenum,GLshort,GLshort,GLshort,GLshort);
        void       (WINE_GLAPI *p_glMultiTexCoord4sARB)(GLenum,GLshort,GLshort,GLshort,GLshort);
        void       (WINE_GLAPI *p_glMultiTexCoord4sSGIS)(GLenum,GLshort,GLshort,GLshort,GLshort);
        void       (WINE_GLAPI *p_glMultiTexCoord4sv)(GLenum,const GLshort*);
        void       (WINE_GLAPI *p_glMultiTexCoord4svARB)(GLenum,const GLshort*);
        void       (WINE_GLAPI *p_glMultiTexCoord4svSGIS)(GLenum,GLshort *);
        void       (WINE_GLAPI *p_glMultiTexCoord4xOES)(GLenum,GLfixed,GLfixed,GLfixed,GLfixed);
        void       (WINE_GLAPI *p_glMultiTexCoord4xvOES)(GLenum,const GLfixed*);
        void       (WINE_GLAPI *p_glMultiTexCoordP1ui)(GLenum,GLenum,GLuint);
        void       (WINE_GLAPI *p_glMultiTexCoordP1uiv)(GLenum,GLenum,const GLuint*);
        void       (WINE_GLAPI *p_glMultiTexCoordP2ui)(GLenum,GLenum,GLuint);
        void       (WINE_GLAPI *p_glMultiTexCoordP2uiv)(GLenum,GLenum,const GLuint*);
        void       (WINE_GLAPI *p_glMultiTexCoordP3ui)(GLenum,GLenum,GLuint);
        void       (WINE_GLAPI *p_glMultiTexCoordP3uiv)(GLenum,GLenum,const GLuint*);
        void       (WINE_GLAPI *p_glMultiTexCoordP4ui)(GLenum,GLenum,GLuint);
        void       (WINE_GLAPI *p_glMultiTexCoordP4uiv)(GLenum,GLenum,const GLuint*);
        void       (WINE_GLAPI *p_glMultiTexCoordPointerEXT)(GLenum,GLint,GLenum,GLsizei,const void*);
        void       (WINE_GLAPI *p_glMultiTexCoordPointerSGIS)(GLenum,GLint,GLenum,GLsizei,GLvoid *);
        void       (WINE_GLAPI *p_glMultiTexEnvfEXT)(GLenum,GLenum,GLenum,GLfloat);
        void       (WINE_GLAPI *p_glMultiTexEnvfvEXT)(GLenum,GLenum,GLenum,const GLfloat*);
        void       (WINE_GLAPI *p_glMultiTexEnviEXT)(GLenum,GLenum,GLenum,GLint);
        void       (WINE_GLAPI *p_glMultiTexEnvivEXT)(GLenum,GLenum,GLenum,const GLint*);
        void       (WINE_GLAPI *p_glMultiTexGendEXT)(GLenum,GLenum,GLenum,GLdouble);
        void       (WINE_GLAPI *p_glMultiTexGendvEXT)(GLenum,GLenum,GLenum,const GLdouble*);
        void       (WINE_GLAPI *p_glMultiTexGenfEXT)(GLenum,GLenum,GLenum,GLfloat);
        void       (WINE_GLAPI *p_glMultiTexGenfvEXT)(GLenum,GLenum,GLenum,const GLfloat*);
        void       (WINE_GLAPI *p_glMultiTexGeniEXT)(GLenum,GLenum,GLenum,GLint);
        void       (WINE_GLAPI *p_glMultiTexGenivEXT)(GLenum,GLenum,GLenum,const GLint*);
        void       (WINE_GLAPI *p_glMultiTexImage1DEXT)(GLenum,GLenum,GLint,GLint,GLsizei,GLint,GLenum,GLenum,const void*);
        void       (WINE_GLAPI *p_glMultiTexImage2DEXT)(GLenum,GLenum,GLint,GLint,GLsizei,GLsizei,GLint,GLenum,GLenum,const void*);
        void       (WINE_GLAPI *p_glMultiTexImage3DEXT)(GLenum,GLenum,GLint,GLint,GLsizei,GLsizei,GLsizei,GLint,GLenum,GLenum,const void*);
        void       (WINE_GLAPI *p_glMultiTexParameterIivEXT)(GLenum,GLenum,GLenum,const GLint*);
        void       (WINE_GLAPI *p_glMultiTexParameterIuivEXT)(GLenum,GLenum,GLenum,const GLuint*);
        void       (WINE_GLAPI *p_glMultiTexParameterfEXT)(GLenum,GLenum,GLenum,GLfloat);
        void       (WINE_GLAPI *p_glMultiTexParameterfvEXT)(GLenum,GLenum,GLenum,const GLfloat*);
        void       (WINE_GLAPI *p_glMultiTexParameteriEXT)(GLenum,GLenum,GLenum,GLint);
        void       (WINE_GLAPI *p_glMultiTexParameterivEXT)(GLenum,GLenum,GLenum,const GLint*);
        void       (WINE_GLAPI *p_glMultiTexRenderbufferEXT)(GLenum,GLenum,GLuint);
        void       (WINE_GLAPI *p_glMultiTexSubImage1DEXT)(GLenum,GLenum,GLint,GLint,GLsizei,GLenum,GLenum,const void*);
        void       (WINE_GLAPI *p_glMultiTexSubImage2DEXT)(GLenum,GLenum,GLint,GLint,GLint,GLsizei,GLsizei,GLenum,GLenum,const void*);
        void       (WINE_GLAPI *p_glMultiTexSubImage3DEXT)(GLenum,GLenum,GLint,GLint,GLint,GLint,GLsizei,GLsizei,GLsizei,GLenum,GLenum,const void*);
        void       (WINE_GLAPI *p_glNamedBufferData)(GLuint,GLsizeiptr,const void*,GLenum);
        void       (WINE_GLAPI *p_glNamedBufferDataEXT)(GLuint,GLsizeiptr,const void*,GLenum);
        void       (WINE_GLAPI *p_glNamedBufferPageCommitmentARB)(GLuint,GLintptr,GLsizeiptr,GLboolean);
        void       (WINE_GLAPI *p_glNamedBufferPageCommitmentEXT)(GLuint,GLintptr,GLsizeiptr,GLboolean);
        void       (WINE_GLAPI *p_glNamedBufferStorage)(GLuint,GLsizeiptr,const void*,GLbitfield);
        void       (WINE_GLAPI *p_glNamedBufferStorageEXT)(GLuint,GLsizeiptr,const void*,GLbitfield);
        void       (WINE_GLAPI *p_glNamedBufferSubData)(GLuint,GLintptr,GLsizeiptr,const void*);
        void       (WINE_GLAPI *p_glNamedBufferSubDataEXT)(GLuint,GLintptr,GLsizeiptr,const void*);
        void       (WINE_GLAPI *p_glNamedCopyBufferSubDataEXT)(GLuint,GLuint,GLintptr,GLintptr,GLsizeiptr);
        void       (WINE_GLAPI *p_glNamedFramebufferDrawBuffer)(GLuint,GLenum);
        void       (WINE_GLAPI *p_glNamedFramebufferDrawBuffers)(GLuint,GLsizei,const GLenum*);
        void       (WINE_GLAPI *p_glNamedFramebufferParameteri)(GLuint,GLenum,GLint);
        void       (WINE_GLAPI *p_glNamedFramebufferParameteriEXT)(GLuint,GLenum,GLint);
        void       (WINE_GLAPI *p_glNamedFramebufferReadBuffer)(GLuint,GLenum);
        void       (WINE_GLAPI *p_glNamedFramebufferRenderbuffer)(GLuint,GLenum,GLenum,GLuint);
        void       (WINE_GLAPI *p_glNamedFramebufferRenderbufferEXT)(GLuint,GLenum,GLenum,GLuint);
        void       (WINE_GLAPI *p_glNamedFramebufferSampleLocationsfvARB)(GLuint,GLuint,GLsizei,const GLfloat*);
        void       (WINE_GLAPI *p_glNamedFramebufferSampleLocationsfvNV)(GLuint,GLuint,GLsizei,const GLfloat*);
        void       (WINE_GLAPI *p_glNamedFramebufferTexture)(GLuint,GLenum,GLuint,GLint);
        void       (WINE_GLAPI *p_glNamedFramebufferTexture1DEXT)(GLuint,GLenum,GLenum,GLuint,GLint);
        void       (WINE_GLAPI *p_glNamedFramebufferTexture2DEXT)(GLuint,GLenum,GLenum,GLuint,GLint);
        void       (WINE_GLAPI *p_glNamedFramebufferTexture3DEXT)(GLuint,GLenum,GLenum,GLuint,GLint,GLint);
        void       (WINE_GLAPI *p_glNamedFramebufferTextureEXT)(GLuint,GLenum,GLuint,GLint);
        void       (WINE_GLAPI *p_glNamedFramebufferTextureFaceEXT)(GLuint,GLenum,GLuint,GLint,GLenum);
        void       (WINE_GLAPI *p_glNamedFramebufferTextureLayer)(GLuint,GLenum,GLuint,GLint,GLint);
        void       (WINE_GLAPI *p_glNamedFramebufferTextureLayerEXT)(GLuint,GLenum,GLuint,GLint,GLint);
        void       (WINE_GLAPI *p_glNamedProgramLocalParameter4dEXT)(GLuint,GLenum,GLuint,GLdouble,GLdouble,GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glNamedProgramLocalParameter4dvEXT)(GLuint,GLenum,GLuint,const GLdouble*);
        void       (WINE_GLAPI *p_glNamedProgramLocalParameter4fEXT)(GLuint,GLenum,GLuint,GLfloat,GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glNamedProgramLocalParameter4fvEXT)(GLuint,GLenum,GLuint,const GLfloat*);
        void       (WINE_GLAPI *p_glNamedProgramLocalParameterI4iEXT)(GLuint,GLenum,GLuint,GLint,GLint,GLint,GLint);
        void       (WINE_GLAPI *p_glNamedProgramLocalParameterI4ivEXT)(GLuint,GLenum,GLuint,const GLint*);
        void       (WINE_GLAPI *p_glNamedProgramLocalParameterI4uiEXT)(GLuint,GLenum,GLuint,GLuint,GLuint,GLuint,GLuint);
        void       (WINE_GLAPI *p_glNamedProgramLocalParameterI4uivEXT)(GLuint,GLenum,GLuint,const GLuint*);
        void       (WINE_GLAPI *p_glNamedProgramLocalParameters4fvEXT)(GLuint,GLenum,GLuint,GLsizei,const GLfloat*);
        void       (WINE_GLAPI *p_glNamedProgramLocalParametersI4ivEXT)(GLuint,GLenum,GLuint,GLsizei,const GLint*);
        void       (WINE_GLAPI *p_glNamedProgramLocalParametersI4uivEXT)(GLuint,GLenum,GLuint,GLsizei,const GLuint*);
        void       (WINE_GLAPI *p_glNamedProgramStringEXT)(GLuint,GLenum,GLenum,GLsizei,const void*);
        void       (WINE_GLAPI *p_glNamedRenderbufferStorage)(GLuint,GLenum,GLsizei,GLsizei);
        void       (WINE_GLAPI *p_glNamedRenderbufferStorageEXT)(GLuint,GLenum,GLsizei,GLsizei);
        void       (WINE_GLAPI *p_glNamedRenderbufferStorageMultisample)(GLuint,GLsizei,GLenum,GLsizei,GLsizei);
        void       (WINE_GLAPI *p_glNamedRenderbufferStorageMultisampleCoverageEXT)(GLuint,GLsizei,GLsizei,GLenum,GLsizei,GLsizei);
        void       (WINE_GLAPI *p_glNamedRenderbufferStorageMultisampleEXT)(GLuint,GLsizei,GLenum,GLsizei,GLsizei);
        void       (WINE_GLAPI *p_glNamedStringARB)(GLenum,GLint,const GLchar*,GLint,const GLchar*);
        GLuint     (WINE_GLAPI *p_glNewBufferRegion)(GLenum);
        GLuint     (WINE_GLAPI *p_glNewObjectBufferATI)(GLsizei,const void*,GLenum);
        void       (WINE_GLAPI *p_glNormal3fVertex3fSUN)(GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glNormal3fVertex3fvSUN)(const GLfloat*,const GLfloat*);
        void       (WINE_GLAPI *p_glNormal3hNV)(GLhalfNV,GLhalfNV,GLhalfNV);
        void       (WINE_GLAPI *p_glNormal3hvNV)(const GLhalfNV*);
        void       (WINE_GLAPI *p_glNormal3xOES)(GLfixed,GLfixed,GLfixed);
        void       (WINE_GLAPI *p_glNormal3xvOES)(const GLfixed*);
        void       (WINE_GLAPI *p_glNormalFormatNV)(GLenum,GLsizei);
        void       (WINE_GLAPI *p_glNormalP3ui)(GLenum,GLuint);
        void       (WINE_GLAPI *p_glNormalP3uiv)(GLenum,const GLuint*);
        void       (WINE_GLAPI *p_glNormalPointerEXT)(GLenum,GLsizei,GLsizei,const void*);
        void       (WINE_GLAPI *p_glNormalPointerListIBM)(GLenum,GLint,const void**,GLint);
        void       (WINE_GLAPI *p_glNormalPointervINTEL)(GLenum,const void**);
        void       (WINE_GLAPI *p_glNormalStream3bATI)(GLenum,GLbyte,GLbyte,GLbyte);
        void       (WINE_GLAPI *p_glNormalStream3bvATI)(GLenum,const GLbyte*);
        void       (WINE_GLAPI *p_glNormalStream3dATI)(GLenum,GLdouble,GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glNormalStream3dvATI)(GLenum,const GLdouble*);
        void       (WINE_GLAPI *p_glNormalStream3fATI)(GLenum,GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glNormalStream3fvATI)(GLenum,const GLfloat*);
        void       (WINE_GLAPI *p_glNormalStream3iATI)(GLenum,GLint,GLint,GLint);
        void       (WINE_GLAPI *p_glNormalStream3ivATI)(GLenum,const GLint*);
        void       (WINE_GLAPI *p_glNormalStream3sATI)(GLenum,GLshort,GLshort,GLshort);
        void       (WINE_GLAPI *p_glNormalStream3svATI)(GLenum,const GLshort*);
        void       (WINE_GLAPI *p_glObjectLabel)(GLenum,GLuint,GLsizei,const GLchar*);
        void       (WINE_GLAPI *p_glObjectPtrLabel)(const void*,GLsizei,const GLchar*);
        GLenum     (WINE_GLAPI *p_glObjectPurgeableAPPLE)(GLenum,GLuint,GLenum);
        GLenum     (WINE_GLAPI *p_glObjectUnpurgeableAPPLE)(GLenum,GLuint,GLenum);
        void       (WINE_GLAPI *p_glOrthofOES)(GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glOrthoxOES)(GLfixed,GLfixed,GLfixed,GLfixed,GLfixed,GLfixed);
        void       (WINE_GLAPI *p_glPNTrianglesfATI)(GLenum,GLfloat);
        void       (WINE_GLAPI *p_glPNTrianglesiATI)(GLenum,GLint);
        void       (WINE_GLAPI *p_glPassTexCoordATI)(GLuint,GLuint,GLenum);
        void       (WINE_GLAPI *p_glPassThroughxOES)(GLfixed);
        void       (WINE_GLAPI *p_glPatchParameterfv)(GLenum,const GLfloat*);
        void       (WINE_GLAPI *p_glPatchParameteri)(GLenum,GLint);
        void       (WINE_GLAPI *p_glPathColorGenNV)(GLenum,GLenum,GLenum,const GLfloat*);
        void       (WINE_GLAPI *p_glPathCommandsNV)(GLuint,GLsizei,const GLubyte*,GLsizei,GLenum,const void*);
        void       (WINE_GLAPI *p_glPathCoordsNV)(GLuint,GLsizei,GLenum,const void*);
        void       (WINE_GLAPI *p_glPathCoverDepthFuncNV)(GLenum);
        void       (WINE_GLAPI *p_glPathDashArrayNV)(GLuint,GLsizei,const GLfloat*);
        void       (WINE_GLAPI *p_glPathFogGenNV)(GLenum);
        GLenum     (WINE_GLAPI *p_glPathGlyphIndexArrayNV)(GLuint,GLenum,const void*,GLbitfield,GLuint,GLsizei,GLuint,GLfloat);
        GLenum     (WINE_GLAPI *p_glPathGlyphIndexRangeNV)(GLenum,const void*,GLbitfield,GLuint,GLfloat,GLuint[2]);
        void       (WINE_GLAPI *p_glPathGlyphRangeNV)(GLuint,GLenum,const void*,GLbitfield,GLuint,GLsizei,GLenum,GLuint,GLfloat);
        void       (WINE_GLAPI *p_glPathGlyphsNV)(GLuint,GLenum,const void*,GLbitfield,GLsizei,GLenum,const void*,GLenum,GLuint,GLfloat);
        GLenum     (WINE_GLAPI *p_glPathMemoryGlyphIndexArrayNV)(GLuint,GLenum,GLsizeiptr,const void*,GLsizei,GLuint,GLsizei,GLuint,GLfloat);
        void       (WINE_GLAPI *p_glPathParameterfNV)(GLuint,GLenum,GLfloat);
        void       (WINE_GLAPI *p_glPathParameterfvNV)(GLuint,GLenum,const GLfloat*);
        void       (WINE_GLAPI *p_glPathParameteriNV)(GLuint,GLenum,GLint);
        void       (WINE_GLAPI *p_glPathParameterivNV)(GLuint,GLenum,const GLint*);
        void       (WINE_GLAPI *p_glPathStencilDepthOffsetNV)(GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glPathStencilFuncNV)(GLenum,GLint,GLuint);
        void       (WINE_GLAPI *p_glPathStringNV)(GLuint,GLenum,GLsizei,const void*);
        void       (WINE_GLAPI *p_glPathSubCommandsNV)(GLuint,GLsizei,GLsizei,GLsizei,const GLubyte*,GLsizei,GLenum,const void*);
        void       (WINE_GLAPI *p_glPathSubCoordsNV)(GLuint,GLsizei,GLsizei,GLenum,const void*);
        void       (WINE_GLAPI *p_glPathTexGenNV)(GLenum,GLenum,GLint,const GLfloat*);
        void       (WINE_GLAPI *p_glPauseTransformFeedback)(void);
        void       (WINE_GLAPI *p_glPauseTransformFeedbackNV)(void);
        void       (WINE_GLAPI *p_glPixelDataRangeNV)(GLenum,GLsizei,const void*);
        void       (WINE_GLAPI *p_glPixelMapx)(GLenum,GLint,const GLfixed*);
        void       (WINE_GLAPI *p_glPixelStorex)(GLenum,GLfixed);
        void       (WINE_GLAPI *p_glPixelTexGenParameterfSGIS)(GLenum,GLfloat);
        void       (WINE_GLAPI *p_glPixelTexGenParameterfvSGIS)(GLenum,const GLfloat*);
        void       (WINE_GLAPI *p_glPixelTexGenParameteriSGIS)(GLenum,GLint);
        void       (WINE_GLAPI *p_glPixelTexGenParameterivSGIS)(GLenum,const GLint*);
        void       (WINE_GLAPI *p_glPixelTexGenSGIX)(GLenum);
        void       (WINE_GLAPI *p_glPixelTransferxOES)(GLenum,GLfixed);
        void       (WINE_GLAPI *p_glPixelTransformParameterfEXT)(GLenum,GLenum,GLfloat);
        void       (WINE_GLAPI *p_glPixelTransformParameterfvEXT)(GLenum,GLenum,const GLfloat*);
        void       (WINE_GLAPI *p_glPixelTransformParameteriEXT)(GLenum,GLenum,GLint);
        void       (WINE_GLAPI *p_glPixelTransformParameterivEXT)(GLenum,GLenum,const GLint*);
        void       (WINE_GLAPI *p_glPixelZoomxOES)(GLfixed,GLfixed);
        GLboolean  (WINE_GLAPI *p_glPointAlongPathNV)(GLuint,GLsizei,GLsizei,GLfloat,GLfloat*,GLfloat*,GLfloat*,GLfloat*);
        void       (WINE_GLAPI *p_glPointParameterf)(GLenum,GLfloat);
        void       (WINE_GLAPI *p_glPointParameterfARB)(GLenum,GLfloat);
        void       (WINE_GLAPI *p_glPointParameterfEXT)(GLenum,GLfloat);
        void       (WINE_GLAPI *p_glPointParameterfSGIS)(GLenum,GLfloat);
        void       (WINE_GLAPI *p_glPointParameterfv)(GLenum,const GLfloat*);
        void       (WINE_GLAPI *p_glPointParameterfvARB)(GLenum,const GLfloat*);
        void       (WINE_GLAPI *p_glPointParameterfvEXT)(GLenum,const GLfloat*);
        void       (WINE_GLAPI *p_glPointParameterfvSGIS)(GLenum,const GLfloat*);
        void       (WINE_GLAPI *p_glPointParameteri)(GLenum,GLint);
        void       (WINE_GLAPI *p_glPointParameteriNV)(GLenum,GLint);
        void       (WINE_GLAPI *p_glPointParameteriv)(GLenum,const GLint*);
        void       (WINE_GLAPI *p_glPointParameterivNV)(GLenum,const GLint*);
        void       (WINE_GLAPI *p_glPointParameterxvOES)(GLenum,const GLfixed*);
        void       (WINE_GLAPI *p_glPointSizexOES)(GLfixed);
        GLint      (WINE_GLAPI *p_glPollAsyncSGIX)(GLuint*);
        GLint      (WINE_GLAPI *p_glPollInstrumentsSGIX)(GLint*);
        void       (WINE_GLAPI *p_glPolygonOffsetClampEXT)(GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glPolygonOffsetEXT)(GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glPolygonOffsetxOES)(GLfixed,GLfixed);
        void       (WINE_GLAPI *p_glPopDebugGroup)(void);
        void       (WINE_GLAPI *p_glPopGroupMarkerEXT)(void);
        void       (WINE_GLAPI *p_glPresentFrameDualFillNV)(GLuint,GLuint64EXT,GLuint,GLuint,GLenum,GLenum,GLuint,GLenum,GLuint,GLenum,GLuint,GLenum,GLuint);
        void       (WINE_GLAPI *p_glPresentFrameKeyedNV)(GLuint,GLuint64EXT,GLuint,GLuint,GLenum,GLenum,GLuint,GLuint,GLenum,GLuint,GLuint);
        void       (WINE_GLAPI *p_glPrimitiveBoundingBoxARB)(GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glPrimitiveRestartIndex)(GLuint);
        void       (WINE_GLAPI *p_glPrimitiveRestartIndexNV)(GLuint);
        void       (WINE_GLAPI *p_glPrimitiveRestartNV)(void);
        void       (WINE_GLAPI *p_glPrioritizeTexturesEXT)(GLsizei,const GLuint*,const GLclampf*);
        void       (WINE_GLAPI *p_glPrioritizeTexturesxOES)(GLsizei,const GLuint*,const GLfixed*);
        void       (WINE_GLAPI *p_glProgramBinary)(GLuint,GLenum,const void*,GLsizei);
        void       (WINE_GLAPI *p_glProgramBufferParametersIivNV)(GLenum,GLuint,GLuint,GLsizei,const GLint*);
        void       (WINE_GLAPI *p_glProgramBufferParametersIuivNV)(GLenum,GLuint,GLuint,GLsizei,const GLuint*);
        void       (WINE_GLAPI *p_glProgramBufferParametersfvNV)(GLenum,GLuint,GLuint,GLsizei,const GLfloat*);
        void       (WINE_GLAPI *p_glProgramEnvParameter4dARB)(GLenum,GLuint,GLdouble,GLdouble,GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glProgramEnvParameter4dvARB)(GLenum,GLuint,const GLdouble*);
        void       (WINE_GLAPI *p_glProgramEnvParameter4fARB)(GLenum,GLuint,GLfloat,GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glProgramEnvParameter4fvARB)(GLenum,GLuint,const GLfloat*);
        void       (WINE_GLAPI *p_glProgramEnvParameterI4iNV)(GLenum,GLuint,GLint,GLint,GLint,GLint);
        void       (WINE_GLAPI *p_glProgramEnvParameterI4ivNV)(GLenum,GLuint,const GLint*);
        void       (WINE_GLAPI *p_glProgramEnvParameterI4uiNV)(GLenum,GLuint,GLuint,GLuint,GLuint,GLuint);
        void       (WINE_GLAPI *p_glProgramEnvParameterI4uivNV)(GLenum,GLuint,const GLuint*);
        void       (WINE_GLAPI *p_glProgramEnvParameters4fvEXT)(GLenum,GLuint,GLsizei,const GLfloat*);
        void       (WINE_GLAPI *p_glProgramEnvParametersI4ivNV)(GLenum,GLuint,GLsizei,const GLint*);
        void       (WINE_GLAPI *p_glProgramEnvParametersI4uivNV)(GLenum,GLuint,GLsizei,const GLuint*);
        void       (WINE_GLAPI *p_glProgramLocalParameter4dARB)(GLenum,GLuint,GLdouble,GLdouble,GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glProgramLocalParameter4dvARB)(GLenum,GLuint,const GLdouble*);
        void       (WINE_GLAPI *p_glProgramLocalParameter4fARB)(GLenum,GLuint,GLfloat,GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glProgramLocalParameter4fvARB)(GLenum,GLuint,const GLfloat*);
        void       (WINE_GLAPI *p_glProgramLocalParameterI4iNV)(GLenum,GLuint,GLint,GLint,GLint,GLint);
        void       (WINE_GLAPI *p_glProgramLocalParameterI4ivNV)(GLenum,GLuint,const GLint*);
        void       (WINE_GLAPI *p_glProgramLocalParameterI4uiNV)(GLenum,GLuint,GLuint,GLuint,GLuint,GLuint);
        void       (WINE_GLAPI *p_glProgramLocalParameterI4uivNV)(GLenum,GLuint,const GLuint*);
        void       (WINE_GLAPI *p_glProgramLocalParameters4fvEXT)(GLenum,GLuint,GLsizei,const GLfloat*);
        void       (WINE_GLAPI *p_glProgramLocalParametersI4ivNV)(GLenum,GLuint,GLsizei,const GLint*);
        void       (WINE_GLAPI *p_glProgramLocalParametersI4uivNV)(GLenum,GLuint,GLsizei,const GLuint*);
        void       (WINE_GLAPI *p_glProgramNamedParameter4dNV)(GLuint,GLsizei,const GLubyte*,GLdouble,GLdouble,GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glProgramNamedParameter4dvNV)(GLuint,GLsizei,const GLubyte*,const GLdouble*);
        void       (WINE_GLAPI *p_glProgramNamedParameter4fNV)(GLuint,GLsizei,const GLubyte*,GLfloat,GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glProgramNamedParameter4fvNV)(GLuint,GLsizei,const GLubyte*,const GLfloat*);
        void       (WINE_GLAPI *p_glProgramParameter4dNV)(GLenum,GLuint,GLdouble,GLdouble,GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glProgramParameter4dvNV)(GLenum,GLuint,const GLdouble*);
        void       (WINE_GLAPI *p_glProgramParameter4fNV)(GLenum,GLuint,GLfloat,GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glProgramParameter4fvNV)(GLenum,GLuint,const GLfloat*);
        void       (WINE_GLAPI *p_glProgramParameteri)(GLuint,GLenum,GLint);
        void       (WINE_GLAPI *p_glProgramParameteriARB)(GLuint,GLenum,GLint);
        void       (WINE_GLAPI *p_glProgramParameteriEXT)(GLuint,GLenum,GLint);
        void       (WINE_GLAPI *p_glProgramParameters4dvNV)(GLenum,GLuint,GLsizei,const GLdouble*);
        void       (WINE_GLAPI *p_glProgramParameters4fvNV)(GLenum,GLuint,GLsizei,const GLfloat*);
        void       (WINE_GLAPI *p_glProgramPathFragmentInputGenNV)(GLuint,GLint,GLenum,GLint,const GLfloat*);
        void       (WINE_GLAPI *p_glProgramStringARB)(GLenum,GLenum,GLsizei,const void*);
        void       (WINE_GLAPI *p_glProgramSubroutineParametersuivNV)(GLenum,GLsizei,const GLuint*);
        void       (WINE_GLAPI *p_glProgramUniform1d)(GLuint,GLint,GLdouble);
        void       (WINE_GLAPI *p_glProgramUniform1dEXT)(GLuint,GLint,GLdouble);
        void       (WINE_GLAPI *p_glProgramUniform1dv)(GLuint,GLint,GLsizei,const GLdouble*);
        void       (WINE_GLAPI *p_glProgramUniform1dvEXT)(GLuint,GLint,GLsizei,const GLdouble*);
        void       (WINE_GLAPI *p_glProgramUniform1f)(GLuint,GLint,GLfloat);
        void       (WINE_GLAPI *p_glProgramUniform1fEXT)(GLuint,GLint,GLfloat);
        void       (WINE_GLAPI *p_glProgramUniform1fv)(GLuint,GLint,GLsizei,const GLfloat*);
        void       (WINE_GLAPI *p_glProgramUniform1fvEXT)(GLuint,GLint,GLsizei,const GLfloat*);
        void       (WINE_GLAPI *p_glProgramUniform1i)(GLuint,GLint,GLint);
        void       (WINE_GLAPI *p_glProgramUniform1i64ARB)(GLuint,GLint,GLint64);
        void       (WINE_GLAPI *p_glProgramUniform1i64NV)(GLuint,GLint,GLint64EXT);
        void       (WINE_GLAPI *p_glProgramUniform1i64vARB)(GLuint,GLint,GLsizei,const GLint64*);
        void       (WINE_GLAPI *p_glProgramUniform1i64vNV)(GLuint,GLint,GLsizei,const GLint64EXT*);
        void       (WINE_GLAPI *p_glProgramUniform1iEXT)(GLuint,GLint,GLint);
        void       (WINE_GLAPI *p_glProgramUniform1iv)(GLuint,GLint,GLsizei,const GLint*);
        void       (WINE_GLAPI *p_glProgramUniform1ivEXT)(GLuint,GLint,GLsizei,const GLint*);
        void       (WINE_GLAPI *p_glProgramUniform1ui)(GLuint,GLint,GLuint);
        void       (WINE_GLAPI *p_glProgramUniform1ui64ARB)(GLuint,GLint,GLuint64);
        void       (WINE_GLAPI *p_glProgramUniform1ui64NV)(GLuint,GLint,GLuint64EXT);
        void       (WINE_GLAPI *p_glProgramUniform1ui64vARB)(GLuint,GLint,GLsizei,const GLuint64*);
        void       (WINE_GLAPI *p_glProgramUniform1ui64vNV)(GLuint,GLint,GLsizei,const GLuint64EXT*);
        void       (WINE_GLAPI *p_glProgramUniform1uiEXT)(GLuint,GLint,GLuint);
        void       (WINE_GLAPI *p_glProgramUniform1uiv)(GLuint,GLint,GLsizei,const GLuint*);
        void       (WINE_GLAPI *p_glProgramUniform1uivEXT)(GLuint,GLint,GLsizei,const GLuint*);
        void       (WINE_GLAPI *p_glProgramUniform2d)(GLuint,GLint,GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glProgramUniform2dEXT)(GLuint,GLint,GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glProgramUniform2dv)(GLuint,GLint,GLsizei,const GLdouble*);
        void       (WINE_GLAPI *p_glProgramUniform2dvEXT)(GLuint,GLint,GLsizei,const GLdouble*);
        void       (WINE_GLAPI *p_glProgramUniform2f)(GLuint,GLint,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glProgramUniform2fEXT)(GLuint,GLint,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glProgramUniform2fv)(GLuint,GLint,GLsizei,const GLfloat*);
        void       (WINE_GLAPI *p_glProgramUniform2fvEXT)(GLuint,GLint,GLsizei,const GLfloat*);
        void       (WINE_GLAPI *p_glProgramUniform2i)(GLuint,GLint,GLint,GLint);
        void       (WINE_GLAPI *p_glProgramUniform2i64ARB)(GLuint,GLint,GLint64,GLint64);
        void       (WINE_GLAPI *p_glProgramUniform2i64NV)(GLuint,GLint,GLint64EXT,GLint64EXT);
        void       (WINE_GLAPI *p_glProgramUniform2i64vARB)(GLuint,GLint,GLsizei,const GLint64*);
        void       (WINE_GLAPI *p_glProgramUniform2i64vNV)(GLuint,GLint,GLsizei,const GLint64EXT*);
        void       (WINE_GLAPI *p_glProgramUniform2iEXT)(GLuint,GLint,GLint,GLint);
        void       (WINE_GLAPI *p_glProgramUniform2iv)(GLuint,GLint,GLsizei,const GLint*);
        void       (WINE_GLAPI *p_glProgramUniform2ivEXT)(GLuint,GLint,GLsizei,const GLint*);
        void       (WINE_GLAPI *p_glProgramUniform2ui)(GLuint,GLint,GLuint,GLuint);
        void       (WINE_GLAPI *p_glProgramUniform2ui64ARB)(GLuint,GLint,GLuint64,GLuint64);
        void       (WINE_GLAPI *p_glProgramUniform2ui64NV)(GLuint,GLint,GLuint64EXT,GLuint64EXT);
        void       (WINE_GLAPI *p_glProgramUniform2ui64vARB)(GLuint,GLint,GLsizei,const GLuint64*);
        void       (WINE_GLAPI *p_glProgramUniform2ui64vNV)(GLuint,GLint,GLsizei,const GLuint64EXT*);
        void       (WINE_GLAPI *p_glProgramUniform2uiEXT)(GLuint,GLint,GLuint,GLuint);
        void       (WINE_GLAPI *p_glProgramUniform2uiv)(GLuint,GLint,GLsizei,const GLuint*);
        void       (WINE_GLAPI *p_glProgramUniform2uivEXT)(GLuint,GLint,GLsizei,const GLuint*);
        void       (WINE_GLAPI *p_glProgramUniform3d)(GLuint,GLint,GLdouble,GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glProgramUniform3dEXT)(GLuint,GLint,GLdouble,GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glProgramUniform3dv)(GLuint,GLint,GLsizei,const GLdouble*);
        void       (WINE_GLAPI *p_glProgramUniform3dvEXT)(GLuint,GLint,GLsizei,const GLdouble*);
        void       (WINE_GLAPI *p_glProgramUniform3f)(GLuint,GLint,GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glProgramUniform3fEXT)(GLuint,GLint,GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glProgramUniform3fv)(GLuint,GLint,GLsizei,const GLfloat*);
        void       (WINE_GLAPI *p_glProgramUniform3fvEXT)(GLuint,GLint,GLsizei,const GLfloat*);
        void       (WINE_GLAPI *p_glProgramUniform3i)(GLuint,GLint,GLint,GLint,GLint);
        void       (WINE_GLAPI *p_glProgramUniform3i64ARB)(GLuint,GLint,GLint64,GLint64,GLint64);
        void       (WINE_GLAPI *p_glProgramUniform3i64NV)(GLuint,GLint,GLint64EXT,GLint64EXT,GLint64EXT);
        void       (WINE_GLAPI *p_glProgramUniform3i64vARB)(GLuint,GLint,GLsizei,const GLint64*);
        void       (WINE_GLAPI *p_glProgramUniform3i64vNV)(GLuint,GLint,GLsizei,const GLint64EXT*);
        void       (WINE_GLAPI *p_glProgramUniform3iEXT)(GLuint,GLint,GLint,GLint,GLint);
        void       (WINE_GLAPI *p_glProgramUniform3iv)(GLuint,GLint,GLsizei,const GLint*);
        void       (WINE_GLAPI *p_glProgramUniform3ivEXT)(GLuint,GLint,GLsizei,const GLint*);
        void       (WINE_GLAPI *p_glProgramUniform3ui)(GLuint,GLint,GLuint,GLuint,GLuint);
        void       (WINE_GLAPI *p_glProgramUniform3ui64ARB)(GLuint,GLint,GLuint64,GLuint64,GLuint64);
        void       (WINE_GLAPI *p_glProgramUniform3ui64NV)(GLuint,GLint,GLuint64EXT,GLuint64EXT,GLuint64EXT);
        void       (WINE_GLAPI *p_glProgramUniform3ui64vARB)(GLuint,GLint,GLsizei,const GLuint64*);
        void       (WINE_GLAPI *p_glProgramUniform3ui64vNV)(GLuint,GLint,GLsizei,const GLuint64EXT*);
        void       (WINE_GLAPI *p_glProgramUniform3uiEXT)(GLuint,GLint,GLuint,GLuint,GLuint);
        void       (WINE_GLAPI *p_glProgramUniform3uiv)(GLuint,GLint,GLsizei,const GLuint*);
        void       (WINE_GLAPI *p_glProgramUniform3uivEXT)(GLuint,GLint,GLsizei,const GLuint*);
        void       (WINE_GLAPI *p_glProgramUniform4d)(GLuint,GLint,GLdouble,GLdouble,GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glProgramUniform4dEXT)(GLuint,GLint,GLdouble,GLdouble,GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glProgramUniform4dv)(GLuint,GLint,GLsizei,const GLdouble*);
        void       (WINE_GLAPI *p_glProgramUniform4dvEXT)(GLuint,GLint,GLsizei,const GLdouble*);
        void       (WINE_GLAPI *p_glProgramUniform4f)(GLuint,GLint,GLfloat,GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glProgramUniform4fEXT)(GLuint,GLint,GLfloat,GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glProgramUniform4fv)(GLuint,GLint,GLsizei,const GLfloat*);
        void       (WINE_GLAPI *p_glProgramUniform4fvEXT)(GLuint,GLint,GLsizei,const GLfloat*);
        void       (WINE_GLAPI *p_glProgramUniform4i)(GLuint,GLint,GLint,GLint,GLint,GLint);
        void       (WINE_GLAPI *p_glProgramUniform4i64ARB)(GLuint,GLint,GLint64,GLint64,GLint64,GLint64);
        void       (WINE_GLAPI *p_glProgramUniform4i64NV)(GLuint,GLint,GLint64EXT,GLint64EXT,GLint64EXT,GLint64EXT);
        void       (WINE_GLAPI *p_glProgramUniform4i64vARB)(GLuint,GLint,GLsizei,const GLint64*);
        void       (WINE_GLAPI *p_glProgramUniform4i64vNV)(GLuint,GLint,GLsizei,const GLint64EXT*);
        void       (WINE_GLAPI *p_glProgramUniform4iEXT)(GLuint,GLint,GLint,GLint,GLint,GLint);
        void       (WINE_GLAPI *p_glProgramUniform4iv)(GLuint,GLint,GLsizei,const GLint*);
        void       (WINE_GLAPI *p_glProgramUniform4ivEXT)(GLuint,GLint,GLsizei,const GLint*);
        void       (WINE_GLAPI *p_glProgramUniform4ui)(GLuint,GLint,GLuint,GLuint,GLuint,GLuint);
        void       (WINE_GLAPI *p_glProgramUniform4ui64ARB)(GLuint,GLint,GLuint64,GLuint64,GLuint64,GLuint64);
        void       (WINE_GLAPI *p_glProgramUniform4ui64NV)(GLuint,GLint,GLuint64EXT,GLuint64EXT,GLuint64EXT,GLuint64EXT);
        void       (WINE_GLAPI *p_glProgramUniform4ui64vARB)(GLuint,GLint,GLsizei,const GLuint64*);
        void       (WINE_GLAPI *p_glProgramUniform4ui64vNV)(GLuint,GLint,GLsizei,const GLuint64EXT*);
        void       (WINE_GLAPI *p_glProgramUniform4uiEXT)(GLuint,GLint,GLuint,GLuint,GLuint,GLuint);
        void       (WINE_GLAPI *p_glProgramUniform4uiv)(GLuint,GLint,GLsizei,const GLuint*);
        void       (WINE_GLAPI *p_glProgramUniform4uivEXT)(GLuint,GLint,GLsizei,const GLuint*);
        void       (WINE_GLAPI *p_glProgramUniformHandleui64ARB)(GLuint,GLint,GLuint64);
        void       (WINE_GLAPI *p_glProgramUniformHandleui64NV)(GLuint,GLint,GLuint64);
        void       (WINE_GLAPI *p_glProgramUniformHandleui64vARB)(GLuint,GLint,GLsizei,const GLuint64*);
        void       (WINE_GLAPI *p_glProgramUniformHandleui64vNV)(GLuint,GLint,GLsizei,const GLuint64*);
        void       (WINE_GLAPI *p_glProgramUniformMatrix2dv)(GLuint,GLint,GLsizei,GLboolean,const GLdouble*);
        void       (WINE_GLAPI *p_glProgramUniformMatrix2dvEXT)(GLuint,GLint,GLsizei,GLboolean,const GLdouble*);
        void       (WINE_GLAPI *p_glProgramUniformMatrix2fv)(GLuint,GLint,GLsizei,GLboolean,const GLfloat*);
        void       (WINE_GLAPI *p_glProgramUniformMatrix2fvEXT)(GLuint,GLint,GLsizei,GLboolean,const GLfloat*);
        void       (WINE_GLAPI *p_glProgramUniformMatrix2x3dv)(GLuint,GLint,GLsizei,GLboolean,const GLdouble*);
        void       (WINE_GLAPI *p_glProgramUniformMatrix2x3dvEXT)(GLuint,GLint,GLsizei,GLboolean,const GLdouble*);
        void       (WINE_GLAPI *p_glProgramUniformMatrix2x3fv)(GLuint,GLint,GLsizei,GLboolean,const GLfloat*);
        void       (WINE_GLAPI *p_glProgramUniformMatrix2x3fvEXT)(GLuint,GLint,GLsizei,GLboolean,const GLfloat*);
        void       (WINE_GLAPI *p_glProgramUniformMatrix2x4dv)(GLuint,GLint,GLsizei,GLboolean,const GLdouble*);
        void       (WINE_GLAPI *p_glProgramUniformMatrix2x4dvEXT)(GLuint,GLint,GLsizei,GLboolean,const GLdouble*);
        void       (WINE_GLAPI *p_glProgramUniformMatrix2x4fv)(GLuint,GLint,GLsizei,GLboolean,const GLfloat*);
        void       (WINE_GLAPI *p_glProgramUniformMatrix2x4fvEXT)(GLuint,GLint,GLsizei,GLboolean,const GLfloat*);
        void       (WINE_GLAPI *p_glProgramUniformMatrix3dv)(GLuint,GLint,GLsizei,GLboolean,const GLdouble*);
        void       (WINE_GLAPI *p_glProgramUniformMatrix3dvEXT)(GLuint,GLint,GLsizei,GLboolean,const GLdouble*);
        void       (WINE_GLAPI *p_glProgramUniformMatrix3fv)(GLuint,GLint,GLsizei,GLboolean,const GLfloat*);
        void       (WINE_GLAPI *p_glProgramUniformMatrix3fvEXT)(GLuint,GLint,GLsizei,GLboolean,const GLfloat*);
        void       (WINE_GLAPI *p_glProgramUniformMatrix3x2dv)(GLuint,GLint,GLsizei,GLboolean,const GLdouble*);
        void       (WINE_GLAPI *p_glProgramUniformMatrix3x2dvEXT)(GLuint,GLint,GLsizei,GLboolean,const GLdouble*);
        void       (WINE_GLAPI *p_glProgramUniformMatrix3x2fv)(GLuint,GLint,GLsizei,GLboolean,const GLfloat*);
        void       (WINE_GLAPI *p_glProgramUniformMatrix3x2fvEXT)(GLuint,GLint,GLsizei,GLboolean,const GLfloat*);
        void       (WINE_GLAPI *p_glProgramUniformMatrix3x4dv)(GLuint,GLint,GLsizei,GLboolean,const GLdouble*);
        void       (WINE_GLAPI *p_glProgramUniformMatrix3x4dvEXT)(GLuint,GLint,GLsizei,GLboolean,const GLdouble*);
        void       (WINE_GLAPI *p_glProgramUniformMatrix3x4fv)(GLuint,GLint,GLsizei,GLboolean,const GLfloat*);
        void       (WINE_GLAPI *p_glProgramUniformMatrix3x4fvEXT)(GLuint,GLint,GLsizei,GLboolean,const GLfloat*);
        void       (WINE_GLAPI *p_glProgramUniformMatrix4dv)(GLuint,GLint,GLsizei,GLboolean,const GLdouble*);
        void       (WINE_GLAPI *p_glProgramUniformMatrix4dvEXT)(GLuint,GLint,GLsizei,GLboolean,const GLdouble*);
        void       (WINE_GLAPI *p_glProgramUniformMatrix4fv)(GLuint,GLint,GLsizei,GLboolean,const GLfloat*);
        void       (WINE_GLAPI *p_glProgramUniformMatrix4fvEXT)(GLuint,GLint,GLsizei,GLboolean,const GLfloat*);
        void       (WINE_GLAPI *p_glProgramUniformMatrix4x2dv)(GLuint,GLint,GLsizei,GLboolean,const GLdouble*);
        void       (WINE_GLAPI *p_glProgramUniformMatrix4x2dvEXT)(GLuint,GLint,GLsizei,GLboolean,const GLdouble*);
        void       (WINE_GLAPI *p_glProgramUniformMatrix4x2fv)(GLuint,GLint,GLsizei,GLboolean,const GLfloat*);
        void       (WINE_GLAPI *p_glProgramUniformMatrix4x2fvEXT)(GLuint,GLint,GLsizei,GLboolean,const GLfloat*);
        void       (WINE_GLAPI *p_glProgramUniformMatrix4x3dv)(GLuint,GLint,GLsizei,GLboolean,const GLdouble*);
        void       (WINE_GLAPI *p_glProgramUniformMatrix4x3dvEXT)(GLuint,GLint,GLsizei,GLboolean,const GLdouble*);
        void       (WINE_GLAPI *p_glProgramUniformMatrix4x3fv)(GLuint,GLint,GLsizei,GLboolean,const GLfloat*);
        void       (WINE_GLAPI *p_glProgramUniformMatrix4x3fvEXT)(GLuint,GLint,GLsizei,GLboolean,const GLfloat*);
        void       (WINE_GLAPI *p_glProgramUniformui64NV)(GLuint,GLint,GLuint64EXT);
        void       (WINE_GLAPI *p_glProgramUniformui64vNV)(GLuint,GLint,GLsizei,const GLuint64EXT*);
        void       (WINE_GLAPI *p_glProgramVertexLimitNV)(GLenum,GLint);
        void       (WINE_GLAPI *p_glProvokingVertex)(GLenum);
        void       (WINE_GLAPI *p_glProvokingVertexEXT)(GLenum);
        void       (WINE_GLAPI *p_glPushClientAttribDefaultEXT)(GLbitfield);
        void       (WINE_GLAPI *p_glPushDebugGroup)(GLenum,GLuint,GLsizei,const GLchar*);
        void       (WINE_GLAPI *p_glPushGroupMarkerEXT)(GLsizei,const GLchar*);
        void       (WINE_GLAPI *p_glQueryCounter)(GLuint,GLenum);
        GLbitfield (WINE_GLAPI *p_glQueryMatrixxOES)(GLfixed*,GLint*);
        void       (WINE_GLAPI *p_glQueryObjectParameteruiAMD)(GLenum,GLuint,GLenum,GLuint);
        void       (WINE_GLAPI *p_glRasterPos2xOES)(GLfixed,GLfixed);
        void       (WINE_GLAPI *p_glRasterPos2xvOES)(const GLfixed*);
        void       (WINE_GLAPI *p_glRasterPos3xOES)(GLfixed,GLfixed,GLfixed);
        void       (WINE_GLAPI *p_glRasterPos3xvOES)(const GLfixed*);
        void       (WINE_GLAPI *p_glRasterPos4xOES)(GLfixed,GLfixed,GLfixed,GLfixed);
        void       (WINE_GLAPI *p_glRasterPos4xvOES)(const GLfixed*);
        void       (WINE_GLAPI *p_glRasterSamplesEXT)(GLuint,GLboolean);
        void       (WINE_GLAPI *p_glReadBufferRegion)(GLenum,GLint,GLint,GLsizei,GLsizei);
        void       (WINE_GLAPI *p_glReadInstrumentsSGIX)(GLint);
        void       (WINE_GLAPI *p_glReadnPixels)(GLint,GLint,GLsizei,GLsizei,GLenum,GLenum,GLsizei,void*);
        void       (WINE_GLAPI *p_glReadnPixelsARB)(GLint,GLint,GLsizei,GLsizei,GLenum,GLenum,GLsizei,void*);
        void       (WINE_GLAPI *p_glRectxOES)(GLfixed,GLfixed,GLfixed,GLfixed);
        void       (WINE_GLAPI *p_glRectxvOES)(const GLfixed*,const GLfixed*);
        void       (WINE_GLAPI *p_glReferencePlaneSGIX)(const GLdouble*);
        void       (WINE_GLAPI *p_glReleaseShaderCompiler)(void);
        void       (WINE_GLAPI *p_glRenderbufferStorage)(GLenum,GLenum,GLsizei,GLsizei);
        void       (WINE_GLAPI *p_glRenderbufferStorageEXT)(GLenum,GLenum,GLsizei,GLsizei);
        void       (WINE_GLAPI *p_glRenderbufferStorageMultisample)(GLenum,GLsizei,GLenum,GLsizei,GLsizei);
        void       (WINE_GLAPI *p_glRenderbufferStorageMultisampleCoverageNV)(GLenum,GLsizei,GLsizei,GLenum,GLsizei,GLsizei);
        void       (WINE_GLAPI *p_glRenderbufferStorageMultisampleEXT)(GLenum,GLsizei,GLenum,GLsizei,GLsizei);
        void       (WINE_GLAPI *p_glReplacementCodePointerSUN)(GLenum,GLsizei,const void**);
        void       (WINE_GLAPI *p_glReplacementCodeubSUN)(GLubyte);
        void       (WINE_GLAPI *p_glReplacementCodeubvSUN)(const GLubyte*);
        void       (WINE_GLAPI *p_glReplacementCodeuiColor3fVertex3fSUN)(GLuint,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glReplacementCodeuiColor3fVertex3fvSUN)(const GLuint*,const GLfloat*,const GLfloat*);
        void       (WINE_GLAPI *p_glReplacementCodeuiColor4fNormal3fVertex3fSUN)(GLuint,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glReplacementCodeuiColor4fNormal3fVertex3fvSUN)(const GLuint*,const GLfloat*,const GLfloat*,const GLfloat*);
        void       (WINE_GLAPI *p_glReplacementCodeuiColor4ubVertex3fSUN)(GLuint,GLubyte,GLubyte,GLubyte,GLubyte,GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glReplacementCodeuiColor4ubVertex3fvSUN)(const GLuint*,const GLubyte*,const GLfloat*);
        void       (WINE_GLAPI *p_glReplacementCodeuiNormal3fVertex3fSUN)(GLuint,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glReplacementCodeuiNormal3fVertex3fvSUN)(const GLuint*,const GLfloat*,const GLfloat*);
        void       (WINE_GLAPI *p_glReplacementCodeuiSUN)(GLuint);
        void       (WINE_GLAPI *p_glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN)(GLuint,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN)(const GLuint*,const GLfloat*,const GLfloat*,const GLfloat*,const GLfloat*);
        void       (WINE_GLAPI *p_glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN)(GLuint,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN)(const GLuint*,const GLfloat*,const GLfloat*,const GLfloat*);
        void       (WINE_GLAPI *p_glReplacementCodeuiTexCoord2fVertex3fSUN)(GLuint,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glReplacementCodeuiTexCoord2fVertex3fvSUN)(const GLuint*,const GLfloat*,const GLfloat*);
        void       (WINE_GLAPI *p_glReplacementCodeuiVertex3fSUN)(GLuint,GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glReplacementCodeuiVertex3fvSUN)(const GLuint*,const GLfloat*);
        void       (WINE_GLAPI *p_glReplacementCodeuivSUN)(const GLuint*);
        void       (WINE_GLAPI *p_glReplacementCodeusSUN)(GLushort);
        void       (WINE_GLAPI *p_glReplacementCodeusvSUN)(const GLushort*);
        void       (WINE_GLAPI *p_glRequestResidentProgramsNV)(GLsizei,const GLuint*);
        void       (WINE_GLAPI *p_glResetHistogram)(GLenum);
        void       (WINE_GLAPI *p_glResetHistogramEXT)(GLenum);
        void       (WINE_GLAPI *p_glResetMinmax)(GLenum);
        void       (WINE_GLAPI *p_glResetMinmaxEXT)(GLenum);
        void       (WINE_GLAPI *p_glResizeBuffersMESA)(void);
        void       (WINE_GLAPI *p_glResolveDepthValuesNV)(void);
        void       (WINE_GLAPI *p_glResumeTransformFeedback)(void);
        void       (WINE_GLAPI *p_glResumeTransformFeedbackNV)(void);
        void       (WINE_GLAPI *p_glRotatexOES)(GLfixed,GLfixed,GLfixed,GLfixed);
        void       (WINE_GLAPI *p_glSampleCoverage)(GLfloat,GLboolean);
        void       (WINE_GLAPI *p_glSampleCoverageARB)(GLfloat,GLboolean);
        void       (WINE_GLAPI *p_glSampleMapATI)(GLuint,GLuint,GLenum);
        void       (WINE_GLAPI *p_glSampleMaskEXT)(GLclampf,GLboolean);
        void       (WINE_GLAPI *p_glSampleMaskIndexedNV)(GLuint,GLbitfield);
        void       (WINE_GLAPI *p_glSampleMaskSGIS)(GLclampf,GLboolean);
        void       (WINE_GLAPI *p_glSampleMaski)(GLuint,GLbitfield);
        void       (WINE_GLAPI *p_glSamplePatternEXT)(GLenum);
        void       (WINE_GLAPI *p_glSamplePatternSGIS)(GLenum);
        void       (WINE_GLAPI *p_glSamplerParameterIiv)(GLuint,GLenum,const GLint*);
        void       (WINE_GLAPI *p_glSamplerParameterIuiv)(GLuint,GLenum,const GLuint*);
        void       (WINE_GLAPI *p_glSamplerParameterf)(GLuint,GLenum,GLfloat);
        void       (WINE_GLAPI *p_glSamplerParameterfv)(GLuint,GLenum,const GLfloat*);
        void       (WINE_GLAPI *p_glSamplerParameteri)(GLuint,GLenum,GLint);
        void       (WINE_GLAPI *p_glSamplerParameteriv)(GLuint,GLenum,const GLint*);
        void       (WINE_GLAPI *p_glScalexOES)(GLfixed,GLfixed,GLfixed);
        void       (WINE_GLAPI *p_glScissorArrayv)(GLuint,GLsizei,const GLint*);
        void       (WINE_GLAPI *p_glScissorIndexed)(GLuint,GLint,GLint,GLsizei,GLsizei);
        void       (WINE_GLAPI *p_glScissorIndexedv)(GLuint,const GLint*);
        void       (WINE_GLAPI *p_glSecondaryColor3b)(GLbyte,GLbyte,GLbyte);
        void       (WINE_GLAPI *p_glSecondaryColor3bEXT)(GLbyte,GLbyte,GLbyte);
        void       (WINE_GLAPI *p_glSecondaryColor3bv)(const GLbyte*);
        void       (WINE_GLAPI *p_glSecondaryColor3bvEXT)(const GLbyte*);
        void       (WINE_GLAPI *p_glSecondaryColor3d)(GLdouble,GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glSecondaryColor3dEXT)(GLdouble,GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glSecondaryColor3dv)(const GLdouble*);
        void       (WINE_GLAPI *p_glSecondaryColor3dvEXT)(const GLdouble*);
        void       (WINE_GLAPI *p_glSecondaryColor3f)(GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glSecondaryColor3fEXT)(GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glSecondaryColor3fv)(const GLfloat*);
        void       (WINE_GLAPI *p_glSecondaryColor3fvEXT)(const GLfloat*);
        void       (WINE_GLAPI *p_glSecondaryColor3hNV)(GLhalfNV,GLhalfNV,GLhalfNV);
        void       (WINE_GLAPI *p_glSecondaryColor3hvNV)(const GLhalfNV*);
        void       (WINE_GLAPI *p_glSecondaryColor3i)(GLint,GLint,GLint);
        void       (WINE_GLAPI *p_glSecondaryColor3iEXT)(GLint,GLint,GLint);
        void       (WINE_GLAPI *p_glSecondaryColor3iv)(const GLint*);
        void       (WINE_GLAPI *p_glSecondaryColor3ivEXT)(const GLint*);
        void       (WINE_GLAPI *p_glSecondaryColor3s)(GLshort,GLshort,GLshort);
        void       (WINE_GLAPI *p_glSecondaryColor3sEXT)(GLshort,GLshort,GLshort);
        void       (WINE_GLAPI *p_glSecondaryColor3sv)(const GLshort*);
        void       (WINE_GLAPI *p_glSecondaryColor3svEXT)(const GLshort*);
        void       (WINE_GLAPI *p_glSecondaryColor3ub)(GLubyte,GLubyte,GLubyte);
        void       (WINE_GLAPI *p_glSecondaryColor3ubEXT)(GLubyte,GLubyte,GLubyte);
        void       (WINE_GLAPI *p_glSecondaryColor3ubv)(const GLubyte*);
        void       (WINE_GLAPI *p_glSecondaryColor3ubvEXT)(const GLubyte*);
        void       (WINE_GLAPI *p_glSecondaryColor3ui)(GLuint,GLuint,GLuint);
        void       (WINE_GLAPI *p_glSecondaryColor3uiEXT)(GLuint,GLuint,GLuint);
        void       (WINE_GLAPI *p_glSecondaryColor3uiv)(const GLuint*);
        void       (WINE_GLAPI *p_glSecondaryColor3uivEXT)(const GLuint*);
        void       (WINE_GLAPI *p_glSecondaryColor3us)(GLushort,GLushort,GLushort);
        void       (WINE_GLAPI *p_glSecondaryColor3usEXT)(GLushort,GLushort,GLushort);
        void       (WINE_GLAPI *p_glSecondaryColor3usv)(const GLushort*);
        void       (WINE_GLAPI *p_glSecondaryColor3usvEXT)(const GLushort*);
        void       (WINE_GLAPI *p_glSecondaryColorFormatNV)(GLint,GLenum,GLsizei);
        void       (WINE_GLAPI *p_glSecondaryColorP3ui)(GLenum,GLuint);
        void       (WINE_GLAPI *p_glSecondaryColorP3uiv)(GLenum,const GLuint*);
        void       (WINE_GLAPI *p_glSecondaryColorPointer)(GLint,GLenum,GLsizei,const void*);
        void       (WINE_GLAPI *p_glSecondaryColorPointerEXT)(GLint,GLenum,GLsizei,const void*);
        void       (WINE_GLAPI *p_glSecondaryColorPointerListIBM)(GLint,GLenum,GLint,const void**,GLint);
        void       (WINE_GLAPI *p_glSelectPerfMonitorCountersAMD)(GLuint,GLboolean,GLuint,GLint,GLuint*);
        void       (WINE_GLAPI *p_glSelectTextureCoordSetSGIS)(GLenum);
        void       (WINE_GLAPI *p_glSelectTextureSGIS)(GLenum);
        void       (WINE_GLAPI *p_glSeparableFilter2D)(GLenum,GLenum,GLsizei,GLsizei,GLenum,GLenum,const void*,const void*);
        void       (WINE_GLAPI *p_glSeparableFilter2DEXT)(GLenum,GLenum,GLsizei,GLsizei,GLenum,GLenum,const void*,const void*);
        void       (WINE_GLAPI *p_glSetFenceAPPLE)(GLuint);
        void       (WINE_GLAPI *p_glSetFenceNV)(GLuint,GLenum);
        void       (WINE_GLAPI *p_glSetFragmentShaderConstantATI)(GLuint,const GLfloat*);
        void       (WINE_GLAPI *p_glSetInvariantEXT)(GLuint,GLenum,const void*);
        void       (WINE_GLAPI *p_glSetLocalConstantEXT)(GLuint,GLenum,const void*);
        void       (WINE_GLAPI *p_glSetMultisamplefvAMD)(GLenum,GLuint,const GLfloat*);
        void       (WINE_GLAPI *p_glShaderBinary)(GLsizei,const GLuint*,GLenum,const void*,GLsizei);
        void       (WINE_GLAPI *p_glShaderOp1EXT)(GLenum,GLuint,GLuint);
        void       (WINE_GLAPI *p_glShaderOp2EXT)(GLenum,GLuint,GLuint,GLuint);
        void       (WINE_GLAPI *p_glShaderOp3EXT)(GLenum,GLuint,GLuint,GLuint,GLuint);
        void       (WINE_GLAPI *p_glShaderSource)(GLuint,GLsizei,const GLchar*const*,const GLint*);
        void       (WINE_GLAPI *p_glShaderSourceARB)(GLhandleARB,GLsizei,const GLcharARB**,const GLint*);
        void       (WINE_GLAPI *p_glShaderStorageBlockBinding)(GLuint,GLuint,GLuint);
        void       (WINE_GLAPI *p_glSharpenTexFuncSGIS)(GLenum,GLsizei,const GLfloat*);
        void       (WINE_GLAPI *p_glSpriteParameterfSGIX)(GLenum,GLfloat);
        void       (WINE_GLAPI *p_glSpriteParameterfvSGIX)(GLenum,const GLfloat*);
        void       (WINE_GLAPI *p_glSpriteParameteriSGIX)(GLenum,GLint);
        void       (WINE_GLAPI *p_glSpriteParameterivSGIX)(GLenum,const GLint*);
        void       (WINE_GLAPI *p_glStartInstrumentsSGIX)(void);
        void       (WINE_GLAPI *p_glStateCaptureNV)(GLuint,GLenum);
        void       (WINE_GLAPI *p_glStencilClearTagEXT)(GLsizei,GLuint);
        void       (WINE_GLAPI *p_glStencilFillPathInstancedNV)(GLsizei,GLenum,const void*,GLuint,GLenum,GLuint,GLenum,const GLfloat*);
        void       (WINE_GLAPI *p_glStencilFillPathNV)(GLuint,GLenum,GLuint);
        void       (WINE_GLAPI *p_glStencilFuncSeparate)(GLenum,GLenum,GLint,GLuint);
        void       (WINE_GLAPI *p_glStencilFuncSeparateATI)(GLenum,GLenum,GLint,GLuint);
        void       (WINE_GLAPI *p_glStencilMaskSeparate)(GLenum,GLuint);
        void       (WINE_GLAPI *p_glStencilOpSeparate)(GLenum,GLenum,GLenum,GLenum);
        void       (WINE_GLAPI *p_glStencilOpSeparateATI)(GLenum,GLenum,GLenum,GLenum);
        void       (WINE_GLAPI *p_glStencilOpValueAMD)(GLenum,GLuint);
        void       (WINE_GLAPI *p_glStencilStrokePathInstancedNV)(GLsizei,GLenum,const void*,GLuint,GLint,GLuint,GLenum,const GLfloat*);
        void       (WINE_GLAPI *p_glStencilStrokePathNV)(GLuint,GLint,GLuint);
        void       (WINE_GLAPI *p_glStencilThenCoverFillPathInstancedNV)(GLsizei,GLenum,const void*,GLuint,GLenum,GLuint,GLenum,GLenum,const GLfloat*);
        void       (WINE_GLAPI *p_glStencilThenCoverFillPathNV)(GLuint,GLenum,GLuint,GLenum);
        void       (WINE_GLAPI *p_glStencilThenCoverStrokePathInstancedNV)(GLsizei,GLenum,const void*,GLuint,GLint,GLuint,GLenum,GLenum,const GLfloat*);
        void       (WINE_GLAPI *p_glStencilThenCoverStrokePathNV)(GLuint,GLint,GLuint,GLenum);
        void       (WINE_GLAPI *p_glStopInstrumentsSGIX)(GLint);
        void       (WINE_GLAPI *p_glStringMarkerGREMEDY)(GLsizei,const void*);
        void       (WINE_GLAPI *p_glSubpixelPrecisionBiasNV)(GLuint,GLuint);
        void       (WINE_GLAPI *p_glSwizzleEXT)(GLuint,GLuint,GLenum,GLenum,GLenum,GLenum);
        void       (WINE_GLAPI *p_glSyncTextureINTEL)(GLuint);
        void       (WINE_GLAPI *p_glTagSampleBufferSGIX)(void);
        void       (WINE_GLAPI *p_glTangent3bEXT)(GLbyte,GLbyte,GLbyte);
        void       (WINE_GLAPI *p_glTangent3bvEXT)(const GLbyte*);
        void       (WINE_GLAPI *p_glTangent3dEXT)(GLdouble,GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glTangent3dvEXT)(const GLdouble*);
        void       (WINE_GLAPI *p_glTangent3fEXT)(GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glTangent3fvEXT)(const GLfloat*);
        void       (WINE_GLAPI *p_glTangent3iEXT)(GLint,GLint,GLint);
        void       (WINE_GLAPI *p_glTangent3ivEXT)(const GLint*);
        void       (WINE_GLAPI *p_glTangent3sEXT)(GLshort,GLshort,GLshort);
        void       (WINE_GLAPI *p_glTangent3svEXT)(const GLshort*);
        void       (WINE_GLAPI *p_glTangentPointerEXT)(GLenum,GLsizei,const void*);
        void       (WINE_GLAPI *p_glTbufferMask3DFX)(GLuint);
        void       (WINE_GLAPI *p_glTessellationFactorAMD)(GLfloat);
        void       (WINE_GLAPI *p_glTessellationModeAMD)(GLenum);
        GLboolean  (WINE_GLAPI *p_glTestFenceAPPLE)(GLuint);
        GLboolean  (WINE_GLAPI *p_glTestFenceNV)(GLuint);
        GLboolean  (WINE_GLAPI *p_glTestObjectAPPLE)(GLenum,GLuint);
        void       (WINE_GLAPI *p_glTexBuffer)(GLenum,GLenum,GLuint);
        void       (WINE_GLAPI *p_glTexBufferARB)(GLenum,GLenum,GLuint);
        void       (WINE_GLAPI *p_glTexBufferEXT)(GLenum,GLenum,GLuint);
        void       (WINE_GLAPI *p_glTexBufferRange)(GLenum,GLenum,GLuint,GLintptr,GLsizeiptr);
        void       (WINE_GLAPI *p_glTexBumpParameterfvATI)(GLenum,const GLfloat*);
        void       (WINE_GLAPI *p_glTexBumpParameterivATI)(GLenum,const GLint*);
        void       (WINE_GLAPI *p_glTexCoord1bOES)(GLbyte);
        void       (WINE_GLAPI *p_glTexCoord1bvOES)(const GLbyte*);
        void       (WINE_GLAPI *p_glTexCoord1hNV)(GLhalfNV);
        void       (WINE_GLAPI *p_glTexCoord1hvNV)(const GLhalfNV*);
        void       (WINE_GLAPI *p_glTexCoord1xOES)(GLfixed);
        void       (WINE_GLAPI *p_glTexCoord1xvOES)(const GLfixed*);
        void       (WINE_GLAPI *p_glTexCoord2bOES)(GLbyte,GLbyte);
        void       (WINE_GLAPI *p_glTexCoord2bvOES)(const GLbyte*);
        void       (WINE_GLAPI *p_glTexCoord2fColor3fVertex3fSUN)(GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glTexCoord2fColor3fVertex3fvSUN)(const GLfloat*,const GLfloat*,const GLfloat*);
        void       (WINE_GLAPI *p_glTexCoord2fColor4fNormal3fVertex3fSUN)(GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glTexCoord2fColor4fNormal3fVertex3fvSUN)(const GLfloat*,const GLfloat*,const GLfloat*,const GLfloat*);
        void       (WINE_GLAPI *p_glTexCoord2fColor4ubVertex3fSUN)(GLfloat,GLfloat,GLubyte,GLubyte,GLubyte,GLubyte,GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glTexCoord2fColor4ubVertex3fvSUN)(const GLfloat*,const GLubyte*,const GLfloat*);
        void       (WINE_GLAPI *p_glTexCoord2fNormal3fVertex3fSUN)(GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glTexCoord2fNormal3fVertex3fvSUN)(const GLfloat*,const GLfloat*,const GLfloat*);
        void       (WINE_GLAPI *p_glTexCoord2fVertex3fSUN)(GLfloat,GLfloat,GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glTexCoord2fVertex3fvSUN)(const GLfloat*,const GLfloat*);
        void       (WINE_GLAPI *p_glTexCoord2hNV)(GLhalfNV,GLhalfNV);
        void       (WINE_GLAPI *p_glTexCoord2hvNV)(const GLhalfNV*);
        void       (WINE_GLAPI *p_glTexCoord2xOES)(GLfixed,GLfixed);
        void       (WINE_GLAPI *p_glTexCoord2xvOES)(const GLfixed*);
        void       (WINE_GLAPI *p_glTexCoord3bOES)(GLbyte,GLbyte,GLbyte);
        void       (WINE_GLAPI *p_glTexCoord3bvOES)(const GLbyte*);
        void       (WINE_GLAPI *p_glTexCoord3hNV)(GLhalfNV,GLhalfNV,GLhalfNV);
        void       (WINE_GLAPI *p_glTexCoord3hvNV)(const GLhalfNV*);
        void       (WINE_GLAPI *p_glTexCoord3xOES)(GLfixed,GLfixed,GLfixed);
        void       (WINE_GLAPI *p_glTexCoord3xvOES)(const GLfixed*);
        void       (WINE_GLAPI *p_glTexCoord4bOES)(GLbyte,GLbyte,GLbyte,GLbyte);
        void       (WINE_GLAPI *p_glTexCoord4bvOES)(const GLbyte*);
        void       (WINE_GLAPI *p_glTexCoord4fColor4fNormal3fVertex4fSUN)(GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glTexCoord4fColor4fNormal3fVertex4fvSUN)(const GLfloat*,const GLfloat*,const GLfloat*,const GLfloat*);
        void       (WINE_GLAPI *p_glTexCoord4fVertex4fSUN)(GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glTexCoord4fVertex4fvSUN)(const GLfloat*,const GLfloat*);
        void       (WINE_GLAPI *p_glTexCoord4hNV)(GLhalfNV,GLhalfNV,GLhalfNV,GLhalfNV);
        void       (WINE_GLAPI *p_glTexCoord4hvNV)(const GLhalfNV*);
        void       (WINE_GLAPI *p_glTexCoord4xOES)(GLfixed,GLfixed,GLfixed,GLfixed);
        void       (WINE_GLAPI *p_glTexCoord4xvOES)(const GLfixed*);
        void       (WINE_GLAPI *p_glTexCoordFormatNV)(GLint,GLenum,GLsizei);
        void       (WINE_GLAPI *p_glTexCoordP1ui)(GLenum,GLuint);
        void       (WINE_GLAPI *p_glTexCoordP1uiv)(GLenum,const GLuint*);
        void       (WINE_GLAPI *p_glTexCoordP2ui)(GLenum,GLuint);
        void       (WINE_GLAPI *p_glTexCoordP2uiv)(GLenum,const GLuint*);
        void       (WINE_GLAPI *p_glTexCoordP3ui)(GLenum,GLuint);
        void       (WINE_GLAPI *p_glTexCoordP3uiv)(GLenum,const GLuint*);
        void       (WINE_GLAPI *p_glTexCoordP4ui)(GLenum,GLuint);
        void       (WINE_GLAPI *p_glTexCoordP4uiv)(GLenum,const GLuint*);
        void       (WINE_GLAPI *p_glTexCoordPointerEXT)(GLint,GLenum,GLsizei,GLsizei,const void*);
        void       (WINE_GLAPI *p_glTexCoordPointerListIBM)(GLint,GLenum,GLint,const void**,GLint);
        void       (WINE_GLAPI *p_glTexCoordPointervINTEL)(GLint,GLenum,const void**);
        void       (WINE_GLAPI *p_glTexEnvxOES)(GLenum,GLenum,GLfixed);
        void       (WINE_GLAPI *p_glTexEnvxvOES)(GLenum,GLenum,const GLfixed*);
        void       (WINE_GLAPI *p_glTexFilterFuncSGIS)(GLenum,GLenum,GLsizei,const GLfloat*);
        void       (WINE_GLAPI *p_glTexGenxOES)(GLenum,GLenum,GLfixed);
        void       (WINE_GLAPI *p_glTexGenxvOES)(GLenum,GLenum,const GLfixed*);
        void       (WINE_GLAPI *p_glTexImage2DMultisample)(GLenum,GLsizei,GLenum,GLsizei,GLsizei,GLboolean);
        void       (WINE_GLAPI *p_glTexImage2DMultisampleCoverageNV)(GLenum,GLsizei,GLsizei,GLint,GLsizei,GLsizei,GLboolean);
        void       (WINE_GLAPI *p_glTexImage3D)(GLenum,GLint,GLint,GLsizei,GLsizei,GLsizei,GLint,GLenum,GLenum,const void*);
        void       (WINE_GLAPI *p_glTexImage3DEXT)(GLenum,GLint,GLenum,GLsizei,GLsizei,GLsizei,GLint,GLenum,GLenum,const void*);
        void       (WINE_GLAPI *p_glTexImage3DMultisample)(GLenum,GLsizei,GLenum,GLsizei,GLsizei,GLsizei,GLboolean);
        void       (WINE_GLAPI *p_glTexImage3DMultisampleCoverageNV)(GLenum,GLsizei,GLsizei,GLint,GLsizei,GLsizei,GLsizei,GLboolean);
        void       (WINE_GLAPI *p_glTexImage4DSGIS)(GLenum,GLint,GLenum,GLsizei,GLsizei,GLsizei,GLsizei,GLint,GLenum,GLenum,const void*);
        void       (WINE_GLAPI *p_glTexPageCommitmentARB)(GLenum,GLint,GLint,GLint,GLint,GLsizei,GLsizei,GLsizei,GLboolean);
        void       (WINE_GLAPI *p_glTexParameterIiv)(GLenum,GLenum,const GLint*);
        void       (WINE_GLAPI *p_glTexParameterIivEXT)(GLenum,GLenum,const GLint*);
        void       (WINE_GLAPI *p_glTexParameterIuiv)(GLenum,GLenum,const GLuint*);
        void       (WINE_GLAPI *p_glTexParameterIuivEXT)(GLenum,GLenum,const GLuint*);
        void       (WINE_GLAPI *p_glTexParameterxOES)(GLenum,GLenum,GLfixed);
        void       (WINE_GLAPI *p_glTexParameterxvOES)(GLenum,GLenum,const GLfixed*);
        void       (WINE_GLAPI *p_glTexRenderbufferNV)(GLenum,GLuint);
        void       (WINE_GLAPI *p_glTexStorage1D)(GLenum,GLsizei,GLenum,GLsizei);
        void       (WINE_GLAPI *p_glTexStorage2D)(GLenum,GLsizei,GLenum,GLsizei,GLsizei);
        void       (WINE_GLAPI *p_glTexStorage2DMultisample)(GLenum,GLsizei,GLenum,GLsizei,GLsizei,GLboolean);
        void       (WINE_GLAPI *p_glTexStorage3D)(GLenum,GLsizei,GLenum,GLsizei,GLsizei,GLsizei);
        void       (WINE_GLAPI *p_glTexStorage3DMultisample)(GLenum,GLsizei,GLenum,GLsizei,GLsizei,GLsizei,GLboolean);
        void       (WINE_GLAPI *p_glTexStorageSparseAMD)(GLenum,GLenum,GLsizei,GLsizei,GLsizei,GLsizei,GLbitfield);
        void       (WINE_GLAPI *p_glTexSubImage1DEXT)(GLenum,GLint,GLint,GLsizei,GLenum,GLenum,const void*);
        void       (WINE_GLAPI *p_glTexSubImage2DEXT)(GLenum,GLint,GLint,GLint,GLsizei,GLsizei,GLenum,GLenum,const void*);
        void       (WINE_GLAPI *p_glTexSubImage3D)(GLenum,GLint,GLint,GLint,GLint,GLsizei,GLsizei,GLsizei,GLenum,GLenum,const void*);
        void       (WINE_GLAPI *p_glTexSubImage3DEXT)(GLenum,GLint,GLint,GLint,GLint,GLsizei,GLsizei,GLsizei,GLenum,GLenum,const void*);
        void       (WINE_GLAPI *p_glTexSubImage4DSGIS)(GLenum,GLint,GLint,GLint,GLint,GLint,GLsizei,GLsizei,GLsizei,GLsizei,GLenum,GLenum,const void*);
        void       (WINE_GLAPI *p_glTextureBarrier)(void);
        void       (WINE_GLAPI *p_glTextureBarrierNV)(void);
        void       (WINE_GLAPI *p_glTextureBuffer)(GLuint,GLenum,GLuint);
        void       (WINE_GLAPI *p_glTextureBufferEXT)(GLuint,GLenum,GLenum,GLuint);
        void       (WINE_GLAPI *p_glTextureBufferRange)(GLuint,GLenum,GLuint,GLintptr,GLsizeiptr);
        void       (WINE_GLAPI *p_glTextureBufferRangeEXT)(GLuint,GLenum,GLenum,GLuint,GLintptr,GLsizeiptr);
        void       (WINE_GLAPI *p_glTextureColorMaskSGIS)(GLboolean,GLboolean,GLboolean,GLboolean);
        void       (WINE_GLAPI *p_glTextureImage1DEXT)(GLuint,GLenum,GLint,GLint,GLsizei,GLint,GLenum,GLenum,const void*);
        void       (WINE_GLAPI *p_glTextureImage2DEXT)(GLuint,GLenum,GLint,GLint,GLsizei,GLsizei,GLint,GLenum,GLenum,const void*);
        void       (WINE_GLAPI *p_glTextureImage2DMultisampleCoverageNV)(GLuint,GLenum,GLsizei,GLsizei,GLint,GLsizei,GLsizei,GLboolean);
        void       (WINE_GLAPI *p_glTextureImage2DMultisampleNV)(GLuint,GLenum,GLsizei,GLint,GLsizei,GLsizei,GLboolean);
        void       (WINE_GLAPI *p_glTextureImage3DEXT)(GLuint,GLenum,GLint,GLint,GLsizei,GLsizei,GLsizei,GLint,GLenum,GLenum,const void*);
        void       (WINE_GLAPI *p_glTextureImage3DMultisampleCoverageNV)(GLuint,GLenum,GLsizei,GLsizei,GLint,GLsizei,GLsizei,GLsizei,GLboolean);
        void       (WINE_GLAPI *p_glTextureImage3DMultisampleNV)(GLuint,GLenum,GLsizei,GLint,GLsizei,GLsizei,GLsizei,GLboolean);
        void       (WINE_GLAPI *p_glTextureLightEXT)(GLenum);
        void       (WINE_GLAPI *p_glTextureMaterialEXT)(GLenum,GLenum);
        void       (WINE_GLAPI *p_glTextureNormalEXT)(GLenum);
        void       (WINE_GLAPI *p_glTexturePageCommitmentEXT)(GLuint,GLint,GLint,GLint,GLint,GLsizei,GLsizei,GLsizei,GLboolean);
        void       (WINE_GLAPI *p_glTextureParameterIiv)(GLuint,GLenum,const GLint*);
        void       (WINE_GLAPI *p_glTextureParameterIivEXT)(GLuint,GLenum,GLenum,const GLint*);
        void       (WINE_GLAPI *p_glTextureParameterIuiv)(GLuint,GLenum,const GLuint*);
        void       (WINE_GLAPI *p_glTextureParameterIuivEXT)(GLuint,GLenum,GLenum,const GLuint*);
        void       (WINE_GLAPI *p_glTextureParameterf)(GLuint,GLenum,GLfloat);
        void       (WINE_GLAPI *p_glTextureParameterfEXT)(GLuint,GLenum,GLenum,GLfloat);
        void       (WINE_GLAPI *p_glTextureParameterfv)(GLuint,GLenum,const GLfloat*);
        void       (WINE_GLAPI *p_glTextureParameterfvEXT)(GLuint,GLenum,GLenum,const GLfloat*);
        void       (WINE_GLAPI *p_glTextureParameteri)(GLuint,GLenum,GLint);
        void       (WINE_GLAPI *p_glTextureParameteriEXT)(GLuint,GLenum,GLenum,GLint);
        void       (WINE_GLAPI *p_glTextureParameteriv)(GLuint,GLenum,const GLint*);
        void       (WINE_GLAPI *p_glTextureParameterivEXT)(GLuint,GLenum,GLenum,const GLint*);
        void       (WINE_GLAPI *p_glTextureRangeAPPLE)(GLenum,GLsizei,const void*);
        void       (WINE_GLAPI *p_glTextureRenderbufferEXT)(GLuint,GLenum,GLuint);
        void       (WINE_GLAPI *p_glTextureStorage1D)(GLuint,GLsizei,GLenum,GLsizei);
        void       (WINE_GLAPI *p_glTextureStorage1DEXT)(GLuint,GLenum,GLsizei,GLenum,GLsizei);
        void       (WINE_GLAPI *p_glTextureStorage2D)(GLuint,GLsizei,GLenum,GLsizei,GLsizei);
        void       (WINE_GLAPI *p_glTextureStorage2DEXT)(GLuint,GLenum,GLsizei,GLenum,GLsizei,GLsizei);
        void       (WINE_GLAPI *p_glTextureStorage2DMultisample)(GLuint,GLsizei,GLenum,GLsizei,GLsizei,GLboolean);
        void       (WINE_GLAPI *p_glTextureStorage2DMultisampleEXT)(GLuint,GLenum,GLsizei,GLenum,GLsizei,GLsizei,GLboolean);
        void       (WINE_GLAPI *p_glTextureStorage3D)(GLuint,GLsizei,GLenum,GLsizei,GLsizei,GLsizei);
        void       (WINE_GLAPI *p_glTextureStorage3DEXT)(GLuint,GLenum,GLsizei,GLenum,GLsizei,GLsizei,GLsizei);
        void       (WINE_GLAPI *p_glTextureStorage3DMultisample)(GLuint,GLsizei,GLenum,GLsizei,GLsizei,GLsizei,GLboolean);
        void       (WINE_GLAPI *p_glTextureStorage3DMultisampleEXT)(GLuint,GLenum,GLsizei,GLenum,GLsizei,GLsizei,GLsizei,GLboolean);
        void       (WINE_GLAPI *p_glTextureStorageSparseAMD)(GLuint,GLenum,GLenum,GLsizei,GLsizei,GLsizei,GLsizei,GLbitfield);
        void       (WINE_GLAPI *p_glTextureSubImage1D)(GLuint,GLint,GLint,GLsizei,GLenum,GLenum,const void*);
        void       (WINE_GLAPI *p_glTextureSubImage1DEXT)(GLuint,GLenum,GLint,GLint,GLsizei,GLenum,GLenum,const void*);
        void       (WINE_GLAPI *p_glTextureSubImage2D)(GLuint,GLint,GLint,GLint,GLsizei,GLsizei,GLenum,GLenum,const void*);
        void       (WINE_GLAPI *p_glTextureSubImage2DEXT)(GLuint,GLenum,GLint,GLint,GLint,GLsizei,GLsizei,GLenum,GLenum,const void*);
        void       (WINE_GLAPI *p_glTextureSubImage3D)(GLuint,GLint,GLint,GLint,GLint,GLsizei,GLsizei,GLsizei,GLenum,GLenum,const void*);
        void       (WINE_GLAPI *p_glTextureSubImage3DEXT)(GLuint,GLenum,GLint,GLint,GLint,GLint,GLsizei,GLsizei,GLsizei,GLenum,GLenum,const void*);
        void       (WINE_GLAPI *p_glTextureView)(GLuint,GLenum,GLuint,GLenum,GLuint,GLuint,GLuint,GLuint);
        void       (WINE_GLAPI *p_glTrackMatrixNV)(GLenum,GLuint,GLenum,GLenum);
        void       (WINE_GLAPI *p_glTransformFeedbackAttribsNV)(GLsizei,const GLint*,GLenum);
        void       (WINE_GLAPI *p_glTransformFeedbackBufferBase)(GLuint,GLuint,GLuint);
        void       (WINE_GLAPI *p_glTransformFeedbackBufferRange)(GLuint,GLuint,GLuint,GLintptr,GLsizeiptr);
        void       (WINE_GLAPI *p_glTransformFeedbackStreamAttribsNV)(GLsizei,const GLint*,GLsizei,const GLint*,GLenum);
        void       (WINE_GLAPI *p_glTransformFeedbackVaryings)(GLuint,GLsizei,const GLchar*const*,GLenum);
        void       (WINE_GLAPI *p_glTransformFeedbackVaryingsEXT)(GLuint,GLsizei,const GLchar*const*,GLenum);
        void       (WINE_GLAPI *p_glTransformFeedbackVaryingsNV)(GLuint,GLsizei,const GLint*,GLenum);
        void       (WINE_GLAPI *p_glTransformPathNV)(GLuint,GLuint,GLenum,const GLfloat*);
        void       (WINE_GLAPI *p_glTranslatexOES)(GLfixed,GLfixed,GLfixed);
        void       (WINE_GLAPI *p_glUniform1d)(GLint,GLdouble);
        void       (WINE_GLAPI *p_glUniform1dv)(GLint,GLsizei,const GLdouble*);
        void       (WINE_GLAPI *p_glUniform1f)(GLint,GLfloat);
        void       (WINE_GLAPI *p_glUniform1fARB)(GLint,GLfloat);
        void       (WINE_GLAPI *p_glUniform1fv)(GLint,GLsizei,const GLfloat*);
        void       (WINE_GLAPI *p_glUniform1fvARB)(GLint,GLsizei,const GLfloat*);
        void       (WINE_GLAPI *p_glUniform1i)(GLint,GLint);
        void       (WINE_GLAPI *p_glUniform1i64ARB)(GLint,GLint64);
        void       (WINE_GLAPI *p_glUniform1i64NV)(GLint,GLint64EXT);
        void       (WINE_GLAPI *p_glUniform1i64vARB)(GLint,GLsizei,const GLint64*);
        void       (WINE_GLAPI *p_glUniform1i64vNV)(GLint,GLsizei,const GLint64EXT*);
        void       (WINE_GLAPI *p_glUniform1iARB)(GLint,GLint);
        void       (WINE_GLAPI *p_glUniform1iv)(GLint,GLsizei,const GLint*);
        void       (WINE_GLAPI *p_glUniform1ivARB)(GLint,GLsizei,const GLint*);
        void       (WINE_GLAPI *p_glUniform1ui)(GLint,GLuint);
        void       (WINE_GLAPI *p_glUniform1ui64ARB)(GLint,GLuint64);
        void       (WINE_GLAPI *p_glUniform1ui64NV)(GLint,GLuint64EXT);
        void       (WINE_GLAPI *p_glUniform1ui64vARB)(GLint,GLsizei,const GLuint64*);
        void       (WINE_GLAPI *p_glUniform1ui64vNV)(GLint,GLsizei,const GLuint64EXT*);
        void       (WINE_GLAPI *p_glUniform1uiEXT)(GLint,GLuint);
        void       (WINE_GLAPI *p_glUniform1uiv)(GLint,GLsizei,const GLuint*);
        void       (WINE_GLAPI *p_glUniform1uivEXT)(GLint,GLsizei,const GLuint*);
        void       (WINE_GLAPI *p_glUniform2d)(GLint,GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glUniform2dv)(GLint,GLsizei,const GLdouble*);
        void       (WINE_GLAPI *p_glUniform2f)(GLint,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glUniform2fARB)(GLint,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glUniform2fv)(GLint,GLsizei,const GLfloat*);
        void       (WINE_GLAPI *p_glUniform2fvARB)(GLint,GLsizei,const GLfloat*);
        void       (WINE_GLAPI *p_glUniform2i)(GLint,GLint,GLint);
        void       (WINE_GLAPI *p_glUniform2i64ARB)(GLint,GLint64,GLint64);
        void       (WINE_GLAPI *p_glUniform2i64NV)(GLint,GLint64EXT,GLint64EXT);
        void       (WINE_GLAPI *p_glUniform2i64vARB)(GLint,GLsizei,const GLint64*);
        void       (WINE_GLAPI *p_glUniform2i64vNV)(GLint,GLsizei,const GLint64EXT*);
        void       (WINE_GLAPI *p_glUniform2iARB)(GLint,GLint,GLint);
        void       (WINE_GLAPI *p_glUniform2iv)(GLint,GLsizei,const GLint*);
        void       (WINE_GLAPI *p_glUniform2ivARB)(GLint,GLsizei,const GLint*);
        void       (WINE_GLAPI *p_glUniform2ui)(GLint,GLuint,GLuint);
        void       (WINE_GLAPI *p_glUniform2ui64ARB)(GLint,GLuint64,GLuint64);
        void       (WINE_GLAPI *p_glUniform2ui64NV)(GLint,GLuint64EXT,GLuint64EXT);
        void       (WINE_GLAPI *p_glUniform2ui64vARB)(GLint,GLsizei,const GLuint64*);
        void       (WINE_GLAPI *p_glUniform2ui64vNV)(GLint,GLsizei,const GLuint64EXT*);
        void       (WINE_GLAPI *p_glUniform2uiEXT)(GLint,GLuint,GLuint);
        void       (WINE_GLAPI *p_glUniform2uiv)(GLint,GLsizei,const GLuint*);
        void       (WINE_GLAPI *p_glUniform2uivEXT)(GLint,GLsizei,const GLuint*);
        void       (WINE_GLAPI *p_glUniform3d)(GLint,GLdouble,GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glUniform3dv)(GLint,GLsizei,const GLdouble*);
        void       (WINE_GLAPI *p_glUniform3f)(GLint,GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glUniform3fARB)(GLint,GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glUniform3fv)(GLint,GLsizei,const GLfloat*);
        void       (WINE_GLAPI *p_glUniform3fvARB)(GLint,GLsizei,const GLfloat*);
        void       (WINE_GLAPI *p_glUniform3i)(GLint,GLint,GLint,GLint);
        void       (WINE_GLAPI *p_glUniform3i64ARB)(GLint,GLint64,GLint64,GLint64);
        void       (WINE_GLAPI *p_glUniform3i64NV)(GLint,GLint64EXT,GLint64EXT,GLint64EXT);
        void       (WINE_GLAPI *p_glUniform3i64vARB)(GLint,GLsizei,const GLint64*);
        void       (WINE_GLAPI *p_glUniform3i64vNV)(GLint,GLsizei,const GLint64EXT*);
        void       (WINE_GLAPI *p_glUniform3iARB)(GLint,GLint,GLint,GLint);
        void       (WINE_GLAPI *p_glUniform3iv)(GLint,GLsizei,const GLint*);
        void       (WINE_GLAPI *p_glUniform3ivARB)(GLint,GLsizei,const GLint*);
        void       (WINE_GLAPI *p_glUniform3ui)(GLint,GLuint,GLuint,GLuint);
        void       (WINE_GLAPI *p_glUniform3ui64ARB)(GLint,GLuint64,GLuint64,GLuint64);
        void       (WINE_GLAPI *p_glUniform3ui64NV)(GLint,GLuint64EXT,GLuint64EXT,GLuint64EXT);
        void       (WINE_GLAPI *p_glUniform3ui64vARB)(GLint,GLsizei,const GLuint64*);
        void       (WINE_GLAPI *p_glUniform3ui64vNV)(GLint,GLsizei,const GLuint64EXT*);
        void       (WINE_GLAPI *p_glUniform3uiEXT)(GLint,GLuint,GLuint,GLuint);
        void       (WINE_GLAPI *p_glUniform3uiv)(GLint,GLsizei,const GLuint*);
        void       (WINE_GLAPI *p_glUniform3uivEXT)(GLint,GLsizei,const GLuint*);
        void       (WINE_GLAPI *p_glUniform4d)(GLint,GLdouble,GLdouble,GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glUniform4dv)(GLint,GLsizei,const GLdouble*);
        void       (WINE_GLAPI *p_glUniform4f)(GLint,GLfloat,GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glUniform4fARB)(GLint,GLfloat,GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glUniform4fv)(GLint,GLsizei,const GLfloat*);
        void       (WINE_GLAPI *p_glUniform4fvARB)(GLint,GLsizei,const GLfloat*);
        void       (WINE_GLAPI *p_glUniform4i)(GLint,GLint,GLint,GLint,GLint);
        void       (WINE_GLAPI *p_glUniform4i64ARB)(GLint,GLint64,GLint64,GLint64,GLint64);
        void       (WINE_GLAPI *p_glUniform4i64NV)(GLint,GLint64EXT,GLint64EXT,GLint64EXT,GLint64EXT);
        void       (WINE_GLAPI *p_glUniform4i64vARB)(GLint,GLsizei,const GLint64*);
        void       (WINE_GLAPI *p_glUniform4i64vNV)(GLint,GLsizei,const GLint64EXT*);
        void       (WINE_GLAPI *p_glUniform4iARB)(GLint,GLint,GLint,GLint,GLint);
        void       (WINE_GLAPI *p_glUniform4iv)(GLint,GLsizei,const GLint*);
        void       (WINE_GLAPI *p_glUniform4ivARB)(GLint,GLsizei,const GLint*);
        void       (WINE_GLAPI *p_glUniform4ui)(GLint,GLuint,GLuint,GLuint,GLuint);
        void       (WINE_GLAPI *p_glUniform4ui64ARB)(GLint,GLuint64,GLuint64,GLuint64,GLuint64);
        void       (WINE_GLAPI *p_glUniform4ui64NV)(GLint,GLuint64EXT,GLuint64EXT,GLuint64EXT,GLuint64EXT);
        void       (WINE_GLAPI *p_glUniform4ui64vARB)(GLint,GLsizei,const GLuint64*);
        void       (WINE_GLAPI *p_glUniform4ui64vNV)(GLint,GLsizei,const GLuint64EXT*);
        void       (WINE_GLAPI *p_glUniform4uiEXT)(GLint,GLuint,GLuint,GLuint,GLuint);
        void       (WINE_GLAPI *p_glUniform4uiv)(GLint,GLsizei,const GLuint*);
        void       (WINE_GLAPI *p_glUniform4uivEXT)(GLint,GLsizei,const GLuint*);
        void       (WINE_GLAPI *p_glUniformBlockBinding)(GLuint,GLuint,GLuint);
        void       (WINE_GLAPI *p_glUniformBufferEXT)(GLuint,GLint,GLuint);
        void       (WINE_GLAPI *p_glUniformHandleui64ARB)(GLint,GLuint64);
        void       (WINE_GLAPI *p_glUniformHandleui64NV)(GLint,GLuint64);
        void       (WINE_GLAPI *p_glUniformHandleui64vARB)(GLint,GLsizei,const GLuint64*);
        void       (WINE_GLAPI *p_glUniformHandleui64vNV)(GLint,GLsizei,const GLuint64*);
        void       (WINE_GLAPI *p_glUniformMatrix2dv)(GLint,GLsizei,GLboolean,const GLdouble*);
        void       (WINE_GLAPI *p_glUniformMatrix2fv)(GLint,GLsizei,GLboolean,const GLfloat*);
        void       (WINE_GLAPI *p_glUniformMatrix2fvARB)(GLint,GLsizei,GLboolean,const GLfloat*);
        void       (WINE_GLAPI *p_glUniformMatrix2x3dv)(GLint,GLsizei,GLboolean,const GLdouble*);
        void       (WINE_GLAPI *p_glUniformMatrix2x3fv)(GLint,GLsizei,GLboolean,const GLfloat*);
        void       (WINE_GLAPI *p_glUniformMatrix2x4dv)(GLint,GLsizei,GLboolean,const GLdouble*);
        void       (WINE_GLAPI *p_glUniformMatrix2x4fv)(GLint,GLsizei,GLboolean,const GLfloat*);
        void       (WINE_GLAPI *p_glUniformMatrix3dv)(GLint,GLsizei,GLboolean,const GLdouble*);
        void       (WINE_GLAPI *p_glUniformMatrix3fv)(GLint,GLsizei,GLboolean,const GLfloat*);
        void       (WINE_GLAPI *p_glUniformMatrix3fvARB)(GLint,GLsizei,GLboolean,const GLfloat*);
        void       (WINE_GLAPI *p_glUniformMatrix3x2dv)(GLint,GLsizei,GLboolean,const GLdouble*);
        void       (WINE_GLAPI *p_glUniformMatrix3x2fv)(GLint,GLsizei,GLboolean,const GLfloat*);
        void       (WINE_GLAPI *p_glUniformMatrix3x4dv)(GLint,GLsizei,GLboolean,const GLdouble*);
        void       (WINE_GLAPI *p_glUniformMatrix3x4fv)(GLint,GLsizei,GLboolean,const GLfloat*);
        void       (WINE_GLAPI *p_glUniformMatrix4dv)(GLint,GLsizei,GLboolean,const GLdouble*);
        void       (WINE_GLAPI *p_glUniformMatrix4fv)(GLint,GLsizei,GLboolean,const GLfloat*);
        void       (WINE_GLAPI *p_glUniformMatrix4fvARB)(GLint,GLsizei,GLboolean,const GLfloat*);
        void       (WINE_GLAPI *p_glUniformMatrix4x2dv)(GLint,GLsizei,GLboolean,const GLdouble*);
        void       (WINE_GLAPI *p_glUniformMatrix4x2fv)(GLint,GLsizei,GLboolean,const GLfloat*);
        void       (WINE_GLAPI *p_glUniformMatrix4x3dv)(GLint,GLsizei,GLboolean,const GLdouble*);
        void       (WINE_GLAPI *p_glUniformMatrix4x3fv)(GLint,GLsizei,GLboolean,const GLfloat*);
        void       (WINE_GLAPI *p_glUniformSubroutinesuiv)(GLenum,GLsizei,const GLuint*);
        void       (WINE_GLAPI *p_glUniformui64NV)(GLint,GLuint64EXT);
        void       (WINE_GLAPI *p_glUniformui64vNV)(GLint,GLsizei,const GLuint64EXT*);
        void       (WINE_GLAPI *p_glUnlockArraysEXT)(void);
        GLboolean  (WINE_GLAPI *p_glUnmapBuffer)(GLenum);
        GLboolean  (WINE_GLAPI *p_glUnmapBufferARB)(GLenum);
        GLboolean  (WINE_GLAPI *p_glUnmapNamedBuffer)(GLuint);
        GLboolean  (WINE_GLAPI *p_glUnmapNamedBufferEXT)(GLuint);
        void       (WINE_GLAPI *p_glUnmapObjectBufferATI)(GLuint);
        void       (WINE_GLAPI *p_glUnmapTexture2DINTEL)(GLuint,GLint);
        void       (WINE_GLAPI *p_glUpdateObjectBufferATI)(GLuint,GLuint,GLsizei,const void*,GLenum);
        void       (WINE_GLAPI *p_glUseProgram)(GLuint);
        void       (WINE_GLAPI *p_glUseProgramObjectARB)(GLhandleARB);
        void       (WINE_GLAPI *p_glUseProgramStages)(GLuint,GLbitfield,GLuint);
        void       (WINE_GLAPI *p_glUseShaderProgramEXT)(GLenum,GLuint);
        void       (WINE_GLAPI *p_glVDPAUFiniNV)(void);
        void       (WINE_GLAPI *p_glVDPAUGetSurfaceivNV)(GLvdpauSurfaceNV,GLenum,GLsizei,GLsizei*,GLint*);
        void       (WINE_GLAPI *p_glVDPAUInitNV)(const void*,const void*);
        GLboolean  (WINE_GLAPI *p_glVDPAUIsSurfaceNV)(GLvdpauSurfaceNV);
        void       (WINE_GLAPI *p_glVDPAUMapSurfacesNV)(GLsizei,const GLvdpauSurfaceNV*);
        GLvdpauSurfaceNV (WINE_GLAPI *p_glVDPAURegisterOutputSurfaceNV)(const void*,GLenum,GLsizei,const GLuint*);
        GLvdpauSurfaceNV (WINE_GLAPI *p_glVDPAURegisterVideoSurfaceNV)(const void*,GLenum,GLsizei,const GLuint*);
        void       (WINE_GLAPI *p_glVDPAUSurfaceAccessNV)(GLvdpauSurfaceNV,GLenum);
        void       (WINE_GLAPI *p_glVDPAUUnmapSurfacesNV)(GLsizei,const GLvdpauSurfaceNV*);
        void       (WINE_GLAPI *p_glVDPAUUnregisterSurfaceNV)(GLvdpauSurfaceNV);
        void       (WINE_GLAPI *p_glValidateProgram)(GLuint);
        void       (WINE_GLAPI *p_glValidateProgramARB)(GLhandleARB);
        void       (WINE_GLAPI *p_glValidateProgramPipeline)(GLuint);
        void       (WINE_GLAPI *p_glVariantArrayObjectATI)(GLuint,GLenum,GLsizei,GLuint,GLuint);
        void       (WINE_GLAPI *p_glVariantPointerEXT)(GLuint,GLenum,GLuint,const void*);
        void       (WINE_GLAPI *p_glVariantbvEXT)(GLuint,const GLbyte*);
        void       (WINE_GLAPI *p_glVariantdvEXT)(GLuint,const GLdouble*);
        void       (WINE_GLAPI *p_glVariantfvEXT)(GLuint,const GLfloat*);
        void       (WINE_GLAPI *p_glVariantivEXT)(GLuint,const GLint*);
        void       (WINE_GLAPI *p_glVariantsvEXT)(GLuint,const GLshort*);
        void       (WINE_GLAPI *p_glVariantubvEXT)(GLuint,const GLubyte*);
        void       (WINE_GLAPI *p_glVariantuivEXT)(GLuint,const GLuint*);
        void       (WINE_GLAPI *p_glVariantusvEXT)(GLuint,const GLushort*);
        void       (WINE_GLAPI *p_glVertex2bOES)(GLbyte,GLbyte);
        void       (WINE_GLAPI *p_glVertex2bvOES)(const GLbyte*);
        void       (WINE_GLAPI *p_glVertex2hNV)(GLhalfNV,GLhalfNV);
        void       (WINE_GLAPI *p_glVertex2hvNV)(const GLhalfNV*);
        void       (WINE_GLAPI *p_glVertex2xOES)(GLfixed);
        void       (WINE_GLAPI *p_glVertex2xvOES)(const GLfixed*);
        void       (WINE_GLAPI *p_glVertex3bOES)(GLbyte,GLbyte,GLbyte);
        void       (WINE_GLAPI *p_glVertex3bvOES)(const GLbyte*);
        void       (WINE_GLAPI *p_glVertex3hNV)(GLhalfNV,GLhalfNV,GLhalfNV);
        void       (WINE_GLAPI *p_glVertex3hvNV)(const GLhalfNV*);
        void       (WINE_GLAPI *p_glVertex3xOES)(GLfixed,GLfixed);
        void       (WINE_GLAPI *p_glVertex3xvOES)(const GLfixed*);
        void       (WINE_GLAPI *p_glVertex4bOES)(GLbyte,GLbyte,GLbyte,GLbyte);
        void       (WINE_GLAPI *p_glVertex4bvOES)(const GLbyte*);
        void       (WINE_GLAPI *p_glVertex4hNV)(GLhalfNV,GLhalfNV,GLhalfNV,GLhalfNV);
        void       (WINE_GLAPI *p_glVertex4hvNV)(const GLhalfNV*);
        void       (WINE_GLAPI *p_glVertex4xOES)(GLfixed,GLfixed,GLfixed);
        void       (WINE_GLAPI *p_glVertex4xvOES)(const GLfixed*);
        void       (WINE_GLAPI *p_glVertexArrayAttribBinding)(GLuint,GLuint,GLuint);
        void       (WINE_GLAPI *p_glVertexArrayAttribFormat)(GLuint,GLuint,GLint,GLenum,GLboolean,GLuint);
        void       (WINE_GLAPI *p_glVertexArrayAttribIFormat)(GLuint,GLuint,GLint,GLenum,GLuint);
        void       (WINE_GLAPI *p_glVertexArrayAttribLFormat)(GLuint,GLuint,GLint,GLenum,GLuint);
        void       (WINE_GLAPI *p_glVertexArrayBindVertexBufferEXT)(GLuint,GLuint,GLuint,GLintptr,GLsizei);
        void       (WINE_GLAPI *p_glVertexArrayBindingDivisor)(GLuint,GLuint,GLuint);
        void       (WINE_GLAPI *p_glVertexArrayColorOffsetEXT)(GLuint,GLuint,GLint,GLenum,GLsizei,GLintptr);
        void       (WINE_GLAPI *p_glVertexArrayEdgeFlagOffsetEXT)(GLuint,GLuint,GLsizei,GLintptr);
        void       (WINE_GLAPI *p_glVertexArrayElementBuffer)(GLuint,GLuint);
        void       (WINE_GLAPI *p_glVertexArrayFogCoordOffsetEXT)(GLuint,GLuint,GLenum,GLsizei,GLintptr);
        void       (WINE_GLAPI *p_glVertexArrayIndexOffsetEXT)(GLuint,GLuint,GLenum,GLsizei,GLintptr);
        void       (WINE_GLAPI *p_glVertexArrayMultiTexCoordOffsetEXT)(GLuint,GLuint,GLenum,GLint,GLenum,GLsizei,GLintptr);
        void       (WINE_GLAPI *p_glVertexArrayNormalOffsetEXT)(GLuint,GLuint,GLenum,GLsizei,GLintptr);
        void       (WINE_GLAPI *p_glVertexArrayParameteriAPPLE)(GLenum,GLint);
        void       (WINE_GLAPI *p_glVertexArrayRangeAPPLE)(GLsizei,void*);
        void       (WINE_GLAPI *p_glVertexArrayRangeNV)(GLsizei,const void*);
        void       (WINE_GLAPI *p_glVertexArraySecondaryColorOffsetEXT)(GLuint,GLuint,GLint,GLenum,GLsizei,GLintptr);
        void       (WINE_GLAPI *p_glVertexArrayTexCoordOffsetEXT)(GLuint,GLuint,GLint,GLenum,GLsizei,GLintptr);
        void       (WINE_GLAPI *p_glVertexArrayVertexAttribBindingEXT)(GLuint,GLuint,GLuint);
        void       (WINE_GLAPI *p_glVertexArrayVertexAttribDivisorEXT)(GLuint,GLuint,GLuint);
        void       (WINE_GLAPI *p_glVertexArrayVertexAttribFormatEXT)(GLuint,GLuint,GLint,GLenum,GLboolean,GLuint);
        void       (WINE_GLAPI *p_glVertexArrayVertexAttribIFormatEXT)(GLuint,GLuint,GLint,GLenum,GLuint);
        void       (WINE_GLAPI *p_glVertexArrayVertexAttribIOffsetEXT)(GLuint,GLuint,GLuint,GLint,GLenum,GLsizei,GLintptr);
        void       (WINE_GLAPI *p_glVertexArrayVertexAttribLFormatEXT)(GLuint,GLuint,GLint,GLenum,GLuint);
        void       (WINE_GLAPI *p_glVertexArrayVertexAttribLOffsetEXT)(GLuint,GLuint,GLuint,GLint,GLenum,GLsizei,GLintptr);
        void       (WINE_GLAPI *p_glVertexArrayVertexAttribOffsetEXT)(GLuint,GLuint,GLuint,GLint,GLenum,GLboolean,GLsizei,GLintptr);
        void       (WINE_GLAPI *p_glVertexArrayVertexBindingDivisorEXT)(GLuint,GLuint,GLuint);
        void       (WINE_GLAPI *p_glVertexArrayVertexBuffer)(GLuint,GLuint,GLuint,GLintptr,GLsizei);
        void       (WINE_GLAPI *p_glVertexArrayVertexBuffers)(GLuint,GLuint,GLsizei,const GLuint*,const GLintptr*,const GLsizei*);
        void       (WINE_GLAPI *p_glVertexArrayVertexOffsetEXT)(GLuint,GLuint,GLint,GLenum,GLsizei,GLintptr);
        void       (WINE_GLAPI *p_glVertexAttrib1d)(GLuint,GLdouble);
        void       (WINE_GLAPI *p_glVertexAttrib1dARB)(GLuint,GLdouble);
        void       (WINE_GLAPI *p_glVertexAttrib1dNV)(GLuint,GLdouble);
        void       (WINE_GLAPI *p_glVertexAttrib1dv)(GLuint,const GLdouble*);
        void       (WINE_GLAPI *p_glVertexAttrib1dvARB)(GLuint,const GLdouble*);
        void       (WINE_GLAPI *p_glVertexAttrib1dvNV)(GLuint,const GLdouble*);
        void       (WINE_GLAPI *p_glVertexAttrib1f)(GLuint,GLfloat);
        void       (WINE_GLAPI *p_glVertexAttrib1fARB)(GLuint,GLfloat);
        void       (WINE_GLAPI *p_glVertexAttrib1fNV)(GLuint,GLfloat);
        void       (WINE_GLAPI *p_glVertexAttrib1fv)(GLuint,const GLfloat*);
        void       (WINE_GLAPI *p_glVertexAttrib1fvARB)(GLuint,const GLfloat*);
        void       (WINE_GLAPI *p_glVertexAttrib1fvNV)(GLuint,const GLfloat*);
        void       (WINE_GLAPI *p_glVertexAttrib1hNV)(GLuint,GLhalfNV);
        void       (WINE_GLAPI *p_glVertexAttrib1hvNV)(GLuint,const GLhalfNV*);
        void       (WINE_GLAPI *p_glVertexAttrib1s)(GLuint,GLshort);
        void       (WINE_GLAPI *p_glVertexAttrib1sARB)(GLuint,GLshort);
        void       (WINE_GLAPI *p_glVertexAttrib1sNV)(GLuint,GLshort);
        void       (WINE_GLAPI *p_glVertexAttrib1sv)(GLuint,const GLshort*);
        void       (WINE_GLAPI *p_glVertexAttrib1svARB)(GLuint,const GLshort*);
        void       (WINE_GLAPI *p_glVertexAttrib1svNV)(GLuint,const GLshort*);
        void       (WINE_GLAPI *p_glVertexAttrib2d)(GLuint,GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glVertexAttrib2dARB)(GLuint,GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glVertexAttrib2dNV)(GLuint,GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glVertexAttrib2dv)(GLuint,const GLdouble*);
        void       (WINE_GLAPI *p_glVertexAttrib2dvARB)(GLuint,const GLdouble*);
        void       (WINE_GLAPI *p_glVertexAttrib2dvNV)(GLuint,const GLdouble*);
        void       (WINE_GLAPI *p_glVertexAttrib2f)(GLuint,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glVertexAttrib2fARB)(GLuint,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glVertexAttrib2fNV)(GLuint,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glVertexAttrib2fv)(GLuint,const GLfloat*);
        void       (WINE_GLAPI *p_glVertexAttrib2fvARB)(GLuint,const GLfloat*);
        void       (WINE_GLAPI *p_glVertexAttrib2fvNV)(GLuint,const GLfloat*);
        void       (WINE_GLAPI *p_glVertexAttrib2hNV)(GLuint,GLhalfNV,GLhalfNV);
        void       (WINE_GLAPI *p_glVertexAttrib2hvNV)(GLuint,const GLhalfNV*);
        void       (WINE_GLAPI *p_glVertexAttrib2s)(GLuint,GLshort,GLshort);
        void       (WINE_GLAPI *p_glVertexAttrib2sARB)(GLuint,GLshort,GLshort);
        void       (WINE_GLAPI *p_glVertexAttrib2sNV)(GLuint,GLshort,GLshort);
        void       (WINE_GLAPI *p_glVertexAttrib2sv)(GLuint,const GLshort*);
        void       (WINE_GLAPI *p_glVertexAttrib2svARB)(GLuint,const GLshort*);
        void       (WINE_GLAPI *p_glVertexAttrib2svNV)(GLuint,const GLshort*);
        void       (WINE_GLAPI *p_glVertexAttrib3d)(GLuint,GLdouble,GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glVertexAttrib3dARB)(GLuint,GLdouble,GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glVertexAttrib3dNV)(GLuint,GLdouble,GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glVertexAttrib3dv)(GLuint,const GLdouble*);
        void       (WINE_GLAPI *p_glVertexAttrib3dvARB)(GLuint,const GLdouble*);
        void       (WINE_GLAPI *p_glVertexAttrib3dvNV)(GLuint,const GLdouble*);
        void       (WINE_GLAPI *p_glVertexAttrib3f)(GLuint,GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glVertexAttrib3fARB)(GLuint,GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glVertexAttrib3fNV)(GLuint,GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glVertexAttrib3fv)(GLuint,const GLfloat*);
        void       (WINE_GLAPI *p_glVertexAttrib3fvARB)(GLuint,const GLfloat*);
        void       (WINE_GLAPI *p_glVertexAttrib3fvNV)(GLuint,const GLfloat*);
        void       (WINE_GLAPI *p_glVertexAttrib3hNV)(GLuint,GLhalfNV,GLhalfNV,GLhalfNV);
        void       (WINE_GLAPI *p_glVertexAttrib3hvNV)(GLuint,const GLhalfNV*);
        void       (WINE_GLAPI *p_glVertexAttrib3s)(GLuint,GLshort,GLshort,GLshort);
        void       (WINE_GLAPI *p_glVertexAttrib3sARB)(GLuint,GLshort,GLshort,GLshort);
        void       (WINE_GLAPI *p_glVertexAttrib3sNV)(GLuint,GLshort,GLshort,GLshort);
        void       (WINE_GLAPI *p_glVertexAttrib3sv)(GLuint,const GLshort*);
        void       (WINE_GLAPI *p_glVertexAttrib3svARB)(GLuint,const GLshort*);
        void       (WINE_GLAPI *p_glVertexAttrib3svNV)(GLuint,const GLshort*);
        void       (WINE_GLAPI *p_glVertexAttrib4Nbv)(GLuint,const GLbyte*);
        void       (WINE_GLAPI *p_glVertexAttrib4NbvARB)(GLuint,const GLbyte*);
        void       (WINE_GLAPI *p_glVertexAttrib4Niv)(GLuint,const GLint*);
        void       (WINE_GLAPI *p_glVertexAttrib4NivARB)(GLuint,const GLint*);
        void       (WINE_GLAPI *p_glVertexAttrib4Nsv)(GLuint,const GLshort*);
        void       (WINE_GLAPI *p_glVertexAttrib4NsvARB)(GLuint,const GLshort*);
        void       (WINE_GLAPI *p_glVertexAttrib4Nub)(GLuint,GLubyte,GLubyte,GLubyte,GLubyte);
        void       (WINE_GLAPI *p_glVertexAttrib4NubARB)(GLuint,GLubyte,GLubyte,GLubyte,GLubyte);
        void       (WINE_GLAPI *p_glVertexAttrib4Nubv)(GLuint,const GLubyte*);
        void       (WINE_GLAPI *p_glVertexAttrib4NubvARB)(GLuint,const GLubyte*);
        void       (WINE_GLAPI *p_glVertexAttrib4Nuiv)(GLuint,const GLuint*);
        void       (WINE_GLAPI *p_glVertexAttrib4NuivARB)(GLuint,const GLuint*);
        void       (WINE_GLAPI *p_glVertexAttrib4Nusv)(GLuint,const GLushort*);
        void       (WINE_GLAPI *p_glVertexAttrib4NusvARB)(GLuint,const GLushort*);
        void       (WINE_GLAPI *p_glVertexAttrib4bv)(GLuint,const GLbyte*);
        void       (WINE_GLAPI *p_glVertexAttrib4bvARB)(GLuint,const GLbyte*);
        void       (WINE_GLAPI *p_glVertexAttrib4d)(GLuint,GLdouble,GLdouble,GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glVertexAttrib4dARB)(GLuint,GLdouble,GLdouble,GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glVertexAttrib4dNV)(GLuint,GLdouble,GLdouble,GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glVertexAttrib4dv)(GLuint,const GLdouble*);
        void       (WINE_GLAPI *p_glVertexAttrib4dvARB)(GLuint,const GLdouble*);
        void       (WINE_GLAPI *p_glVertexAttrib4dvNV)(GLuint,const GLdouble*);
        void       (WINE_GLAPI *p_glVertexAttrib4f)(GLuint,GLfloat,GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glVertexAttrib4fARB)(GLuint,GLfloat,GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glVertexAttrib4fNV)(GLuint,GLfloat,GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glVertexAttrib4fv)(GLuint,const GLfloat*);
        void       (WINE_GLAPI *p_glVertexAttrib4fvARB)(GLuint,const GLfloat*);
        void       (WINE_GLAPI *p_glVertexAttrib4fvNV)(GLuint,const GLfloat*);
        void       (WINE_GLAPI *p_glVertexAttrib4hNV)(GLuint,GLhalfNV,GLhalfNV,GLhalfNV,GLhalfNV);
        void       (WINE_GLAPI *p_glVertexAttrib4hvNV)(GLuint,const GLhalfNV*);
        void       (WINE_GLAPI *p_glVertexAttrib4iv)(GLuint,const GLint*);
        void       (WINE_GLAPI *p_glVertexAttrib4ivARB)(GLuint,const GLint*);
        void       (WINE_GLAPI *p_glVertexAttrib4s)(GLuint,GLshort,GLshort,GLshort,GLshort);
        void       (WINE_GLAPI *p_glVertexAttrib4sARB)(GLuint,GLshort,GLshort,GLshort,GLshort);
        void       (WINE_GLAPI *p_glVertexAttrib4sNV)(GLuint,GLshort,GLshort,GLshort,GLshort);
        void       (WINE_GLAPI *p_glVertexAttrib4sv)(GLuint,const GLshort*);
        void       (WINE_GLAPI *p_glVertexAttrib4svARB)(GLuint,const GLshort*);
        void       (WINE_GLAPI *p_glVertexAttrib4svNV)(GLuint,const GLshort*);
        void       (WINE_GLAPI *p_glVertexAttrib4ubNV)(GLuint,GLubyte,GLubyte,GLubyte,GLubyte);
        void       (WINE_GLAPI *p_glVertexAttrib4ubv)(GLuint,const GLubyte*);
        void       (WINE_GLAPI *p_glVertexAttrib4ubvARB)(GLuint,const GLubyte*);
        void       (WINE_GLAPI *p_glVertexAttrib4ubvNV)(GLuint,const GLubyte*);
        void       (WINE_GLAPI *p_glVertexAttrib4uiv)(GLuint,const GLuint*);
        void       (WINE_GLAPI *p_glVertexAttrib4uivARB)(GLuint,const GLuint*);
        void       (WINE_GLAPI *p_glVertexAttrib4usv)(GLuint,const GLushort*);
        void       (WINE_GLAPI *p_glVertexAttrib4usvARB)(GLuint,const GLushort*);
        void       (WINE_GLAPI *p_glVertexAttribArrayObjectATI)(GLuint,GLint,GLenum,GLboolean,GLsizei,GLuint,GLuint);
        void       (WINE_GLAPI *p_glVertexAttribBinding)(GLuint,GLuint);
        void       (WINE_GLAPI *p_glVertexAttribDivisor)(GLuint,GLuint);
        void       (WINE_GLAPI *p_glVertexAttribDivisorARB)(GLuint,GLuint);
        void       (WINE_GLAPI *p_glVertexAttribFormat)(GLuint,GLint,GLenum,GLboolean,GLuint);
        void       (WINE_GLAPI *p_glVertexAttribFormatNV)(GLuint,GLint,GLenum,GLboolean,GLsizei);
        void       (WINE_GLAPI *p_glVertexAttribI1i)(GLuint,GLint);
        void       (WINE_GLAPI *p_glVertexAttribI1iEXT)(GLuint,GLint);
        void       (WINE_GLAPI *p_glVertexAttribI1iv)(GLuint,const GLint*);
        void       (WINE_GLAPI *p_glVertexAttribI1ivEXT)(GLuint,const GLint*);
        void       (WINE_GLAPI *p_glVertexAttribI1ui)(GLuint,GLuint);
        void       (WINE_GLAPI *p_glVertexAttribI1uiEXT)(GLuint,GLuint);
        void       (WINE_GLAPI *p_glVertexAttribI1uiv)(GLuint,const GLuint*);
        void       (WINE_GLAPI *p_glVertexAttribI1uivEXT)(GLuint,const GLuint*);
        void       (WINE_GLAPI *p_glVertexAttribI2i)(GLuint,GLint,GLint);
        void       (WINE_GLAPI *p_glVertexAttribI2iEXT)(GLuint,GLint,GLint);
        void       (WINE_GLAPI *p_glVertexAttribI2iv)(GLuint,const GLint*);
        void       (WINE_GLAPI *p_glVertexAttribI2ivEXT)(GLuint,const GLint*);
        void       (WINE_GLAPI *p_glVertexAttribI2ui)(GLuint,GLuint,GLuint);
        void       (WINE_GLAPI *p_glVertexAttribI2uiEXT)(GLuint,GLuint,GLuint);
        void       (WINE_GLAPI *p_glVertexAttribI2uiv)(GLuint,const GLuint*);
        void       (WINE_GLAPI *p_glVertexAttribI2uivEXT)(GLuint,const GLuint*);
        void       (WINE_GLAPI *p_glVertexAttribI3i)(GLuint,GLint,GLint,GLint);
        void       (WINE_GLAPI *p_glVertexAttribI3iEXT)(GLuint,GLint,GLint,GLint);
        void       (WINE_GLAPI *p_glVertexAttribI3iv)(GLuint,const GLint*);
        void       (WINE_GLAPI *p_glVertexAttribI3ivEXT)(GLuint,const GLint*);
        void       (WINE_GLAPI *p_glVertexAttribI3ui)(GLuint,GLuint,GLuint,GLuint);
        void       (WINE_GLAPI *p_glVertexAttribI3uiEXT)(GLuint,GLuint,GLuint,GLuint);
        void       (WINE_GLAPI *p_glVertexAttribI3uiv)(GLuint,const GLuint*);
        void       (WINE_GLAPI *p_glVertexAttribI3uivEXT)(GLuint,const GLuint*);
        void       (WINE_GLAPI *p_glVertexAttribI4bv)(GLuint,const GLbyte*);
        void       (WINE_GLAPI *p_glVertexAttribI4bvEXT)(GLuint,const GLbyte*);
        void       (WINE_GLAPI *p_glVertexAttribI4i)(GLuint,GLint,GLint,GLint,GLint);
        void       (WINE_GLAPI *p_glVertexAttribI4iEXT)(GLuint,GLint,GLint,GLint,GLint);
        void       (WINE_GLAPI *p_glVertexAttribI4iv)(GLuint,const GLint*);
        void       (WINE_GLAPI *p_glVertexAttribI4ivEXT)(GLuint,const GLint*);
        void       (WINE_GLAPI *p_glVertexAttribI4sv)(GLuint,const GLshort*);
        void       (WINE_GLAPI *p_glVertexAttribI4svEXT)(GLuint,const GLshort*);
        void       (WINE_GLAPI *p_glVertexAttribI4ubv)(GLuint,const GLubyte*);
        void       (WINE_GLAPI *p_glVertexAttribI4ubvEXT)(GLuint,const GLubyte*);
        void       (WINE_GLAPI *p_glVertexAttribI4ui)(GLuint,GLuint,GLuint,GLuint,GLuint);
        void       (WINE_GLAPI *p_glVertexAttribI4uiEXT)(GLuint,GLuint,GLuint,GLuint,GLuint);
        void       (WINE_GLAPI *p_glVertexAttribI4uiv)(GLuint,const GLuint*);
        void       (WINE_GLAPI *p_glVertexAttribI4uivEXT)(GLuint,const GLuint*);
        void       (WINE_GLAPI *p_glVertexAttribI4usv)(GLuint,const GLushort*);
        void       (WINE_GLAPI *p_glVertexAttribI4usvEXT)(GLuint,const GLushort*);
        void       (WINE_GLAPI *p_glVertexAttribIFormat)(GLuint,GLint,GLenum,GLuint);
        void       (WINE_GLAPI *p_glVertexAttribIFormatNV)(GLuint,GLint,GLenum,GLsizei);
        void       (WINE_GLAPI *p_glVertexAttribIPointer)(GLuint,GLint,GLenum,GLsizei,const void*);
        void       (WINE_GLAPI *p_glVertexAttribIPointerEXT)(GLuint,GLint,GLenum,GLsizei,const void*);
        void       (WINE_GLAPI *p_glVertexAttribL1d)(GLuint,GLdouble);
        void       (WINE_GLAPI *p_glVertexAttribL1dEXT)(GLuint,GLdouble);
        void       (WINE_GLAPI *p_glVertexAttribL1dv)(GLuint,const GLdouble*);
        void       (WINE_GLAPI *p_glVertexAttribL1dvEXT)(GLuint,const GLdouble*);
        void       (WINE_GLAPI *p_glVertexAttribL1i64NV)(GLuint,GLint64EXT);
        void       (WINE_GLAPI *p_glVertexAttribL1i64vNV)(GLuint,const GLint64EXT*);
        void       (WINE_GLAPI *p_glVertexAttribL1ui64ARB)(GLuint,GLuint64EXT);
        void       (WINE_GLAPI *p_glVertexAttribL1ui64NV)(GLuint,GLuint64EXT);
        void       (WINE_GLAPI *p_glVertexAttribL1ui64vARB)(GLuint,const GLuint64EXT*);
        void       (WINE_GLAPI *p_glVertexAttribL1ui64vNV)(GLuint,const GLuint64EXT*);
        void       (WINE_GLAPI *p_glVertexAttribL2d)(GLuint,GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glVertexAttribL2dEXT)(GLuint,GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glVertexAttribL2dv)(GLuint,const GLdouble*);
        void       (WINE_GLAPI *p_glVertexAttribL2dvEXT)(GLuint,const GLdouble*);
        void       (WINE_GLAPI *p_glVertexAttribL2i64NV)(GLuint,GLint64EXT,GLint64EXT);
        void       (WINE_GLAPI *p_glVertexAttribL2i64vNV)(GLuint,const GLint64EXT*);
        void       (WINE_GLAPI *p_glVertexAttribL2ui64NV)(GLuint,GLuint64EXT,GLuint64EXT);
        void       (WINE_GLAPI *p_glVertexAttribL2ui64vNV)(GLuint,const GLuint64EXT*);
        void       (WINE_GLAPI *p_glVertexAttribL3d)(GLuint,GLdouble,GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glVertexAttribL3dEXT)(GLuint,GLdouble,GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glVertexAttribL3dv)(GLuint,const GLdouble*);
        void       (WINE_GLAPI *p_glVertexAttribL3dvEXT)(GLuint,const GLdouble*);
        void       (WINE_GLAPI *p_glVertexAttribL3i64NV)(GLuint,GLint64EXT,GLint64EXT,GLint64EXT);
        void       (WINE_GLAPI *p_glVertexAttribL3i64vNV)(GLuint,const GLint64EXT*);
        void       (WINE_GLAPI *p_glVertexAttribL3ui64NV)(GLuint,GLuint64EXT,GLuint64EXT,GLuint64EXT);
        void       (WINE_GLAPI *p_glVertexAttribL3ui64vNV)(GLuint,const GLuint64EXT*);
        void       (WINE_GLAPI *p_glVertexAttribL4d)(GLuint,GLdouble,GLdouble,GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glVertexAttribL4dEXT)(GLuint,GLdouble,GLdouble,GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glVertexAttribL4dv)(GLuint,const GLdouble*);
        void       (WINE_GLAPI *p_glVertexAttribL4dvEXT)(GLuint,const GLdouble*);
        void       (WINE_GLAPI *p_glVertexAttribL4i64NV)(GLuint,GLint64EXT,GLint64EXT,GLint64EXT,GLint64EXT);
        void       (WINE_GLAPI *p_glVertexAttribL4i64vNV)(GLuint,const GLint64EXT*);
        void       (WINE_GLAPI *p_glVertexAttribL4ui64NV)(GLuint,GLuint64EXT,GLuint64EXT,GLuint64EXT,GLuint64EXT);
        void       (WINE_GLAPI *p_glVertexAttribL4ui64vNV)(GLuint,const GLuint64EXT*);
        void       (WINE_GLAPI *p_glVertexAttribLFormat)(GLuint,GLint,GLenum,GLuint);
        void       (WINE_GLAPI *p_glVertexAttribLFormatNV)(GLuint,GLint,GLenum,GLsizei);
        void       (WINE_GLAPI *p_glVertexAttribLPointer)(GLuint,GLint,GLenum,GLsizei,const void*);
        void       (WINE_GLAPI *p_glVertexAttribLPointerEXT)(GLuint,GLint,GLenum,GLsizei,const void*);
        void       (WINE_GLAPI *p_glVertexAttribP1ui)(GLuint,GLenum,GLboolean,GLuint);
        void       (WINE_GLAPI *p_glVertexAttribP1uiv)(GLuint,GLenum,GLboolean,const GLuint*);
        void       (WINE_GLAPI *p_glVertexAttribP2ui)(GLuint,GLenum,GLboolean,GLuint);
        void       (WINE_GLAPI *p_glVertexAttribP2uiv)(GLuint,GLenum,GLboolean,const GLuint*);
        void       (WINE_GLAPI *p_glVertexAttribP3ui)(GLuint,GLenum,GLboolean,GLuint);
        void       (WINE_GLAPI *p_glVertexAttribP3uiv)(GLuint,GLenum,GLboolean,const GLuint*);
        void       (WINE_GLAPI *p_glVertexAttribP4ui)(GLuint,GLenum,GLboolean,GLuint);
        void       (WINE_GLAPI *p_glVertexAttribP4uiv)(GLuint,GLenum,GLboolean,const GLuint*);
        void       (WINE_GLAPI *p_glVertexAttribParameteriAMD)(GLuint,GLenum,GLint);
        void       (WINE_GLAPI *p_glVertexAttribPointer)(GLuint,GLint,GLenum,GLboolean,GLsizei,const void*);
        void       (WINE_GLAPI *p_glVertexAttribPointerARB)(GLuint,GLint,GLenum,GLboolean,GLsizei,const void*);
        void       (WINE_GLAPI *p_glVertexAttribPointerNV)(GLuint,GLint,GLenum,GLsizei,const void*);
        void       (WINE_GLAPI *p_glVertexAttribs1dvNV)(GLuint,GLsizei,const GLdouble*);
        void       (WINE_GLAPI *p_glVertexAttribs1fvNV)(GLuint,GLsizei,const GLfloat*);
        void       (WINE_GLAPI *p_glVertexAttribs1hvNV)(GLuint,GLsizei,const GLhalfNV*);
        void       (WINE_GLAPI *p_glVertexAttribs1svNV)(GLuint,GLsizei,const GLshort*);
        void       (WINE_GLAPI *p_glVertexAttribs2dvNV)(GLuint,GLsizei,const GLdouble*);
        void       (WINE_GLAPI *p_glVertexAttribs2fvNV)(GLuint,GLsizei,const GLfloat*);
        void       (WINE_GLAPI *p_glVertexAttribs2hvNV)(GLuint,GLsizei,const GLhalfNV*);
        void       (WINE_GLAPI *p_glVertexAttribs2svNV)(GLuint,GLsizei,const GLshort*);
        void       (WINE_GLAPI *p_glVertexAttribs3dvNV)(GLuint,GLsizei,const GLdouble*);
        void       (WINE_GLAPI *p_glVertexAttribs3fvNV)(GLuint,GLsizei,const GLfloat*);
        void       (WINE_GLAPI *p_glVertexAttribs3hvNV)(GLuint,GLsizei,const GLhalfNV*);
        void       (WINE_GLAPI *p_glVertexAttribs3svNV)(GLuint,GLsizei,const GLshort*);
        void       (WINE_GLAPI *p_glVertexAttribs4dvNV)(GLuint,GLsizei,const GLdouble*);
        void       (WINE_GLAPI *p_glVertexAttribs4fvNV)(GLuint,GLsizei,const GLfloat*);
        void       (WINE_GLAPI *p_glVertexAttribs4hvNV)(GLuint,GLsizei,const GLhalfNV*);
        void       (WINE_GLAPI *p_glVertexAttribs4svNV)(GLuint,GLsizei,const GLshort*);
        void       (WINE_GLAPI *p_glVertexAttribs4ubvNV)(GLuint,GLsizei,const GLubyte*);
        void       (WINE_GLAPI *p_glVertexBindingDivisor)(GLuint,GLuint);
        void       (WINE_GLAPI *p_glVertexBlendARB)(GLint);
        void       (WINE_GLAPI *p_glVertexBlendEnvfATI)(GLenum,GLfloat);
        void       (WINE_GLAPI *p_glVertexBlendEnviATI)(GLenum,GLint);
        void       (WINE_GLAPI *p_glVertexFormatNV)(GLint,GLenum,GLsizei);
        void       (WINE_GLAPI *p_glVertexP2ui)(GLenum,GLuint);
        void       (WINE_GLAPI *p_glVertexP2uiv)(GLenum,const GLuint*);
        void       (WINE_GLAPI *p_glVertexP3ui)(GLenum,GLuint);
        void       (WINE_GLAPI *p_glVertexP3uiv)(GLenum,const GLuint*);
        void       (WINE_GLAPI *p_glVertexP4ui)(GLenum,GLuint);
        void       (WINE_GLAPI *p_glVertexP4uiv)(GLenum,const GLuint*);
        void       (WINE_GLAPI *p_glVertexPointerEXT)(GLint,GLenum,GLsizei,GLsizei,const void*);
        void       (WINE_GLAPI *p_glVertexPointerListIBM)(GLint,GLenum,GLint,const void**,GLint);
        void       (WINE_GLAPI *p_glVertexPointervINTEL)(GLint,GLenum,const void**);
        void       (WINE_GLAPI *p_glVertexStream1dATI)(GLenum,GLdouble);
        void       (WINE_GLAPI *p_glVertexStream1dvATI)(GLenum,const GLdouble*);
        void       (WINE_GLAPI *p_glVertexStream1fATI)(GLenum,GLfloat);
        void       (WINE_GLAPI *p_glVertexStream1fvATI)(GLenum,const GLfloat*);
        void       (WINE_GLAPI *p_glVertexStream1iATI)(GLenum,GLint);
        void       (WINE_GLAPI *p_glVertexStream1ivATI)(GLenum,const GLint*);
        void       (WINE_GLAPI *p_glVertexStream1sATI)(GLenum,GLshort);
        void       (WINE_GLAPI *p_glVertexStream1svATI)(GLenum,const GLshort*);
        void       (WINE_GLAPI *p_glVertexStream2dATI)(GLenum,GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glVertexStream2dvATI)(GLenum,const GLdouble*);
        void       (WINE_GLAPI *p_glVertexStream2fATI)(GLenum,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glVertexStream2fvATI)(GLenum,const GLfloat*);
        void       (WINE_GLAPI *p_glVertexStream2iATI)(GLenum,GLint,GLint);
        void       (WINE_GLAPI *p_glVertexStream2ivATI)(GLenum,const GLint*);
        void       (WINE_GLAPI *p_glVertexStream2sATI)(GLenum,GLshort,GLshort);
        void       (WINE_GLAPI *p_glVertexStream2svATI)(GLenum,const GLshort*);
        void       (WINE_GLAPI *p_glVertexStream3dATI)(GLenum,GLdouble,GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glVertexStream3dvATI)(GLenum,const GLdouble*);
        void       (WINE_GLAPI *p_glVertexStream3fATI)(GLenum,GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glVertexStream3fvATI)(GLenum,const GLfloat*);
        void       (WINE_GLAPI *p_glVertexStream3iATI)(GLenum,GLint,GLint,GLint);
        void       (WINE_GLAPI *p_glVertexStream3ivATI)(GLenum,const GLint*);
        void       (WINE_GLAPI *p_glVertexStream3sATI)(GLenum,GLshort,GLshort,GLshort);
        void       (WINE_GLAPI *p_glVertexStream3svATI)(GLenum,const GLshort*);
        void       (WINE_GLAPI *p_glVertexStream4dATI)(GLenum,GLdouble,GLdouble,GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glVertexStream4dvATI)(GLenum,const GLdouble*);
        void       (WINE_GLAPI *p_glVertexStream4fATI)(GLenum,GLfloat,GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glVertexStream4fvATI)(GLenum,const GLfloat*);
        void       (WINE_GLAPI *p_glVertexStream4iATI)(GLenum,GLint,GLint,GLint,GLint);
        void       (WINE_GLAPI *p_glVertexStream4ivATI)(GLenum,const GLint*);
        void       (WINE_GLAPI *p_glVertexStream4sATI)(GLenum,GLshort,GLshort,GLshort,GLshort);
        void       (WINE_GLAPI *p_glVertexStream4svATI)(GLenum,const GLshort*);
        void       (WINE_GLAPI *p_glVertexWeightPointerEXT)(GLint,GLenum,GLsizei,const void*);
        void       (WINE_GLAPI *p_glVertexWeightfEXT)(GLfloat);
        void       (WINE_GLAPI *p_glVertexWeightfvEXT)(const GLfloat*);
        void       (WINE_GLAPI *p_glVertexWeighthNV)(GLhalfNV);
        void       (WINE_GLAPI *p_glVertexWeighthvNV)(const GLhalfNV*);
        GLenum     (WINE_GLAPI *p_glVideoCaptureNV)(GLuint,GLuint*,GLuint64EXT*);
        void       (WINE_GLAPI *p_glVideoCaptureStreamParameterdvNV)(GLuint,GLuint,GLenum,const GLdouble*);
        void       (WINE_GLAPI *p_glVideoCaptureStreamParameterfvNV)(GLuint,GLuint,GLenum,const GLfloat*);
        void       (WINE_GLAPI *p_glVideoCaptureStreamParameterivNV)(GLuint,GLuint,GLenum,const GLint*);
        void       (WINE_GLAPI *p_glViewportArrayv)(GLuint,GLsizei,const GLfloat*);
        void       (WINE_GLAPI *p_glViewportIndexedf)(GLuint,GLfloat,GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glViewportIndexedfv)(GLuint,const GLfloat*);
        void       (WINE_GLAPI *p_glWaitSync)(GLsync,GLbitfield,GLuint64);
        void       (WINE_GLAPI *p_glWeightPathsNV)(GLuint,GLsizei,const GLuint*,const GLfloat*);
        void       (WINE_GLAPI *p_glWeightPointerARB)(GLint,GLenum,GLsizei,const void*);
        void       (WINE_GLAPI *p_glWeightbvARB)(GLint,const GLbyte*);
        void       (WINE_GLAPI *p_glWeightdvARB)(GLint,const GLdouble*);
        void       (WINE_GLAPI *p_glWeightfvARB)(GLint,const GLfloat*);
        void       (WINE_GLAPI *p_glWeightivARB)(GLint,const GLint*);
        void       (WINE_GLAPI *p_glWeightsvARB)(GLint,const GLshort*);
        void       (WINE_GLAPI *p_glWeightubvARB)(GLint,const GLubyte*);
        void       (WINE_GLAPI *p_glWeightuivARB)(GLint,const GLuint*);
        void       (WINE_GLAPI *p_glWeightusvARB)(GLint,const GLushort*);
        void       (WINE_GLAPI *p_glWindowPos2d)(GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glWindowPos2dARB)(GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glWindowPos2dMESA)(GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glWindowPos2dv)(const GLdouble*);
        void       (WINE_GLAPI *p_glWindowPos2dvARB)(const GLdouble*);
        void       (WINE_GLAPI *p_glWindowPos2dvMESA)(const GLdouble*);
        void       (WINE_GLAPI *p_glWindowPos2f)(GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glWindowPos2fARB)(GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glWindowPos2fMESA)(GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glWindowPos2fv)(const GLfloat*);
        void       (WINE_GLAPI *p_glWindowPos2fvARB)(const GLfloat*);
        void       (WINE_GLAPI *p_glWindowPos2fvMESA)(const GLfloat*);
        void       (WINE_GLAPI *p_glWindowPos2i)(GLint,GLint);
        void       (WINE_GLAPI *p_glWindowPos2iARB)(GLint,GLint);
        void       (WINE_GLAPI *p_glWindowPos2iMESA)(GLint,GLint);
        void       (WINE_GLAPI *p_glWindowPos2iv)(const GLint*);
        void       (WINE_GLAPI *p_glWindowPos2ivARB)(const GLint*);
        void       (WINE_GLAPI *p_glWindowPos2ivMESA)(const GLint*);
        void       (WINE_GLAPI *p_glWindowPos2s)(GLshort,GLshort);
        void       (WINE_GLAPI *p_glWindowPos2sARB)(GLshort,GLshort);
        void       (WINE_GLAPI *p_glWindowPos2sMESA)(GLshort,GLshort);
        void       (WINE_GLAPI *p_glWindowPos2sv)(const GLshort*);
        void       (WINE_GLAPI *p_glWindowPos2svARB)(const GLshort*);
        void       (WINE_GLAPI *p_glWindowPos2svMESA)(const GLshort*);
        void       (WINE_GLAPI *p_glWindowPos3d)(GLdouble,GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glWindowPos3dARB)(GLdouble,GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glWindowPos3dMESA)(GLdouble,GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glWindowPos3dv)(const GLdouble*);
        void       (WINE_GLAPI *p_glWindowPos3dvARB)(const GLdouble*);
        void       (WINE_GLAPI *p_glWindowPos3dvMESA)(const GLdouble*);
        void       (WINE_GLAPI *p_glWindowPos3f)(GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glWindowPos3fARB)(GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glWindowPos3fMESA)(GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glWindowPos3fv)(const GLfloat*);
        void       (WINE_GLAPI *p_glWindowPos3fvARB)(const GLfloat*);
        void       (WINE_GLAPI *p_glWindowPos3fvMESA)(const GLfloat*);
        void       (WINE_GLAPI *p_glWindowPos3i)(GLint,GLint,GLint);
        void       (WINE_GLAPI *p_glWindowPos3iARB)(GLint,GLint,GLint);
        void       (WINE_GLAPI *p_glWindowPos3iMESA)(GLint,GLint,GLint);
        void       (WINE_GLAPI *p_glWindowPos3iv)(const GLint*);
        void       (WINE_GLAPI *p_glWindowPos3ivARB)(const GLint*);
        void       (WINE_GLAPI *p_glWindowPos3ivMESA)(const GLint*);
        void       (WINE_GLAPI *p_glWindowPos3s)(GLshort,GLshort,GLshort);
        void       (WINE_GLAPI *p_glWindowPos3sARB)(GLshort,GLshort,GLshort);
        void       (WINE_GLAPI *p_glWindowPos3sMESA)(GLshort,GLshort,GLshort);
        void       (WINE_GLAPI *p_glWindowPos3sv)(const GLshort*);
        void       (WINE_GLAPI *p_glWindowPos3svARB)(const GLshort*);
        void       (WINE_GLAPI *p_glWindowPos3svMESA)(const GLshort*);
        void       (WINE_GLAPI *p_glWindowPos4dMESA)(GLdouble,GLdouble,GLdouble,GLdouble);
        void       (WINE_GLAPI *p_glWindowPos4dvMESA)(const GLdouble*);
        void       (WINE_GLAPI *p_glWindowPos4fMESA)(GLfloat,GLfloat,GLfloat,GLfloat);
        void       (WINE_GLAPI *p_glWindowPos4fvMESA)(const GLfloat*);
        void       (WINE_GLAPI *p_glWindowPos4iMESA)(GLint,GLint,GLint,GLint);
        void       (WINE_GLAPI *p_glWindowPos4ivMESA)(const GLint*);
        void       (WINE_GLAPI *p_glWindowPos4sMESA)(GLshort,GLshort,GLshort,GLshort);
        void       (WINE_GLAPI *p_glWindowPos4svMESA)(const GLshort*);
        void       (WINE_GLAPI *p_glWriteMaskEXT)(GLuint,GLuint,GLenum,GLenum,GLenum,GLenum);
        void*      (WINE_GLAPI *p_wglAllocateMemoryNV)(GLsizei,GLfloat,GLfloat,GLfloat);
        BOOL       (WINE_GLAPI *p_wglBindTexImageARB)(struct wgl_pbuffer *,int);
        BOOL       (WINE_GLAPI *p_wglChoosePixelFormatARB)(HDC,const int*,const FLOAT*,UINT,int*,UINT*);
        struct wgl_context * (WINE_GLAPI *p_wglCreateContextAttribsARB)(HDC,struct wgl_context *,const int*);
        struct wgl_pbuffer * (WINE_GLAPI *p_wglCreatePbufferARB)(HDC,int,int,int,const int*);
        BOOL       (WINE_GLAPI *p_wglDestroyPbufferARB)(struct wgl_pbuffer *);
        void       (WINE_GLAPI *p_wglFreeMemoryNV)(void*);
        HDC        (WINE_GLAPI *p_wglGetCurrentReadDCARB)(void);
        const char* (WINE_GLAPI *p_wglGetExtensionsStringARB)(HDC);
        const char* (WINE_GLAPI *p_wglGetExtensionsStringEXT)(void);
        HDC        (WINE_GLAPI *p_wglGetPbufferDCARB)(struct wgl_pbuffer *);
        BOOL       (WINE_GLAPI *p_wglGetPixelFormatAttribfvARB)(HDC,int,int,UINT,const int*,FLOAT*);
        BOOL       (WINE_GLAPI *p_wglGetPixelFormatAttribivARB)(HDC,int,int,UINT,const int*,int*);
        int        (WINE_GLAPI *p_wglGetSwapIntervalEXT)(void);
        BOOL       (WINE_GLAPI *p_wglMakeContextCurrentARB)(HDC,HDC,struct wgl_context *);
        BOOL       (WINE_GLAPI *p_wglQueryCurrentRendererIntegerWINE)(GLenum,GLuint *);
        const GLchar * (WINE_GLAPI *p_wglQueryCurrentRendererStringWINE)(GLenum);
        BOOL       (WINE_GLAPI *p_wglQueryPbufferARB)(struct wgl_pbuffer *,int,int*);
        BOOL       (WINE_GLAPI *p_wglQueryRendererIntegerWINE)(HDC,GLint,GLenum,GLuint *);
        const GLchar * (WINE_GLAPI *p_wglQueryRendererStringWINE)(HDC,GLint,GLenum);
        int        (WINE_GLAPI *p_wglReleasePbufferDCARB)(struct wgl_pbuffer *,HDC);
        BOOL       (WINE_GLAPI *p_wglReleaseTexImageARB)(struct wgl_pbuffer *,int);
        BOOL       (WINE_GLAPI *p_wglSetPbufferAttribARB)(struct wgl_pbuffer *,const int*);
        BOOL       (WINE_GLAPI *p_wglSetPixelFormatWINE)(HDC,int);
        BOOL       (WINE_GLAPI *p_wglSwapIntervalEXT)(int);
    } ext;
};

#define ALL_WGL_FUNCS \
    USE_GL_FUNC(glAccum) \
    USE_GL_FUNC(glAlphaFunc) \
    USE_GL_FUNC(glAreTexturesResident) \
    USE_GL_FUNC(glArrayElement) \
    USE_GL_FUNC(glBegin) \
    USE_GL_FUNC(glBindTexture) \
    USE_GL_FUNC(glBitmap) \
    USE_GL_FUNC(glBlendFunc) \
    USE_GL_FUNC(glCallList) \
    USE_GL_FUNC(glCallLists) \
    USE_GL_FUNC(glClear) \
    USE_GL_FUNC(glClearAccum) \
    USE_GL_FUNC(glClearColor) \
    USE_GL_FUNC(glClearDepth) \
    USE_GL_FUNC(glClearIndex) \
    USE_GL_FUNC(glClearStencil) \
    USE_GL_FUNC(glClipPlane) \
    USE_GL_FUNC(glColor3b) \
    USE_GL_FUNC(glColor3bv) \
    USE_GL_FUNC(glColor3d) \
    USE_GL_FUNC(glColor3dv) \
    USE_GL_FUNC(glColor3f) \
    USE_GL_FUNC(glColor3fv) \
    USE_GL_FUNC(glColor3i) \
    USE_GL_FUNC(glColor3iv) \
    USE_GL_FUNC(glColor3s) \
    USE_GL_FUNC(glColor3sv) \
    USE_GL_FUNC(glColor3ub) \
    USE_GL_FUNC(glColor3ubv) \
    USE_GL_FUNC(glColor3ui) \
    USE_GL_FUNC(glColor3uiv) \
    USE_GL_FUNC(glColor3us) \
    USE_GL_FUNC(glColor3usv) \
    USE_GL_FUNC(glColor4b) \
    USE_GL_FUNC(glColor4bv) \
    USE_GL_FUNC(glColor4d) \
    USE_GL_FUNC(glColor4dv) \
    USE_GL_FUNC(glColor4f) \
    USE_GL_FUNC(glColor4fv) \
    USE_GL_FUNC(glColor4i) \
    USE_GL_FUNC(glColor4iv) \
    USE_GL_FUNC(glColor4s) \
    USE_GL_FUNC(glColor4sv) \
    USE_GL_FUNC(glColor4ub) \
    USE_GL_FUNC(glColor4ubv) \
    USE_GL_FUNC(glColor4ui) \
    USE_GL_FUNC(glColor4uiv) \
    USE_GL_FUNC(glColor4us) \
    USE_GL_FUNC(glColor4usv) \
    USE_GL_FUNC(glColorMask) \
    USE_GL_FUNC(glColorMaterial) \
    USE_GL_FUNC(glColorPointer) \
    USE_GL_FUNC(glCopyPixels) \
    USE_GL_FUNC(glCopyTexImage1D) \
    USE_GL_FUNC(glCopyTexImage2D) \
    USE_GL_FUNC(glCopyTexSubImage1D) \
    USE_GL_FUNC(glCopyTexSubImage2D) \
    USE_GL_FUNC(glCullFace) \
    USE_GL_FUNC(glDeleteLists) \
    USE_GL_FUNC(glDeleteTextures) \
    USE_GL_FUNC(glDepthFunc) \
    USE_GL_FUNC(glDepthMask) \
    USE_GL_FUNC(glDepthRange) \
    USE_GL_FUNC(glDisable) \
    USE_GL_FUNC(glDisableClientState) \
    USE_GL_FUNC(glDrawArrays) \
    USE_GL_FUNC(glDrawBuffer) \
    USE_GL_FUNC(glDrawElements) \
    USE_GL_FUNC(glDrawPixels) \
    USE_GL_FUNC(glEdgeFlag) \
    USE_GL_FUNC(glEdgeFlagPointer) \
    USE_GL_FUNC(glEdgeFlagv) \
    USE_GL_FUNC(glEnable) \
    USE_GL_FUNC(glEnableClientState) \
    USE_GL_FUNC(glEnd) \
    USE_GL_FUNC(glEndList) \
    USE_GL_FUNC(glEvalCoord1d) \
    USE_GL_FUNC(glEvalCoord1dv) \
    USE_GL_FUNC(glEvalCoord1f) \
    USE_GL_FUNC(glEvalCoord1fv) \
    USE_GL_FUNC(glEvalCoord2d) \
    USE_GL_FUNC(glEvalCoord2dv) \
    USE_GL_FUNC(glEvalCoord2f) \
    USE_GL_FUNC(glEvalCoord2fv) \
    USE_GL_FUNC(glEvalMesh1) \
    USE_GL_FUNC(glEvalMesh2) \
    USE_GL_FUNC(glEvalPoint1) \
    USE_GL_FUNC(glEvalPoint2) \
    USE_GL_FUNC(glFeedbackBuffer) \
    USE_GL_FUNC(glFinish) \
    USE_GL_FUNC(glFlush) \
    USE_GL_FUNC(glFogf) \
    USE_GL_FUNC(glFogfv) \
    USE_GL_FUNC(glFogi) \
    USE_GL_FUNC(glFogiv) \
    USE_GL_FUNC(glFrontFace) \
    USE_GL_FUNC(glFrustum) \
    USE_GL_FUNC(glGenLists) \
    USE_GL_FUNC(glGenTextures) \
    USE_GL_FUNC(glGetBooleanv) \
    USE_GL_FUNC(glGetClipPlane) \
    USE_GL_FUNC(glGetDoublev) \
    USE_GL_FUNC(glGetError) \
    USE_GL_FUNC(glGetFloatv) \
    USE_GL_FUNC(glGetIntegerv) \
    USE_GL_FUNC(glGetLightfv) \
    USE_GL_FUNC(glGetLightiv) \
    USE_GL_FUNC(glGetMapdv) \
    USE_GL_FUNC(glGetMapfv) \
    USE_GL_FUNC(glGetMapiv) \
    USE_GL_FUNC(glGetMaterialfv) \
    USE_GL_FUNC(glGetMaterialiv) \
    USE_GL_FUNC(glGetPixelMapfv) \
    USE_GL_FUNC(glGetPixelMapuiv) \
    USE_GL_FUNC(glGetPixelMapusv) \
    USE_GL_FUNC(glGetPointerv) \
    USE_GL_FUNC(glGetPolygonStipple) \
    USE_GL_FUNC(glGetString) \
    USE_GL_FUNC(glGetTexEnvfv) \
    USE_GL_FUNC(glGetTexEnviv) \
    USE_GL_FUNC(glGetTexGendv) \
    USE_GL_FUNC(glGetTexGenfv) \
    USE_GL_FUNC(glGetTexGeniv) \
    USE_GL_FUNC(glGetTexImage) \
    USE_GL_FUNC(glGetTexLevelParameterfv) \
    USE_GL_FUNC(glGetTexLevelParameteriv) \
    USE_GL_FUNC(glGetTexParameterfv) \
    USE_GL_FUNC(glGetTexParameteriv) \
    USE_GL_FUNC(glHint) \
    USE_GL_FUNC(glIndexMask) \
    USE_GL_FUNC(glIndexPointer) \
    USE_GL_FUNC(glIndexd) \
    USE_GL_FUNC(glIndexdv) \
    USE_GL_FUNC(glIndexf) \
    USE_GL_FUNC(glIndexfv) \
    USE_GL_FUNC(glIndexi) \
    USE_GL_FUNC(glIndexiv) \
    USE_GL_FUNC(glIndexs) \
    USE_GL_FUNC(glIndexsv) \
    USE_GL_FUNC(glIndexub) \
    USE_GL_FUNC(glIndexubv) \
    USE_GL_FUNC(glInitNames) \
    USE_GL_FUNC(glInterleavedArrays) \
    USE_GL_FUNC(glIsEnabled) \
    USE_GL_FUNC(glIsList) \
    USE_GL_FUNC(glIsTexture) \
    USE_GL_FUNC(glLightModelf) \
    USE_GL_FUNC(glLightModelfv) \
    USE_GL_FUNC(glLightModeli) \
    USE_GL_FUNC(glLightModeliv) \
    USE_GL_FUNC(glLightf) \
    USE_GL_FUNC(glLightfv) \
    USE_GL_FUNC(glLighti) \
    USE_GL_FUNC(glLightiv) \
    USE_GL_FUNC(glLineStipple) \
    USE_GL_FUNC(glLineWidth) \
    USE_GL_FUNC(glListBase) \
    USE_GL_FUNC(glLoadIdentity) \
    USE_GL_FUNC(glLoadMatrixd) \
    USE_GL_FUNC(glLoadMatrixf) \
    USE_GL_FUNC(glLoadName) \
    USE_GL_FUNC(glLogicOp) \
    USE_GL_FUNC(glMap1d) \
    USE_GL_FUNC(glMap1f) \
    USE_GL_FUNC(glMap2d) \
    USE_GL_FUNC(glMap2f) \
    USE_GL_FUNC(glMapGrid1d) \
    USE_GL_FUNC(glMapGrid1f) \
    USE_GL_FUNC(glMapGrid2d) \
    USE_GL_FUNC(glMapGrid2f) \
    USE_GL_FUNC(glMaterialf) \
    USE_GL_FUNC(glMaterialfv) \
    USE_GL_FUNC(glMateriali) \
    USE_GL_FUNC(glMaterialiv) \
    USE_GL_FUNC(glMatrixMode) \
    USE_GL_FUNC(glMultMatrixd) \
    USE_GL_FUNC(glMultMatrixf) \
    USE_GL_FUNC(glNewList) \
    USE_GL_FUNC(glNormal3b) \
    USE_GL_FUNC(glNormal3bv) \
    USE_GL_FUNC(glNormal3d) \
    USE_GL_FUNC(glNormal3dv) \
    USE_GL_FUNC(glNormal3f) \
    USE_GL_FUNC(glNormal3fv) \
    USE_GL_FUNC(glNormal3i) \
    USE_GL_FUNC(glNormal3iv) \
    USE_GL_FUNC(glNormal3s) \
    USE_GL_FUNC(glNormal3sv) \
    USE_GL_FUNC(glNormalPointer) \
    USE_GL_FUNC(glOrtho) \
    USE_GL_FUNC(glPassThrough) \
    USE_GL_FUNC(glPixelMapfv) \
    USE_GL_FUNC(glPixelMapuiv) \
    USE_GL_FUNC(glPixelMapusv) \
    USE_GL_FUNC(glPixelStoref) \
    USE_GL_FUNC(glPixelStorei) \
    USE_GL_FUNC(glPixelTransferf) \
    USE_GL_FUNC(glPixelTransferi) \
    USE_GL_FUNC(glPixelZoom) \
    USE_GL_FUNC(glPointSize) \
    USE_GL_FUNC(glPolygonMode) \
    USE_GL_FUNC(glPolygonOffset) \
    USE_GL_FUNC(glPolygonStipple) \
    USE_GL_FUNC(glPopAttrib) \
    USE_GL_FUNC(glPopClientAttrib) \
    USE_GL_FUNC(glPopMatrix) \
    USE_GL_FUNC(glPopName) \
    USE_GL_FUNC(glPrioritizeTextures) \
    USE_GL_FUNC(glPushAttrib) \
    USE_GL_FUNC(glPushClientAttrib) \
    USE_GL_FUNC(glPushMatrix) \
    USE_GL_FUNC(glPushName) \
    USE_GL_FUNC(glRasterPos2d) \
    USE_GL_FUNC(glRasterPos2dv) \
    USE_GL_FUNC(glRasterPos2f) \
    USE_GL_FUNC(glRasterPos2fv) \
    USE_GL_FUNC(glRasterPos2i) \
    USE_GL_FUNC(glRasterPos2iv) \
    USE_GL_FUNC(glRasterPos2s) \
    USE_GL_FUNC(glRasterPos2sv) \
    USE_GL_FUNC(glRasterPos3d) \
    USE_GL_FUNC(glRasterPos3dv) \
    USE_GL_FUNC(glRasterPos3f) \
    USE_GL_FUNC(glRasterPos3fv) \
    USE_GL_FUNC(glRasterPos3i) \
    USE_GL_FUNC(glRasterPos3iv) \
    USE_GL_FUNC(glRasterPos3s) \
    USE_GL_FUNC(glRasterPos3sv) \
    USE_GL_FUNC(glRasterPos4d) \
    USE_GL_FUNC(glRasterPos4dv) \
    USE_GL_FUNC(glRasterPos4f) \
    USE_GL_FUNC(glRasterPos4fv) \
    USE_GL_FUNC(glRasterPos4i) \
    USE_GL_FUNC(glRasterPos4iv) \
    USE_GL_FUNC(glRasterPos4s) \
    USE_GL_FUNC(glRasterPos4sv) \
    USE_GL_FUNC(glReadBuffer) \
    USE_GL_FUNC(glReadPixels) \
    USE_GL_FUNC(glRectd) \
    USE_GL_FUNC(glRectdv) \
    USE_GL_FUNC(glRectf) \
    USE_GL_FUNC(glRectfv) \
    USE_GL_FUNC(glRecti) \
    USE_GL_FUNC(glRectiv) \
    USE_GL_FUNC(glRects) \
    USE_GL_FUNC(glRectsv) \
    USE_GL_FUNC(glRenderMode) \
    USE_GL_FUNC(glRotated) \
    USE_GL_FUNC(glRotatef) \
    USE_GL_FUNC(glScaled) \
    USE_GL_FUNC(glScalef) \
    USE_GL_FUNC(glScissor) \
    USE_GL_FUNC(glSelectBuffer) \
    USE_GL_FUNC(glShadeModel) \
    USE_GL_FUNC(glStencilFunc) \
    USE_GL_FUNC(glStencilMask) \
    USE_GL_FUNC(glStencilOp) \
    USE_GL_FUNC(glTexCoord1d) \
    USE_GL_FUNC(glTexCoord1dv) \
    USE_GL_FUNC(glTexCoord1f) \
    USE_GL_FUNC(glTexCoord1fv) \
    USE_GL_FUNC(glTexCoord1i) \
    USE_GL_FUNC(glTexCoord1iv) \
    USE_GL_FUNC(glTexCoord1s) \
    USE_GL_FUNC(glTexCoord1sv) \
    USE_GL_FUNC(glTexCoord2d) \
    USE_GL_FUNC(glTexCoord2dv) \
    USE_GL_FUNC(glTexCoord2f) \
    USE_GL_FUNC(glTexCoord2fv) \
    USE_GL_FUNC(glTexCoord2i) \
    USE_GL_FUNC(glTexCoord2iv) \
    USE_GL_FUNC(glTexCoord2s) \
    USE_GL_FUNC(glTexCoord2sv) \
    USE_GL_FUNC(glTexCoord3d) \
    USE_GL_FUNC(glTexCoord3dv) \
    USE_GL_FUNC(glTexCoord3f) \
    USE_GL_FUNC(glTexCoord3fv) \
    USE_GL_FUNC(glTexCoord3i) \
    USE_GL_FUNC(glTexCoord3iv) \
    USE_GL_FUNC(glTexCoord3s) \
    USE_GL_FUNC(glTexCoord3sv) \
    USE_GL_FUNC(glTexCoord4d) \
    USE_GL_FUNC(glTexCoord4dv) \
    USE_GL_FUNC(glTexCoord4f) \
    USE_GL_FUNC(glTexCoord4fv) \
    USE_GL_FUNC(glTexCoord4i) \
    USE_GL_FUNC(glTexCoord4iv) \
    USE_GL_FUNC(glTexCoord4s) \
    USE_GL_FUNC(glTexCoord4sv) \
    USE_GL_FUNC(glTexCoordPointer) \
    USE_GL_FUNC(glTexEnvf) \
    USE_GL_FUNC(glTexEnvfv) \
    USE_GL_FUNC(glTexEnvi) \
    USE_GL_FUNC(glTexEnviv) \
    USE_GL_FUNC(glTexGend) \
    USE_GL_FUNC(glTexGendv) \
    USE_GL_FUNC(glTexGenf) \
    USE_GL_FUNC(glTexGenfv) \
    USE_GL_FUNC(glTexGeni) \
    USE_GL_FUNC(glTexGeniv) \
    USE_GL_FUNC(glTexImage1D) \
    USE_GL_FUNC(glTexImage2D) \
    USE_GL_FUNC(glTexParameterf) \
    USE_GL_FUNC(glTexParameterfv) \
    USE_GL_FUNC(glTexParameteri) \
    USE_GL_FUNC(glTexParameteriv) \
    USE_GL_FUNC(glTexSubImage1D) \
    USE_GL_FUNC(glTexSubImage2D) \
    USE_GL_FUNC(glTranslated) \
    USE_GL_FUNC(glTranslatef) \
    USE_GL_FUNC(glVertex2d) \
    USE_GL_FUNC(glVertex2dv) \
    USE_GL_FUNC(glVertex2f) \
    USE_GL_FUNC(glVertex2fv) \
    USE_GL_FUNC(glVertex2i) \
    USE_GL_FUNC(glVertex2iv) \
    USE_GL_FUNC(glVertex2s) \
    USE_GL_FUNC(glVertex2sv) \
    USE_GL_FUNC(glVertex3d) \
    USE_GL_FUNC(glVertex3dv) \
    USE_GL_FUNC(glVertex3f) \
    USE_GL_FUNC(glVertex3fv) \
    USE_GL_FUNC(glVertex3i) \
    USE_GL_FUNC(glVertex3iv) \
    USE_GL_FUNC(glVertex3s) \
    USE_GL_FUNC(glVertex3sv) \
    USE_GL_FUNC(glVertex4d) \
    USE_GL_FUNC(glVertex4dv) \
    USE_GL_FUNC(glVertex4f) \
    USE_GL_FUNC(glVertex4fv) \
    USE_GL_FUNC(glVertex4i) \
    USE_GL_FUNC(glVertex4iv) \
    USE_GL_FUNC(glVertex4s) \
    USE_GL_FUNC(glVertex4sv) \
    USE_GL_FUNC(glVertexPointer) \
    USE_GL_FUNC(glViewport)

extern struct opengl_funcs * CDECL __wine_get_wgl_driver( HDC hdc, UINT version );
extern BOOL CDECL __wine_set_pixel_format( HWND hwnd, int format );

#endif /* __WINE_WGL_DRIVER_H */
