[OPENGL32]
authorJérôme Gardou <jerome.gardou@reactos.org>
Sat, 18 Nov 2017 12:49:37 +0000 (13:49 +0100)
committerJérôme Gardou <zefklop@users.noreply.github.com>
Tue, 21 Nov 2017 07:22:31 +0000 (08:22 +0100)
 - Implement storing thread data into the TEB
CORE-14024

dll/opengl/mesa/main/glheader.h
dll/opengl/opengl32/apistubs.c
dll/opengl/opengl32/dllmain.c
dll/opengl/opengl32/glapi_x86.s
dll/opengl/opengl32/opengl32.h
sdk/include/asm/ks386.template.h
sdk/include/ndk/i386/asm.h

index 56d5ab1..6f4a59d 100644 (file)
@@ -48,6 +48,7 @@
 #  endif /* _STATIC_MESA support */
 #endif /* WIN32 / CYGWIN bracket */
 
+#define WIN32_NO_STATUS
 
 #define GL_GLEXT_PROTOTYPES
 #include <GL/gl.h>
index 08276e1..85c7587 100644 (file)
 
 #include "opengl32.h"
 
-static void GLAPIENTRY nop_NewList(GLuint list, GLenum mode)
+void GLAPIENTRY nop_NewList(GLuint list, GLenum mode)
 {
     (void) list; (void) mode;
 }
 
-static void GLAPIENTRY nop_EndList(void)
+void GLAPIENTRY nop_EndList(void)
 {
 }
 
-static void GLAPIENTRY nop_CallList(GLuint list)
+void GLAPIENTRY nop_CallList(GLuint list)
 {
     (void) list;
 }
 
-static void GLAPIENTRY nop_CallLists(GLsizei n, GLenum type, const GLvoid * lists)
+void GLAPIENTRY nop_CallLists(GLsizei n, GLenum type, const GLvoid * lists)
 {
     (void) n; (void) type; (void) lists;
 }
 
-static void GLAPIENTRY nop_DeleteLists(GLuint list, GLsizei range)
+void GLAPIENTRY nop_DeleteLists(GLuint list, GLsizei range)
 {
     (void) list; (void) range;
 }
 
-static GLuint GLAPIENTRY nop_GenLists(GLsizei range)
+GLuint GLAPIENTRY nop_GenLists(GLsizei range)
 {
     (void) range;
     return 0;
 }
 
-static void GLAPIENTRY nop_ListBase(GLuint base)
+void GLAPIENTRY nop_ListBase(GLuint base)
 {
     (void) base;
 }
 
-static void GLAPIENTRY nop_Begin(GLenum mode)
+void GLAPIENTRY nop_Begin(GLenum mode)
 {
     (void) mode;
 }
 
-static void GLAPIENTRY nop_Bitmap(GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte * bitmap)
+void GLAPIENTRY nop_Bitmap(GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte * bitmap)
 {
     (void) width; (void) height; (void) xorig; (void) yorig; (void) xmove; (void) ymove; (void) bitmap;
 }
 
-static void GLAPIENTRY nop_Color3b(GLbyte red, GLbyte green, GLbyte blue)
+void GLAPIENTRY nop_Color3b(GLbyte red, GLbyte green, GLbyte blue)
 {
     (void) red; (void) green; (void) blue;
 }
 
-static void GLAPIENTRY nop_Color3bv(const GLbyte * v)
+void GLAPIENTRY nop_Color3bv(const GLbyte * v)
 {
     (void) v;
 }
 
-static void GLAPIENTRY nop_Color3d(GLdouble red, GLdouble green, GLdouble blue)
+void GLAPIENTRY nop_Color3d(GLdouble red, GLdouble green, GLdouble blue)
 {
     (void) red; (void) green; (void) blue;
 }
 
-static void GLAPIENTRY nop_Color3dv(const GLdouble * v)
+void GLAPIENTRY nop_Color3dv(const GLdouble * v)
 {
     (void) v;
 }
 
-static void GLAPIENTRY nop_Color3f(GLfloat red, GLfloat green, GLfloat blue)
+void GLAPIENTRY nop_Color3f(GLfloat red, GLfloat green, GLfloat blue)
 {
     (void) red; (void) green; (void) blue;
 }
 
-static void GLAPIENTRY nop_Color3fv(const GLfloat * v)
+void GLAPIENTRY nop_Color3fv(const GLfloat * v)
 {
     (void) v;
 }
 
-static void GLAPIENTRY nop_Color3i(GLint red, GLint green, GLint blue)
+void GLAPIENTRY nop_Color3i(GLint red, GLint green, GLint blue)
 {
     (void) red; (void) green; (void) blue;
 }
 
-static void GLAPIENTRY nop_Color3iv(const GLint * v)
+void GLAPIENTRY nop_Color3iv(const GLint * v)
 {
     (void) v;
 }
 
-static void GLAPIENTRY nop_Color3s(GLshort red, GLshort green, GLshort blue)
+void GLAPIENTRY nop_Color3s(GLshort red, GLshort green, GLshort blue)
 {
     (void) red; (void) green; (void) blue;
 }
 
-static void GLAPIENTRY nop_Color3sv(const GLshort * v)
+void GLAPIENTRY nop_Color3sv(const GLshort * v)
 {
     (void) v;
 }
 
-static void GLAPIENTRY nop_Color3ub(GLubyte red, GLubyte green, GLubyte blue)
+void GLAPIENTRY nop_Color3ub(GLubyte red, GLubyte green, GLubyte blue)
 {
     (void) red; (void) green; (void) blue;
 }
 
-static void GLAPIENTRY nop_Color3ubv(const GLubyte * v)
+void GLAPIENTRY nop_Color3ubv(const GLubyte * v)
 {
     (void) v;
 }
 
-static void GLAPIENTRY nop_Color3ui(GLuint red, GLuint green, GLuint blue)
+void GLAPIENTRY nop_Color3ui(GLuint red, GLuint green, GLuint blue)
 {
     (void) red; (void) green; (void) blue;
 }
 
-static void GLAPIENTRY nop_Color3uiv(const GLuint * v)
+void GLAPIENTRY nop_Color3uiv(const GLuint * v)
 {
     (void) v;
 }
 
-static void GLAPIENTRY nop_Color3us(GLushort red, GLushort green, GLushort blue)
+void GLAPIENTRY nop_Color3us(GLushort red, GLushort green, GLushort blue)
 {
     (void) red; (void) green; (void) blue;
 }
 
-static void GLAPIENTRY nop_Color3usv(const GLushort * v)
+void GLAPIENTRY nop_Color3usv(const GLushort * v)
 {
     (void) v;
 }
 
-static void GLAPIENTRY nop_Color4b(GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha)
+void GLAPIENTRY nop_Color4b(GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha)
 {
     (void) red; (void) green; (void) blue; (void) alpha;
 }
 
-static void GLAPIENTRY nop_Color4bv(const GLbyte * v)
+void GLAPIENTRY nop_Color4bv(const GLbyte * v)
 {
     (void) v;
 }
 
-static void GLAPIENTRY nop_Color4d(GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha)
+void GLAPIENTRY nop_Color4d(GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha)
 {
     (void) red; (void) green; (void) blue; (void) alpha;
 }
 
-static void GLAPIENTRY nop_Color4dv(const GLdouble * v)
+void GLAPIENTRY nop_Color4dv(const GLdouble * v)
 {
     (void) v;
 }
 
-static void GLAPIENTRY nop_Color4f(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+void GLAPIENTRY nop_Color4f(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
 {
     (void) red; (void) green; (void) blue; (void) alpha;
 }
 
-static void GLAPIENTRY nop_Color4fv(const GLfloat * v)
+void GLAPIENTRY nop_Color4fv(const GLfloat * v)
 {
     (void) v;
 }
 
-static void GLAPIENTRY nop_Color4i(GLint red, GLint green, GLint blue, GLint alpha)
+void GLAPIENTRY nop_Color4i(GLint red, GLint green, GLint blue, GLint alpha)
 {
     (void) red; (void) green; (void) blue; (void) alpha;
 }
 
-static void GLAPIENTRY nop_Color4iv(const GLint * v)
+void GLAPIENTRY nop_Color4iv(const GLint * v)
 {
     (void) v;
 }
 
-static void GLAPIENTRY nop_Color4s(GLshort red, GLshort green, GLshort blue, GLshort alpha)
+void GLAPIENTRY nop_Color4s(GLshort red, GLshort green, GLshort blue, GLshort alpha)
 {
     (void) red; (void) green; (void) blue; (void) alpha;
 }
 
-static void GLAPIENTRY nop_Color4sv(const GLshort * v)
+void GLAPIENTRY nop_Color4sv(const GLshort * v)
 {
     (void) v;
 }
 
-static void GLAPIENTRY nop_Color4ub(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha)
+void GLAPIENTRY nop_Color4ub(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha)
 {
     (void) red; (void) green; (void) blue; (void) alpha;
 }
 
-static void GLAPIENTRY nop_Color4ubv(const GLubyte * v)
+void GLAPIENTRY nop_Color4ubv(const GLubyte * v)
 {
     (void) v;
 }
 
-static void GLAPIENTRY nop_Color4ui(GLuint red, GLuint green, GLuint blue, GLuint alpha)
+void GLAPIENTRY nop_Color4ui(GLuint red, GLuint green, GLuint blue, GLuint alpha)
 {
     (void) red; (void) green; (void) blue; (void) alpha;
 }
 
-static void GLAPIENTRY nop_Color4uiv(const GLuint * v)
+void GLAPIENTRY nop_Color4uiv(const GLuint * v)
 {
     (void) v;
 }
 
-static void GLAPIENTRY nop_Color4us(GLushort red, GLushort green, GLushort blue, GLushort alpha)
+void GLAPIENTRY nop_Color4us(GLushort red, GLushort green, GLushort blue, GLushort alpha)
 {
     (void) red; (void) green; (void) blue; (void) alpha;
 }
 
-static void GLAPIENTRY nop_Color4usv(const GLushort * v)
+void GLAPIENTRY nop_Color4usv(const GLushort * v)
 {
     (void) v;
 }
 
-static void GLAPIENTRY nop_EdgeFlag(GLboolean flag)
+void GLAPIENTRY nop_EdgeFlag(GLboolean flag)
 {
     (void) flag;
 }
 
-static void GLAPIENTRY nop_EdgeFlagv(const GLboolean * flag)
+void GLAPIENTRY nop_EdgeFlagv(const GLboolean * flag)
 {
     (void) flag;
 }
 
-static void GLAPIENTRY nop_End(void)
+void GLAPIENTRY nop_End(void)
 {
 }
 
-static void GLAPIENTRY nop_Indexd(GLdouble c)
+void GLAPIENTRY nop_Indexd(GLdouble c)
 {
     (void) c;
 }
 
-static void GLAPIENTRY nop_Indexdv(const GLdouble * c)
+void GLAPIENTRY nop_Indexdv(const GLdouble * c)
 {
     (void) c;
 }
 
-static void GLAPIENTRY nop_Indexf(GLfloat c)
+void GLAPIENTRY nop_Indexf(GLfloat c)
 {
     (void) c;
 }
 
-static void GLAPIENTRY nop_Indexfv(const GLfloat * c)
+void GLAPIENTRY nop_Indexfv(const GLfloat * c)
 {
     (void) c;
 }
 
-static void GLAPIENTRY nop_Indexi(GLint c)
+void GLAPIENTRY nop_Indexi(GLint c)
 {
     (void) c;
 }
 
-static void GLAPIENTRY nop_Indexiv(const GLint * c)
+void GLAPIENTRY nop_Indexiv(const GLint * c)
 {
     (void) c;
 }
 
-static void GLAPIENTRY nop_Indexs(GLshort c)
+void GLAPIENTRY nop_Indexs(GLshort c)
 {
     (void) c;
 }
 
-static void GLAPIENTRY nop_Indexsv(const GLshort * c)
+void GLAPIENTRY nop_Indexsv(const GLshort * c)
 {
     (void) c;
 }
 
-static void GLAPIENTRY nop_Normal3b(GLbyte nx, GLbyte ny, GLbyte nz)
+void GLAPIENTRY nop_Normal3b(GLbyte nx, GLbyte ny, GLbyte nz)
 {
     (void) nx; (void) ny; (void) nz;
 }
 
-static void GLAPIENTRY nop_Normal3bv(const GLbyte * v)
+void GLAPIENTRY nop_Normal3bv(const GLbyte * v)
 {
     (void) v;
 }
 
-static void GLAPIENTRY nop_Normal3d(GLdouble nx, GLdouble ny, GLdouble nz)
+void GLAPIENTRY nop_Normal3d(GLdouble nx, GLdouble ny, GLdouble nz)
 {
     (void) nx; (void) ny; (void) nz;
 }
 
-static void GLAPIENTRY nop_Normal3dv(const GLdouble * v)
+void GLAPIENTRY nop_Normal3dv(const GLdouble * v)
 {
     (void) v;
 }
 
-static void GLAPIENTRY nop_Normal3f(GLfloat nx, GLfloat ny, GLfloat nz)
+void GLAPIENTRY nop_Normal3f(GLfloat nx, GLfloat ny, GLfloat nz)
 {
     (void) nx; (void) ny; (void) nz;
 }
 
-static void GLAPIENTRY nop_Normal3fv(const GLfloat * v)
+void GLAPIENTRY nop_Normal3fv(const GLfloat * v)
 {
     (void) v;
 }
 
-static void GLAPIENTRY nop_Normal3i(GLint nx, GLint ny, GLint nz)
+void GLAPIENTRY nop_Normal3i(GLint nx, GLint ny, GLint nz)
 {
     (void) nx; (void) ny; (void) nz;
 }
 
-static void GLAPIENTRY nop_Normal3iv(const GLint * v)
+void GLAPIENTRY nop_Normal3iv(const GLint * v)
 {
     (void) v;
 }
 
-static void GLAPIENTRY nop_Normal3s(GLshort nx, GLshort ny, GLshort nz)
+void GLAPIENTRY nop_Normal3s(GLshort nx, GLshort ny, GLshort nz)
 {
     (void) nx; (void) ny; (void) nz;
 }
 
-static void GLAPIENTRY nop_Normal3sv(const GLshort * v)
+void GLAPIENTRY nop_Normal3sv(const GLshort * v)
 {
     (void) v;
 }
 
-static void GLAPIENTRY nop_RasterPos2d(GLdouble x, GLdouble y)
+void GLAPIENTRY nop_RasterPos2d(GLdouble x, GLdouble y)
 {
     (void) x; (void) y;
 }
 
-static void GLAPIENTRY nop_RasterPos2dv(const GLdouble * v)
+void GLAPIENTRY nop_RasterPos2dv(const GLdouble * v)
 {
     (void) v;
 }
 
-static void GLAPIENTRY nop_RasterPos2f(GLfloat x, GLfloat y)
+void GLAPIENTRY nop_RasterPos2f(GLfloat x, GLfloat y)
 {
     (void) x; (void) y;
 }
 
-static void GLAPIENTRY nop_RasterPos2fv(const GLfloat * v)
+void GLAPIENTRY nop_RasterPos2fv(const GLfloat * v)
 {
     (void) v;
 }
 
-static void GLAPIENTRY nop_RasterPos2i(GLint x, GLint y)
+void GLAPIENTRY nop_RasterPos2i(GLint x, GLint y)
 {
     (void) x; (void) y;
 }
 
-static void GLAPIENTRY nop_RasterPos2iv(const GLint * v)
+void GLAPIENTRY nop_RasterPos2iv(const GLint * v)
 {
     (void) v;
 }
 
-static void GLAPIENTRY nop_RasterPos2s(GLshort x, GLshort y)
+void GLAPIENTRY nop_RasterPos2s(GLshort x, GLshort y)
 {
     (void) x; (void) y;
 }
 
-static void GLAPIENTRY nop_RasterPos2sv(const GLshort * v)
+void GLAPIENTRY nop_RasterPos2sv(const GLshort * v)
 {
     (void) v;
 }
 
-static void GLAPIENTRY nop_RasterPos3d(GLdouble x, GLdouble y, GLdouble z)
+void GLAPIENTRY nop_RasterPos3d(GLdouble x, GLdouble y, GLdouble z)
 {
     (void) x; (void) y; (void) z;
 }
 
-static void GLAPIENTRY nop_RasterPos3dv(const GLdouble * v)
+void GLAPIENTRY nop_RasterPos3dv(const GLdouble * v)
 {
     (void) v;
 }
 
-static void GLAPIENTRY nop_RasterPos3f(GLfloat x, GLfloat y, GLfloat z)
+void GLAPIENTRY nop_RasterPos3f(GLfloat x, GLfloat y, GLfloat z)
 {
     (void) x; (void) y; (void) z;
 }
 
-static void GLAPIENTRY nop_RasterPos3fv(const GLfloat * v)
+void GLAPIENTRY nop_RasterPos3fv(const GLfloat * v)
 {
     (void) v;
 }
 
-static void GLAPIENTRY nop_RasterPos3i(GLint x, GLint y, GLint z)
+void GLAPIENTRY nop_RasterPos3i(GLint x, GLint y, GLint z)
 {
     (void) x; (void) y; (void) z;
 }
 
-static void GLAPIENTRY nop_RasterPos3iv(const GLint * v)
+void GLAPIENTRY nop_RasterPos3iv(const GLint * v)
 {
     (void) v;
 }
 
-static void GLAPIENTRY nop_RasterPos3s(GLshort x, GLshort y, GLshort z)
+void GLAPIENTRY nop_RasterPos3s(GLshort x, GLshort y, GLshort z)
 {
     (void) x; (void) y; (void) z;
 }
 
-static void GLAPIENTRY nop_RasterPos3sv(const GLshort * v)
+void GLAPIENTRY nop_RasterPos3sv(const GLshort * v)
 {
     (void) v;
 }
 
-static void GLAPIENTRY nop_RasterPos4d(GLdouble x, GLdouble y, GLdouble z, GLdouble w)
+void GLAPIENTRY nop_RasterPos4d(GLdouble x, GLdouble y, GLdouble z, GLdouble w)
 {
     (void) x; (void) y; (void) z; (void) w;
 }
 
-static void GLAPIENTRY nop_RasterPos4dv(const GLdouble * v)
+void GLAPIENTRY nop_RasterPos4dv(const GLdouble * v)
 {
     (void) v;
 }
 
-static void GLAPIENTRY nop_RasterPos4f(GLfloat x, GLfloat y, GLfloat z, GLfloat w)
+void GLAPIENTRY nop_RasterPos4f(GLfloat x, GLfloat y, GLfloat z, GLfloat w)
 {
     (void) x; (void) y; (void) z; (void) w;
 }
 
-static void GLAPIENTRY nop_RasterPos4fv(const GLfloat * v)
+void GLAPIENTRY nop_RasterPos4fv(const GLfloat * v)
 {
     (void) v;
 }
 
-static void GLAPIENTRY nop_RasterPos4i(GLint x, GLint y, GLint z, GLint w)
+void GLAPIENTRY nop_RasterPos4i(GLint x, GLint y, GLint z, GLint w)
 {
     (void) x; (void) y; (void) z; (void) w;
 }
 
-static void GLAPIENTRY nop_RasterPos4iv(const GLint * v)
+void GLAPIENTRY nop_RasterPos4iv(const GLint * v)
 {
     (void) v;
 }
 
-static void GLAPIENTRY nop_RasterPos4s(GLshort x, GLshort y, GLshort z, GLshort w)
+void GLAPIENTRY nop_RasterPos4s(GLshort x, GLshort y, GLshort z, GLshort w)
 {
     (void) x; (void) y; (void) z; (void) w;
 }
 
-static void GLAPIENTRY nop_RasterPos4sv(const GLshort * v)
+void GLAPIENTRY nop_RasterPos4sv(const GLshort * v)
 {
     (void) v;
 }
 
-static void GLAPIENTRY nop_Rectd(GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2)
+void GLAPIENTRY nop_Rectd(GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2)
 {
     (void) x1; (void) y1; (void) x2; (void) y2;
 }
 
-static void GLAPIENTRY nop_Rectdv(const GLdouble * v1, const GLdouble * v2)
+void GLAPIENTRY nop_Rectdv(const GLdouble * v1, const GLdouble * v2)
 {
     (void) v1; (void) v2;
 }
 
-static void GLAPIENTRY nop_Rectf(GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2)
+void GLAPIENTRY nop_Rectf(GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2)
 {
     (void) x1; (void) y1; (void) x2; (void) y2;
 }
 
-static void GLAPIENTRY nop_Rectfv(const GLfloat * v1, const GLfloat * v2)
+void GLAPIENTRY nop_Rectfv(const GLfloat * v1, const GLfloat * v2)
 {
     (void) v1; (void) v2;
 }
 
-static void GLAPIENTRY nop_Recti(GLint x1, GLint y1, GLint x2, GLint y2)
+void GLAPIENTRY nop_Recti(GLint x1, GLint y1, GLint x2, GLint y2)
 {
     (void) x1; (void) y1; (void) x2; (void) y2;
 }
 
-static void GLAPIENTRY nop_Rectiv(const GLint * v1, const GLint * v2)
+void GLAPIENTRY nop_Rectiv(const GLint * v1, const GLint * v2)
 {
     (void) v1; (void) v2;
 }
 
-static void GLAPIENTRY nop_Rects(GLshort x1, GLshort y1, GLshort x2, GLshort y2)
+void GLAPIENTRY nop_Rects(GLshort x1, GLshort y1, GLshort x2, GLshort y2)
 {
     (void) x1; (void) y1; (void) x2; (void) y2;
 }
 
-static void GLAPIENTRY nop_Rectsv(const GLshort * v1, const GLshort * v2)
+void GLAPIENTRY nop_Rectsv(const GLshort * v1, const GLshort * v2)
 {
     (void) v1; (void) v2;
 }
 
-static void GLAPIENTRY nop_TexCoord1d(GLdouble s)
+void GLAPIENTRY nop_TexCoord1d(GLdouble s)
 {
     (void) s;
 }
 
-static void GLAPIENTRY nop_TexCoord1dv(const GLdouble * v)
+void GLAPIENTRY nop_TexCoord1dv(const GLdouble * v)
 {
     (void) v;
 }
 
-static void GLAPIENTRY nop_TexCoord1f(GLfloat s)
+void GLAPIENTRY nop_TexCoord1f(GLfloat s)
 {
     (void) s;
 }
 
-static void GLAPIENTRY nop_TexCoord1fv(const GLfloat * v)
+void GLAPIENTRY nop_TexCoord1fv(const GLfloat * v)
 {
     (void) v;
 }
 
-static void GLAPIENTRY nop_TexCoord1i(GLint s)
+void GLAPIENTRY nop_TexCoord1i(GLint s)
 {
     (void) s;
 }
 
-static void GLAPIENTRY nop_TexCoord1iv(const GLint * v)
+void GLAPIENTRY nop_TexCoord1iv(const GLint * v)
 {
     (void) v;
 }
 
-static void GLAPIENTRY nop_TexCoord1s(GLshort s)
+void GLAPIENTRY nop_TexCoord1s(GLshort s)
 {
     (void) s;
 }
 
-static void GLAPIENTRY nop_TexCoord1sv(const GLshort * v)
+void GLAPIENTRY nop_TexCoord1sv(const GLshort * v)
 {
     (void) v;
 }
 
-static void GLAPIENTRY nop_TexCoord2d(GLdouble s, GLdouble t)
+void GLAPIENTRY nop_TexCoord2d(GLdouble s, GLdouble t)
 {
     (void) s; (void) t;
 }
 
-static void GLAPIENTRY nop_TexCoord2dv(const GLdouble * v)
+void GLAPIENTRY nop_TexCoord2dv(const GLdouble * v)
 {
     (void) v;
 }
 
-static void GLAPIENTRY nop_TexCoord2f(GLfloat s, GLfloat t)
+void GLAPIENTRY nop_TexCoord2f(GLfloat s, GLfloat t)
 {
     (void) s; (void) t;
 }
 
-static void GLAPIENTRY nop_TexCoord2fv(const GLfloat * v)
+void GLAPIENTRY nop_TexCoord2fv(const GLfloat * v)
 {
     (void) v;
 }
 
-static void GLAPIENTRY nop_TexCoord2i(GLint s, GLint t)
+void GLAPIENTRY nop_TexCoord2i(GLint s, GLint t)
 {
     (void) s; (void) t;
 }
 
-static void GLAPIENTRY nop_TexCoord2iv(const GLint * v)
+void GLAPIENTRY nop_TexCoord2iv(const GLint * v)
 {
     (void) v;
 }
 
-static void GLAPIENTRY nop_TexCoord2s(GLshort s, GLshort t)
+void GLAPIENTRY nop_TexCoord2s(GLshort s, GLshort t)
 {
     (void) s; (void) t;
 }
 
-static void GLAPIENTRY nop_TexCoord2sv(const GLshort * v)
+void GLAPIENTRY nop_TexCoord2sv(const GLshort * v)
 {
     (void) v;
 }
 
-static void GLAPIENTRY nop_TexCoord3d(GLdouble s, GLdouble t, GLdouble r)
+void GLAPIENTRY nop_TexCoord3d(GLdouble s, GLdouble t, GLdouble r)
 {
     (void) s; (void) t; (void) r;
 }
 
-static void GLAPIENTRY nop_TexCoord3dv(const GLdouble * v)
+void GLAPIENTRY nop_TexCoord3dv(const GLdouble * v)
 {
     (void) v;
 }
 
-static void GLAPIENTRY nop_TexCoord3f(GLfloat s, GLfloat t, GLfloat r)
+void GLAPIENTRY nop_TexCoord3f(GLfloat s, GLfloat t, GLfloat r)
 {
     (void) s; (void) t; (void) r;
 }
 
-static void GLAPIENTRY nop_TexCoord3fv(const GLfloat * v)
+void GLAPIENTRY nop_TexCoord3fv(const GLfloat * v)
 {
     (void) v;
 }
 
-static void GLAPIENTRY nop_TexCoord3i(GLint s, GLint t, GLint r)
+void GLAPIENTRY nop_TexCoord3i(GLint s, GLint t, GLint r)
 {
     (void) s; (void) t; (void) r;
 }
 
-static void GLAPIENTRY nop_TexCoord3iv(const GLint * v)
+void GLAPIENTRY nop_TexCoord3iv(const GLint * v)
 {
     (void) v;
 }
 
-static void GLAPIENTRY nop_TexCoord3s(GLshort s, GLshort t, GLshort r)
+void GLAPIENTRY nop_TexCoord3s(GLshort s, GLshort t, GLshort r)
 {
     (void) s; (void) t; (void) r;
 }
 
-static void GLAPIENTRY nop_TexCoord3sv(const GLshort * v)
+void GLAPIENTRY nop_TexCoord3sv(const GLshort * v)
 {
     (void) v;
 }
 
-static void GLAPIENTRY nop_TexCoord4d(GLdouble s, GLdouble t, GLdouble r, GLdouble q)
+void GLAPIENTRY nop_TexCoord4d(GLdouble s, GLdouble t, GLdouble r, GLdouble q)
 {
     (void) s; (void) t; (void) r; (void) q;
 }
 
-static void GLAPIENTRY nop_TexCoord4dv(const GLdouble * v)
+void GLAPIENTRY nop_TexCoord4dv(const GLdouble * v)
 {
     (void) v;
 }
 
-static void GLAPIENTRY nop_TexCoord4f(GLfloat s, GLfloat t, GLfloat r, GLfloat q)
+void GLAPIENTRY nop_TexCoord4f(GLfloat s, GLfloat t, GLfloat r, GLfloat q)
 {
     (void) s; (void) t; (void) r; (void) q;
 }
 
-static void GLAPIENTRY nop_TexCoord4fv(const GLfloat * v)
+void GLAPIENTRY nop_TexCoord4fv(const GLfloat * v)
 {
     (void) v;
 }
 
-static void GLAPIENTRY nop_TexCoord4i(GLint s, GLint t, GLint r, GLint q)
+void GLAPIENTRY nop_TexCoord4i(GLint s, GLint t, GLint r, GLint q)
 {
     (void) s; (void) t; (void) r; (void) q;
 }
 
-static void GLAPIENTRY nop_TexCoord4iv(const GLint * v)
+void GLAPIENTRY nop_TexCoord4iv(const GLint * v)
 {
     (void) v;
 }
 
-static void GLAPIENTRY nop_TexCoord4s(GLshort s, GLshort t, GLshort r, GLshort q)
+void GLAPIENTRY nop_TexCoord4s(GLshort s, GLshort t, GLshort r, GLshort q)
 {
     (void) s; (void) t; (void) r; (void) q;
 }
 
-static void GLAPIENTRY nop_TexCoord4sv(const GLshort * v)
+void GLAPIENTRY nop_TexCoord4sv(const GLshort * v)
 {
     (void) v;
 }
 
-static void GLAPIENTRY nop_Vertex2d(GLdouble x, GLdouble y)
+void GLAPIENTRY nop_Vertex2d(GLdouble x, GLdouble y)
 {
     (void) x; (void) y;
 }
 
-static void GLAPIENTRY nop_Vertex2dv(const GLdouble * v)
+void GLAPIENTRY nop_Vertex2dv(const GLdouble * v)
 {
     (void) v;
 }
 
-static void GLAPIENTRY nop_Vertex2f(GLfloat x, GLfloat y)
+void GLAPIENTRY nop_Vertex2f(GLfloat x, GLfloat y)
 {
     (void) x; (void) y;
 }
 
-static void GLAPIENTRY nop_Vertex2fv(const GLfloat * v)
+void GLAPIENTRY nop_Vertex2fv(const GLfloat * v)
 {
     (void) v;
 }
 
-static void GLAPIENTRY nop_Vertex2i(GLint x, GLint y)
+void GLAPIENTRY nop_Vertex2i(GLint x, GLint y)
 {
     (void) x; (void) y;
 }
 
-static void GLAPIENTRY nop_Vertex2iv(const GLint * v)
+void GLAPIENTRY nop_Vertex2iv(const GLint * v)
 {
     (void) v;
 }
 
-static void GLAPIENTRY nop_Vertex2s(GLshort x, GLshort y)
+void GLAPIENTRY nop_Vertex2s(GLshort x, GLshort y)
 {
     (void) x; (void) y;
 }
 
-static void GLAPIENTRY nop_Vertex2sv(const GLshort * v)
+void GLAPIENTRY nop_Vertex2sv(const GLshort * v)
 {
     (void) v;
 }
 
-static void GLAPIENTRY nop_Vertex3d(GLdouble x, GLdouble y, GLdouble z)
+void GLAPIENTRY nop_Vertex3d(GLdouble x, GLdouble y, GLdouble z)
 {
     (void) x; (void) y; (void) z;
 }
 
-static void GLAPIENTRY nop_Vertex3dv(const GLdouble * v)
+void GLAPIENTRY nop_Vertex3dv(const GLdouble * v)
 {
     (void) v;
 }
 
-static void GLAPIENTRY nop_Vertex3f(GLfloat x, GLfloat y, GLfloat z)
+void GLAPIENTRY nop_Vertex3f(GLfloat x, GLfloat y, GLfloat z)
 {
     (void) x; (void) y; (void) z;
 }
 
-static void GLAPIENTRY nop_Vertex3fv(const GLfloat * v)
+void GLAPIENTRY nop_Vertex3fv(const GLfloat * v)
 {
     (void) v;
 }
 
-static void GLAPIENTRY nop_Vertex3i(GLint x, GLint y, GLint z)
+void GLAPIENTRY nop_Vertex3i(GLint x, GLint y, GLint z)
 {
     (void) x; (void) y; (void) z;
 }
 
-static void GLAPIENTRY nop_Vertex3iv(const GLint * v)
+void GLAPIENTRY nop_Vertex3iv(const GLint * v)
 {
     (void) v;
 }
 
-static void GLAPIENTRY nop_Vertex3s(GLshort x, GLshort y, GLshort z)
+void GLAPIENTRY nop_Vertex3s(GLshort x, GLshort y, GLshort z)
 {
     (void) x; (void) y; (void) z;
 }
 
-static void GLAPIENTRY nop_Vertex3sv(const GLshort * v)
+void GLAPIENTRY nop_Vertex3sv(const GLshort * v)
 {
     (void) v;
 }
 
-static void GLAPIENTRY nop_Vertex4d(GLdouble x, GLdouble y, GLdouble z, GLdouble w)
+void GLAPIENTRY nop_Vertex4d(GLdouble x, GLdouble y, GLdouble z, GLdouble w)
 {
     (void) x; (void) y; (void) z; (void) w;
 }
 
-static void GLAPIENTRY nop_Vertex4dv(const GLdouble * v)
+void GLAPIENTRY nop_Vertex4dv(const GLdouble * v)
 {
     (void) v;
 }
 
-static void GLAPIENTRY nop_Vertex4f(GLfloat x, GLfloat y, GLfloat z, GLfloat w)
+void GLAPIENTRY nop_Vertex4f(GLfloat x, GLfloat y, GLfloat z, GLfloat w)
 {
     (void) x; (void) y; (void) z; (void) w;
 }
 
-static void GLAPIENTRY nop_Vertex4fv(const GLfloat * v)
+void GLAPIENTRY nop_Vertex4fv(const GLfloat * v)
 {
     (void) v;
 }
 
-static void GLAPIENTRY nop_Vertex4i(GLint x, GLint y, GLint z, GLint w)
+void GLAPIENTRY nop_Vertex4i(GLint x, GLint y, GLint z, GLint w)
 {
     (void) x; (void) y; (void) z; (void) w;
 }
 
-static void GLAPIENTRY nop_Vertex4iv(const GLint * v)
+void GLAPIENTRY nop_Vertex4iv(const GLint * v)
 {
     (void) v;
 }
 
-static void GLAPIENTRY nop_Vertex4s(GLshort x, GLshort y, GLshort z, GLshort w)
+void GLAPIENTRY nop_Vertex4s(GLshort x, GLshort y, GLshort z, GLshort w)
 {
     (void) x; (void) y; (void) z; (void) w;
 }
 
-static void GLAPIENTRY nop_Vertex4sv(const GLshort * v)
+void GLAPIENTRY nop_Vertex4sv(const GLshort * v)
 {
     (void) v;
 }
 
-static void GLAPIENTRY nop_ClipPlane(GLenum plane, const GLdouble * equation)
+void GLAPIENTRY nop_ClipPlane(GLenum plane, const GLdouble * equation)
 {
     (void) plane; (void) equation;
 }
 
-static void GLAPIENTRY nop_ColorMaterial(GLenum face, GLenum mode)
+void GLAPIENTRY nop_ColorMaterial(GLenum face, GLenum mode)
 {
     (void) face; (void) mode;
 }
 
-static void GLAPIENTRY nop_CullFace(GLenum mode)
+void GLAPIENTRY nop_CullFace(GLenum mode)
 {
     (void) mode;
 }
 
-static void GLAPIENTRY nop_Fogf(GLenum pname, GLfloat param)
+void GLAPIENTRY nop_Fogf(GLenum pname, GLfloat param)
 {
     (void) pname; (void) param;
 }
 
-static void GLAPIENTRY nop_Fogfv(GLenum pname, const GLfloat * params)
+void GLAPIENTRY nop_Fogfv(GLenum pname, const GLfloat * params)
 {
     (void) pname; (void) params;
 }
 
-static void GLAPIENTRY nop_Fogi(GLenum pname, GLint param)
+void GLAPIENTRY nop_Fogi(GLenum pname, GLint param)
 {
     (void) pname; (void) param;
 }
 
-static void GLAPIENTRY nop_Fogiv(GLenum pname, const GLint * params)
+void GLAPIENTRY nop_Fogiv(GLenum pname, const GLint * params)
 {
     (void) pname; (void) params;
 }
 
-static void GLAPIENTRY nop_FrontFace(GLenum mode)
+void GLAPIENTRY nop_FrontFace(GLenum mode)
 {
     (void) mode;
 }
 
-static void GLAPIENTRY nop_Hint(GLenum target, GLenum mode)
+void GLAPIENTRY nop_Hint(GLenum target, GLenum mode)
 {
     (void) target; (void) mode;
 }
 
-static void GLAPIENTRY nop_Lightf(GLenum light, GLenum pname, GLfloat param)
+void GLAPIENTRY nop_Lightf(GLenum light, GLenum pname, GLfloat param)
 {
     (void) light; (void) pname; (void) param;
 }
 
-static void GLAPIENTRY nop_Lightfv(GLenum light, GLenum pname, const GLfloat * params)
+void GLAPIENTRY nop_Lightfv(GLenum light, GLenum pname, const GLfloat * params)
 {
     (void) light; (void) pname; (void) params;
 }
 
-static void GLAPIENTRY nop_Lighti(GLenum light, GLenum pname, GLint param)
+void GLAPIENTRY nop_Lighti(GLenum light, GLenum pname, GLint param)
 {
     (void) light; (void) pname; (void) param;
 }
 
-static void GLAPIENTRY nop_Lightiv(GLenum light, GLenum pname, const GLint * params)
+void GLAPIENTRY nop_Lightiv(GLenum light, GLenum pname, const GLint * params)
 {
     (void) light; (void) pname; (void) params;
 }
 
-static void GLAPIENTRY nop_LightModelf(GLenum pname, GLfloat param)
+void GLAPIENTRY nop_LightModelf(GLenum pname, GLfloat param)
 {
     (void) pname; (void) param;
 }
 
-static void GLAPIENTRY nop_LightModelfv(GLenum pname, const GLfloat * params)
+void GLAPIENTRY nop_LightModelfv(GLenum pname, const GLfloat * params)
 {
     (void) pname; (void) params;
 }
 
-static void GLAPIENTRY nop_LightModeli(GLenum pname, GLint param)
+void GLAPIENTRY nop_LightModeli(GLenum pname, GLint param)
 {
     (void) pname; (void) param;
 }
 
-static void GLAPIENTRY nop_LightModeliv(GLenum pname, const GLint * params)
+void GLAPIENTRY nop_LightModeliv(GLenum pname, const GLint * params)
 {
     (void) pname; (void) params;
 }
 
-static void GLAPIENTRY nop_LineStipple(GLint factor, GLushort pattern)
+void GLAPIENTRY nop_LineStipple(GLint factor, GLushort pattern)
 {
     (void) factor; (void) pattern;
 }
 
-static void GLAPIENTRY nop_LineWidth(GLfloat width)
+void GLAPIENTRY nop_LineWidth(GLfloat width)
 {
     (void) width;
 }
 
-static void GLAPIENTRY nop_Materialf(GLenum face, GLenum pname, GLfloat param)
+void GLAPIENTRY nop_Materialf(GLenum face, GLenum pname, GLfloat param)
 {
     (void) face; (void) pname; (void) param;
 }
 
-static void GLAPIENTRY nop_Materialfv(GLenum face, GLenum pname, const GLfloat * params)
+void GLAPIENTRY nop_Materialfv(GLenum face, GLenum pname, const GLfloat * params)
 {
     (void) face; (void) pname; (void) params;
 }
 
-static void GLAPIENTRY nop_Materiali(GLenum face, GLenum pname, GLint param)
+void GLAPIENTRY nop_Materiali(GLenum face, GLenum pname, GLint param)
 {
     (void) face; (void) pname; (void) param;
 }
 
-static void GLAPIENTRY nop_Materialiv(GLenum face, GLenum pname, const GLint * params)
+void GLAPIENTRY nop_Materialiv(GLenum face, GLenum pname, const GLint * params)
 {
     (void) face; (void) pname; (void) params;
 }
 
-static void GLAPIENTRY nop_PointSize(GLfloat size)
+void GLAPIENTRY nop_PointSize(GLfloat size)
 {
     (void) size;
 }
 
-static void GLAPIENTRY nop_PolygonMode(GLenum face, GLenum mode)
+void GLAPIENTRY nop_PolygonMode(GLenum face, GLenum mode)
 {
     (void) face; (void) mode;
 }
 
-static void GLAPIENTRY nop_PolygonStipple(const GLubyte * mask)
+void GLAPIENTRY nop_PolygonStipple(const GLubyte * mask)
 {
     (void) mask;
 }
 
-static void GLAPIENTRY nop_Scissor(GLint x, GLint y, GLsizei width, GLsizei height)
+void GLAPIENTRY nop_Scissor(GLint x, GLint y, GLsizei width, GLsizei height)
 {
     (void) x; (void) y; (void) width; (void) height;
 }
 
-static void GLAPIENTRY nop_ShadeModel(GLenum mode)
+void GLAPIENTRY nop_ShadeModel(GLenum mode)
 {
     (void) mode;
 }
 
-static void GLAPIENTRY nop_TexParameterf(GLenum target, GLenum pname, GLfloat param)
+void GLAPIENTRY nop_TexParameterf(GLenum target, GLenum pname, GLfloat param)
 {
     (void) target; (void) pname; (void) param;
 }
 
-static void GLAPIENTRY nop_TexParameterfv(GLenum target, GLenum pname, const GLfloat * params)
+void GLAPIENTRY nop_TexParameterfv(GLenum target, GLenum pname, const GLfloat * params)
 {
     (void) target; (void) pname; (void) params;
 }
 
-static void GLAPIENTRY nop_TexParameteri(GLenum target, GLenum pname, GLint param)
+void GLAPIENTRY nop_TexParameteri(GLenum target, GLenum pname, GLint param)
 {
     (void) target; (void) pname; (void) param;
 }
 
-static void GLAPIENTRY nop_TexParameteriv(GLenum target, GLenum pname, const GLint * params)
+void GLAPIENTRY nop_TexParameteriv(GLenum target, GLenum pname, const GLint * params)
 {
     (void) target; (void) pname; (void) params;
 }
 
-static void GLAPIENTRY nop_TexImage1D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid * pixels)
+void GLAPIENTRY nop_TexImage1D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid * pixels)
 {
     (void) target; (void) level; (void) internalformat; (void) width; (void) border; (void) format; (void) type; (void) pixels;
 }
 
-static void GLAPIENTRY nop_TexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid * pixels)
+void GLAPIENTRY nop_TexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid * pixels)
 {
     (void) target; (void) level; (void) internalformat; (void) width; (void) height; (void) border; (void) format; (void) type; (void) pixels;
 }
 
-static void GLAPIENTRY nop_TexEnvf(GLenum target, GLenum pname, GLfloat param)
+void GLAPIENTRY nop_TexEnvf(GLenum target, GLenum pname, GLfloat param)
 {
     (void) target; (void) pname; (void) param;
 }
 
-static void GLAPIENTRY nop_TexEnvfv(GLenum target, GLenum pname, const GLfloat * params)
+void GLAPIENTRY nop_TexEnvfv(GLenum target, GLenum pname, const GLfloat * params)
 {
     (void) target; (void) pname; (void) params;
 }
 
-static void GLAPIENTRY nop_TexEnvi(GLenum target, GLenum pname, GLint param)
+void GLAPIENTRY nop_TexEnvi(GLenum target, GLenum pname, GLint param)
 {
     (void) target; (void) pname; (void) param;
 }
 
-static void GLAPIENTRY nop_TexEnviv(GLenum target, GLenum pname, const GLint * params)
+void GLAPIENTRY nop_TexEnviv(GLenum target, GLenum pname, const GLint * params)
 {
     (void) target; (void) pname; (void) params;
 }
 
-static void GLAPIENTRY nop_TexGend(GLenum coord, GLenum pname, GLdouble param)
+void GLAPIENTRY nop_TexGend(GLenum coord, GLenum pname, GLdouble param)
 {
     (void) coord; (void) pname; (void) param;
 }
 
-static void GLAPIENTRY nop_TexGendv(GLenum coord, GLenum pname, const GLdouble * params)
+void GLAPIENTRY nop_TexGendv(GLenum coord, GLenum pname, const GLdouble * params)
 {
     (void) coord; (void) pname; (void) params;
 }
 
-static void GLAPIENTRY nop_TexGenf(GLenum coord, GLenum pname, GLfloat param)
+void GLAPIENTRY nop_TexGenf(GLenum coord, GLenum pname, GLfloat param)
 {
     (void) coord; (void) pname; (void) param;
 }
 
-static void GLAPIENTRY nop_TexGenfv(GLenum coord, GLenum pname, const GLfloat * params)
+void GLAPIENTRY nop_TexGenfv(GLenum coord, GLenum pname, const GLfloat * params)
 {
     (void) coord; (void) pname; (void) params;
 }
 
-static void GLAPIENTRY nop_TexGeni(GLenum coord, GLenum pname, GLint param)
+void GLAPIENTRY nop_TexGeni(GLenum coord, GLenum pname, GLint param)
 {
     (void) coord; (void) pname; (void) param;
 }
 
-static void GLAPIENTRY nop_TexGeniv(GLenum coord, GLenum pname, const GLint * params)
+void GLAPIENTRY nop_TexGeniv(GLenum coord, GLenum pname, const GLint * params)
 {
     (void) coord; (void) pname; (void) params;
 }
 
-static void GLAPIENTRY nop_FeedbackBuffer(GLsizei size, GLenum type, GLfloat * buffer)
+void GLAPIENTRY nop_FeedbackBuffer(GLsizei size, GLenum type, GLfloat * buffer)
 {
     (void) size; (void) type; (void) buffer;
 }
 
-static void GLAPIENTRY nop_SelectBuffer(GLsizei size, GLuint * buffer)
+void GLAPIENTRY nop_SelectBuffer(GLsizei size, GLuint * buffer)
 {
     (void) size; (void) buffer;
 }
 
-static GLint GLAPIENTRY nop_RenderMode(GLenum mode)
+GLint GLAPIENTRY nop_RenderMode(GLenum mode)
 {
     (void) mode;
     return 0;
 }
 
-static void GLAPIENTRY nop_InitNames(void)
+void GLAPIENTRY nop_InitNames(void)
 {
 }
 
-static void GLAPIENTRY nop_LoadName(GLuint name)
+void GLAPIENTRY nop_LoadName(GLuint name)
 {
     (void) name;
 }
 
-static void GLAPIENTRY nop_PassThrough(GLfloat token)
+void GLAPIENTRY nop_PassThrough(GLfloat token)
 {
     (void) token;
 }
 
-static void GLAPIENTRY nop_PopName(void)
+void GLAPIENTRY nop_PopName(void)
 {
 }
 
-static void GLAPIENTRY nop_PushName(GLuint name)
+void GLAPIENTRY nop_PushName(GLuint name)
 {
     (void) name;
 }
 
-static void GLAPIENTRY nop_DrawBuffer(GLenum mode)
+void GLAPIENTRY nop_DrawBuffer(GLenum mode)
 {
     (void) mode;
 }
 
-static void GLAPIENTRY nop_Clear(GLbitfield mask)
+void GLAPIENTRY nop_Clear(GLbitfield mask)
 {
     (void) mask;
 }
 
-static void GLAPIENTRY nop_ClearAccum(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+void GLAPIENTRY nop_ClearAccum(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
 {
     (void) red; (void) green; (void) blue; (void) alpha;
 }
 
-static void GLAPIENTRY nop_ClearIndex(GLfloat c)
+void GLAPIENTRY nop_ClearIndex(GLfloat c)
 {
     (void) c;
 }
 
-static void GLAPIENTRY nop_ClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha)
+void GLAPIENTRY nop_ClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha)
 {
     (void) red; (void) green; (void) blue; (void) alpha;
 }
 
-static void GLAPIENTRY nop_ClearStencil(GLint s)
+void GLAPIENTRY nop_ClearStencil(GLint s)
 {
     (void) s;
 }
 
-static void GLAPIENTRY nop_ClearDepth(GLclampd depth)
+void GLAPIENTRY nop_ClearDepth(GLclampd depth)
 {
     (void) depth;
 }
 
-static void GLAPIENTRY nop_StencilMask(GLuint mask)
+void GLAPIENTRY nop_StencilMask(GLuint mask)
 {
     (void) mask;
 }
 
-static void GLAPIENTRY nop_ColorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha)
+void GLAPIENTRY nop_ColorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha)
 {
     (void) red; (void) green; (void) blue; (void) alpha;
 }
 
-static void GLAPIENTRY nop_DepthMask(GLboolean flag)
+void GLAPIENTRY nop_DepthMask(GLboolean flag)
 {
     (void) flag;
 }
 
-static void GLAPIENTRY nop_IndexMask(GLuint mask)
+void GLAPIENTRY nop_IndexMask(GLuint mask)
 {
     (void) mask;
 }
 
-static void GLAPIENTRY nop_Accum(GLenum op, GLfloat value)
+void GLAPIENTRY nop_Accum(GLenum op, GLfloat value)
 {
     (void) op; (void) value;
 }
 
-static void GLAPIENTRY nop_Disable(GLenum cap)
+void GLAPIENTRY nop_Disable(GLenum cap)
 {
     (void) cap;
 }
 
-static void GLAPIENTRY nop_Enable(GLenum cap)
+void GLAPIENTRY nop_Enable(GLenum cap)
 {
     (void) cap;
 }
 
-static void GLAPIENTRY nop_Finish(void)
+void GLAPIENTRY nop_Finish(void)
 {
 }
 
-static void GLAPIENTRY nop_Flush(void)
+void GLAPIENTRY nop_Flush(void)
 {
 }
 
-static void GLAPIENTRY nop_PopAttrib(void)
+void GLAPIENTRY nop_PopAttrib(void)
 {
 }
 
-static void GLAPIENTRY nop_PushAttrib(GLbitfield mask)
+void GLAPIENTRY nop_PushAttrib(GLbitfield mask)
 {
     (void) mask;
 }
 
-static void GLAPIENTRY nop_Map1d(GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble * points)
+void GLAPIENTRY nop_Map1d(GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble * points)
 {
     (void) target; (void) u1; (void) u2; (void) stride; (void) order; (void) points;
 }
 
-static void GLAPIENTRY nop_Map1f(GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat * points)
+void GLAPIENTRY nop_Map1f(GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat * points)
 {
     (void) target; (void) u1; (void) u2; (void) stride; (void) order; (void) points;
 }
 
-static void GLAPIENTRY nop_Map2d(GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble * points)
+void GLAPIENTRY nop_Map2d(GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble * points)
 {
     (void) target; (void) u1; (void) u2; (void) ustride; (void) uorder; (void) v1; (void) v2; (void) vstride; (void) vorder; (void) points;
 }
 
-static void GLAPIENTRY nop_Map2f(GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat * points)
+void GLAPIENTRY nop_Map2f(GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat * points)
 {
     (void) target; (void) u1; (void) u2; (void) ustride; (void) uorder; (void) v1; (void) v2; (void) vstride; (void) vorder; (void) points;
 }
 
-static void GLAPIENTRY nop_MapGrid1d(GLint un, GLdouble u1, GLdouble u2)
+void GLAPIENTRY nop_MapGrid1d(GLint un, GLdouble u1, GLdouble u2)
 {
     (void) un; (void) u1; (void) u2;
 }
 
-static void GLAPIENTRY nop_MapGrid1f(GLint un, GLfloat u1, GLfloat u2)
+void GLAPIENTRY nop_MapGrid1f(GLint un, GLfloat u1, GLfloat u2)
 {
     (void) un; (void) u1; (void) u2;
 }
 
-static void GLAPIENTRY nop_MapGrid2d(GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2)
+void GLAPIENTRY nop_MapGrid2d(GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2)
 {
     (void) un; (void) u1; (void) u2; (void) vn; (void) v1; (void) v2;
 }
 
-static void GLAPIENTRY nop_MapGrid2f(GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2)
+void GLAPIENTRY nop_MapGrid2f(GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2)
 {
     (void) un; (void) u1; (void) u2; (void) vn; (void) v1; (void) v2;
 }
 
-static void GLAPIENTRY nop_EvalCoord1d(GLdouble u)
+void GLAPIENTRY nop_EvalCoord1d(GLdouble u)
 {
     (void) u;
 }
 
-static void GLAPIENTRY nop_EvalCoord1dv(const GLdouble * u)
+void GLAPIENTRY nop_EvalCoord1dv(const GLdouble * u)
 {
     (void) u;
 }
 
-static void GLAPIENTRY nop_EvalCoord1f(GLfloat u)
+void GLAPIENTRY nop_EvalCoord1f(GLfloat u)
 {
     (void) u;
 }
 
-static void GLAPIENTRY nop_EvalCoord1fv(const GLfloat * u)
+void GLAPIENTRY nop_EvalCoord1fv(const GLfloat * u)
 {
     (void) u;
 }
 
-static void GLAPIENTRY nop_EvalCoord2d(GLdouble u, GLdouble v)
+void GLAPIENTRY nop_EvalCoord2d(GLdouble u, GLdouble v)
 {
     (void) u; (void) v;
 }
 
-static void GLAPIENTRY nop_EvalCoord2dv(const GLdouble * u)
+void GLAPIENTRY nop_EvalCoord2dv(const GLdouble * u)
 {
     (void) u;
 }
 
-static void GLAPIENTRY nop_EvalCoord2f(GLfloat u, GLfloat v)
+void GLAPIENTRY nop_EvalCoord2f(GLfloat u, GLfloat v)
 {
     (void) u; (void) v;
 }
 
-static void GLAPIENTRY nop_EvalCoord2fv(const GLfloat * u)
+void GLAPIENTRY nop_EvalCoord2fv(const GLfloat * u)
 {
     (void) u;
 }
 
-static void GLAPIENTRY nop_EvalMesh1(GLenum mode, GLint i1, GLint i2)
+void GLAPIENTRY nop_EvalMesh1(GLenum mode, GLint i1, GLint i2)
 {
     (void) mode; (void) i1; (void) i2;
 }
 
-static void GLAPIENTRY nop_EvalPoint1(GLint i)
+void GLAPIENTRY nop_EvalPoint1(GLint i)
 {
     (void) i;
 }
 
-static void GLAPIENTRY nop_EvalMesh2(GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2)
+void GLAPIENTRY nop_EvalMesh2(GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2)
 {
     (void) mode; (void) i1; (void) i2; (void) j1; (void) j2;
 }
 
-static void GLAPIENTRY nop_EvalPoint2(GLint i, GLint j)
+void GLAPIENTRY nop_EvalPoint2(GLint i, GLint j)
 {
     (void) i; (void) j;
 }
 
-static void GLAPIENTRY nop_AlphaFunc(GLenum func, GLclampf ref)
+void GLAPIENTRY nop_AlphaFunc(GLenum func, GLclampf ref)
 {
     (void) func; (void) ref;
 }
 
-static void GLAPIENTRY nop_BlendFunc(GLenum sfactor, GLenum dfactor)
+void GLAPIENTRY nop_BlendFunc(GLenum sfactor, GLenum dfactor)
 {
     (void) sfactor; (void) dfactor;
 }
 
-static void GLAPIENTRY nop_LogicOp(GLenum opcode)
+void GLAPIENTRY nop_LogicOp(GLenum opcode)
 {
     (void) opcode;
 }
 
-static void GLAPIENTRY nop_StencilFunc(GLenum func, GLint ref, GLuint mask)
+void GLAPIENTRY nop_StencilFunc(GLenum func, GLint ref, GLuint mask)
 {
     (void) func; (void) ref; (void) mask;
 }
 
-static void GLAPIENTRY nop_StencilOp(GLenum fail, GLenum zfail, GLenum zpass)
+void GLAPIENTRY nop_StencilOp(GLenum fail, GLenum zfail, GLenum zpass)
 {
     (void) fail; (void) zfail; (void) zpass;
 }
 
-static void GLAPIENTRY nop_DepthFunc(GLenum func)
+void GLAPIENTRY nop_DepthFunc(GLenum func)
 {
     (void) func;
 }
 
-static void GLAPIENTRY nop_PixelZoom(GLfloat xfactor, GLfloat yfactor)
+void GLAPIENTRY nop_PixelZoom(GLfloat xfactor, GLfloat yfactor)
 {
     (void) xfactor; (void) yfactor;
 }
 
-static void GLAPIENTRY nop_PixelTransferf(GLenum pname, GLfloat param)
+void GLAPIENTRY nop_PixelTransferf(GLenum pname, GLfloat param)
 {
     (void) pname; (void) param;
 }
 
-static void GLAPIENTRY nop_PixelTransferi(GLenum pname, GLint param)
+void GLAPIENTRY nop_PixelTransferi(GLenum pname, GLint param)
 {
     (void) pname; (void) param;
 }
 
-static void GLAPIENTRY nop_PixelStoref(GLenum pname, GLfloat param)
+void GLAPIENTRY nop_PixelStoref(GLenum pname, GLfloat param)
 {
     (void) pname; (void) param;
 }
 
-static void GLAPIENTRY nop_PixelStorei(GLenum pname, GLint param)
+void GLAPIENTRY nop_PixelStorei(GLenum pname, GLint param)
 {
     (void) pname; (void) param;
 }
 
-static void GLAPIENTRY nop_PixelMapfv(GLenum map, GLsizei mapsize, const GLfloat * values)
+void GLAPIENTRY nop_PixelMapfv(GLenum map, GLsizei mapsize, const GLfloat * values)
 {
     (void) map; (void) mapsize; (void) values;
 }
 
-static void GLAPIENTRY nop_PixelMapuiv(GLenum map, GLsizei mapsize, const GLuint * values)
+void GLAPIENTRY nop_PixelMapuiv(GLenum map, GLsizei mapsize, const GLuint * values)
 {
     (void) map; (void) mapsize; (void) values;
 }
 
-static void GLAPIENTRY nop_PixelMapusv(GLenum map, GLsizei mapsize, const GLushort * values)
+void GLAPIENTRY nop_PixelMapusv(GLenum map, GLsizei mapsize, const GLushort * values)
 {
     (void) map; (void) mapsize; (void) values;
 }
 
-static void GLAPIENTRY nop_ReadBuffer(GLenum mode)
+void GLAPIENTRY nop_ReadBuffer(GLenum mode)
 {
     (void) mode;
 }
 
-static void GLAPIENTRY nop_CopyPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum type)
+void GLAPIENTRY nop_CopyPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum type)
 {
     (void) x; (void) y; (void) width; (void) height; (void) type;
 }
 
-static void GLAPIENTRY nop_ReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid * pixels)
+void GLAPIENTRY nop_ReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid * pixels)
 {
     (void) x; (void) y; (void) width; (void) height; (void) format; (void) type; (void) pixels;
 }
 
-static void GLAPIENTRY nop_DrawPixels(GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid * pixels)
+void GLAPIENTRY nop_DrawPixels(GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid * pixels)
 {
     (void) width; (void) height; (void) format; (void) type; (void) pixels;
 }
 
-static void GLAPIENTRY nop_GetBooleanv(GLenum pname, GLboolean * params)
+void GLAPIENTRY nop_GetBooleanv(GLenum pname, GLboolean * params)
 {
     (void) pname; (void) params;
 }
 
-static void GLAPIENTRY nop_GetClipPlane(GLenum plane, GLdouble * equation)
+void GLAPIENTRY nop_GetClipPlane(GLenum plane, GLdouble * equation)
 {
     (void) plane; (void) equation;
 }
 
-static void GLAPIENTRY nop_GetDoublev(GLenum pname, GLdouble * params)
+void GLAPIENTRY nop_GetDoublev(GLenum pname, GLdouble * params)
 {
     (void) pname; (void) params;
 }
 
-static GLenum GLAPIENTRY nop_GetError(void)
+GLenum GLAPIENTRY nop_GetError(void)
 {
     return 0;
 }
 
-static void GLAPIENTRY nop_GetFloatv(GLenum pname, GLfloat * params)
+void GLAPIENTRY nop_GetFloatv(GLenum pname, GLfloat * params)
 {
     (void) pname; (void) params;
 }
 
-static void GLAPIENTRY nop_GetIntegerv(GLenum pname, GLint * params)
+void GLAPIENTRY nop_GetIntegerv(GLenum pname, GLint * params)
 {
     (void) pname; (void) params;
 }
 
-static void GLAPIENTRY nop_GetLightfv(GLenum light, GLenum pname, GLfloat * params)
+void GLAPIENTRY nop_GetLightfv(GLenum light, GLenum pname, GLfloat * params)
 {
     (void) light; (void) pname; (void) params;
 }
 
-static void GLAPIENTRY nop_GetLightiv(GLenum light, GLenum pname, GLint * params)
+void GLAPIENTRY nop_GetLightiv(GLenum light, GLenum pname, GLint * params)
 {
     (void) light; (void) pname; (void) params;
 }
 
-static void GLAPIENTRY nop_GetMapdv(GLenum target, GLenum query, GLdouble * v)
+void GLAPIENTRY nop_GetMapdv(GLenum target, GLenum query, GLdouble * v)
 {
     (void) target; (void) query; (void) v;
 }
 
-static void GLAPIENTRY nop_GetMapfv(GLenum target, GLenum query, GLfloat * v)
+void GLAPIENTRY nop_GetMapfv(GLenum target, GLenum query, GLfloat * v)
 {
     (void) target; (void) query; (void) v;
 }
 
-static void GLAPIENTRY nop_GetMapiv(GLenum target, GLenum query, GLint * v)
+void GLAPIENTRY nop_GetMapiv(GLenum target, GLenum query, GLint * v)
 {
     (void) target; (void) query; (void) v;
 }
 
-static void GLAPIENTRY nop_GetMaterialfv(GLenum face, GLenum pname, GLfloat * params)
+void GLAPIENTRY nop_GetMaterialfv(GLenum face, GLenum pname, GLfloat * params)
 {
     (void) face; (void) pname; (void) params;
 }
 
-static void GLAPIENTRY nop_GetMaterialiv(GLenum face, GLenum pname, GLint * params)
+void GLAPIENTRY nop_GetMaterialiv(GLenum face, GLenum pname, GLint * params)
 {
     (void) face; (void) pname; (void) params;
 }
 
-static void GLAPIENTRY nop_GetPixelMapfv(GLenum map, GLfloat * values)
+void GLAPIENTRY nop_GetPixelMapfv(GLenum map, GLfloat * values)
 {
     (void) map; (void) values;
 }
 
-static void GLAPIENTRY nop_GetPixelMapuiv(GLenum map, GLuint * values)
+void GLAPIENTRY nop_GetPixelMapuiv(GLenum map, GLuint * values)
 {
     (void) map; (void) values;
 }
 
-static void GLAPIENTRY nop_GetPixelMapusv(GLenum map, GLushort * values)
+void GLAPIENTRY nop_GetPixelMapusv(GLenum map, GLushort * values)
 {
     (void) map; (void) values;
 }
 
-static void GLAPIENTRY nop_GetPolygonStipple(GLubyte * mask)
+void GLAPIENTRY nop_GetPolygonStipple(GLubyte * mask)
 {
     (void) mask;
 }
 
-static const GLubyte * GLAPIENTRY nop_GetString(GLenum name)
+const GLubyte * GLAPIENTRY nop_GetString(GLenum name)
 {
     (void) name;
     return (const GLubyte*)"";
 }
 
-static void GLAPIENTRY nop_GetTexEnvfv(GLenum target, GLenum pname, GLfloat * params)
+void GLAPIENTRY nop_GetTexEnvfv(GLenum target, GLenum pname, GLfloat * params)
 {
     (void) target; (void) pname; (void) params;
 }
 
-static void GLAPIENTRY nop_GetTexEnviv(GLenum target, GLenum pname, GLint * params)
+void GLAPIENTRY nop_GetTexEnviv(GLenum target, GLenum pname, GLint * params)
 {
     (void) target; (void) pname; (void) params;
 }
 
-static void GLAPIENTRY nop_GetTexGendv(GLenum coord, GLenum pname, GLdouble * params)
+void GLAPIENTRY nop_GetTexGendv(GLenum coord, GLenum pname, GLdouble * params)
 {
     (void) coord; (void) pname; (void) params;
 }
 
-static void GLAPIENTRY nop_GetTexGenfv(GLenum coord, GLenum pname, GLfloat * params)
+void GLAPIENTRY nop_GetTexGenfv(GLenum coord, GLenum pname, GLfloat * params)
 {
     (void) coord; (void) pname; (void) params;
 }
 
-static void GLAPIENTRY nop_GetTexGeniv(GLenum coord, GLenum pname, GLint * params)
+void GLAPIENTRY nop_GetTexGeniv(GLenum coord, GLenum pname, GLint * params)
 {
     (void) coord; (void) pname; (void) params;
 }
 
-static void GLAPIENTRY nop_GetTexImage(GLenum target, GLint level, GLenum format, GLenum type, GLvoid * pixels)
+void GLAPIENTRY nop_GetTexImage(GLenum target, GLint level, GLenum format, GLenum type, GLvoid * pixels)
 {
     (void) target; (void) level; (void) format; (void) type; (void) pixels;
 }
 
-static void GLAPIENTRY nop_GetTexParameterfv(GLenum target, GLenum pname, GLfloat * params)
+void GLAPIENTRY nop_GetTexParameterfv(GLenum target, GLenum pname, GLfloat * params)
 {
     (void) target; (void) pname; (void) params;
 }
 
-static void GLAPIENTRY nop_GetTexParameteriv(GLenum target, GLenum pname, GLint * params)
+void GLAPIENTRY nop_GetTexParameteriv(GLenum target, GLenum pname, GLint * params)
 {
     (void) target; (void) pname; (void) params;
 }
 
-static void GLAPIENTRY nop_GetTexLevelParameterfv(GLenum target, GLint level, GLenum pname, GLfloat * params)
+void GLAPIENTRY nop_GetTexLevelParameterfv(GLenum target, GLint level, GLenum pname, GLfloat * params)
 {
     (void) target; (void) level; (void) pname; (void) params;
 }
 
-static void GLAPIENTRY nop_GetTexLevelParameteriv(GLenum target, GLint level, GLenum pname, GLint * params)
+void GLAPIENTRY nop_GetTexLevelParameteriv(GLenum target, GLint level, GLenum pname, GLint * params)
 {
     (void) target; (void) level; (void) pname; (void) params;
 }
 
-static GLboolean GLAPIENTRY nop_IsEnabled(GLenum cap)
+GLboolean GLAPIENTRY nop_IsEnabled(GLenum cap)
 {
     (void) cap;
     return 0;
 }
 
-static GLboolean GLAPIENTRY nop_IsList(GLuint list)
+GLboolean GLAPIENTRY nop_IsList(GLuint list)
 {
     (void) list;
     return 0;
 }
 
-static void GLAPIENTRY nop_DepthRange(GLclampd zNear, GLclampd zFar)
+void GLAPIENTRY nop_DepthRange(GLclampd zNear, GLclampd zFar)
 {
     (void) zNear; (void) zFar;
 }
 
-static void GLAPIENTRY nop_Frustum(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar)
+void GLAPIENTRY nop_Frustum(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar)
 {
     (void) left; (void) right; (void) bottom; (void) top; (void) zNear; (void) zFar;
 }
 
-static void GLAPIENTRY nop_LoadIdentity(void)
+void GLAPIENTRY nop_LoadIdentity(void)
 {
 }
 
-static void GLAPIENTRY nop_LoadMatrixf(const GLfloat * m)
+void GLAPIENTRY nop_LoadMatrixf(const GLfloat * m)
 {
     (void) m;
 }
 
-static void GLAPIENTRY nop_LoadMatrixd(const GLdouble * m)
+void GLAPIENTRY nop_LoadMatrixd(const GLdouble * m)
 {
     (void) m;
 }
 
-static void GLAPIENTRY nop_MatrixMode(GLenum mode)
+void GLAPIENTRY nop_MatrixMode(GLenum mode)
 {
     (void) mode;
 }
 
-static void GLAPIENTRY nop_MultMatrixf(const GLfloat * m)
+void GLAPIENTRY nop_MultMatrixf(const GLfloat * m)
 {
     (void) m;
 }
 
-static void GLAPIENTRY nop_MultMatrixd(const GLdouble * m)
+void GLAPIENTRY nop_MultMatrixd(const GLdouble * m)
 {
     (void) m;
 }
 
-static void GLAPIENTRY nop_Ortho(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar)
+void GLAPIENTRY nop_Ortho(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar)
 {
     (void) left; (void) right; (void) bottom; (void) top; (void) zNear; (void) zFar;
 }
 
-static void GLAPIENTRY nop_PopMatrix(void)
+void GLAPIENTRY nop_PopMatrix(void)
 {
 }
 
-static void GLAPIENTRY nop_PushMatrix(void)
+void GLAPIENTRY nop_PushMatrix(void)
 {
 }
 
-static void GLAPIENTRY nop_Rotated(GLdouble angle, GLdouble x, GLdouble y, GLdouble z)
+void GLAPIENTRY nop_Rotated(GLdouble angle, GLdouble x, GLdouble y, GLdouble z)
 {
     (void) angle; (void) x; (void) y; (void) z;
 }
 
-static void GLAPIENTRY nop_Rotatef(GLfloat angle, GLfloat x, GLfloat y, GLfloat z)
+void GLAPIENTRY nop_Rotatef(GLfloat angle, GLfloat x, GLfloat y, GLfloat z)
 {
     (void) angle; (void) x; (void) y; (void) z;
 }
 
-static void GLAPIENTRY nop_Scaled(GLdouble x, GLdouble y, GLdouble z)
+void GLAPIENTRY nop_Scaled(GLdouble x, GLdouble y, GLdouble z)
 {
     (void) x; (void) y; (void) z;
 }
 
-static void GLAPIENTRY nop_Scalef(GLfloat x, GLfloat y, GLfloat z)
+void GLAPIENTRY nop_Scalef(GLfloat x, GLfloat y, GLfloat z)
 {
     (void) x; (void) y; (void) z;
 }
 
-static void GLAPIENTRY nop_Translated(GLdouble x, GLdouble y, GLdouble z)
+void GLAPIENTRY nop_Translated(GLdouble x, GLdouble y, GLdouble z)
 {
     (void) x; (void) y; (void) z;
 }
 
-static void GLAPIENTRY nop_Translatef(GLfloat x, GLfloat y, GLfloat z)
+void GLAPIENTRY nop_Translatef(GLfloat x, GLfloat y, GLfloat z)
 {
     (void) x; (void) y; (void) z;
 }
 
-static void GLAPIENTRY nop_Viewport(GLint x, GLint y, GLsizei width, GLsizei height)
+void GLAPIENTRY nop_Viewport(GLint x, GLint y, GLsizei width, GLsizei height)
 {
     (void) x; (void) y; (void) width; (void) height;
 }
 
-static void GLAPIENTRY nop_ArrayElement(GLint i)
+void GLAPIENTRY nop_ArrayElement(GLint i)
 {
     (void) i;
 }
 
-static void GLAPIENTRY nop_BindTexture(GLenum target, GLuint texture)
+void GLAPIENTRY nop_BindTexture(GLenum target, GLuint texture)
 {
     (void) target; (void) texture;
 }
 
-static void GLAPIENTRY nop_ColorPointer(GLint size, GLenum type, GLsizei stride, const GLvoid * pointer)
+void GLAPIENTRY nop_ColorPointer(GLint size, GLenum type, GLsizei stride, const GLvoid * pointer)
 {
     (void) size; (void) type; (void) stride; (void) pointer;
 }
 
-static void GLAPIENTRY nop_DisableClientState(GLenum array)
+void GLAPIENTRY nop_DisableClientState(GLenum array)
 {
     (void) array;
 }
 
-static void GLAPIENTRY nop_DrawArrays(GLenum mode, GLint first, GLsizei count)
+void GLAPIENTRY nop_DrawArrays(GLenum mode, GLint first, GLsizei count)
 {
     (void) mode; (void) first; (void) count;
 }
 
-static void GLAPIENTRY nop_DrawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid * indices)
+void GLAPIENTRY nop_DrawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid * indices)
 {
     (void) mode; (void) count; (void) type; (void) indices;
 }
 
-static void GLAPIENTRY nop_EdgeFlagPointer(GLsizei stride, const GLvoid * pointer)
+void GLAPIENTRY nop_EdgeFlagPointer(GLsizei stride, const GLvoid * pointer)
 {
     (void) stride; (void) pointer;
 }
 
-static void GLAPIENTRY nop_EnableClientState(GLenum array)
+void GLAPIENTRY nop_EnableClientState(GLenum array)
 {
     (void) array;
 }
 
-static void GLAPIENTRY nop_IndexPointer(GLenum type, GLsizei stride, const GLvoid * pointer)
+void GLAPIENTRY nop_IndexPointer(GLenum type, GLsizei stride, const GLvoid * pointer)
 {
     (void) type; (void) stride; (void) pointer;
 }
 
-static void GLAPIENTRY nop_Indexub(GLubyte c)
+void GLAPIENTRY nop_Indexub(GLubyte c)
 {
     (void) c;
 }
 
-static void GLAPIENTRY nop_Indexubv(const GLubyte * c)
+void GLAPIENTRY nop_Indexubv(const GLubyte * c)
 {
     (void) c;
 }
 
-static void GLAPIENTRY nop_InterleavedArrays(GLenum format, GLsizei stride, const GLvoid * pointer)
+void GLAPIENTRY nop_InterleavedArrays(GLenum format, GLsizei stride, const GLvoid * pointer)
 {
     (void) format; (void) stride; (void) pointer;
 }
 
-static void GLAPIENTRY nop_NormalPointer(GLenum type, GLsizei stride, const GLvoid * pointer)
+void GLAPIENTRY nop_NormalPointer(GLenum type, GLsizei stride, const GLvoid * pointer)
 {
     (void) type; (void) stride; (void) pointer;
 }
 
-static void GLAPIENTRY nop_PolygonOffset(GLfloat factor, GLfloat units)
+void GLAPIENTRY nop_PolygonOffset(GLfloat factor, GLfloat units)
 {
     (void) factor; (void) units;
 }
 
-static void GLAPIENTRY nop_TexCoordPointer(GLint size, GLenum type, GLsizei stride, const GLvoid * pointer)
+void GLAPIENTRY nop_TexCoordPointer(GLint size, GLenum type, GLsizei stride, const GLvoid * pointer)
 {
     (void) size; (void) type; (void) stride; (void) pointer;
 }
 
-static void GLAPIENTRY nop_VertexPointer(GLint size, GLenum type, GLsizei stride, const GLvoid * pointer)
+void GLAPIENTRY nop_VertexPointer(GLint size, GLenum type, GLsizei stride, const GLvoid * pointer)
 {
     (void) size; (void) type; (void) stride; (void) pointer;
 }
 
-static GLboolean GLAPIENTRY nop_AreTexturesResident(GLsizei n, const GLuint * textures, GLboolean * residences)
+GLboolean GLAPIENTRY nop_AreTexturesResident(GLsizei n, const GLuint * textures, GLboolean * residences)
 {
     (void) n; (void) textures; (void) residences;
     return 0;
 }
 
-static void GLAPIENTRY nop_CopyTexImage1D(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border)
+void GLAPIENTRY nop_CopyTexImage1D(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border)
 {
     (void) target; (void) level; (void) internalformat; (void) x; (void) y; (void) width; (void) border;
 }
 
-static void GLAPIENTRY nop_CopyTexImage2D(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border)
+void GLAPIENTRY nop_CopyTexImage2D(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border)
 {
     (void) target; (void) level; (void) internalformat; (void) x; (void) y; (void) width; (void) height; (void) border;
 }
 
-static void GLAPIENTRY nop_CopyTexSubImage1D(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width)
+void GLAPIENTRY nop_CopyTexSubImage1D(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width)
 {
     (void) target; (void) level; (void) xoffset; (void) x; (void) y; (void) width;
 }
 
-static void GLAPIENTRY nop_CopyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height)
+void GLAPIENTRY nop_CopyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height)
 {
     (void) target; (void) level; (void) xoffset; (void) yoffset; (void) x; (void) y; (void) width; (void) height;
 }
 
-static void GLAPIENTRY nop_DeleteTextures(GLsizei n, const GLuint * textures)
+void GLAPIENTRY nop_DeleteTextures(GLsizei n, const GLuint * textures)
 {
     (void) n; (void) textures;
 }
 
-static void GLAPIENTRY nop_GenTextures(GLsizei n, GLuint * textures)
+void GLAPIENTRY nop_GenTextures(GLsizei n, GLuint * textures)
 {
     (void) n; (void) textures;
 }
 
-static void GLAPIENTRY nop_GetPointerv(GLenum pname, GLvoid ** params)
+void GLAPIENTRY nop_GetPointerv(GLenum pname, GLvoid ** params)
 {
     (void) pname; (void) params;
 }
 
-static GLboolean GLAPIENTRY nop_IsTexture(GLuint texture)
+GLboolean GLAPIENTRY nop_IsTexture(GLuint texture)
 {
     (void) texture;
     return 0;
 }
 
-static void GLAPIENTRY nop_PrioritizeTextures(GLsizei n, const GLuint * textures, const GLclampf * priorities)
+void GLAPIENTRY nop_PrioritizeTextures(GLsizei n, const GLuint * textures, const GLclampf * priorities)
 {
     (void) n; (void) textures; (void) priorities;
 }
 
-static void GLAPIENTRY nop_TexSubImage1D(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid * pixels)
+void GLAPIENTRY nop_TexSubImage1D(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid * pixels)
 {
     (void) target; (void) level; (void) xoffset; (void) width; (void) format; (void) type; (void) pixels;
 }
 
-static void GLAPIENTRY nop_TexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid * pixels)
+void GLAPIENTRY nop_TexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid * pixels)
 {
     (void) target; (void) level; (void) xoffset; (void) yoffset; (void) width; (void) height; (void) format; (void) type; (void) pixels;
 }
 
-static void GLAPIENTRY nop_PopClientAttrib(void)
+void GLAPIENTRY nop_PopClientAttrib(void)
 {
 }
 
-static void GLAPIENTRY nop_PushClientAttrib(GLbitfield mask)
+void GLAPIENTRY nop_PushClientAttrib(GLbitfield mask)
 {
     (void) mask;
 }
@@ -2028,6 +2028,7 @@ const GLCLTPROCTABLE StubTable =
 
 
 #ifndef __i386__
+
 void GLAPIENTRY glNewList(GLuint list, GLenum mode)
 {
     IntGetCurrentDispatchTable()->NewList(list, mode);
index dae16d2..6639d0d 100644 (file)
@@ -48,9 +48,8 @@ DllMain(HINSTANCE hInstance, DWORD Reason, LPVOID Reserved)
 #ifdef OPENGL32_USE_TLS
             if (!init_tls_data())
                 return FALSE;
-#else
-            NtCurrentTeb()->glTable = &StubTable.glDispatchTable;
 #endif // defined(OPENGL32_USE_TLS)
+            IntSetCurrentDispatchTable(&StubTable.glDispatchTable);
             break;
 
         case DLL_THREAD_DETACH:
index 2bfb61e..81e697e 100644 (file)
@@ -7,9 +7,11 @@
 
 /* X86 opengl API entry points, fast forward to the current thread's dispatch table */
 #include <asm.inc>
+#include <ks386.inc>
 
 .code
 
+#ifdef OPENG32_USE_TLS
 EXTERN _OglTlsIndex:DWORD
 EXTERN _TlsGetValue@4:PROC
 
@@ -22,6 +24,23 @@ PUBLIC _gl&name&@&stack
     jmp dword ptr [eax+4*VAL(offset)]
 .ENDP
 ENDM
+#else
+MACRO(USE_GL_FUNC, name, offset, stack)
+EXTERN _nop_&name@&stack:PROC
+PUBLIC _gl&name&@&stack
+.PROC _gl&name&@&stack
+    /* Get the TEB */
+    mov eax, fs:[TEB_SELF] 
+    /* Get the GL table */
+    mov eax, [eax + TEB_GL_TABLE]
+    /* If we don't have a dispatch table, call the nop */
+    test eax, eax
+    jz _nop_&name&@&stack
+    /* Jump into the ICD */
+    jmp dword ptr [eax+4*VAL(offset)]
+.ENDP
+ENDM
+#endif
 
 USE_GL_FUNC Accum, 213, 8
 USE_GL_FUNC AlphaFunc, 240, 8
@@ -360,4 +379,4 @@ USE_GL_FUNC Vertex4sv, 149, 4
 USE_GL_FUNC VertexPointer, 321, 16
 USE_GL_FUNC Viewport, 305, 16
 
-END
\ No newline at end of file
+END
index 0aadd67..b454ac5 100644 (file)
 #include <winddi.h>
 #include <GL/gl.h>
 
+#ifndef OPENGL32_USE_TLS
+#include <pstypes.h>
+#endif
+
 #include <wine/debug.h>
 
 #include "icd.h"
@@ -124,7 +128,7 @@ C_ASSERT(FIELD_OFFSET(struct Opengl32_ThreadData, glDispatchTable) == 0);
 /* dllmain.c */
 BOOL init_tls_data(void);
 
-static inline
+FORCEINLINE
 void
 IntMakeCurrent(HGLRC hglrc, HDC hdc, struct wgl_dc_data* dc_data)
 {
@@ -143,7 +147,7 @@ IntMakeCurrent(HGLRC hglrc, HDC hdc, struct wgl_dc_data* dc_data)
     thread_data->dc_data = dc_data;
 }
 
-static inline
+FORCEINLINE
 HGLRC
 IntGetCurrentRC(void)
 {
@@ -151,16 +155,7 @@ IntGetCurrentRC(void)
     return data ? data->hglrc : NULL;
 }
 
-static inline
-DHGLRC
-IntGetCurrentDHGLRC(void)
-{
-    struct wgl_context* ctx = (struct wgl_context*)IntGetCurrentRC();
-    if(!ctx) return NULL;
-    return ctx->dhglrc;
-}
-
-static inline
+FORCEINLINE
 HDC
 IntGetCurrentDC(void)
 {
@@ -168,7 +163,7 @@ IntGetCurrentDC(void)
     return data ? data->hdc : NULL;
 }
 
-static inline
+FORCEINLINE
 struct wgl_dc_data*
 IntGetCurrentDcData(void)
 {
@@ -176,7 +171,7 @@ IntGetCurrentDcData(void)
     return data->dc_data;
 }
 
-static inline
+FORCEINLINE
 const GLDISPATCHTABLE *
 IntGetCurrentDispatchTable(void)
 {
@@ -184,7 +179,7 @@ IntGetCurrentDispatchTable(void)
     return data->glDispatchTable;
 }
 
-static inline
+FORCEINLINE
 void
 IntSetCurrentDispatchTable(const GLDISPATCHTABLE* table)
 {
@@ -192,7 +187,7 @@ IntSetCurrentDispatchTable(const GLDISPATCHTABLE* table)
     data->glDispatchTable = table;
 }
 
-static inline
+FORCEINLINE
 void
 IntSetCurrentICDPrivate(void* value)
 {
@@ -200,7 +195,7 @@ IntSetCurrentICDPrivate(void* value)
     data->icdData = value;
 }
 
-static inline
+FORCEINLINE
 void*
 IntGetCurrentICDPrivate(void)
 {
@@ -210,14 +205,77 @@ IntGetCurrentICDPrivate(void)
 
 
 #else
-static inline
+FORCEINLINE
 const GLDISPATCHTABLE*
 IntGetCurrentDispatchTable(void)
 {
     return (GLDISPATCHTABLE*)NtCurrentTeb()->glTable;
 }
+
+FORCEINLINE
+void
+IntSetCurrentDispatchTable(const GLDISPATCHTABLE* table)
+{
+    NtCurrentTeb()->glTable = (void*)table;
+}
+
+FORCEINLINE
+void
+IntMakeCurrent(HGLRC hglrc, HDC hdc, struct wgl_dc_data* dc_data)
+{
+    TEB* CurrentTeb = NtCurrentTeb();
+
+    CurrentTeb->glCurrentRC = hglrc;
+    CurrentTeb->glReserved2 = hdc;
+    CurrentTeb->glContext = dc_data;
+}
+
+FORCEINLINE
+HGLRC
+IntGetCurrentRC(void)
+{
+    return NtCurrentTeb()->glCurrentRC;
+}
+
+FORCEINLINE
+HDC
+IntGetCurrentDC(void)
+{
+    return NtCurrentTeb()->glReserved2;
+}
+
+static inline
+struct wgl_dc_data*
+IntGetCurrentDcData(void)
+{
+    return NtCurrentTeb()->glContext;
+}
+
+FORCEINLINE
+void
+IntSetCurrentICDPrivate(void* value)
+{
+    NtCurrentTeb()->glReserved1[0] = (ULONG_PTR)value;
+}
+
+FORCEINLINE
+void*
+IntGetCurrentICDPrivate(void)
+{
+    return (void*)NtCurrentTeb()->glReserved1[0];
+}
+
 #endif // defined(OPENGL32_USE_TLS)
 
+FORCEINLINE
+DHGLRC
+IntGetCurrentDHGLRC(void)
+{
+    struct wgl_context* ctx = (struct wgl_context*)IntGetCurrentRC();
+    if(!ctx) return NULL;
+    return ctx->dhglrc;
+}
+
 /* Software implementation functions */
 INT sw_DescribePixelFormat(HDC hdc, INT format, UINT size, PIXELFORMATDESCRIPTOR* descr);
 BOOL sw_SetPixelFormat(HDC hdc, struct wgl_dc_data*, INT format);
index e6d53a3..dedeefa 100644 (file)
@@ -736,6 +736,7 @@ OFFSET(TEB_SELF, TEB, NtTib.Self),
 OFFSET(TEB_PEB, TEB, ProcessEnvironmentBlock),
 OFFSET(TEB_EXCEPTION_CODE, TEB, ExceptionCode),
 OFFSET(TEB_ACTIVATION_CONTEXT_STACK_POINTER, TEB, ActivationContextStackPointer),
+OFFSET(TEB_GL_TABLE, TEB, glTable),
 OFFSET(TEB_DEALLOCATION_STACK, TEB, DeallocationStack),
 OFFSET(TEB_GDI_BATCH_COUNT, TEB, GdiBatchCount),
 OFFSET(TEB_GUARANTEED_STACK_BYTES, TEB, GuaranteedStackBytes),
index 4c5318e..3c203e5 100644 (file)
@@ -414,6 +414,7 @@ Author:
 #define TEB_PEB                                 0x30
 #define TEB_EXCEPTION_CODE                      0x1A4
 #define TEB_ACTIVATION_CONTEXT_STACK_POINTER    0x1A8
+#define TEB_GL_TABLE                            0xBE8
 #define TEB_DEALLOCATION_STACK                  0xE0C
 #define TEB_GDI_BATCH_COUNT                     0xF70
 #define TEB_GUARANTEED_STACK_BYTES              0xF78