]> git.cworth.org Git - apitrace/blob - opengl32.py
Cleanup files.
[apitrace] / opengl32.py
1 ##########################################################################
2 #
3 # Copyright 2008-2009 VMware, Inc.
4 # All Rights Reserved.
5 #
6 # Permission is hereby granted, free of charge, to any person obtaining a copy
7 # of this software and associated documentation files (the "Software"), to deal
8 # in the Software without restriction, including without limitation the rights
9 # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 # copies of the Software, and to permit persons to whom the Software is
11 # furnished to do so, subject to the following conditions:
12 #
13 # The above copyright notice and this permission notice shall be included in
14 # all copies or substantial portions of the Software.
15 #
16 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22 # THE SOFTWARE.
23 #
24 ##########################################################################/
25
26 from gl import *
27 from windows import *
28
29 opengl32 = Dll("opengl32")
30 opengl32.functions += [
31     DllFunction(Void, "glNewList", [(GLuint, "list"), (GLenum, "mode")]),
32     DllFunction(Void, "glEndList", []),
33     DllFunction(Void, "glCallList", [(GLuint, "list")]),
34     DllFunction(Void, "glCallLists", [(GLsizei, "n"), (GLenum, "type"), (Pointer(Const(GLvoid)), "lists")]),
35     DllFunction(Void, "glDeleteLists", [(GLuint, "list"), (GLsizei, "range")]),
36     DllFunction(GLuint, "glGenLists", [(GLsizei, "range")]),
37     DllFunction(Void, "glListBase", [(GLuint, "base")]),
38     DllFunction(Void, "glBegin", [(GLprimenum, "mode")]),
39     DllFunction(Void, "glBitmap", [(GLsizei, "width"), (GLsizei, "height"), (GLfloat, "xorig"), (GLfloat, "yorig"), (GLfloat, "xmove"), (GLfloat, "ymove"), (Pointer(Const(GLubyte)), "bitmap")]),
40     DllFunction(Void, "glColor3b", [(GLbyte, "red"), (GLbyte, "green"), (GLbyte, "blue")]),
41     DllFunction(Void, "glColor3bv", [(Array(Const(GLbyte), "3"), "v")]),
42     DllFunction(Void, "glColor3d", [(GLdouble, "red"), (GLdouble, "green"), (GLdouble, "blue")]),
43     DllFunction(Void, "glColor3dv", [(Array(Const(GLdouble), "3"), "v")]),
44     DllFunction(Void, "glColor3f", [(GLfloat, "red"), (GLfloat, "green"), (GLfloat, "blue")]),
45     DllFunction(Void, "glColor3fv", [(Array(Const(GLfloat), "3"), "v")]),
46     DllFunction(Void, "glColor3i", [(GLint, "red"), (GLint, "green"), (GLint, "blue")]),
47     DllFunction(Void, "glColor3iv", [(Array(Const(GLint), "3"), "v")]),
48     DllFunction(Void, "glColor3s", [(GLshort, "red"), (GLshort, "green"), (GLshort, "blue")]),
49     DllFunction(Void, "glColor3sv", [(Array(Const(GLshort), "3"), "v")]),
50     DllFunction(Void, "glColor3ub", [(GLubyte, "red"), (GLubyte, "green"), (GLubyte, "blue")]),
51     DllFunction(Void, "glColor3ubv", [(Array(Const(GLubyte), "3"), "v")]),
52     DllFunction(Void, "glColor3ui", [(GLuint, "red"), (GLuint, "green"), (GLuint, "blue")]),
53     DllFunction(Void, "glColor3uiv", [(Array(Const(GLuint), "3"), "v")]),
54     DllFunction(Void, "glColor3us", [(GLushort, "red"), (GLushort, "green"), (GLushort, "blue")]),
55     DllFunction(Void, "glColor3usv", [(Array(Const(GLushort), "3"), "v")]),
56     DllFunction(Void, "glColor4b", [(GLbyte, "red"), (GLbyte, "green"), (GLbyte, "blue"), (GLbyte, "alpha")]),
57     DllFunction(Void, "glColor4bv", [(Array(Const(GLbyte), "4"), "v")]),
58     DllFunction(Void, "glColor4d", [(GLdouble, "red"), (GLdouble, "green"), (GLdouble, "blue"), (GLdouble, "alpha")]),
59     DllFunction(Void, "glColor4dv", [(Array(Const(GLdouble), "4"), "v")]),
60     DllFunction(Void, "glColor4f", [(GLfloat, "red"), (GLfloat, "green"), (GLfloat, "blue"), (GLfloat, "alpha")]),
61     DllFunction(Void, "glColor4fv", [(Array(Const(GLfloat), "4"), "v")]),
62     DllFunction(Void, "glColor4i", [(GLint, "red"), (GLint, "green"), (GLint, "blue"), (GLint, "alpha")]),
63     DllFunction(Void, "glColor4iv", [(Array(Const(GLint), "4"), "v")]),
64     DllFunction(Void, "glColor4s", [(GLshort, "red"), (GLshort, "green"), (GLshort, "blue"), (GLshort, "alpha")]),
65     DllFunction(Void, "glColor4sv", [(Array(Const(GLshort), "4"), "v")]),
66     DllFunction(Void, "glColor4ub", [(GLubyte, "red"), (GLubyte, "green"), (GLubyte, "blue"), (GLubyte, "alpha")]),
67     DllFunction(Void, "glColor4ubv", [(Array(Const(GLubyte), "4"), "v")]),
68     DllFunction(Void, "glColor4ui", [(GLuint, "red"), (GLuint, "green"), (GLuint, "blue"), (GLuint, "alpha")]),
69     DllFunction(Void, "glColor4uiv", [(Array(Const(GLuint), "4"), "v")]),
70     DllFunction(Void, "glColor4us", [(GLushort, "red"), (GLushort, "green"), (GLushort, "blue"), (GLushort, "alpha")]),
71     DllFunction(Void, "glColor4usv", [(Array(Const(GLushort), "4"), "v")]),
72     DllFunction(Void, "glEdgeFlag", [(GLboolean, "flag")]),
73     DllFunction(Void, "glEdgeFlagv", [(Array(Const(GLboolean), "1"), "flag")]),
74     DllFunction(Void, "glEnd", []),
75     DllFunction(Void, "glIndexd", [(GLdouble, "c")]),
76     DllFunction(Void, "glIndexdv", [(Array(Const(GLdouble), "1"), "c")]),
77     DllFunction(Void, "glIndexf", [(GLfloat, "c")]),
78     DllFunction(Void, "glIndexfv", [(Array(Const(GLfloat), "1"), "c")]),
79     DllFunction(Void, "glIndexi", [(GLint, "c")]),
80     DllFunction(Void, "glIndexiv", [(Array(Const(GLint), "1"), "c")]),
81     DllFunction(Void, "glIndexs", [(GLshort, "c")]),
82     DllFunction(Void, "glIndexsv", [(Array(Const(GLshort), "1"), "c")]),
83     DllFunction(Void, "glNormal3b", [(GLbyte, "nx"), (GLbyte, "ny"), (GLbyte, "nz")]),
84     DllFunction(Void, "glNormal3bv", [(Array(Const(GLbyte), "3"), "v")]),
85     DllFunction(Void, "glNormal3d", [(GLdouble, "nx"), (GLdouble, "ny"), (GLdouble, "nz")]),
86     DllFunction(Void, "glNormal3dv", [(Array(Const(GLdouble), "3"), "v")]),
87     DllFunction(Void, "glNormal3f", [(GLfloat, "nx"), (GLfloat, "ny"), (GLfloat, "nz")]),
88     DllFunction(Void, "glNormal3fv", [(Array(Const(GLfloat), "3"), "v")]),
89     DllFunction(Void, "glNormal3i", [(GLint, "nx"), (GLint, "ny"), (GLint, "nz")]),
90     DllFunction(Void, "glNormal3iv", [(Array(Const(GLint), "3"), "v")]),
91     DllFunction(Void, "glNormal3s", [(GLshort, "nx"), (GLshort, "ny"), (GLshort, "nz")]),
92     DllFunction(Void, "glNormal3sv", [(Array(Const(GLshort), "3"), "v")]),
93     DllFunction(Void, "glRasterPos2d", [(GLdouble, "x"), (GLdouble, "y")]),
94     DllFunction(Void, "glRasterPos2dv", [(Array(Const(GLdouble), "2"), "v")]),
95     DllFunction(Void, "glRasterPos2f", [(GLfloat, "x"), (GLfloat, "y")]),
96     DllFunction(Void, "glRasterPos2fv", [(Array(Const(GLfloat), "2"), "v")]),
97     DllFunction(Void, "glRasterPos2i", [(GLint, "x"), (GLint, "y")]),
98     DllFunction(Void, "glRasterPos2iv", [(Array(Const(GLint), "2"), "v")]),
99     DllFunction(Void, "glRasterPos2s", [(GLshort, "x"), (GLshort, "y")]),
100     DllFunction(Void, "glRasterPos2sv", [(Array(Const(GLshort), "2"), "v")]),
101     DllFunction(Void, "glRasterPos3d", [(GLdouble, "x"), (GLdouble, "y"), (GLdouble, "z")]),
102     DllFunction(Void, "glRasterPos3dv", [(Array(Const(GLdouble), "3"), "v")]),
103     DllFunction(Void, "glRasterPos3f", [(GLfloat, "x"), (GLfloat, "y"), (GLfloat, "z")]),
104     DllFunction(Void, "glRasterPos3fv", [(Array(Const(GLfloat), "3"), "v")]),
105     DllFunction(Void, "glRasterPos3i", [(GLint, "x"), (GLint, "y"), (GLint, "z")]),
106     DllFunction(Void, "glRasterPos3iv", [(Array(Const(GLint), "3"), "v")]),
107     DllFunction(Void, "glRasterPos3s", [(GLshort, "x"), (GLshort, "y"), (GLshort, "z")]),
108     DllFunction(Void, "glRasterPos3sv", [(Array(Const(GLshort), "3"), "v")]),
109     DllFunction(Void, "glRasterPos4d", [(GLdouble, "x"), (GLdouble, "y"), (GLdouble, "z"), (GLdouble, "w")]),
110     DllFunction(Void, "glRasterPos4dv", [(Array(Const(GLdouble), "4"), "v")]),
111     DllFunction(Void, "glRasterPos4f", [(GLfloat, "x"), (GLfloat, "y"), (GLfloat, "z"), (GLfloat, "w")]),
112     DllFunction(Void, "glRasterPos4fv", [(Array(Const(GLfloat), "4"), "v")]),
113     DllFunction(Void, "glRasterPos4i", [(GLint, "x"), (GLint, "y"), (GLint, "z"), (GLint, "w")]),
114     DllFunction(Void, "glRasterPos4iv", [(Array(Const(GLint), "4"), "v")]),
115     DllFunction(Void, "glRasterPos4s", [(GLshort, "x"), (GLshort, "y"), (GLshort, "z"), (GLshort, "w")]),
116     DllFunction(Void, "glRasterPos4sv", [(Array(Const(GLshort), "4"), "v")]),
117     DllFunction(Void, "glRectd", [(GLdouble, "x1"), (GLdouble, "y1"), (GLdouble, "x2"), (GLdouble, "y2")]),
118     DllFunction(Void, "glRectdv", [(Array(Const(GLdouble), "2"), "v1"), (Array(Const(GLdouble), "2"), "v2")]),
119     DllFunction(Void, "glRectf", [(GLfloat, "x1"), (GLfloat, "y1"), (GLfloat, "x2"), (GLfloat, "y2")]),
120     DllFunction(Void, "glRectfv", [(Array(Const(GLfloat), "2"), "v1"), (Array(Const(GLfloat), "2"), "v2")]),
121     DllFunction(Void, "glRecti", [(GLint, "x1"), (GLint, "y1"), (GLint, "x2"), (GLint, "y2")]),
122     DllFunction(Void, "glRectiv", [(Array(Const(GLint), "2"), "v1"), (Array(Const(GLint), "2"), "v2")]),
123     DllFunction(Void, "glRects", [(GLshort, "x1"), (GLshort, "y1"), (GLshort, "x2"), (GLshort, "y2")]),
124     DllFunction(Void, "glRectsv", [(Array(Const(GLshort), "2"), "v1"), (Array(Const(GLshort), "2"), "v2")]),
125     DllFunction(Void, "glTexCoord1d", [(GLdouble, "s")]),
126     DllFunction(Void, "glTexCoord1dv", [(Array(Const(GLdouble), "1"), "v")]),
127     DllFunction(Void, "glTexCoord1f", [(GLfloat, "s")]),
128     DllFunction(Void, "glTexCoord1fv", [(Array(Const(GLfloat), "1"), "v")]),
129     DllFunction(Void, "glTexCoord1i", [(GLint, "s")]),
130     DllFunction(Void, "glTexCoord1iv", [(Array(Const(GLint), "1"), "v")]),
131     DllFunction(Void, "glTexCoord1s", [(GLshort, "s")]),
132     DllFunction(Void, "glTexCoord1sv", [(Array(Const(GLshort), "1"), "v")]),
133     DllFunction(Void, "glTexCoord2d", [(GLdouble, "s"), (GLdouble, "t")]),
134     DllFunction(Void, "glTexCoord2dv", [(Array(Const(GLdouble), "2"), "v")]),
135     DllFunction(Void, "glTexCoord2f", [(GLfloat, "s"), (GLfloat, "t")]),
136     DllFunction(Void, "glTexCoord2fv", [(Array(Const(GLfloat), "2"), "v")]),
137     DllFunction(Void, "glTexCoord2i", [(GLint, "s"), (GLint, "t")]),
138     DllFunction(Void, "glTexCoord2iv", [(Array(Const(GLint), "2"), "v")]),
139     DllFunction(Void, "glTexCoord2s", [(GLshort, "s"), (GLshort, "t")]),
140     DllFunction(Void, "glTexCoord2sv", [(Array(Const(GLshort), "2"), "v")]),
141     DllFunction(Void, "glTexCoord3d", [(GLdouble, "s"), (GLdouble, "t"), (GLdouble, "r")]),
142     DllFunction(Void, "glTexCoord3dv", [(Array(Const(GLdouble), "3"), "v")]),
143     DllFunction(Void, "glTexCoord3f", [(GLfloat, "s"), (GLfloat, "t"), (GLfloat, "r")]),
144     DllFunction(Void, "glTexCoord3fv", [(Array(Const(GLfloat), "3"), "v")]),
145     DllFunction(Void, "glTexCoord3i", [(GLint, "s"), (GLint, "t"), (GLint, "r")]),
146     DllFunction(Void, "glTexCoord3iv", [(Array(Const(GLint), "3"), "v")]),
147     DllFunction(Void, "glTexCoord3s", [(GLshort, "s"), (GLshort, "t"), (GLshort, "r")]),
148     DllFunction(Void, "glTexCoord3sv", [(Array(Const(GLshort), "3"), "v")]),
149     DllFunction(Void, "glTexCoord4d", [(GLdouble, "s"), (GLdouble, "t"), (GLdouble, "r"), (GLdouble, "q")]),
150     DllFunction(Void, "glTexCoord4dv", [(Array(Const(GLdouble), "4"), "v")]),
151     DllFunction(Void, "glTexCoord4f", [(GLfloat, "s"), (GLfloat, "t"), (GLfloat, "r"), (GLfloat, "q")]),
152     DllFunction(Void, "glTexCoord4fv", [(Array(Const(GLfloat), "4"), "v")]),
153     DllFunction(Void, "glTexCoord4i", [(GLint, "s"), (GLint, "t"), (GLint, "r"), (GLint, "q")]),
154     DllFunction(Void, "glTexCoord4iv", [(Array(Const(GLint), "4"), "v")]),
155     DllFunction(Void, "glTexCoord4s", [(GLshort, "s"), (GLshort, "t"), (GLshort, "r"), (GLshort, "q")]),
156     DllFunction(Void, "glTexCoord4sv", [(Array(Const(GLshort), "4"), "v")]),
157     DllFunction(Void, "glVertex2d", [(GLdouble, "x"), (GLdouble, "y")]),
158     DllFunction(Void, "glVertex2dv", [(Array(Const(GLdouble), "2"), "v")]),
159     DllFunction(Void, "glVertex2f", [(GLfloat, "x"), (GLfloat, "y")]),
160     DllFunction(Void, "glVertex2fv", [(Array(Const(GLfloat), "2"), "v")]),
161     DllFunction(Void, "glVertex2i", [(GLint, "x"), (GLint, "y")]),
162     DllFunction(Void, "glVertex2iv", [(Array(Const(GLint), "2"), "v")]),
163     DllFunction(Void, "glVertex2s", [(GLshort, "x"), (GLshort, "y")]),
164     DllFunction(Void, "glVertex2sv", [(Array(Const(GLshort), "2"), "v")]),
165     DllFunction(Void, "glVertex3d", [(GLdouble, "x"), (GLdouble, "y"), (GLdouble, "z")]),
166     DllFunction(Void, "glVertex3dv", [(Array(Const(GLdouble), "3"), "v")]),
167     DllFunction(Void, "glVertex3f", [(GLfloat, "x"), (GLfloat, "y"), (GLfloat, "z")]),
168     DllFunction(Void, "glVertex3fv", [(Array(Const(GLfloat), "3"), "v")]),
169     DllFunction(Void, "glVertex3i", [(GLint, "x"), (GLint, "y"), (GLint, "z")]),
170     DllFunction(Void, "glVertex3iv", [(Array(Const(GLint), "3"), "v")]),
171     DllFunction(Void, "glVertex3s", [(GLshort, "x"), (GLshort, "y"), (GLshort, "z")]),
172     DllFunction(Void, "glVertex3sv", [(Array(Const(GLshort), "3"), "v")]),
173     DllFunction(Void, "glVertex4d", [(GLdouble, "x"), (GLdouble, "y"), (GLdouble, "z"), (GLdouble, "w")]),
174     DllFunction(Void, "glVertex4dv", [(Array(Const(GLdouble), "4"), "v")]),
175     DllFunction(Void, "glVertex4f", [(GLfloat, "x"), (GLfloat, "y"), (GLfloat, "z"), (GLfloat, "w")]),
176     DllFunction(Void, "glVertex4fv", [(Array(Const(GLfloat), "4"), "v")]),
177     DllFunction(Void, "glVertex4i", [(GLint, "x"), (GLint, "y"), (GLint, "z"), (GLint, "w")]),
178     DllFunction(Void, "glVertex4iv", [(Array(Const(GLint), "4"), "v")]),
179     DllFunction(Void, "glVertex4s", [(GLshort, "x"), (GLshort, "y"), (GLshort, "z"), (GLshort, "w")]),
180     DllFunction(Void, "glVertex4sv", [(Array(Const(GLshort), "4"), "v")]),
181     DllFunction(Void, "glClipPlane", [(GLenum, "plane"), (Array(Const(GLdouble), "4"), "equation")]),
182     DllFunction(Void, "glColorMaterial", [(GLenum, "face"), (GLenum, "mode")]),
183     DllFunction(Void, "glCullFace", [(GLenum, "mode")]),
184     DllFunction(Void, "glFogf", [(GLenum, "pname"), (GLfloat, "param")]),
185     DllFunction(Void, "glFogfv", [(GLenum, "pname"), (Pointer(Const(GLfloat)), "params")]),
186     DllFunction(Void, "glFogi", [(GLenum, "pname"), (GLint, "param")]),
187     DllFunction(Void, "glFogiv", [(GLenum, "pname"), (Pointer(Const(GLint)), "params")]),
188     DllFunction(Void, "glFrontFace", [(GLenum, "mode")]),
189     DllFunction(Void, "glHint", [(GLenum, "target"), (GLenum, "mode")]),
190     DllFunction(Void, "glLightf", [(GLenum, "light"), (GLenum, "pname"), (GLfloat, "param")]),
191     DllFunction(Void, "glLightfv", [(GLenum, "light"), (GLenum, "pname"), (Array(Const(GLfloat), "4"), "params")]), # XXX
192     DllFunction(Void, "glLighti", [(GLenum, "light"), (GLenum, "pname"), (GLint, "param")]),
193     DllFunction(Void, "glLightiv", [(GLenum, "light"), (GLenum, "pname"), (Array(Const(GLint), "4"), "params")]), # XXX
194     DllFunction(Void, "glLightModelf", [(GLenum, "pname"), (GLfloat, "param")]),
195     DllFunction(Void, "glLightModelfv", [(GLenum, "pname"), (Array(Const(GLfloat), "4"), "params")]), # XXX
196     DllFunction(Void, "glLightModeli", [(GLenum, "pname"), (GLint, "param")]),
197     DllFunction(Void, "glLightModeliv", [(GLenum, "pname"), (Array(Const(GLint), "4"), "params")]), # XXX
198     DllFunction(Void, "glLineStipple", [(GLint, "factor"), (GLushort, "pattern")]),
199     DllFunction(Void, "glLineWidth", [(GLfloat, "width")]),
200     DllFunction(Void, "glMaterialf", [(GLenum, "face"), (GLenum, "pname"), (GLfloat, "param")]),
201     DllFunction(Void, "glMaterialfv", [(GLenum, "face"), (GLenum, "pname"), (Array(Const(GLfloat), "4"), "params")]), # XXX
202     DllFunction(Void, "glMateriali", [(GLenum, "face"), (GLenum, "pname"), (GLint, "param")]),
203     DllFunction(Void, "glMaterialiv", [(GLenum, "face"), (GLenum, "pname"), (Array(Const(GLint), "4"), "params")]), # XXX
204     DllFunction(Void, "glPointSize", [(GLfloat, "size")]),
205     DllFunction(Void, "glPolygonMode", [(GLenum, "face"), (GLenum, "mode")]),
206     DllFunction(Void, "glPolygonStipple", [(Pointer(Const(GLubyte)), "mask")]),
207     DllFunction(Void, "glScissor", [(GLint, "x"), (GLint, "y"), (GLsizei, "width"), (GLsizei, "height")]),
208     DllFunction(Void, "glShadeModel", [(GLenum, "mode")]),
209     DllFunction(Void, "glTexParameterf", [(GLenum, "target"), (GLenum, "pname"), (GLfloat, "param")]),
210     DllFunction(Void, "glTexParameterfv", [(GLenum, "target"), (GLenum, "pname"), (Pointer(Const(GLfloat)), "params")]),
211     DllFunction(Void, "glTexParameteri", [(GLenum, "target"), (GLenum, "pname"), (GLint, "param")]),
212     DllFunction(Void, "glTexParameteriv", [(GLenum, "target"), (GLenum, "pname"), (Pointer(Const(GLint)), "params")]),
213     DllFunction(Void, "glTexImage1D", [(GLenum, "target"), (GLint, "level"), (GLint, "internalformat"), (GLsizei, "width"), (GLint, "border"), (GLenum, "format"), (GLenum, "type"), (Pointer(Const(GLvoid)), "pixels")]),
214     DllFunction(Void, "glTexImage2D", [(GLenum, "target"), (GLint, "level"), (GLint, "internalformat"), (GLsizei, "width"), (GLsizei, "height"), (GLint, "border"), (GLenum, "format"), (GLenum, "type"), (Pointer(Const(GLvoid)), "pixels")]),
215     DllFunction(Void, "glTexEnvf", [(GLenum, "target"), (GLenum, "pname"), (GLfloat, "param")]),
216     DllFunction(Void, "glTexEnvfv", [(GLenum, "target"), (GLenum, "pname"), (Pointer(Const(GLfloat)), "params")]),
217     DllFunction(Void, "glTexEnvi", [(GLenum, "target"), (GLenum, "pname"), (GLint, "param")]),
218     DllFunction(Void, "glTexEnviv", [(GLenum, "target"), (GLenum, "pname"), (Pointer(Const(GLint)), "params")]),
219     DllFunction(Void, "glTexGend", [(GLenum, "coord"), (GLenum, "pname"), (GLdouble, "param")]),
220     DllFunction(Void, "glTexGendv", [(GLenum, "coord"), (GLenum, "pname"), (Pointer(Const(GLdouble)), "params")]),
221     DllFunction(Void, "glTexGenf", [(GLenum, "coord"), (GLenum, "pname"), (GLfloat, "param")]),
222     DllFunction(Void, "glTexGenfv", [(GLenum, "coord"), (GLenum, "pname"), (Pointer(Const(GLfloat)), "params")]),
223     DllFunction(Void, "glTexGeni", [(GLenum, "coord"), (GLenum, "pname"), (GLint, "param")]),
224     DllFunction(Void, "glTexGeniv", [(GLenum, "coord"), (GLenum, "pname"), (Pointer(Const(GLint)), "params")]),
225     DllFunction(Void, "glFeedbackBuffer", [(GLsizei, "size"), (GLenum, "type"), (OutPointer(GLfloat), "buffer")]),
226     DllFunction(Void, "glSelectBuffer", [(GLsizei, "size"), (OutPointer(GLuint), "buffer")]),
227     DllFunction(GLint, "glRenderMode", [(GLenum, "mode")]),
228     DllFunction(Void, "glInitNames", []),
229     DllFunction(Void, "glLoadName", [(GLuint, "name")]),
230     DllFunction(Void, "glPassThrough", [(GLfloat, "token")]),
231     DllFunction(Void, "glPopName", []),
232     DllFunction(Void, "glPushName", [(GLuint, "name")]),
233     DllFunction(Void, "glDrawBuffer", [(GLenum, "mode")]),
234     DllFunction(Void, "glClear", [(GLbufferbitfield, "mask")]),
235     DllFunction(Void, "glClearAccum", [(GLfloat, "red"), (GLfloat, "green"), (GLfloat, "blue"), (GLfloat, "alpha")]),
236     DllFunction(Void, "glClearIndex", [(GLfloat, "c")]),
237     DllFunction(Void, "glClearColor", [(GLclampf, "red"), (GLclampf, "green"), (GLclampf, "blue"), (GLclampf, "alpha")]),
238     DllFunction(Void, "glClearStencil", [(GLint, "s")]),
239     DllFunction(Void, "glClearDepth", [(GLclampd, "depth")]),
240     DllFunction(Void, "glStencilMask", [(GLuint, "mask")]),
241     DllFunction(Void, "glColorMask", [(GLboolean, "red"), (GLboolean, "green"), (GLboolean, "blue"), (GLboolean, "alpha")]),
242     DllFunction(Void, "glDepthMask", [(GLboolean, "flag")]),
243     DllFunction(Void, "glIndexMask", [(GLuint, "mask")]),
244     DllFunction(Void, "glAccum", [(GLenum, "op"), (GLfloat, "value")]),
245     DllFunction(Void, "glDisable", [(GLenum, "cap")]),
246     DllFunction(Void, "glEnable", [(GLenum, "cap")]),
247     DllFunction(Void, "glFinish", []),
248     DllFunction(Void, "glFlush", []),
249     DllFunction(Void, "glPopAttrib", []),
250     DllFunction(Void, "glPushAttrib", [(GLbitfield, "mask")]),
251     DllFunction(Void, "glMap1d", [(GLenum, "target"), (GLdouble, "u1"), (GLdouble, "u2"), (GLint, "stride"), (GLint, "order"), (Pointer(Const(GLdouble)), "points")]),
252     DllFunction(Void, "glMap1f", [(GLenum, "target"), (GLfloat, "u1"), (GLfloat, "u2"), (GLint, "stride"), (GLint, "order"), (Pointer(Const(GLfloat)), "points")]),
253     DllFunction(Void, "glMap2d", [(GLenum, "target"), (GLdouble, "u1"), (GLdouble, "u2"), (GLint, "ustride"), (GLint, "uorder"), (GLdouble, "v1"), (GLdouble, "v2"), (GLint, "vstride"), (GLint, "vorder"), (Pointer(Const(GLdouble)), "points")]),
254     DllFunction(Void, "glMap2f", [(GLenum, "target"), (GLfloat, "u1"), (GLfloat, "u2"), (GLint, "ustride"), (GLint, "uorder"), (GLfloat, "v1"), (GLfloat, "v2"), (GLint, "vstride"), (GLint, "vorder"), (Pointer(Const(GLfloat)), "points")]),
255     DllFunction(Void, "glMapGrid1d", [(GLint, "un"), (GLdouble, "u1"), (GLdouble, "u2")]),
256     DllFunction(Void, "glMapGrid1f", [(GLint, "un"), (GLfloat, "u1"), (GLfloat, "u2")]),
257     DllFunction(Void, "glMapGrid2d", [(GLint, "un"), (GLdouble, "u1"), (GLdouble, "u2"), (GLint, "vn"), (GLdouble, "v1"), (GLdouble, "v2")]),
258     DllFunction(Void, "glMapGrid2f", [(GLint, "un"), (GLfloat, "u1"), (GLfloat, "u2"), (GLint, "vn"), (GLfloat, "v1"), (GLfloat, "v2")]),
259     DllFunction(Void, "glEvalCoord1d", [(GLdouble, "u")]),
260     DllFunction(Void, "glEvalCoord1dv", [(Array(Const(GLdouble), "1"), "u")]),
261     DllFunction(Void, "glEvalCoord1f", [(GLfloat, "u")]),
262     DllFunction(Void, "glEvalCoord1fv", [(Array(Const(GLfloat), "1"), "u")]),
263     DllFunction(Void, "glEvalCoord2d", [(GLdouble, "u"), (GLdouble, "v")]),
264     DllFunction(Void, "glEvalCoord2dv", [(Array(Const(GLdouble), "2"), "u")]),
265     DllFunction(Void, "glEvalCoord2f", [(GLfloat, "u"), (GLfloat, "v")]),
266     DllFunction(Void, "glEvalCoord2fv", [(Array(Const(GLfloat), "2"), "u")]),
267     DllFunction(Void, "glEvalMesh1", [(GLenum, "mode"), (GLint, "i1"), (GLint, "i2")]),
268     DllFunction(Void, "glEvalPoint1", [(GLint, "i")]),
269     DllFunction(Void, "glEvalMesh2", [(GLenum, "mode"), (GLint, "i1"), (GLint, "i2"), (GLint, "j1"), (GLint, "j2")]),
270     DllFunction(Void, "glEvalPoint2", [(GLint, "i"), (GLint, "j")]),
271     DllFunction(Void, "glAlphaFunc", [(GLenum, "func"), (GLclampf, "ref")]),
272     DllFunction(Void, "glBlendFunc", [(GLenum, "sfactor"), (GLenum, "dfactor")]),
273     DllFunction(Void, "glLogicOp", [(GLenum, "opcode")]),
274     DllFunction(Void, "glStencilFunc", [(GLenum, "func"), (GLint, "ref"), (GLuint, "mask")]),
275     DllFunction(Void, "glStencilOp", [(GLenum, "fail"), (GLenum, "zfail"), (GLenum, "zpass")]),
276     DllFunction(Void, "glDepthFunc", [(GLenum, "func")]),
277     DllFunction(Void, "glPixelZoom", [(GLfloat, "xfactor"), (GLfloat, "yfactor")]),
278     DllFunction(Void, "glPixelTransferf", [(GLenum, "pname"), (GLfloat, "param")]),
279     DllFunction(Void, "glPixelTransferi", [(GLenum, "pname"), (GLint, "param")]),
280     DllFunction(Void, "glPixelStoref", [(GLenum, "pname"), (GLfloat, "param")]),
281     DllFunction(Void, "glPixelStorei", [(GLenum, "pname"), (GLint, "param")]),
282     DllFunction(Void, "glPixelMapfv", [(GLenum, "map"), (GLsizei, "mapsize"), (Pointer(Const(GLfloat)), "values")]),
283     DllFunction(Void, "glPixelMapuiv", [(GLenum, "map"), (GLsizei, "mapsize"), (Pointer(Const(GLuint)), "values")]),
284     DllFunction(Void, "glPixelMapusv", [(GLenum, "map"), (GLsizei, "mapsize"), (Pointer(Const(GLushort)), "values")]),
285     DllFunction(Void, "glReadBuffer", [(GLenum, "mode")]),
286     DllFunction(Void, "glCopyPixels", [(GLint, "x"), (GLint, "y"), (GLsizei, "width"), (GLsizei, "height"), (GLenum, "type")]),
287     DllFunction(Void, "glReadPixels", [(GLint, "x"), (GLint, "y"), (GLsizei, "width"), (GLsizei, "height"), (GLenum, "format"), (GLenum, "type"), (OutPointer(GLvoid), "pixels")]),
288     DllFunction(Void, "glDrawPixels", [(GLsizei, "width"), (GLsizei, "height"), (GLenum, "format"), (GLenum, "type"), (Pointer(Const(GLvoid)), "pixels")]),
289     DllFunction(Void, "glGetBooleanv", [(GLenum, "pname"), (OutPointer(GLboolean), "params")]),
290     DllFunction(Void, "glGetClipPlane", [(GLenum, "plane"), (OutArray(GLdouble, "4"), "equation")]),
291     DllFunction(Void, "glGetDoublev", [(GLenum, "pname"), (OutPointer(GLdouble), "params")]),
292     DllFunction(GLenum, "glGetError", []),
293     DllFunction(Void, "glGetFloatv", [(GLenum, "pname"), (OutPointer(GLfloat), "params")]),
294     DllFunction(Void, "glGetIntegerv", [(GLenum, "pname"), (OutPointer(GLint), "params")]),
295     DllFunction(Void, "glGetLightfv", [(GLenum, "light"), (GLenum, "pname"), (OutPointer(GLfloat), "params")]),
296     DllFunction(Void, "glGetLightiv", [(GLenum, "light"), (GLenum, "pname"), (OutPointer(GLint), "params")]),
297     DllFunction(Void, "glGetMapdv", [(GLenum, "target"), (GLenum, "query"), (OutPointer(GLdouble), "v")]),
298     DllFunction(Void, "glGetMapfv", [(GLenum, "target"), (GLenum, "query"), (OutPointer(GLfloat), "v")]),
299     DllFunction(Void, "glGetMapiv", [(GLenum, "target"), (GLenum, "query"), (OutPointer(GLint), "v")]),
300     DllFunction(Void, "glGetMaterialfv", [(GLenum, "face"), (GLenum, "pname"), (OutPointer(GLfloat), "params")]),
301     DllFunction(Void, "glGetMaterialiv", [(GLenum, "face"), (GLenum, "pname"), (OutPointer(GLint), "params")]),
302     DllFunction(Void, "glGetPixelMapfv", [(GLenum, "map"), (OutPointer(GLfloat), "values")]),
303     DllFunction(Void, "glGetPixelMapuiv", [(GLenum, "map"), (OutPointer(GLuint), "values")]),
304     DllFunction(Void, "glGetPixelMapusv", [(GLenum, "map"), (OutPointer(GLushort), "values")]),
305     DllFunction(Void, "glGetPolygonStipple", [(OutPointer(GLubyte), "mask")]),
306     DllFunction(Alias("const GLubyte *", String), "glGetString", [(GLenum, "name")]),
307     DllFunction(Void, "glGetTexEnvfv", [(GLenum, "target"), (GLenum, "pname"), (OutPointer(GLfloat), "params")]),
308     DllFunction(Void, "glGetTexEnviv", [(GLenum, "target"), (GLenum, "pname"), (OutPointer(GLint), "params")]),
309     DllFunction(Void, "glGetTexGendv", [(GLenum, "coord"), (GLenum, "pname"), (OutPointer(GLdouble), "params")]),
310     DllFunction(Void, "glGetTexGenfv", [(GLenum, "coord"), (GLenum, "pname"), (OutPointer(GLfloat), "params")]),
311     DllFunction(Void, "glGetTexGeniv", [(GLenum, "coord"), (GLenum, "pname"), (OutPointer(GLint), "params")]),
312     DllFunction(Void, "glGetTexImage", [(GLenum, "target"), (GLint, "level"), (GLenum, "format"), (GLenum, "type"), (OutPointer(GLvoid), "pixels")]),
313     DllFunction(Void, "glGetTexParameterfv", [(GLenum, "target"), (GLenum, "pname"), (OutPointer(GLfloat), "params")]),
314     DllFunction(Void, "glGetTexParameteriv", [(GLenum, "target"), (GLenum, "pname"), (OutPointer(GLint), "params")]),
315     DllFunction(Void, "glGetTexLevelParameterfv", [(GLenum, "target"), (GLint, "level"), (GLenum, "pname"), (OutPointer(GLfloat), "params")]),
316     DllFunction(Void, "glGetTexLevelParameteriv", [(GLenum, "target"), (GLint, "level"), (GLenum, "pname"), (OutPointer(GLint), "params")]),
317     DllFunction(GLboolean, "glIsEnabled", [(GLenum, "cap")]),
318     DllFunction(GLboolean, "glIsList", [(GLuint, "list")]),
319     DllFunction(Void, "glDepthRange", [(GLclampd, "zNear"), (GLclampd, "zFar")]),
320     DllFunction(Void, "glFrustum", [(GLdouble, "left"), (GLdouble, "right"), (GLdouble, "bottom"), (GLdouble, "top"), (GLdouble, "zNear"), (GLdouble, "zFar")]),
321     DllFunction(Void, "glLoadIdentity", []),
322     DllFunction(Void, "glLoadMatrixf", [(Array(Const(GLfloat), "16"), "m")]),
323     DllFunction(Void, "glLoadMatrixd", [(Array(Const(GLdouble), "16"), "m")]),
324     DllFunction(Void, "glMatrixMode", [(GLenum, "mode")]),
325     DllFunction(Void, "glMultMatrixf", [(Array(Const(GLfloat), "16"), "m")]),
326     DllFunction(Void, "glMultMatrixd", [(Array(Const(GLdouble), "16"), "m")]),
327     DllFunction(Void, "glOrtho", [(GLdouble, "left"), (GLdouble, "right"), (GLdouble, "bottom"), (GLdouble, "top"), (GLdouble, "zNear"), (GLdouble, "zFar")]),
328     DllFunction(Void, "glPopMatrix", []),
329     DllFunction(Void, "glPushMatrix", []),
330     DllFunction(Void, "glRotated", [(GLdouble, "angle"), (GLdouble, "x"), (GLdouble, "y"), (GLdouble, "z")]),
331     DllFunction(Void, "glRotatef", [(GLfloat, "angle"), (GLfloat, "x"), (GLfloat, "y"), (GLfloat, "z")]),
332     DllFunction(Void, "glScaled", [(GLdouble, "x"), (GLdouble, "y"), (GLdouble, "z")]),
333     DllFunction(Void, "glScalef", [(GLfloat, "x"), (GLfloat, "y"), (GLfloat, "z")]),
334     DllFunction(Void, "glTranslated", [(GLdouble, "x"), (GLdouble, "y"), (GLdouble, "z")]),
335     DllFunction(Void, "glTranslatef", [(GLfloat, "x"), (GLfloat, "y"), (GLfloat, "z")]),
336     DllFunction(Void, "glViewport", [(GLint, "x"), (GLint, "y"), (GLsizei, "width"), (GLsizei, "height")]),
337     DllFunction(Void, "glArrayElement", [(GLint, "i")]),
338     DllFunction(Void, "glBindTexture", [(GLenum, "target"), (GLuint, "texture")]),
339     DllFunction(Void, "glColorPointer", [(GLint, "size"), (GLenum, "type"), (GLsizei, "stride"), (Pointer(Const(GLvoid)), "pointer")]),
340     DllFunction(Void, "glDisableClientState", [(GLenum, "array")]),
341     DllFunction(Void, "glDrawArrays", [(GLenum, "mode"), (GLint, "first"), (GLsizei, "count")]),
342     DllFunction(Void, "glDrawElements", [(GLenum, "mode"), (GLsizei, "count"), (GLenum, "type"), (Pointer(Const(GLvoid)), "indices")]),
343     DllFunction(Void, "glEdgeFlagPointer", [(GLsizei, "stride"), (Pointer(Const(GLvoid)), "pointer")]),
344     DllFunction(Void, "glEnableClientState", [(GLenum, "array")]),
345     DllFunction(Void, "glIndexPointer", [(GLenum, "type"), (GLsizei, "stride"), (Pointer(Const(GLvoid)), "pointer")]),
346     DllFunction(Void, "glIndexub", [(GLubyte, "c")]),
347     DllFunction(Void, "glIndexubv", [(Array(Const(GLubyte), "1"), "c")]),
348     DllFunction(Void, "glInterleavedArrays", [(GLenum, "format"), (GLsizei, "stride"), (Pointer(Const(GLvoid)), "pointer")]),
349     DllFunction(Void, "glNormalPointer", [(GLenum, "type"), (GLsizei, "stride"), (Pointer(Const(GLvoid)), "pointer")]),
350     DllFunction(Void, "glPolygonOffset", [(GLfloat, "factor"), (GLfloat, "units")]),
351     DllFunction(Void, "glTexCoordPointer", [(GLint, "size"), (GLenum, "type"), (GLsizei, "stride"), (Pointer(Const(GLvoid)), "pointer")]),
352     DllFunction(Void, "glVertexPointer", [(GLint, "size"), (GLenum, "type"), (GLsizei, "stride"), (Pointer(Const(GLvoid)), "pointer")]),
353     DllFunction(GLboolean, "glAreTexturesResident", [(GLsizei, "n"), (Pointer(Const(GLuint)), "textures"), (OutPointer(GLboolean), "residences")]),
354     DllFunction(Void, "glCopyTexImage1D", [(GLenum, "target"), (GLint, "level"), (GLenum, "internalformat"), (GLint, "x"), (GLint, "y"), (GLsizei, "width"), (GLint, "border")]),
355     DllFunction(Void, "glCopyTexImage2D", [(GLenum, "target"), (GLint, "level"), (GLenum, "internalformat"), (GLint, "x"), (GLint, "y"), (GLsizei, "width"), (GLsizei, "height"), (GLint, "border")]),
356     DllFunction(Void, "glCopyTexSubImage1D", [(GLenum, "target"), (GLint, "level"), (GLint, "xoffset"), (GLint, "x"), (GLint, "y"), (GLsizei, "width")]),
357     DllFunction(Void, "glCopyTexSubImage2D", [(GLenum, "target"), (GLint, "level"), (GLint, "xoffset"), (GLint, "yoffset"), (GLint, "x"), (GLint, "y"), (GLsizei, "width"), (GLsizei, "height")]),
358     DllFunction(Void, "glDeleteTextures", [(GLsizei, "n"), (Pointer(Const(GLuint)), "textures")]),
359     DllFunction(Void, "glGenTextures", [(GLsizei, "n"), (OutPointer(GLuint), "textures")]),
360     DllFunction(Void, "glGetPointerv", [(GLenum, "pname"), (OutPointer(Pointer(GLvoid)), "params")]),
361     DllFunction(GLboolean, "glIsTexture", [(GLuint, "texture")]),
362     DllFunction(Void, "glPrioritizeTextures", [(GLsizei, "n"), (Pointer(Const(GLuint)), "textures"), (Pointer(Const(GLclampf)), "priorities")]),
363     DllFunction(Void, "glTexSubImage1D", [(GLenum, "target"), (GLint, "level"), (GLint, "xoffset"), (GLsizei, "width"), (GLenum, "format"), (GLenum, "type"), (Pointer(Const(GLvoid)), "pixels")]),
364     DllFunction(Void, "glTexSubImage2D", [(GLenum, "target"), (GLint, "level"), (GLint, "xoffset"), (GLint, "yoffset"), (GLsizei, "width"), (GLsizei, "height"), (GLenum, "format"), (GLenum, "type"), (Pointer(Const(GLvoid)), "pixels")]),
365     DllFunction(Void, "glPopClientAttrib", []),
366     DllFunction(Void, "glPushClientAttrib", [(GLbitfield, "mask")]),
367     DllFunction(Void, "glBlendColor", [(GLclampf, "red"), (GLclampf, "green"), (GLclampf, "blue"), (GLclampf, "alpha")]),
368     DllFunction(Void, "glBlendEquation", [(GLenum, "mode")]),
369     DllFunction(Void, "glDrawRangeElements", [(GLenum, "mode"), (GLuint, "start"), (GLuint, "end"), (GLsizei, "count"), (GLenum, "type"), (Pointer(Const(GLvoid)), "indices")]),
370     DllFunction(Void, "glColorTable", [(GLenum, "target"), (GLenum, "internalformat"), (GLsizei, "width"), (GLenum, "format"), (GLenum, "type"), (Pointer(Const(GLvoid)), "table")]),
371     DllFunction(Void, "glColorTableParameterfv", [(GLenum, "target"), (GLenum, "pname"), (Pointer(Const(GLfloat)), "params")]),
372     DllFunction(Void, "glColorTableParameteriv", [(GLenum, "target"), (GLenum, "pname"), (Pointer(Const(GLint)), "params")]),
373     DllFunction(Void, "glCopyColorTable", [(GLenum, "target"), (GLenum, "internalformat"), (GLint, "x"), (GLint, "y"), (GLsizei, "width")]),
374     DllFunction(Void, "glGetColorTable", [(GLenum, "target"), (GLenum, "format"), (GLenum, "type"), (Pointer(GLvoid), "table")]),
375     DllFunction(Void, "glGetColorTableParameterfv", [(GLenum, "target"), (GLenum, "pname"), (OutPointer(GLfloat), "params")]),
376     DllFunction(Void, "glGetColorTableParameteriv", [(GLenum, "target"), (GLenum, "pname"), (OutPointer(GLint), "params")]),
377     DllFunction(Void, "glColorSubTable", [(GLenum, "target"), (GLsizei, "start"), (GLsizei, "count"), (GLenum, "format"), (GLenum, "type"), (Pointer(Const(GLvoid)), "data")]),
378     DllFunction(Void, "glCopyColorSubTable", [(GLenum, "target"), (GLsizei, "start"), (GLint, "x"), (GLint, "y"), (GLsizei, "width")]),
379     DllFunction(Void, "glConvolutionFilter1D", [(GLenum, "target"), (GLenum, "internalformat"), (GLsizei, "width"), (GLenum, "format"), (GLenum, "type"), (Pointer(Const(GLvoid)), "image")]),
380     DllFunction(Void, "glConvolutionFilter2D", [(GLenum, "target"), (GLenum, "internalformat"), (GLsizei, "width"), (GLsizei, "height"), (GLenum, "format"), (GLenum, "type"), (Pointer(Const(GLvoid)), "image")]),
381     DllFunction(Void, "glConvolutionParameterf", [(GLenum, "target"), (GLenum, "pname"), (GLfloat, "params")]),
382     DllFunction(Void, "glConvolutionParameterfv", [(GLenum, "target"), (GLenum, "pname"), (Pointer(Const(GLfloat)), "params")]),
383     DllFunction(Void, "glConvolutionParameteri", [(GLenum, "target"), (GLenum, "pname"), (GLint, "params")]),
384     DllFunction(Void, "glConvolutionParameteriv", [(GLenum, "target"), (GLenum, "pname"), (Pointer(Const(GLint)), "params")]),
385     DllFunction(Void, "glCopyConvolutionFilter1D", [(GLenum, "target"), (GLenum, "internalformat"), (GLint, "x"), (GLint, "y"), (GLsizei, "width")]),
386     DllFunction(Void, "glCopyConvolutionFilter2D", [(GLenum, "target"), (GLenum, "internalformat"), (GLint, "x"), (GLint, "y"), (GLsizei, "width"), (GLsizei, "height")]),
387     DllFunction(Void, "glGetConvolutionFilter", [(GLenum, "target"), (GLenum, "format"), (GLenum, "type"), (Pointer(GLvoid), "image")]),
388     DllFunction(Void, "glGetConvolutionParameterfv", [(GLenum, "target"), (GLenum, "pname"), (OutPointer(GLfloat), "params")]),
389     DllFunction(Void, "glGetConvolutionParameteriv", [(GLenum, "target"), (GLenum, "pname"), (OutPointer(GLint), "params")]),
390     DllFunction(Void, "glGetSeparableFilter", [(GLenum, "target"), (GLenum, "format"), (GLenum, "type"), (Pointer(GLvoid), "row"), (Pointer(GLvoid), "column"), (Pointer(GLvoid), "span")]),
391     DllFunction(Void, "glSeparableFilter2D", [(GLenum, "target"), (GLenum, "internalformat"), (GLsizei, "width"), (GLsizei, "height"), (GLenum, "format"), (GLenum, "type"), (Pointer(Const(GLvoid)), "row"), (Pointer(Const(GLvoid)), "column")]),
392     DllFunction(Void, "glGetHistogram", [(GLenum, "target"), (GLboolean, "reset"), (GLenum, "format"), (GLenum, "type"), (Pointer(GLvoid), "values")]),
393     DllFunction(Void, "glGetHistogramParameterfv", [(GLenum, "target"), (GLenum, "pname"), (OutPointer(GLfloat), "params")]),
394     DllFunction(Void, "glGetHistogramParameteriv", [(GLenum, "target"), (GLenum, "pname"), (OutPointer(GLint), "params")]),
395     DllFunction(Void, "glGetMinmax", [(GLenum, "target"), (GLboolean, "reset"), (GLenum, "format"), (GLenum, "type"), (Pointer(GLvoid), "values")]),
396     DllFunction(Void, "glGetMinmaxParameterfv", [(GLenum, "target"), (GLenum, "pname"), (OutPointer(GLfloat), "params")]),
397     DllFunction(Void, "glGetMinmaxParameteriv", [(GLenum, "target"), (GLenum, "pname"), (OutPointer(GLint), "params")]),
398     DllFunction(Void, "glHistogram", [(GLenum, "target"), (GLsizei, "width"), (GLenum, "internalformat"), (GLboolean, "sink")]),
399     DllFunction(Void, "glMinmax", [(GLenum, "target"), (GLenum, "internalformat"), (GLboolean, "sink")]),
400     DllFunction(Void, "glResetHistogram", [(GLenum, "target")]),
401     DllFunction(Void, "glResetMinmax", [(GLenum, "target")]),
402     DllFunction(Void, "glTexImage3D", [(GLenum, "target"), (GLint, "level"), (GLint, "internalformat"), (GLsizei, "width"), (GLsizei, "height"), (GLsizei, "depth"), (GLint, "border"), (GLenum, "format"), (GLenum, "type"), (Pointer(Const(GLvoid)), "pixels")]),
403     DllFunction(Void, "glTexSubImage3D", [(GLenum, "target"), (GLint, "level"), (GLint, "xoffset"), (GLint, "yoffset"), (GLint, "zoffset"), (GLsizei, "width"), (GLsizei, "height"), (GLsizei, "depth"), (GLenum, "format"), (GLenum, "type"), (Pointer(Const(GLvoid)), "pixels")]),
404     DllFunction(Void, "glCopyTexSubImage3D", [(GLenum, "target"), (GLint, "level"), (GLint, "xoffset"), (GLint, "yoffset"), (GLint, "zoffset"), (GLint, "x"), (GLint, "y"), (GLsizei, "width"), (GLsizei, "height")]),
405     DllFunction(Void, "glActiveTextureARB", [(GLenum, "texture")]),
406     DllFunction(Void, "glClientActiveTextureARB", [(GLenum, "texture")]),
407     DllFunction(Void, "glMultiTexCoord1dARB", [(GLenum, "target"), (GLdouble, "s")]),
408     DllFunction(Void, "glMultiTexCoord1dvARB", [(GLenum, "target"), (Array(Const(GLdouble), "1"), "v")]),
409     DllFunction(Void, "glMultiTexCoord1fARB", [(GLenum, "target"), (GLfloat, "s")]),
410     DllFunction(Void, "glMultiTexCoord1fvARB", [(GLenum, "target"), (Array(Const(GLfloat), "1"), "v")]),
411     DllFunction(Void, "glMultiTexCoord1iARB", [(GLenum, "target"), (GLint, "s")]),
412     DllFunction(Void, "glMultiTexCoord1ivARB", [(GLenum, "target"), (Array(Const(GLint), "1"), "v")]),
413     DllFunction(Void, "glMultiTexCoord1sARB", [(GLenum, "target"), (GLshort, "s")]),
414     DllFunction(Void, "glMultiTexCoord1svARB", [(GLenum, "target"), (Array(Const(GLshort), "1"), "v")]),
415     DllFunction(Void, "glMultiTexCoord2dARB", [(GLenum, "target"), (GLdouble, "s"), (GLdouble, "t")]),
416     DllFunction(Void, "glMultiTexCoord2dvARB", [(GLenum, "target"), (Array(Const(GLdouble), "2"), "v")]),
417     DllFunction(Void, "glMultiTexCoord2fARB", [(GLenum, "target"), (GLfloat, "s"), (GLfloat, "t")]),
418     DllFunction(Void, "glMultiTexCoord2fvARB", [(GLenum, "target"), (Array(Const(GLfloat), "2"), "v")]),
419     DllFunction(Void, "glMultiTexCoord2iARB", [(GLenum, "target"), (GLint, "s"), (GLint, "t")]),
420     DllFunction(Void, "glMultiTexCoord2ivARB", [(GLenum, "target"), (Array(Const(GLint), "2"), "v")]),
421     DllFunction(Void, "glMultiTexCoord2sARB", [(GLenum, "target"), (GLshort, "s"), (GLshort, "t")]),
422     DllFunction(Void, "glMultiTexCoord2svARB", [(GLenum, "target"), (Array(Const(GLshort), "2"), "v")]),
423     DllFunction(Void, "glMultiTexCoord3dARB", [(GLenum, "target"), (GLdouble, "s"), (GLdouble, "t"), (GLdouble, "r")]),
424     DllFunction(Void, "glMultiTexCoord3dvARB", [(GLenum, "target"), (Array(Const(GLdouble), "3"), "v")]),
425     DllFunction(Void, "glMultiTexCoord3fARB", [(GLenum, "target"), (GLfloat, "s"), (GLfloat, "t"), (GLfloat, "r")]),
426     DllFunction(Void, "glMultiTexCoord3fvARB", [(GLenum, "target"), (Array(Const(GLfloat), "3"), "v")]),
427     DllFunction(Void, "glMultiTexCoord3iARB", [(GLenum, "target"), (GLint, "s"), (GLint, "t"), (GLint, "r")]),
428     DllFunction(Void, "glMultiTexCoord3ivARB", [(GLenum, "target"), (Array(Const(GLint), "3"), "v")]),
429     DllFunction(Void, "glMultiTexCoord3sARB", [(GLenum, "target"), (GLshort, "s"), (GLshort, "t"), (GLshort, "r")]),
430     DllFunction(Void, "glMultiTexCoord3svARB", [(GLenum, "target"), (Array(Const(GLshort), "3"), "v")]),
431     DllFunction(Void, "glMultiTexCoord4dARB", [(GLenum, "target"), (GLdouble, "s"), (GLdouble, "t"), (GLdouble, "r"), (GLdouble, "q")]),
432     DllFunction(Void, "glMultiTexCoord4dvARB", [(GLenum, "target"), (Array(Const(GLdouble), "4"), "v")]),
433     DllFunction(Void, "glMultiTexCoord4fARB", [(GLenum, "target"), (GLfloat, "s"), (GLfloat, "t"), (GLfloat, "r"), (GLfloat, "q")]),
434     DllFunction(Void, "glMultiTexCoord4fvARB", [(GLenum, "target"), (Array(Const(GLfloat), "4"), "v")]),
435     DllFunction(Void, "glMultiTexCoord4iARB", [(GLenum, "target"), (GLint, "s"), (GLint, "t"), (GLint, "r"), (GLint, "q")]),
436     DllFunction(Void, "glMultiTexCoord4ivARB", [(GLenum, "target"), (Array(Const(GLint), "4"), "v")]),
437     DllFunction(Void, "glMultiTexCoord4sARB", [(GLenum, "target"), (GLshort, "s"), (GLshort, "t"), (GLshort, "r"), (GLshort, "q")]),
438     DllFunction(Void, "glMultiTexCoord4svARB", [(GLenum, "target"), (Array(Const(GLshort), "4"), "v")]),
439 ]
440
441 HGLRC = Alias("HGLRC", HANDLE)
442 PROC = Alias("PROC", Opaque)
443
444 PFD = Flags(DWORD, [
445     "PFD_DOUBLEBUFFER",
446     "PFD_STEREO",
447     "PFD_DRAW_TO_WINDOW",
448     "PFD_DRAW_TO_BITMAP",
449     "PFD_SUPPORT_GDI",
450     "PFD_SUPPORT_OPENGL",
451     "PFD_GENERIC_FORMAT",
452     "PFD_NEED_PALETTE",
453     "PFD_NEED_SYSTEM_PALETTE",
454     "PFD_SWAP_EXCHANGE",
455     "PFD_SWAP_COPY",
456     "PFD_SWAP_LAYER_BUFFERS",
457     "PFD_GENERIC_ACCELERATED",
458     "PFD_SUPPORT_DIRECTDRAW",
459     "PFD_DEPTH_DONTCARE",
460     "PFD_DOUBLEBUFFER_DONTCARE",
461     "PFD_STEREO_DONTCARE",
462 ])
463
464 PIXELFORMATDESCRIPTOR = Struct("PIXELFORMATDESCRIPTOR", [
465     (WORD, "nSize"),
466     (WORD, "nVersion"),
467     (PFD, "dwFlags"),
468     (BYTE, "iPixelType"),
469     (BYTE, "cColorBits"),
470     (BYTE, "cRedBits"),
471     (BYTE, "cRedShift"),
472     (BYTE, "cGreenBits"),
473     (BYTE, "cGreenShift"),
474     (BYTE, "cBlueBits"),
475     (BYTE, "cBlueShift"),
476     (BYTE, "cAlphaBits"),
477     (BYTE, "cAlphaShift"),
478     (BYTE, "cAccumBits"),
479     (BYTE, "cAccumRedBits"),
480     (BYTE, "cAccumGreenBits"),
481     (BYTE, "cAccumBlueBits"),
482     (BYTE, "cAccumAlphaBits"),
483     (BYTE, "cDepthBits"),
484     (BYTE, "cStencilBits"),
485     (BYTE, "cAuxBuffers"),
486     (BYTE, "iLayerType"),
487     (BYTE, "bReserved"),
488     (DWORD, "dwLayerMask"),
489     (DWORD, "dwVisibleMask"),
490     (DWORD, "dwDamageMask"),
491 ])
492
493 POINTFLOAT = Struct("POINTFLOAT", [
494     (FLOAT, "x"),
495     (FLOAT, "y"),
496 ])
497
498 GLYPHMETRICSFLOAT = Struct("GLYPHMETRICSFLOAT", [
499     (FLOAT, "gmfBlackBoxX"),
500     (FLOAT, "gmfBlackBoxY"),
501     (POINTFLOAT, "gmfptGlyphOrigin"),
502     (FLOAT, "gmfCellIncX"),
503     (FLOAT, "gmfCellIncY"),
504 ])
505 LPGLYPHMETRICSFLOAT = Pointer(GLYPHMETRICSFLOAT)
506
507 COLORREF = Alias("COLORREF", DWORD)
508
509
510 LAYERPLANEDESCRIPTOR = Struct("LAYERPLANEDESCRIPTOR", [
511     (WORD, "nSize"),
512     (WORD, "nVersion"),
513     (DWORD, "dwFlags"),
514     (BYTE, "iPixelType"),
515     (BYTE, "cColorBits"),
516     (BYTE, "cRedBits"),
517     (BYTE, "cRedShift"),
518     (BYTE, "cGreenBits"),
519     (BYTE, "cGreenShift"),
520     (BYTE, "cBlueBits"),
521     (BYTE, "cBlueShift"),
522     (BYTE, "cAlphaBits"),
523     (BYTE, "cAlphaShift"),
524     (BYTE, "cAccumBits"),
525     (BYTE, "cAccumRedBits"),
526     (BYTE, "cAccumGreenBits"),
527     (BYTE, "cAccumBlueBits"),
528     (BYTE, "cAccumAlphaBits"),
529     (BYTE, "cDepthBits"),
530     (BYTE, "cStencilBits"),
531     (BYTE, "cAuxBuffers"),
532     (BYTE, "iLayerPlane"),
533     (BYTE, "bReserved"),
534     (COLORREF, "crTransparent"),
535 ])
536 LPLAYERPLANEDESCRIPTOR = Pointer(LAYERPLANEDESCRIPTOR)
537
538 WGLSWAP = Struct("WGLSWAP", [
539    (HDC, "hdc"),
540     (UINT, "uiFlags"),
541 ])
542
543 opengl32.functions += [
544     DllFunction(BOOL, "wglCopyContext", [(HGLRC, "hglrcSrc"), (HGLRC, "hglrcDst"), (UINT, "mask")]),
545     DllFunction(HGLRC, "wglCreateContext", [(HDC, "hdc")]),
546     DllFunction(HGLRC, "wglCreateLayerContext", [(HDC, "hdc"), (Int, "iLayerPlane")]),
547     DllFunction(BOOL, "wglDeleteContext", [(HGLRC, "hglrc")]),
548     DllFunction(HGLRC, "wglGetCurrentContext", []),
549     DllFunction(HDC, "wglGetCurrentDC", []),
550     DllFunction(PROC, "wglGetDefaultProcAddress", [(LPCSTR, "lpszProc")]),
551     DllFunction(Int, "wglChoosePixelFormat", [(HDC, "hdc"), (Pointer(Const(PIXELFORMATDESCRIPTOR)), "ppfd")]), 
552     DllFunction(Int, "wglDescribePixelFormat", [(HDC, "hdc"), (Int, "iPixelFormat"), (UINT, "nBytes"), (OutPointer(PIXELFORMATDESCRIPTOR), "ppfd")]),
553     DllFunction(Int, "wglGetPixelFormat", [(HDC, "hdc")]),
554     DllFunction(BOOL, "wglSetPixelFormat", [(HDC, "hdc"), (Int, "iPixelFormat"), (Pointer(Const(PIXELFORMATDESCRIPTOR)), "ppfd")]),
555     DllFunction(BOOL, "wglMakeCurrent", [(HDC, "hdc"), (HGLRC, "hglrc")]),
556     DllFunction(BOOL, "wglShareLists", [(HGLRC, "hglrc1"), (HGLRC, "hglrc2")]),
557     DllFunction(BOOL, "wglUseFontBitmapsA", [(HDC, "hdc"), (DWORD, "first"), (DWORD, "count"), (DWORD, "listBase")]),
558     DllFunction(BOOL, "wglUseFontBitmapsW", [(HDC, "hdc"), (DWORD, "first"), (DWORD, "count"), (DWORD, "listBase")]),
559     DllFunction(BOOL, "wglSwapBuffers", [(HDC, "hdc")]),
560     DllFunction(BOOL, "wglUseFontOutlinesA", [(HDC, "hdc"), (DWORD, "first"), (DWORD, "count"), (DWORD, "listBase"), (FLOAT, "deviation"), (FLOAT, "extrusion"), (Int, "format"), (LPGLYPHMETRICSFLOAT, "lpgmf")]),
561     DllFunction(BOOL, "wglUseFontOutlinesW", [(HDC, "hdc"), (DWORD, "first"), (DWORD, "count"), (DWORD, "listBase"), (FLOAT, "deviation"), (FLOAT, "extrusion"), (Int, "format"), (LPGLYPHMETRICSFLOAT, "lpgmf")]),
562     DllFunction(BOOL , "wglDescribeLayerPlane", [(HDC, "hdc"), (Int, "iPixelFormat"), (Int, "iLayerPlane"), (UINT, "nBytes"), (OutPointer(LAYERPLANEDESCRIPTOR), "plpd")]),
563     DllFunction(Int  , "wglSetLayerPaletteEntries", [(HDC, "hdc"), (Int, "iLayerPlane"), (Int, "iStart"), (Int, "cEntries"), (Pointer(Const(COLORREF)), "pcr")]),
564     DllFunction(Int  , "wglGetLayerPaletteEntries", [(HDC, "hdc"), (Int, "iLayerPlane"), (Int, "iStart"), (Int, "cEntries"), (OutPointer(COLORREF), "pcr")]),
565     DllFunction(BOOL , "wglRealizeLayerPalette", [(HDC, "hdc"), (Int, "iLayerPlane"), (BOOL, "bRealize")]),
566     DllFunction(BOOL , "wglSwapLayerBuffers", [(HDC, "hdc"), (UINT, "fuPlanes")]),
567     DllFunction(DWORD, "wglSwapMultipleBuffers", [(UINT, "n"), (Pointer(Const(WGLSWAP)), "ps")]),
568 ]
569
570
571 class WglGetProcAddressFunction(DllFunction):
572
573     def __init__(self, type, name, args):
574         DllFunction.__init__(self, type, name, args)
575         self.functions = []
576
577     def wrap_decl(self):
578         for function in self.functions:
579             function.wrap_decl()
580         DllFunction.wrap_decl(self)
581
582     def wrap_impl(self):
583         for function in self.functions:
584             function.wrap_impl()
585         DllFunction.wrap_impl(self)
586
587     def post_call_impl(self):
588         print '    if(result) {'
589         for function in self.functions:
590             ptype = function.pointer_type()
591             pvalue = function.pointer_value()
592             print '        if(!strcmp("%s", lpszProc)) {' % function.name
593             print '            %s = (%s)result;' % (pvalue, ptype)
594             print '            result = (PROC)&%s;' % function.name;
595             print '        }'
596         print '    }'
597
598
599 wglgetprocaddress = WglGetProcAddressFunction(PROC, "wglGetProcAddress", [(LPCSTR, "lpszProc")])
600 opengl32.functions.append(wglgetprocaddress)
601
602 class WglFunction(Function):
603
604     def get_true_pointer(self):
605         ptype = self.pointer_type()
606         pvalue = self.pointer_value()
607         print '    if(!%s)' % (pvalue,)
608         self.fail_impl()
609
610 attribute = FakeEnum(Int, [
611     "WGL_NUMBER_PIXEL_FORMATS_EXT",
612     "WGL_DRAW_TO_WINDOW_EXT",
613     "WGL_DRAW_TO_BITMAP_EXT",
614     "WGL_ACCELERATION_EXT",
615     "WGL_NEED_PALETTE_EXT",
616     "WGL_NEED_SYSTEM_PALETTE_EXT",
617     "WGL_SWAP_LAYER_BUFFERS_EXT",
618     "WGL_SWAP_METHOD_EXT",
619     "WGL_NUMBER_OVERLAYS_EXT",
620     "WGL_NUMBER_UNDERLAYS_EXT",
621     "WGL_TRANSPARENT_EXT",
622     "WGL_TRANSPARENT_VALUE_EXT",
623     "WGL_SHARE_DEPTH_EXT",
624     "WGL_SHARE_STENCIL_EXT",
625     "WGL_SHARE_ACCUM_EXT",
626     "WGL_SUPPORT_GDI_EXT",
627     "WGL_SUPPORT_OPENGL_EXT",
628     "WGL_DOUBLE_BUFFER_EXT",
629     "WGL_STEREO_EXT",
630     "WGL_PIXEL_TYPE_EXT",
631     "WGL_COLOR_BITS_EXT",
632     "WGL_RED_BITS_EXT",
633     "WGL_RED_SHIFT_EXT",
634     "WGL_GREEN_BITS_EXT",
635     "WGL_GREEN_SHIFT_EXT",
636     "WGL_BLUE_BITS_EXT",
637     "WGL_BLUE_SHIFT_EXT",
638     "WGL_ALPHA_BITS_EXT",
639     "WGL_ALPHA_SHIFT_EXT",
640     "WGL_ACCUM_BITS_EXT",
641     "WGL_ACCUM_RED_BITS_EXT",
642     "WGL_ACCUM_GREEN_BITS_EXT",
643     "WGL_ACCUM_BLUE_BITS_EXT",
644     "WGL_ACCUM_ALPHA_BITS_EXT",
645     "WGL_DEPTH_BITS_EXT",
646     "WGL_STENCIL_BITS_EXT",
647     "WGL_AUX_BUFFERS_EXT",
648     "WGL_NO_ACCELERATION_EXT",
649     "WGL_GENERIC_ACCELERATION_EXT",
650     "WGL_FULL_ACCELERATION_EXT",
651     "WGL_SWAP_EXCHANGE_EXT",
652     "WGL_SWAP_COPY_EXT",
653     "WGL_SWAP_UNDEFINED_EXT",
654     "WGL_TYPE_RGBA_EXT",
655     "WGL_TYPE_COLORINDEX_EXT",
656 ])
657
658 HPBUFFERARB = Alias("HPBUFFERARB", HANDLE)
659
660 wglgetprocaddress.functions += [
661     WglFunction(Void, "glAttachShader", [(GLuint, "program"), (GLuint, "shader")]),
662     WglFunction(GLuint, "glCreateProgram", []),
663     WglFunction(GLuint, "glCreateShader", [(GLenum, "type")]),
664     WglFunction(Void, "glDeleteProgram", [(GLuint, "program")]),
665     WglFunction(Void, "glDeleteShader", [(GLuint, "program")]),
666     WglFunction(Void, "glDetachShader", [(GLuint, "program"), (GLuint, "shader")]),
667     WglFunction(Void, "glGetAttachedShaders", [(GLuint, "program"), (GLsizei, "maxCount"), (OutPointer(GLsizei), "count"), (Pointer(GLuint), "obj")]),
668     WglFunction(Void, "glGetProgramInfoLog", [(GLuint, "program"), (GLsizei, "bufSize"), (OutPointer(GLsizei), "length"), (Out(GLstring), "infoLog")]),
669     WglFunction(Void, "glGetProgramiv", [(GLuint, "program"), (GLenum, "pname"), (OutPointer(GLint), "params")]),
670     WglFunction(Void, "glGetShaderInfoLog", [(GLuint, "shader"), (GLsizei, "bufSize"), (OutPointer(GLsizei), "length"), (Out(GLstring), "infoLog")]),
671     WglFunction(Void, "glGetShaderiv", [(GLuint, "shader"), (GLenum, "pname"), (OutPointer(GLint), "params")]),
672     WglFunction(GLboolean, "glIsProgram", [(GLuint, "program")]),
673     WglFunction(GLboolean, "glIsShader", [(GLuint, "shader")]),
674     WglFunction(Void, "glStencilFuncSeparate", [(GLenum, "face"), (GLenum, "func"), (GLint, "ref"), (GLuint, "mask")]),
675     WglFunction(Void, "glStencilMaskSeparate", [(GLenum, "face"), (GLuint, "mask")]),
676     WglFunction(Void, "glStencilOpSeparate", [(GLenum, "face"), (GLenum, "sfail"), (GLenum, "zfail"), (GLenum, "zpass")]),
677     WglFunction(Void, "glStencilOpSeparateATI", [(GLenum, "face"), (GLenum, "sfail"), (GLenum, "zfail"), (GLenum, "zpass")]),
678     WglFunction(Void, "glUniformMatrix2x3fv", [(GLint, "location"), (GLsizei, "count"), (GLboolean, "transpose"), (Pointer(Const(GLfloat)), "value")]),
679     WglFunction(Void, "glUniformMatrix2x4fv", [(GLint, "location"), (GLsizei, "count"), (GLboolean, "transpose"), (Pointer(Const(GLfloat)), "value")]),
680     WglFunction(Void, "glUniformMatrix3x2fv", [(GLint, "location"), (GLsizei, "count"), (GLboolean, "transpose"), (Pointer(Const(GLfloat)), "value")]),
681     WglFunction(Void, "glUniformMatrix3x4fv", [(GLint, "location"), (GLsizei, "count"), (GLboolean, "transpose"), (Pointer(Const(GLfloat)), "value")]),
682     WglFunction(Void, "glUniformMatrix4x2fv", [(GLint, "location"), (GLsizei, "count"), (GLboolean, "transpose"), (Pointer(Const(GLfloat)), "value")]),
683     WglFunction(Void, "glUniformMatrix4x3fv", [(GLint, "location"), (GLsizei, "count"), (GLboolean, "transpose"), (Pointer(Const(GLfloat)), "value")]),
684     WglFunction(Void, "glLoadTransposeMatrixd", [(Pointer(Const(GLdouble)), "m")]),
685     WglFunction(Void, "glLoadTransposeMatrixdARB", [(Pointer(Const(GLdouble)), "m")]),
686     WglFunction(Void, "glLoadTransposeMatrixf", [(Pointer(Const(GLfloat)), "m")]),
687     WglFunction(Void, "glLoadTransposeMatrixfARB", [(Pointer(Const(GLfloat)), "m")]),
688     WglFunction(Void, "glMultTransposeMatrixd", [(Pointer(Const(GLdouble)), "m")]),
689     WglFunction(Void, "glMultTransposeMatrixdARB", [(Pointer(Const(GLdouble)), "m")]),
690     WglFunction(Void, "glMultTransposeMatrixf", [(Pointer(Const(GLfloat)), "m")]),
691     WglFunction(Void, "glMultTransposeMatrixfARB", [(Pointer(Const(GLfloat)), "m")]),
692     WglFunction(Void, "glSampleCoverage", [(GLclampf, "value"), (GLboolean, "invert")]),
693     WglFunction(Void, "glSampleCoverageARB", [(GLclampf, "value"), (GLboolean, "invert")]),
694     WglFunction(Void, "glCompressedTexImage1D", [(GLenum, "target"), (GLint, "level"), (GLenum, "internalformat"), (GLsizei, "width"), (GLint, "border"), (GLsizei, "imageSize"), (Pointer(Const(GLvoid)), "data")]),
695     WglFunction(Void, "glCompressedTexImage1DARB", [(GLenum, "target"), (GLint, "level"), (GLenum, "internalformat"), (GLsizei, "width"), (GLint, "border"), (GLsizei, "imageSize"), (Pointer(Const(GLvoid)), "data")]),
696     WglFunction(Void, "glCompressedTexImage2D", [(GLenum, "target"), (GLint, "level"), (GLenum, "internalformat"), (GLsizei, "width"), (GLsizei, "height"), (GLint, "border"), (GLsizei, "imageSize"), (Pointer(Const(GLvoid)), "data")]),
697     WglFunction(Void, "glCompressedTexImage2DARB", [(GLenum, "target"), (GLint, "level"), (GLenum, "internalformat"), (GLsizei, "width"), (GLsizei, "height"), (GLint, "border"), (GLsizei, "imageSize"), (Pointer(Const(GLvoid)), "data")]),
698     WglFunction(Void, "glCompressedTexImage3D", [(GLenum, "target"), (GLint, "level"), (GLenum, "internalformat"), (GLsizei, "width"), (GLsizei, "height"), (GLsizei, "depth"), (GLint, "border"), (GLsizei, "imageSize"), (Pointer(Const(GLvoid)), "data")]),
699     WglFunction(Void, "glCompressedTexImage3DARB", [(GLenum, "target"), (GLint, "level"), (GLenum, "internalformat"), (GLsizei, "width"), (GLsizei, "height"), (GLsizei, "depth"), (GLint, "border"), (GLsizei, "imageSize"), (Pointer(Const(GLvoid)), "data")]),
700     WglFunction(Void, "glCompressedTexSubImage1D", [(GLenum, "target"), (GLint, "level"), (GLint, "xoffset"), (GLsizei, "width"), (GLenum, "format"), (GLsizei, "imageSize"), (Pointer(Const(GLvoid)), "data")]),
701     WglFunction(Void, "glCompressedTexSubImage1DARB", [(GLenum, "target"), (GLint, "level"), (GLint, "xoffset"), (GLsizei, "width"), (GLenum, "format"), (GLsizei, "imageSize"), (Pointer(Const(GLvoid)), "data")]),
702     WglFunction(Void, "glCompressedTexSubImage2D", [(GLenum, "target"), (GLint, "level"), (GLint, "xoffset"), (GLint, "yoffset"), (GLsizei, "width"), (GLsizei, "height"), (GLenum, "format"), (GLsizei, "imageSize"), (Pointer(Const(GLvoid)), "data")]),
703     WglFunction(Void, "glCompressedTexSubImage2DARB", [(GLenum, "target"), (GLint, "level"), (GLint, "xoffset"), (GLint, "yoffset"), (GLsizei, "width"), (GLsizei, "height"), (GLenum, "format"), (GLsizei, "imageSize"), (Pointer(Const(GLvoid)), "data")]),
704     WglFunction(Void, "glCompressedTexSubImage3D", [(GLenum, "target"), (GLint, "level"), (GLint, "xoffset"), (GLint, "yoffset"), (GLint, "zoffset"), (GLsizei, "width"), (GLsizei, "height"), (GLsizei, "depth"), (GLenum, "format"), (GLsizei, "imageSize"), (Pointer(Const(GLvoid)), "data")]),
705     WglFunction(Void, "glCompressedTexSubImage3DARB", [(GLenum, "target"), (GLint, "level"), (GLint, "xoffset"), (GLint, "yoffset"), (GLint, "zoffset"), (GLsizei, "width"), (GLsizei, "height"), (GLsizei, "depth"), (GLenum, "format"), (GLsizei, "imageSize"), (Pointer(Const(GLvoid)), "data")]),
706     WglFunction(Void, "glGetCompressedTexImage", [(GLenum, "target"), (GLint, "level"), (Pointer(GLvoid), "img")]),
707     WglFunction(Void, "glGetCompressedTexImageARB", [(GLenum, "target"), (GLint, "level"), (Pointer(GLvoid), "img")]),
708     WglFunction(Void, "glDisableVertexAttribArray", [(GLuint, "index")]),
709     WglFunction(Void, "glDisableVertexAttribArrayARB", [(GLuint, "index")]),
710     WglFunction(Void, "glEnableVertexAttribArray", [(GLuint, "index")]),
711     WglFunction(Void, "glEnableVertexAttribArrayARB", [(GLuint, "index")]),
712     WglFunction(Void, "glGetProgramEnvParameterdvARB", [(GLenum, "target"), (GLuint, "index"), (Array(GLdouble, "4"), "params")]),
713     WglFunction(Void, "glGetProgramEnvParameterfvARB", [(GLenum, "target"), (GLuint, "index"), (Array(GLfloat, "4"), "params")]),
714     WglFunction(Void, "glGetProgramLocalParameterdvARB", [(GLenum, "target"), (GLuint, "index"), (Array(GLdouble, "4"), "params")]),
715     WglFunction(Void, "glGetProgramLocalParameterfvARB", [(GLenum, "target"), (GLuint, "index"), (Array(GLfloat, "4"), "params")]),
716     WglFunction(Void, "glGetProgramStringARB", [(GLenum, "target"), (GLenum, "pname"), (Pointer(GLvoid), "string")]),
717     WglFunction(Void, "glGetProgramivARB", [(GLenum, "target"), (GLenum, "pname"), (OutPointer(GLint), "params")]),
718     WglFunction(Void, "glGetVertexAttribdv", [(GLuint, "index"), (GLenum, "pname"), (OutPointer(GLdouble), "params")]),
719     WglFunction(Void, "glGetVertexAttribdvARB", [(GLuint, "index"), (GLenum, "pname"), (OutPointer(GLdouble), "params")]),
720     WglFunction(Void, "glGetVertexAttribfv", [(GLuint, "index"), (GLenum, "pname"), (OutPointer(GLfloat), "params")]),
721     WglFunction(Void, "glGetVertexAttribfvARB", [(GLuint, "index"), (GLenum, "pname"), (OutPointer(GLfloat), "params")]),
722     WglFunction(Void, "glGetVertexAttribiv", [(GLuint, "index"), (GLenum, "pname"), (OutPointer(GLint), "params")]),
723     WglFunction(Void, "glGetVertexAttribivARB", [(GLuint, "index"), (GLenum, "pname"), (OutPointer(GLint), "params")]),
724     WglFunction(Void, "glProgramEnvParameter4dARB", [(GLenum, "target"), (GLuint, "index"), (GLdouble, "x"), (GLdouble, "y"), (GLdouble, "z"), (GLdouble, "w")]),
725     WglFunction(Void, "glProgramParameter4dNV", [(GLenum, "target"), (GLuint, "index"), (GLdouble, "x"), (GLdouble, "y"), (GLdouble, "z"), (GLdouble, "w")]),
726     WglFunction(Void, "glProgramEnvParameter4dvARB", [(GLenum, "target"), (GLuint, "index"), (Array(Const(GLdouble), "4"), "params")]),
727     WglFunction(Void, "glProgramParameter4dvNV", [(GLenum, "target"), (GLuint, "index"), (Array(Const(GLdouble), "4"), "params")]),
728     WglFunction(Void, "glProgramEnvParameter4fARB", [(GLenum, "target"), (GLuint, "index"), (GLfloat, "x"), (GLfloat, "y"), (GLfloat, "z"), (GLfloat, "w")]),
729     WglFunction(Void, "glProgramParameter4fNV", [(GLenum, "target"), (GLuint, "index"), (GLfloat, "x"), (GLfloat, "y"), (GLfloat, "z"), (GLfloat, "w")]),
730     WglFunction(Void, "glProgramEnvParameter4fvARB", [(GLenum, "target"), (GLuint, "index"), (Array(Const(GLfloat), "4"), "params")]),
731     WglFunction(Void, "glProgramParameter4fvNV", [(GLenum, "target"), (GLuint, "index"), (Array(Const(GLfloat), "4"), "params")]),
732     WglFunction(Void, "glProgramLocalParameter4dARB", [(GLenum, "target"), (GLuint, "index"), (GLdouble, "x"), (GLdouble, "y"), (GLdouble, "z"), (GLdouble, "w")]),
733     WglFunction(Void, "glProgramLocalParameter4dvARB", [(GLenum, "target"), (GLuint, "index"), (Array(Const(GLdouble), "4"), "params")]),
734     WglFunction(Void, "glProgramLocalParameter4fARB", [(GLenum, "target"), (GLuint, "index"), (GLfloat, "x"), (GLfloat, "y"), (GLfloat, "z"), (GLfloat, "w")]),
735     WglFunction(Void, "glProgramLocalParameter4fvARB", [(GLenum, "target"), (GLuint, "index"), (Array(Const(GLfloat), "4"), "params")]),
736     WglFunction(Void, "glProgramStringARB", [(GLenum, "target"), (GLenum, "format"), (GLsizei, "len"), (Pointer(Const(GLvoid)), "string")]),
737     WglFunction(Void, "glVertexAttrib1d", [(GLuint, "index"), (GLdouble, "x")]),
738     WglFunction(Void, "glVertexAttrib1dARB", [(GLuint, "index"), (GLdouble, "x")]),
739     WglFunction(Void, "glVertexAttrib1dv", [(GLuint, "index"), (Array(Const(GLdouble), "1"), "v")]),
740     WglFunction(Void, "glVertexAttrib1dvARB", [(GLuint, "index"), (Array(Const(GLdouble), "1"), "v")]),
741     WglFunction(Void, "glVertexAttrib1f", [(GLuint, "index"), (GLfloat, "x")]),
742     WglFunction(Void, "glVertexAttrib1fARB", [(GLuint, "index"), (GLfloat, "x")]),
743     WglFunction(Void, "glVertexAttrib1fv", [(GLuint, "index"), (Array(Const(GLfloat), "1"), "v")]),
744     WglFunction(Void, "glVertexAttrib1fvARB", [(GLuint, "index"), (Array(Const(GLfloat), "1"), "v")]),
745     WglFunction(Void, "glVertexAttrib1s", [(GLuint, "index"), (GLshort, "x")]),
746     WglFunction(Void, "glVertexAttrib1sARB", [(GLuint, "index"), (GLshort, "x")]),
747     WglFunction(Void, "glVertexAttrib1sv", [(GLuint, "index"), (Array(Const(GLshort), "1"), "v")]),
748     WglFunction(Void, "glVertexAttrib1svARB", [(GLuint, "index"), (Array(Const(GLshort), "1"), "v")]),
749     WglFunction(Void, "glVertexAttrib2d", [(GLuint, "index"), (GLdouble, "x"), (GLdouble, "y")]),
750     WglFunction(Void, "glVertexAttrib2dARB", [(GLuint, "index"), (GLdouble, "x"), (GLdouble, "y")]),
751     WglFunction(Void, "glVertexAttrib2dv", [(GLuint, "index"), (Array(Const(GLdouble), "2"), "v")]),
752     WglFunction(Void, "glVertexAttrib2dvARB", [(GLuint, "index"), (Array(Const(GLdouble), "2"), "v")]),
753     WglFunction(Void, "glVertexAttrib2f", [(GLuint, "index"), (GLfloat, "x"), (GLfloat, "y")]),
754     WglFunction(Void, "glVertexAttrib2fARB", [(GLuint, "index"), (GLfloat, "x"), (GLfloat, "y")]),
755     WglFunction(Void, "glVertexAttrib2fv", [(GLuint, "index"), (Array(Const(GLfloat), "2"), "v")]),
756     WglFunction(Void, "glVertexAttrib2fvARB", [(GLuint, "index"), (Array(Const(GLfloat), "2"), "v")]),
757     WglFunction(Void, "glVertexAttrib2s", [(GLuint, "index"), (GLshort, "x"), (GLshort, "y")]),
758     WglFunction(Void, "glVertexAttrib2sARB", [(GLuint, "index"), (GLshort, "x"), (GLshort, "y")]),
759     WglFunction(Void, "glVertexAttrib2sv", [(GLuint, "index"), (Array(Const(GLshort), "2"), "v")]),
760     WglFunction(Void, "glVertexAttrib2svARB", [(GLuint, "index"), (Array(Const(GLshort), "2"), "v")]),
761     WglFunction(Void, "glVertexAttrib3d", [(GLuint, "index"), (GLdouble, "x"), (GLdouble, "y"), (GLdouble, "z")]),
762     WglFunction(Void, "glVertexAttrib3dARB", [(GLuint, "index"), (GLdouble, "x"), (GLdouble, "y"), (GLdouble, "z")]),
763     WglFunction(Void, "glVertexAttrib3dv", [(GLuint, "index"), (Array(Const(GLdouble), "3"), "v")]),
764     WglFunction(Void, "glVertexAttrib3dvARB", [(GLuint, "index"), (Array(Const(GLdouble), "3"), "v")]),
765     WglFunction(Void, "glVertexAttrib3f", [(GLuint, "index"), (GLfloat, "x"), (GLfloat, "y"), (GLfloat, "z")]),
766     WglFunction(Void, "glVertexAttrib3fARB", [(GLuint, "index"), (GLfloat, "x"), (GLfloat, "y"), (GLfloat, "z")]),
767     WglFunction(Void, "glVertexAttrib3fv", [(GLuint, "index"), (Array(Const(GLfloat), "3"), "v")]),
768     WglFunction(Void, "glVertexAttrib3fvARB", [(GLuint, "index"), (Array(Const(GLfloat), "3"), "v")]),
769     WglFunction(Void, "glVertexAttrib3s", [(GLuint, "index"), (GLshort, "x"), (GLshort, "y"), (GLshort, "z")]),
770     WglFunction(Void, "glVertexAttrib3sARB", [(GLuint, "index"), (GLshort, "x"), (GLshort, "y"), (GLshort, "z")]),
771     WglFunction(Void, "glVertexAttrib3sv", [(GLuint, "index"), (Array(Const(GLshort), "3"), "v")]),
772     WglFunction(Void, "glVertexAttrib3svARB", [(GLuint, "index"), (Array(Const(GLshort), "3"), "v")]),
773     WglFunction(Void, "glVertexAttrib4Nbv", [(GLuint, "index"), (Array(Const(GLbyte), "4"), "v")]),
774     WglFunction(Void, "glVertexAttrib4NbvARB", [(GLuint, "index"), (Array(Const(GLbyte), "4"), "v")]),
775     WglFunction(Void, "glVertexAttrib4Niv", [(GLuint, "index"), (Array(Const(GLint), "4"), "v")]),
776     WglFunction(Void, "glVertexAttrib4NivARB", [(GLuint, "index"), (Array(Const(GLint), "4"), "v")]),
777     WglFunction(Void, "glVertexAttrib4Nsv", [(GLuint, "index"), (Array(Const(GLshort), "4"), "v")]),
778     WglFunction(Void, "glVertexAttrib4NsvARB", [(GLuint, "index"), (Array(Const(GLshort), "4"), "v")]),
779     WglFunction(Void, "glVertexAttrib4Nub", [(GLuint, "index"), (GLubyte, "x"), (GLubyte, "y"), (GLubyte, "z"), (GLubyte, "w")]),
780     WglFunction(Void, "glVertexAttrib4NubARB", [(GLuint, "index"), (GLubyte, "x"), (GLubyte, "y"), (GLubyte, "z"), (GLubyte, "w")]),
781     WglFunction(Void, "glVertexAttrib4Nubv", [(GLuint, "index"), (Array(Const(GLubyte), "4"), "v")]),
782     WglFunction(Void, "glVertexAttrib4NubvARB", [(GLuint, "index"), (Array(Const(GLubyte), "4"), "v")]),
783     WglFunction(Void, "glVertexAttrib4Nuiv", [(GLuint, "index"), (Array(Const(GLuint), "4"), "v")]),
784     WglFunction(Void, "glVertexAttrib4NuivARB", [(GLuint, "index"), (Array(Const(GLuint), "4"), "v")]),
785     WglFunction(Void, "glVertexAttrib4Nusv", [(GLuint, "index"), (Array(Const(GLushort), "4"), "v")]),
786     WglFunction(Void, "glVertexAttrib4NusvARB", [(GLuint, "index"), (Array(Const(GLushort), "4"), "v")]),
787     WglFunction(Void, "glVertexAttrib4bv", [(GLuint, "index"), (Array(Const(GLbyte), "4"), "v")]),
788     WglFunction(Void, "glVertexAttrib4bvARB", [(GLuint, "index"), (Array(Const(GLbyte), "4"), "v")]),
789     WglFunction(Void, "glVertexAttrib4d", [(GLuint, "index"), (GLdouble, "x"), (GLdouble, "y"), (GLdouble, "z"), (GLdouble, "w")]),
790     WglFunction(Void, "glVertexAttrib4dARB", [(GLuint, "index"), (GLdouble, "x"), (GLdouble, "y"), (GLdouble, "z"), (GLdouble, "w")]),
791     WglFunction(Void, "glVertexAttrib4dv", [(GLuint, "index"), (Array(Const(GLdouble), "4"), "v")]),
792     WglFunction(Void, "glVertexAttrib4dvARB", [(GLuint, "index"), (Array(Const(GLdouble), "4"), "v")]),
793     WglFunction(Void, "glVertexAttrib4f", [(GLuint, "index"), (GLfloat, "x"), (GLfloat, "y"), (GLfloat, "z"), (GLfloat, "w")]),
794     WglFunction(Void, "glVertexAttrib4fARB", [(GLuint, "index"), (GLfloat, "x"), (GLfloat, "y"), (GLfloat, "z"), (GLfloat, "w")]),
795     WglFunction(Void, "glVertexAttrib4fv", [(GLuint, "index"), (Array(Const(GLfloat), "4"), "v")]),
796     WglFunction(Void, "glVertexAttrib4fvARB", [(GLuint, "index"), (Array(Const(GLfloat), "4"), "v")]),
797     WglFunction(Void, "glVertexAttrib4iv", [(GLuint, "index"), (Array(Const(GLint), "4"), "v")]),
798     WglFunction(Void, "glVertexAttrib4ivARB", [(GLuint, "index"), (Array(Const(GLint), "4"), "v")]),
799     WglFunction(Void, "glVertexAttrib4s", [(GLuint, "index"), (GLshort, "x"), (GLshort, "y"), (GLshort, "z"), (GLshort, "w")]),
800     WglFunction(Void, "glVertexAttrib4sARB", [(GLuint, "index"), (GLshort, "x"), (GLshort, "y"), (GLshort, "z"), (GLshort, "w")]),
801     WglFunction(Void, "glVertexAttrib4sv", [(GLuint, "index"), (Array(Const(GLshort), "4"), "v")]),
802     WglFunction(Void, "glVertexAttrib4svARB", [(GLuint, "index"), (Array(Const(GLshort), "4"), "v")]),
803     WglFunction(Void, "glVertexAttrib4ubv", [(GLuint, "index"), (Array(Const(GLubyte), "4"), "v")]),
804     WglFunction(Void, "glVertexAttrib4ubvARB", [(GLuint, "index"), (Array(Const(GLubyte), "4"), "v")]),
805     WglFunction(Void, "glVertexAttrib4uiv", [(GLuint, "index"), (Array(Const(GLuint), "4"), "v")]),
806     WglFunction(Void, "glVertexAttrib4uivARB", [(GLuint, "index"), (Array(Const(GLuint), "4"), "v")]),
807     WglFunction(Void, "glVertexAttrib4usv", [(GLuint, "index"), (Array(Const(GLushort), "4"), "v")]),
808     WglFunction(Void, "glVertexAttrib4usvARB", [(GLuint, "index"), (Array(Const(GLushort), "4"), "v")]),
809     WglFunction(Void, "glVertexAttribPointer", [(GLuint, "index"), (GLint, "size"), (GLenum, "type"), (GLboolean, "normalized"), (GLsizei, "stride"), (Pointer(Const(GLvoid)), "pointer")]),
810     WglFunction(Void, "glVertexAttribPointerARB", [(GLuint, "index"), (GLint, "size"), (GLenum, "type"), (GLboolean, "normalized"), (GLsizei, "stride"), (Pointer(Const(GLvoid)), "pointer")]),
811     WglFunction(Void, "glBindBufferARB", [(GLenum, "target"), (GLuint, "buffer")]),
812     WglFunction(Void, "glBufferDataARB", [(GLenum, "target"), (GLsizeiptrARB, "size"), (Pointer(Const(GLvoid)), "data"), (GLenum, "usage")]),
813     WglFunction(Void, "glBufferSubDataARB", [(GLenum, "target"), (GLintptrARB, "offset"), (GLsizeiptrARB, "size"), (Pointer(Const(GLvoid)), "data")]),
814     WglFunction(Void, "glDeleteBuffersARB", [(GLsizei, "n"), (Pointer(Const(GLuint)), "buffer")]),
815     WglFunction(Void, "glGenBuffersARB", [(GLsizei, "n"), (Pointer(GLuint), "buffer")]),
816     WglFunction(Void, "glGetBufferParameterivARB", [(GLenum, "target"), (GLenum, "pname"), (Pointer(GLint), "params")]),
817     WglFunction(Void, "glGetBufferPointervARB", [(GLenum, "target"), (GLenum, "pname"), (Pointer(Pointer(GLvoid)), "params")]),
818     WglFunction(Void, "glGetBufferSubDataARB", [(GLenum, "target"), (GLintptrARB, "offset"), (GLsizeiptrARB, "size"), (Pointer(GLvoid), "data")]),
819     WglFunction(GLboolean, "glIsBufferARB", [(GLuint, "buffer")]),
820     WglFunction(Pointer(GLvoid), "glMapBufferARB", [(GLenum, "target"), (GLenum, "access")]),
821     WglFunction(GLboolean, "glUnmapBufferARB", [(GLenum, "target")]),
822     WglFunction(Void, "glBeginQueryARB", [(GLenum, "target"), (GLuint, "id")]),
823     WglFunction(Void, "glDeleteQueriesARB", [(GLsizei, "n"), (Pointer(Const(GLuint)), "ids")]),
824     WglFunction(Void, "glEndQueryARB", [(GLenum, "target")]),
825     WglFunction(Void, "glGenQueriesARB", [(GLsizei, "n"), (Pointer(GLuint), "ids")]),
826     WglFunction(Void, "glGetQueryObjectivARB", [(GLuint, "id"), (GLenum, "pname"), (OutPointer(GLint), "params")]),
827     WglFunction(Void, "glGetQueryObjectuivARB", [(GLuint, "id"), (GLenum, "pname"), (OutPointer(GLuint), "params")]),
828     WglFunction(Void, "glGetQueryivARB", [(GLenum, "target"), (GLenum, "pname"), (OutPointer(GLint), "params")]),
829     WglFunction(GLboolean, "glIsQueryARB", [(GLuint, "id")]),
830     WglFunction(Void, "glAttachObjectARB", [(GLhandleARB, "containerObj"), (GLhandleARB, "obj")]),
831     WglFunction(Void, "glCompileShader", [(GLhandleARB, "shader")]),
832     WglFunction(Void, "glCompileShaderARB", [(GLhandleARB, "shader")]),
833     WglFunction(GLhandleARB, "glCreateProgramObjectARB", []),
834     WglFunction(GLhandleARB, "glCreateShaderObjectARB", [(GLenum, "shaderType")]),
835     WglFunction(Void, "glDeleteObjectARB", [(GLhandleARB, "obj")]),
836     WglFunction(Void, "glDetachObjectARB", [(GLhandleARB, "containerObj"), (GLhandleARB, "attachedObj")]),
837     WglFunction(Void, "glGetActiveUniform", [(GLhandleARB, "program"), (GLuint, "index"), (GLsizei, "bufSize"), (Pointer(GLsizei), "length"), (Pointer(GLint), "size"), (Pointer(GLenum), "type"), (Pointer(GLcharARB), "name")]),
838     WglFunction(Void, "glGetActiveUniformARB", [(GLhandleARB, "program"), (GLuint, "index"), (GLsizei, "bufSize"), (Pointer(GLsizei), "length"), (Pointer(GLint), "size"), (Pointer(GLenum), "type"), (Pointer(GLcharARB), "name")]),
839     WglFunction(Void, "glGetAttachedObjectsARB", [(GLhandleARB, "containerObj"), (GLsizei, "maxLength"), (Pointer(GLsizei), "length"), (Pointer(GLhandleARB), "infoLog")]),
840     WglFunction(GLhandleARB, "glGetHandleARB", [(GLenum, "pname")]),
841     WglFunction(Void, "glGetInfoLogARB", [(GLhandleARB, "obj"), (GLsizei, "maxLength"), (OutPointer(GLsizei), "length"), (Out(GLstringARB), "infoLog")]),
842     WglFunction(Void, "glGetObjectParameterfvARB", [(GLhandleARB, "obj"), (GLenum, "pname"), (Pointer(GLfloat), "params")]),
843     WglFunction(Void, "glGetObjectParameterivARB", [(GLhandleARB, "obj"), (GLenum, "pname"), (Pointer(GLint), "params")]),
844     WglFunction(Void, "glGetShaderSource", [(GLhandleARB, "shader"), (GLsizei, "bufSize"), (Pointer(GLsizei), "length"), (Out(GLstringARB), "source")]),
845     WglFunction(Void, "glGetShaderSourceARB", [(GLhandleARB, "shader"), (GLsizei, "bufSize"), (Pointer(GLsizei), "length"), (Out(GLstringARB), "source")]),
846     WglFunction(GLint, "glGetUniformLocation", [(GLhandleARB, "program"), (Pointer(Const(GLcharARB)), "name")]),
847     WglFunction(GLint, "glGetUniformLocationARB", [(GLhandleARB, "program"), (Pointer(Const(GLcharARB)), "name")]),
848     WglFunction(Void, "glGetUniformfv", [(GLhandleARB, "program"), (GLint, "location"), (Pointer(GLfloat), "params")]),
849     WglFunction(Void, "glGetUniformfvARB", [(GLhandleARB, "program"), (GLint, "location"), (Pointer(GLfloat), "params")]),
850     WglFunction(Void, "glGetUniformiv", [(GLhandleARB, "program"), (GLint, "location"), (Pointer(GLint), "params")]),
851     WglFunction(Void, "glGetUniformivARB", [(GLhandleARB, "program"), (GLint, "location"), (Pointer(GLint), "params")]),
852     WglFunction(Void, "glLinkProgram", [(GLhandleARB, "program")]),
853     WglFunction(Void, "glLinkProgramARB", [(GLhandleARB, "program")]),
854     WglFunction(Void, "glShaderSource", [(GLhandleARB, "shader"), (GLsizei, "count"), (Array(Const(GLstringARB), "count"), "string"), (Pointer(Const(GLint)), "length")]),
855     WglFunction(Void, "glShaderSourceARB", [(GLhandleARB, "shader"), (GLsizei, "count"), (Array(Const(GLstringARB), "count"), "string"), (Pointer(Const(GLint)), "length")]),
856     WglFunction(Void, "glUniform1f", [(GLint, "location"), (GLfloat, "v0")]),
857     WglFunction(Void, "glUniform1fARB", [(GLint, "location"), (GLfloat, "v0")]),
858     WglFunction(Void, "glUniform1fv", [(GLint, "location"), (GLsizei, "count"), (Pointer(Const(GLfloat)), "value")]),
859     WglFunction(Void, "glUniform1fvARB", [(GLint, "location"), (GLsizei, "count"), (Pointer(Const(GLfloat)), "value")]),
860     WglFunction(Void, "glUniform1i", [(GLint, "location"), (GLint, "v0")]),
861     WglFunction(Void, "glUniform1iARB", [(GLint, "location"), (GLint, "v0")]),
862     WglFunction(Void, "glUniform1iv", [(GLint, "location"), (GLsizei, "count"), (Pointer(Const(GLint)), "value")]),
863     WglFunction(Void, "glUniform1ivARB", [(GLint, "location"), (GLsizei, "count"), (Pointer(Const(GLint)), "value")]),
864     WglFunction(Void, "glUniform2f", [(GLint, "location"), (GLfloat, "v0"), (GLfloat, "v1")]),
865     WglFunction(Void, "glUniform2fARB", [(GLint, "location"), (GLfloat, "v0"), (GLfloat, "v1")]),
866     WglFunction(Void, "glUniform2fv", [(GLint, "location"), (GLsizei, "count"), (Pointer(Const(GLfloat)), "value")]),
867     WglFunction(Void, "glUniform2fvARB", [(GLint, "location"), (GLsizei, "count"), (Pointer(Const(GLfloat)), "value")]),
868     WglFunction(Void, "glUniform2i", [(GLint, "location"), (GLint, "v0"), (GLint, "v1")]),
869     WglFunction(Void, "glUniform2iARB", [(GLint, "location"), (GLint, "v0"), (GLint, "v1")]),
870     WglFunction(Void, "glUniform2iv", [(GLint, "location"), (GLsizei, "count"), (Pointer(Const(GLint)), "value")]),
871     WglFunction(Void, "glUniform2ivARB", [(GLint, "location"), (GLsizei, "count"), (Pointer(Const(GLint)), "value")]),
872     WglFunction(Void, "glUniform3f", [(GLint, "location"), (GLfloat, "v0"), (GLfloat, "v1"), (GLfloat, "v2")]),
873     WglFunction(Void, "glUniform3fARB", [(GLint, "location"), (GLfloat, "v0"), (GLfloat, "v1"), (GLfloat, "v2")]),
874     WglFunction(Void, "glUniform3fv", [(GLint, "location"), (GLsizei, "count"), (Pointer(Const(GLfloat)), "value")]),
875     WglFunction(Void, "glUniform3fvARB", [(GLint, "location"), (GLsizei, "count"), (Pointer(Const(GLfloat)), "value")]),
876     WglFunction(Void, "glUniform3i", [(GLint, "location"), (GLint, "v0"), (GLint, "v1"), (GLint, "v2")]),
877     WglFunction(Void, "glUniform3iARB", [(GLint, "location"), (GLint, "v0"), (GLint, "v1"), (GLint, "v2")]),
878     WglFunction(Void, "glUniform3iv", [(GLint, "location"), (GLsizei, "count"), (Pointer(Const(GLint)), "value")]),
879     WglFunction(Void, "glUniform3ivARB", [(GLint, "location"), (GLsizei, "count"), (Pointer(Const(GLint)), "value")]),
880     WglFunction(Void, "glUniform4f", [(GLint, "location"), (GLfloat, "v0"), (GLfloat, "v1"), (GLfloat, "v2"), (GLfloat, "v3")]),
881     WglFunction(Void, "glUniform4fARB", [(GLint, "location"), (GLfloat, "v0"), (GLfloat, "v1"), (GLfloat, "v2"), (GLfloat, "v3")]),
882     WglFunction(Void, "glUniform4fv", [(GLint, "location"), (GLsizei, "count"), (Pointer(Const(GLfloat)), "value")]),
883     WglFunction(Void, "glUniform4fvARB", [(GLint, "location"), (GLsizei, "count"), (Pointer(Const(GLfloat)), "value")]),
884     WglFunction(Void, "glUniform4i", [(GLint, "location"), (GLint, "v0"), (GLint, "v1"), (GLint, "v2"), (GLint, "v3")]),
885     WglFunction(Void, "glUniform4iARB", [(GLint, "location"), (GLint, "v0"), (GLint, "v1"), (GLint, "v2"), (GLint, "v3")]),
886     WglFunction(Void, "glUniform4iv", [(GLint, "location"), (GLsizei, "count"), (Pointer(Const(GLint)), "value")]),
887     WglFunction(Void, "glUniform4ivARB", [(GLint, "location"), (GLsizei, "count"), (Pointer(Const(GLint)), "value")]),
888     WglFunction(Void, "glUniformMatrix2fv", [(GLint, "location"), (GLsizei, "count"), (GLboolean, "transpose"), (Pointer(Const(GLfloat)), "value")]),
889     WglFunction(Void, "glUniformMatrix2fvARB", [(GLint, "location"), (GLsizei, "count"), (GLboolean, "transpose"), (Pointer(Const(GLfloat)), "value")]),
890     WglFunction(Void, "glUniformMatrix3fv", [(GLint, "location"), (GLsizei, "count"), (GLboolean, "transpose"), (Pointer(Const(GLfloat)), "value")]),
891     WglFunction(Void, "glUniformMatrix3fvARB", [(GLint, "location"), (GLsizei, "count"), (GLboolean, "transpose"), (Pointer(Const(GLfloat)), "value")]),
892     WglFunction(Void, "glUniformMatrix4fv", [(GLint, "location"), (GLsizei, "count"), (GLboolean, "transpose"), (Pointer(Const(GLfloat)), "value")]),
893     WglFunction(Void, "glUniformMatrix4fvARB", [(GLint, "location"), (GLsizei, "count"), (GLboolean, "transpose"), (Pointer(Const(GLfloat)), "value")]),
894     WglFunction(Void, "glUseProgram", [(GLhandleARB, "program")]),
895     WglFunction(Void, "glUseProgramObjectARB", [(GLhandleARB, "program")]),
896     WglFunction(Void, "glValidateProgram", [(GLhandleARB, "program")]),
897     WglFunction(Void, "glValidateProgramARB", [(GLhandleARB, "program")]),
898     WglFunction(Void, "glBindAttribLocation", [(GLhandleARB, "program"), (GLuint, "index"), (Pointer(Const(GLcharARB)), "name")]),
899     WglFunction(Void, "glBindAttribLocationARB", [(GLhandleARB, "program"), (GLuint, "index"), (Pointer(Const(GLcharARB)), "name")]),
900     WglFunction(Void, "glGetActiveAttrib", [(GLhandleARB, "program"), (GLuint, "index"), (GLsizei, "bufSize"), (Pointer(GLsizei), "length"), (Pointer(GLint), "size"), (Pointer(GLenum), "type"), (Pointer(GLcharARB), "name")]),
901     WglFunction(Void, "glGetActiveAttribARB", [(GLhandleARB, "program"), (GLuint, "index"), (GLsizei, "bufSize"), (Pointer(GLsizei), "length"), (Pointer(GLint), "size"), (Pointer(GLenum), "type"), (Pointer(GLcharARB), "name")]),
902     WglFunction(GLint, "glGetAttribLocation", [(GLhandleARB, "program"), (Pointer(Const(GLcharARB)), "name")]),
903     WglFunction(GLint, "glGetAttribLocationARB", [(GLhandleARB, "program"), (Pointer(Const(GLcharARB)), "name")]),
904     WglFunction(Void, "glDrawBuffers", [(GLsizei, "n"), (Pointer(Const(GLenum)), "bufs")]),
905     WglFunction(Void, "glDrawBuffersARB", [(GLsizei, "n"), (Pointer(Const(GLenum)), "bufs")]),
906     WglFunction(Void, "glDrawBuffersATI", [(GLsizei, "n"), (Pointer(Const(GLenum)), "bufs")]),
907     WglFunction(Void, "glRenderbufferStorageMultisample", [(GLenum, "target"), (GLsizei, "samples"), (GLenum, "internalformat"), (GLsizei, "width"), (GLsizei, "height")]),
908     WglFunction(Void, "glRenderbufferStorageMultisampleEXT", [(GLenum, "target"), (GLsizei, "samples"), (GLenum, "internalformat"), (GLsizei, "width"), (GLsizei, "height")]),
909     WglFunction(Void, "glFlushMappedBufferRange", [(GLenum, "target"), (GLintptr, "offset"), (GLsizeiptr, "length")]),
910     WglFunction(Pointer(GLvoid), "glMapBufferRange", [(GLenum, "target"), (GLintptr, "offset"), (GLsizeiptr, "length"), (GLbitfield, "access")]),
911     WglFunction(Void, "glBindVertexArray", [(GLuint, "array")]),
912     WglFunction(Void, "glGenVertexArrays", [(GLsizei, "n"), (Pointer(GLuint), "arrays")]),
913     WglFunction(Void, "glCopyBufferSubData", [(GLenum, "readTarget"), (GLenum, "writeTarget"), (GLintptr, "readOffset"), (GLintptr, "writeOffset"), (GLsizeiptr, "size")]),
914     #WglFunction(GLenum, "glClientWaitSync", [(GLsync, "sync"), (GLbitfield, "flags"), (GLuint64, "timeout")]),
915     #WglFunction(Void, "glDeleteSync", [(GLsync, "sync")]),
916     #WglFunction(GLsync, "glFenceSync", [(GLenum, "condition"), (GLbitfield, "flags")]),
917     #WglFunction(Void, "glGetInteger64v", [(GLenum, "pname"), (Pointer(GLint64), "params")]),
918     #WglFunction(Void, "glGetSynciv", [(GLsync, "sync"), (GLenum, "pname"), (GLsizei, "bufSize"), (Pointer(GLsizei), "length"), (Pointer(GLint), "values")]),
919     #WglFunction(GLboolean, "glIsSync", [(GLsync, "sync")]),
920     #WglFunction(Void, "glWaitSync", [(GLsync, "sync"), (GLbitfield, "flags"), (GLuint64, "timeout")]),
921     WglFunction(Void, "glDrawElementsBaseVertex", [(GLenum, "mode"), (GLsizei, "count"), (GLenum, "type"), (Pointer(Const(GLvoid)), "indices"), (GLint, "basevertex")]),
922     WglFunction(Void, "glDrawRangeElementsBaseVertex", [(GLenum, "mode"), (GLuint, "start"), (GLuint, "end"), (GLsizei, "count"), (GLenum, "type"), (Pointer(Const(GLvoid)), "indices"), (GLint, "basevertex")]),
923     WglFunction(Void, "glMultiDrawElementsBaseVertex", [(GLenum, "mode"), (Pointer(Const(GLsizei)), "count"), (GLenum, "type"), (Pointer(Pointer(Const(GLvoid))), "indices"), (GLsizei, "primcount"), (Pointer(Const(GLint)), "basevertex")]),
924     WglFunction(Void, "glPolygonOffsetEXT", [(GLfloat, "factor"), (GLfloat, "bias")]),
925     WglFunction(Void, "glGetPixelTexGenParameterfvSGIS", [(GLenum, "pname"), (Pointer(GLfloat), "params")]),
926     WglFunction(Void, "glGetPixelTexGenParameterivSGIS", [(GLenum, "pname"), (Pointer(GLint), "params")]),
927     WglFunction(Void, "glPixelTexGenParameterfSGIS", [(GLenum, "pname"), (GLfloat, "param")]),
928     WglFunction(Void, "glPixelTexGenParameterfvSGIS", [(GLenum, "pname"), (Pointer(Const(GLfloat)), "params")]),
929     WglFunction(Void, "glPixelTexGenParameteriSGIS", [(GLenum, "pname"), (GLint, "param")]),
930     WglFunction(Void, "glPixelTexGenParameterivSGIS", [(GLenum, "pname"), (Pointer(Const(GLint)), "params")]),
931     WglFunction(Void, "glSampleMaskSGIS", [(GLclampf, "value"), (GLboolean, "invert")]),
932     WglFunction(Void, "glSampleMaskEXT", [(GLclampf, "value"), (GLboolean, "invert")]),
933     WglFunction(Void, "glSamplePatternSGIS", [(GLenum, "pattern")]),
934     WglFunction(Void, "glSamplePatternEXT", [(GLenum, "pattern")]),
935     WglFunction(Void, "glColorPointerEXT", [(GLint, "size"), (GLenum, "type"), (GLsizei, "stride"), (GLsizei, "count"), (Pointer(Const(GLvoid)), "pointer")]),
936     WglFunction(Void, "glEdgeFlagPointerEXT", [(GLsizei, "stride"), (GLsizei, "count"), (Pointer(Const(GLboolean)), "pointer")]),
937     WglFunction(Void, "glIndexPointerEXT", [(GLenum, "type"), (GLsizei, "stride"), (GLsizei, "count"), (Pointer(Const(GLvoid)), "pointer")]),
938     WglFunction(Void, "glNormalPointerEXT", [(GLenum, "type"), (GLsizei, "stride"), (GLsizei, "count"), (Pointer(Const(GLvoid)), "pointer")]),
939     WglFunction(Void, "glTexCoordPointerEXT", [(GLint, "size"), (GLenum, "type"), (GLsizei, "stride"), (GLsizei, "count"), (Pointer(Const(GLvoid)), "pointer")]),
940     WglFunction(Void, "glVertexPointerEXT", [(GLint, "size"), (GLenum, "type"), (GLsizei, "stride"), (GLsizei, "count"), (Pointer(Const(GLvoid)), "pointer")]),
941     WglFunction(Void, "glPointParameterf", [(GLenum, "pname"), (GLfloat, "param")]),
942     WglFunction(Void, "glPointParameterfARB", [(GLenum, "pname"), (GLfloat, "param")]),
943     WglFunction(Void, "glPointParameterfEXT", [(GLenum, "pname"), (GLfloat, "param")]),
944     WglFunction(Void, "glPointParameterfSGIS", [(GLenum, "pname"), (GLfloat, "param")]),
945     WglFunction(Void, "glPointParameterfv", [(GLenum, "pname"), (Pointer(Const(GLfloat)), "params")]),
946     WglFunction(Void, "glPointParameterfvARB", [(GLenum, "pname"), (Pointer(Const(GLfloat)), "params")]),
947     WglFunction(Void, "glPointParameterfvEXT", [(GLenum, "pname"), (Pointer(Const(GLfloat)), "params")]),
948     WglFunction(Void, "glPointParameterfvSGIS", [(GLenum, "pname"), (Pointer(Const(GLfloat)), "params")]),
949     WglFunction(Void, "glLockArraysEXT", [(GLint, "first"), (GLsizei, "count")]),
950     WglFunction(Void, "glUnlockArraysEXT", []),
951     WglFunction(Void, "glCullParameterdvEXT", [(GLenum, "pname"), (Pointer(GLdouble), "params")]),
952     WglFunction(Void, "glCullParameterfvEXT", [(GLenum, "pname"), (Pointer(GLfloat), "params")]),
953     WglFunction(Void, "glSecondaryColor3b", [(GLbyte, "red"), (GLbyte, "green"), (GLbyte, "blue")]),
954     WglFunction(Void, "glSecondaryColor3bEXT", [(GLbyte, "red"), (GLbyte, "green"), (GLbyte, "blue")]),
955     WglFunction(Void, "glSecondaryColor3bv", [(Array(Const(GLbyte), "3"), "v")]),
956     WglFunction(Void, "glSecondaryColor3bvEXT", [(Array(Const(GLbyte), "3"), "v")]),
957     WglFunction(Void, "glSecondaryColor3d", [(GLdouble, "red"), (GLdouble, "green"), (GLdouble, "blue")]),
958     WglFunction(Void, "glSecondaryColor3dEXT", [(GLdouble, "red"), (GLdouble, "green"), (GLdouble, "blue")]),
959     WglFunction(Void, "glSecondaryColor3dv", [(Array(Const(GLdouble), "3"), "v")]),
960     WglFunction(Void, "glSecondaryColor3dvEXT", [(Array(Const(GLdouble), "3"), "v")]),
961     WglFunction(Void, "glSecondaryColor3f", [(GLfloat, "red"), (GLfloat, "green"), (GLfloat, "blue")]),
962     WglFunction(Void, "glSecondaryColor3fEXT", [(GLfloat, "red"), (GLfloat, "green"), (GLfloat, "blue")]),
963     WglFunction(Void, "glSecondaryColor3fv", [(Array(Const(GLfloat), "3"), "v")]),
964     WglFunction(Void, "glSecondaryColor3fvEXT", [(Array(Const(GLfloat), "3"), "v")]),
965     WglFunction(Void, "glSecondaryColor3i", [(GLint, "red"), (GLint, "green"), (GLint, "blue")]),
966     WglFunction(Void, "glSecondaryColor3iEXT", [(GLint, "red"), (GLint, "green"), (GLint, "blue")]),
967     WglFunction(Void, "glSecondaryColor3iv", [(Array(Const(GLint), "3"), "v")]),
968     WglFunction(Void, "glSecondaryColor3ivEXT", [(Array(Const(GLint), "3"), "v")]),
969     WglFunction(Void, "glSecondaryColor3s", [(GLshort, "red"), (GLshort, "green"), (GLshort, "blue")]),
970     WglFunction(Void, "glSecondaryColor3sEXT", [(GLshort, "red"), (GLshort, "green"), (GLshort, "blue")]),
971     WglFunction(Void, "glSecondaryColor3sv", [(Array(Const(GLshort), "3"), "v")]),
972     WglFunction(Void, "glSecondaryColor3svEXT", [(Array(Const(GLshort), "3"), "v")]),
973     WglFunction(Void, "glSecondaryColor3ub", [(GLubyte, "red"), (GLubyte, "green"), (GLubyte, "blue")]),
974     WglFunction(Void, "glSecondaryColor3ubEXT", [(GLubyte, "red"), (GLubyte, "green"), (GLubyte, "blue")]),
975     WglFunction(Void, "glSecondaryColor3ubv", [(Array(Const(GLubyte), "3"), "v")]),
976     WglFunction(Void, "glSecondaryColor3ubvEXT", [(Array(Const(GLubyte), "3"), "v")]),
977     WglFunction(Void, "glSecondaryColor3ui", [(GLuint, "red"), (GLuint, "green"), (GLuint, "blue")]),
978     WglFunction(Void, "glSecondaryColor3uiEXT", [(GLuint, "red"), (GLuint, "green"), (GLuint, "blue")]),
979     WglFunction(Void, "glSecondaryColor3uiv", [(Array(Const(GLuint), "3"), "v")]),
980     WglFunction(Void, "glSecondaryColor3uivEXT", [(Array(Const(GLuint), "3"), "v")]),
981     WglFunction(Void, "glSecondaryColor3us", [(GLushort, "red"), (GLushort, "green"), (GLushort, "blue")]),
982     WglFunction(Void, "glSecondaryColor3usEXT", [(GLushort, "red"), (GLushort, "green"), (GLushort, "blue")]),
983     WglFunction(Void, "glSecondaryColor3usv", [(Array(Const(GLushort), "3"), "v")]),
984     WglFunction(Void, "glSecondaryColor3usvEXT", [(Array(Const(GLushort), "3"), "v")]),
985     WglFunction(Void, "glSecondaryColorPointer", [(GLint, "size"), (GLenum, "type"), (GLsizei, "stride"), (Pointer(Const(GLvoid)), "pointer")]),
986     WglFunction(Void, "glSecondaryColorPointerEXT", [(GLint, "size"), (GLenum, "type"), (GLsizei, "stride"), (Pointer(Const(GLvoid)), "pointer")]),
987     WglFunction(Void, "glMultiDrawArrays", [(GLenum, "mode"), (Pointer(GLint), "first"), (Pointer(GLsizei), "count"), (GLsizei, "primcount")]),
988     WglFunction(Void, "glMultiDrawArraysEXT", [(GLenum, "mode"), (Pointer(GLint), "first"), (Pointer(GLsizei), "count"), (GLsizei, "primcount")]),
989     WglFunction(Void, "glMultiDrawElements", [(GLenum, "mode"), (Pointer(Const(GLsizei)), "count"), (GLenum, "type"), (Pointer(Pointer(Const(GLvoid))), "indices"), (GLsizei, "primcount")]),
990     WglFunction(Void, "glMultiDrawElementsEXT", [(GLenum, "mode"), (Pointer(Const(GLsizei)), "count"), (GLenum, "type"), (Pointer(Pointer(Const(GLvoid))), "indices"), (GLsizei, "primcount")]),
991     WglFunction(Void, "glFogCoordPointer", [(GLenum, "type"), (GLsizei, "stride"), (Pointer(Const(GLvoid)), "pointer")]),
992     WglFunction(Void, "glFogCoordPointerEXT", [(GLenum, "type"), (GLsizei, "stride"), (Pointer(Const(GLvoid)), "pointer")]),
993     WglFunction(Void, "glFogCoordd", [(GLdouble, "coord")]),
994     WglFunction(Void, "glFogCoorddEXT", [(GLdouble, "coord")]),
995     WglFunction(Void, "glFogCoorddv", [(Array(Const(GLdouble), "1"), "coord")]),
996     WglFunction(Void, "glFogCoorddvEXT", [(Array(Const(GLdouble), "1"), "coord")]),
997     WglFunction(Void, "glFogCoordf", [(GLfloat, "coord")]),
998     WglFunction(Void, "glFogCoordfEXT", [(GLfloat, "coord")]),
999     WglFunction(Void, "glFogCoordfv", [(Array(Const(GLfloat), "1"), "coord")]),
1000     WglFunction(Void, "glFogCoordfvEXT", [(Array(Const(GLfloat), "1"), "coord")]),
1001     WglFunction(Void, "glPixelTexGenSGIX", [(GLenum, "mode")]),
1002     WglFunction(Void, "glBlendFuncSeparate", [(GLenum, "sfactorRGB"), (GLenum, "dfactorRGB"), (GLenum, "sfactorAlpha"), (GLenum, "dfactorAlpha")]),
1003     WglFunction(Void, "glBlendFuncSeparateEXT", [(GLenum, "sfactorRGB"), (GLenum, "dfactorRGB"), (GLenum, "sfactorAlpha"), (GLenum, "dfactorAlpha")]),
1004     WglFunction(Void, "glBlendFuncSeparateINGR", [(GLenum, "sfactorRGB"), (GLenum, "dfactorRGB"), (GLenum, "sfactorAlpha"), (GLenum, "dfactorAlpha")]),
1005     WglFunction(Void, "glFlushVertexArrayRangeNV", []),
1006     WglFunction(Void, "glVertexArrayRangeNV", [(GLsizei, "length"), (Pointer(Const(GLvoid)), "pointer")]),
1007     WglFunction(Void, "glCombinerInputNV", [(GLenum, "stage"), (GLenum, "portion"), (GLenum, "variable"), (GLenum, "input"), (GLenum, "mapping"), (GLenum, "componentUsage")]),
1008     WglFunction(Void, "glCombinerOutputNV", [(GLenum, "stage"), (GLenum, "portion"), (GLenum, "abOutput"), (GLenum, "cdOutput"), (GLenum, "sumOutput"), (GLenum, "scale"), (GLenum, "bias"), (GLboolean, "abDotProduct"), (GLboolean, "cdDotProduct"), (GLboolean, "muxSum")]),
1009     WglFunction(Void, "glCombinerParameterfNV", [(GLenum, "pname"), (GLfloat, "param")]),
1010     WglFunction(Void, "glCombinerParameterfvNV", [(GLenum, "pname"), (Pointer(Const(GLfloat)), "params")]),
1011     WglFunction(Void, "glCombinerParameteriNV", [(GLenum, "pname"), (GLint, "param")]),
1012     WglFunction(Void, "glCombinerParameterivNV", [(GLenum, "pname"), (Pointer(Const(GLint)), "params")]),
1013     WglFunction(Void, "glFinalCombinerInputNV", [(GLenum, "variable"), (GLenum, "input"), (GLenum, "mapping"), (GLenum, "componentUsage")]),
1014     WglFunction(Void, "glGetCombinerInputParameterfvNV", [(GLenum, "stage"), (GLenum, "portion"), (GLenum, "variable"), (GLenum, "pname"), (Pointer(GLfloat), "params")]),
1015     WglFunction(Void, "glGetCombinerInputParameterivNV", [(GLenum, "stage"), (GLenum, "portion"), (GLenum, "variable"), (GLenum, "pname"), (Pointer(GLint), "params")]),
1016     WglFunction(Void, "glGetCombinerOutputParameterfvNV", [(GLenum, "stage"), (GLenum, "portion"), (GLenum, "pname"), (Pointer(GLfloat), "params")]),
1017     WglFunction(Void, "glGetCombinerOutputParameterivNV", [(GLenum, "stage"), (GLenum, "portion"), (GLenum, "pname"), (Pointer(GLint), "params")]),
1018     WglFunction(Void, "glGetFinalCombinerInputParameterfvNV", [(GLenum, "variable"), (GLenum, "pname"), (Pointer(GLfloat), "params")]),
1019     WglFunction(Void, "glGetFinalCombinerInputParameterivNV", [(GLenum, "variable"), (GLenum, "pname"), (Pointer(GLint), "params")]),
1020     WglFunction(Void, "glResizeBuffersMESA", []),
1021     WglFunction(Void, "glWindowPos2d", [(GLdouble, "x"), (GLdouble, "y")]),
1022     WglFunction(Void, "glWindowPos2dARB", [(GLdouble, "x"), (GLdouble, "y")]),
1023     WglFunction(Void, "glWindowPos2dMESA", [(GLdouble, "x"), (GLdouble, "y")]),
1024     WglFunction(Void, "glWindowPos2dv", [(Array(Const(GLdouble), "2"), "v")]),
1025     WglFunction(Void, "glWindowPos2dvARB", [(Array(Const(GLdouble), "2"), "v")]),
1026     WglFunction(Void, "glWindowPos2dvMESA", [(Array(Const(GLdouble), "2"), "v")]),
1027     WglFunction(Void, "glWindowPos2f", [(GLfloat, "x"), (GLfloat, "y")]),
1028     WglFunction(Void, "glWindowPos2fARB", [(GLfloat, "x"), (GLfloat, "y")]),
1029     WglFunction(Void, "glWindowPos2fMESA", [(GLfloat, "x"), (GLfloat, "y")]),
1030     WglFunction(Void, "glWindowPos2fv", [(Array(Const(GLfloat), "2"), "v")]),
1031     WglFunction(Void, "glWindowPos2fvARB", [(Array(Const(GLfloat), "2"), "v")]),
1032     WglFunction(Void, "glWindowPos2fvMESA", [(Array(Const(GLfloat), "2"), "v")]),
1033     WglFunction(Void, "glWindowPos2i", [(GLint, "x"), (GLint, "y")]),
1034     WglFunction(Void, "glWindowPos2iARB", [(GLint, "x"), (GLint, "y")]),
1035     WglFunction(Void, "glWindowPos2iMESA", [(GLint, "x"), (GLint, "y")]),
1036     WglFunction(Void, "glWindowPos2iv", [(Array(Const(GLint), "2"), "v")]),
1037     WglFunction(Void, "glWindowPos2ivARB", [(Array(Const(GLint), "2"), "v")]),
1038     WglFunction(Void, "glWindowPos2ivMESA", [(Array(Const(GLint), "2"), "v")]),
1039     WglFunction(Void, "glWindowPos2s", [(GLshort, "x"), (GLshort, "y")]),
1040     WglFunction(Void, "glWindowPos2sARB", [(GLshort, "x"), (GLshort, "y")]),
1041     WglFunction(Void, "glWindowPos2sMESA", [(GLshort, "x"), (GLshort, "y")]),
1042     WglFunction(Void, "glWindowPos2sv", [(Array(Const(GLshort), "2"), "v")]),
1043     WglFunction(Void, "glWindowPos2svARB", [(Array(Const(GLshort), "2"), "v")]),
1044     WglFunction(Void, "glWindowPos2svMESA", [(Array(Const(GLshort), "2"), "v")]),
1045     WglFunction(Void, "glWindowPos3d", [(GLdouble, "x"), (GLdouble, "y"), (GLdouble, "z")]),
1046     WglFunction(Void, "glWindowPos3dARB", [(GLdouble, "x"), (GLdouble, "y"), (GLdouble, "z")]),
1047     WglFunction(Void, "glWindowPos3dMESA", [(GLdouble, "x"), (GLdouble, "y"), (GLdouble, "z")]),
1048     WglFunction(Void, "glWindowPos3dv", [(Array(Const(GLdouble), "3"), "v")]),
1049     WglFunction(Void, "glWindowPos3dvARB", [(Array(Const(GLdouble), "3"), "v")]),
1050     WglFunction(Void, "glWindowPos3dvMESA", [(Array(Const(GLdouble), "3"), "v")]),
1051     WglFunction(Void, "glWindowPos3f", [(GLfloat, "x"), (GLfloat, "y"), (GLfloat, "z")]),
1052     WglFunction(Void, "glWindowPos3fARB", [(GLfloat, "x"), (GLfloat, "y"), (GLfloat, "z")]),
1053     WglFunction(Void, "glWindowPos3fMESA", [(GLfloat, "x"), (GLfloat, "y"), (GLfloat, "z")]),
1054     WglFunction(Void, "glWindowPos3fv", [(Array(Const(GLfloat), "3"), "v")]),
1055     WglFunction(Void, "glWindowPos3fvARB", [(Array(Const(GLfloat), "3"), "v")]),
1056     WglFunction(Void, "glWindowPos3fvMESA", [(Array(Const(GLfloat), "3"), "v")]),
1057     WglFunction(Void, "glWindowPos3i", [(GLint, "x"), (GLint, "y"), (GLint, "z")]),
1058     WglFunction(Void, "glWindowPos3iARB", [(GLint, "x"), (GLint, "y"), (GLint, "z")]),
1059     WglFunction(Void, "glWindowPos3iMESA", [(GLint, "x"), (GLint, "y"), (GLint, "z")]),
1060     WglFunction(Void, "glWindowPos3iv", [(Array(Const(GLint), "3"), "v")]),
1061     WglFunction(Void, "glWindowPos3ivARB", [(Array(Const(GLint), "3"), "v")]),
1062     WglFunction(Void, "glWindowPos3ivMESA", [(Array(Const(GLint), "3"), "v")]),
1063     WglFunction(Void, "glWindowPos3s", [(GLshort, "x"), (GLshort, "y"), (GLshort, "z")]),
1064     WglFunction(Void, "glWindowPos3sARB", [(GLshort, "x"), (GLshort, "y"), (GLshort, "z")]),
1065     WglFunction(Void, "glWindowPos3sMESA", [(GLshort, "x"), (GLshort, "y"), (GLshort, "z")]),
1066     WglFunction(Void, "glWindowPos3sv", [(Array(Const(GLshort), "3"), "v")]),
1067     WglFunction(Void, "glWindowPos3svARB", [(Array(Const(GLshort), "3"), "v")]),
1068     WglFunction(Void, "glWindowPos3svMESA", [(Array(Const(GLshort), "3"), "v")]),
1069     WglFunction(Void, "glWindowPos4dMESA", [(GLdouble, "x"), (GLdouble, "y"), (GLdouble, "z"), (GLdouble, "w")]),
1070     WglFunction(Void, "glWindowPos4dvMESA", [(Array(Const(GLdouble), "4"), "v")]),
1071     WglFunction(Void, "glWindowPos4fMESA", [(GLfloat, "x"), (GLfloat, "y"), (GLfloat, "z"), (GLfloat, "w")]),
1072     WglFunction(Void, "glWindowPos4fvMESA", [(Array(Const(GLfloat), "4"), "v")]),
1073     WglFunction(Void, "glWindowPos4iMESA", [(GLint, "x"), (GLint, "y"), (GLint, "z"), (GLint, "w")]),
1074     WglFunction(Void, "glWindowPos4ivMESA", [(Array(Const(GLint), "4"), "v")]),
1075     WglFunction(Void, "glWindowPos4sMESA", [(GLshort, "x"), (GLshort, "y"), (GLshort, "z"), (GLshort, "w")]),
1076     WglFunction(Void, "glWindowPos4svMESA", [(Array(Const(GLshort), "4"), "v")]),
1077     WglFunction(Void, "glMultiModeDrawArraysIBM", [(Pointer(Const(GLenum)), "mode"), (Pointer(Const(GLint)), "first"), (Pointer(Const(GLsizei)), "count"), (GLsizei, "primcount"), (GLint, "modestride")]),
1078     WglFunction(Void, "glMultiModeDrawElementsIBM", [(Pointer(Const(GLenum)), "mode"), (Pointer(Const(GLsizei)), "count"), (GLenum, "type"), (Pointer(Const(Pointer(Const(GLvoid)))), "indices"), (GLsizei, "primcount"), (GLint, "modestride")]),
1079     WglFunction(Void, "glDeleteFencesNV", [(GLsizei, "n"), (Pointer(Const(GLuint)), "fences")]),
1080     WglFunction(Void, "glFinishFenceNV", [(GLuint, "fence")]),
1081     WglFunction(Void, "glGenFencesNV", [(GLsizei, "n"), (Pointer(GLuint), "fences")]),
1082     WglFunction(Void, "glGetFenceivNV", [(GLuint, "fence"), (GLenum, "pname"), (Pointer(GLint), "params")]),
1083     WglFunction(GLboolean, "glIsFenceNV", [(GLuint, "fence")]),
1084     WglFunction(Void, "glSetFenceNV", [(GLuint, "fence"), (GLenum, "condition")]),
1085     WglFunction(GLboolean, "glTestFenceNV", [(GLuint, "fence")]),
1086     WglFunction(GLboolean, "glAreProgramsResidentNV", [(GLsizei, "n"), (Pointer(Const(GLuint)), "ids"), (Pointer(GLboolean), "residences")]),
1087     WglFunction(Void, "glBindProgramARB", [(GLenum, "target"), (GLuint, "program")]),
1088     WglFunction(Void, "glBindProgramNV", [(GLenum, "target"), (GLuint, "program")]),
1089     WglFunction(Void, "glDeleteProgramsARB", [(GLsizei, "n"), (Pointer(Const(GLuint)), "programs")]),
1090     WglFunction(Void, "glDeleteProgramsNV", [(GLsizei, "n"), (Pointer(Const(GLuint)), "programs")]),
1091     WglFunction(Void, "glExecuteProgramNV", [(GLenum, "target"), (GLuint, "id"), (Array(Const(GLfloat), "4"), "params")]),
1092     WglFunction(Void, "glGenProgramsARB", [(GLsizei, "n"), (Pointer(GLuint), "programs")]),
1093     WglFunction(Void, "glGenProgramsNV", [(GLsizei, "n"), (Pointer(GLuint), "programs")]),
1094     WglFunction(Void, "glGetProgramParameterdvNV", [(GLenum, "target"), (GLuint, "index"), (GLenum, "pname"), (Array(GLdouble, "4"), "params")]),
1095     WglFunction(Void, "glGetProgramParameterfvNV", [(GLenum, "target"), (GLuint, "index"), (GLenum, "pname"), (Array(GLfloat, "4"), "params")]),
1096     WglFunction(Void, "glGetProgramStringNV", [(GLuint, "id"), (GLenum, "pname"), (Pointer(GLubyte), "program")]),
1097     WglFunction(Void, "glGetProgramivNV", [(GLuint, "id"), (GLenum, "pname"), (Pointer(GLint), "params")]),
1098     WglFunction(Void, "glGetTrackMatrixivNV", [(GLenum, "target"), (GLuint, "address"), (GLenum, "pname"), (Array(GLint, "1"), "params")]),
1099     WglFunction(Void, "glGetVertexAttribPointerv", [(GLuint, "index"), (GLenum, "pname"), (Pointer(Pointer(GLvoid)), "pointer")]),
1100     WglFunction(Void, "glGetVertexAttribPointervARB", [(GLuint, "index"), (GLenum, "pname"), (Pointer(Pointer(GLvoid)), "pointer")]),
1101     WglFunction(Void, "glGetVertexAttribPointervNV", [(GLuint, "index"), (GLenum, "pname"), (Pointer(Pointer(GLvoid)), "pointer")]),
1102     WglFunction(Void, "glGetVertexAttribdvNV", [(GLuint, "index"), (GLenum, "pname"), (Pointer(GLdouble), "params")]),
1103     WglFunction(Void, "glGetVertexAttribfvNV", [(GLuint, "index"), (GLenum, "pname"), (Pointer(GLfloat), "params")]),
1104     WglFunction(Void, "glGetVertexAttribivNV", [(GLuint, "index"), (GLenum, "pname"), (Pointer(GLint), "params")]),
1105     WglFunction(GLboolean, "glIsProgramARB", [(GLuint, "program")]),
1106     WglFunction(GLboolean, "glIsProgramNV", [(GLuint, "program")]),
1107     WglFunction(Void, "glLoadProgramNV", [(GLenum, "target"), (GLuint, "id"), (GLsizei, "len"), (Pointer(Const(GLubyte)), "program")]),
1108     WglFunction(Void, "glProgramParameters4dvNV", [(GLenum, "target"), (GLuint, "index"), (GLuint, "num"), (Pointer(Const(GLdouble)), "params")]),
1109     WglFunction(Void, "glProgramParameters4fvNV", [(GLenum, "target"), (GLuint, "index"), (GLuint, "num"), (Pointer(Const(GLfloat)), "params")]),
1110     WglFunction(Void, "glRequestResidentProgramsNV", [(GLsizei, "n"), (Pointer(Const(GLuint)), "ids")]),
1111     WglFunction(Void, "glTrackMatrixNV", [(GLenum, "target"), (GLuint, "address"), (GLenum, "matrix"), (GLenum, "transform")]),
1112     WglFunction(Void, "glVertexAttrib1dNV", [(GLuint, "index"), (GLdouble, "x")]),
1113     WglFunction(Void, "glVertexAttrib1dvNV", [(GLuint, "index"), (Array(Const(GLdouble), "1"), "v")]),
1114     WglFunction(Void, "glVertexAttrib1fNV", [(GLuint, "index"), (GLfloat, "x")]),
1115     WglFunction(Void, "glVertexAttrib1fvNV", [(GLuint, "index"), (Array(Const(GLfloat), "1"), "v")]),
1116     WglFunction(Void, "glVertexAttrib1sNV", [(GLuint, "index"), (GLshort, "x")]),
1117     WglFunction(Void, "glVertexAttrib1svNV", [(GLuint, "index"), (Array(Const(GLshort), "1"), "v")]),
1118     WglFunction(Void, "glVertexAttrib2dNV", [(GLuint, "index"), (GLdouble, "x"), (GLdouble, "y")]),
1119     WglFunction(Void, "glVertexAttrib2dvNV", [(GLuint, "index"), (Array(Const(GLdouble), "2"), "v")]),
1120     WglFunction(Void, "glVertexAttrib2fNV", [(GLuint, "index"), (GLfloat, "x"), (GLfloat, "y")]),
1121     WglFunction(Void, "glVertexAttrib2fvNV", [(GLuint, "index"), (Array(Const(GLfloat), "2"), "v")]),
1122     WglFunction(Void, "glVertexAttrib2sNV", [(GLuint, "index"), (GLshort, "x"), (GLshort, "y")]),
1123     WglFunction(Void, "glVertexAttrib2svNV", [(GLuint, "index"), (Array(Const(GLshort), "2"), "v")]),
1124     WglFunction(Void, "glVertexAttrib3dNV", [(GLuint, "index"), (GLdouble, "x"), (GLdouble, "y"), (GLdouble, "z")]),
1125     WglFunction(Void, "glVertexAttrib3dvNV", [(GLuint, "index"), (Array(Const(GLdouble), "3"), "v")]),
1126     WglFunction(Void, "glVertexAttrib3fNV", [(GLuint, "index"), (GLfloat, "x"), (GLfloat, "y"), (GLfloat, "z")]),
1127     WglFunction(Void, "glVertexAttrib3fvNV", [(GLuint, "index"), (Array(Const(GLfloat), "3"), "v")]),
1128     WglFunction(Void, "glVertexAttrib3sNV", [(GLuint, "index"), (GLshort, "x"), (GLshort, "y"), (GLshort, "z")]),
1129     WglFunction(Void, "glVertexAttrib3svNV", [(GLuint, "index"), (Array(Const(GLshort), "3"), "v")]),
1130     WglFunction(Void, "glVertexAttrib4dNV", [(GLuint, "index"), (GLdouble, "x"), (GLdouble, "y"), (GLdouble, "z"), (GLdouble, "w")]),
1131     WglFunction(Void, "glVertexAttrib4dvNV", [(GLuint, "index"), (Array(Const(GLdouble), "4"), "v")]),
1132     WglFunction(Void, "glVertexAttrib4fNV", [(GLuint, "index"), (GLfloat, "x"), (GLfloat, "y"), (GLfloat, "z"), (GLfloat, "w")]),
1133     WglFunction(Void, "glVertexAttrib4fvNV", [(GLuint, "index"), (Array(Const(GLfloat), "4"), "v")]),
1134     WglFunction(Void, "glVertexAttrib4sNV", [(GLuint, "index"), (GLshort, "x"), (GLshort, "y"), (GLshort, "z"), (GLshort, "w")]),
1135     WglFunction(Void, "glVertexAttrib4svNV", [(GLuint, "index"), (Array(Const(GLshort), "4"), "v")]),
1136     WglFunction(Void, "glVertexAttrib4ubNV", [(GLuint, "index"), (GLubyte, "x"), (GLubyte, "y"), (GLubyte, "z"), (GLubyte, "w")]),
1137     WglFunction(Void, "glVertexAttrib4ubvNV", [(GLuint, "index"), (Array(Const(GLubyte), "4"), "v")]),
1138     WglFunction(Void, "glVertexAttribPointerNV", [(GLuint, "index"), (GLint, "size"), (GLenum, "type"), (GLsizei, "stride"), (Pointer(Const(GLvoid)), "pointer")]),
1139     WglFunction(Void, "glVertexAttribs1dvNV", [(GLuint, "index"), (GLsizei, "n"), (Array(Const(GLdouble), "1"), "v")]),
1140     WglFunction(Void, "glVertexAttribs1fvNV", [(GLuint, "index"), (GLsizei, "n"), (Array(Const(GLfloat), "1"), "v")]),
1141     WglFunction(Void, "glVertexAttribs1svNV", [(GLuint, "index"), (GLsizei, "n"), (Array(Const(GLshort), "1"), "v")]),
1142     WglFunction(Void, "glVertexAttribs2dvNV", [(GLuint, "index"), (GLsizei, "n"), (Array(Const(GLdouble), "2"), "v")]),
1143     WglFunction(Void, "glVertexAttribs2fvNV", [(GLuint, "index"), (GLsizei, "n"), (Array(Const(GLfloat), "2"), "v")]),
1144     WglFunction(Void, "glVertexAttribs2svNV", [(GLuint, "index"), (GLsizei, "n"), (Array(Const(GLshort), "2"), "v")]),
1145     WglFunction(Void, "glVertexAttribs3dvNV", [(GLuint, "index"), (GLsizei, "n"), (Array(Const(GLdouble), "3"), "v")]),
1146     WglFunction(Void, "glVertexAttribs3fvNV", [(GLuint, "index"), (GLsizei, "n"), (Array(Const(GLfloat), "3"), "v")]),
1147     WglFunction(Void, "glVertexAttribs3svNV", [(GLuint, "index"), (GLsizei, "n"), (Array(Const(GLshort), "3"), "v")]),
1148     WglFunction(Void, "glVertexAttribs4dvNV", [(GLuint, "index"), (GLsizei, "n"), (Array(Const(GLdouble), "4"), "v")]),
1149     WglFunction(Void, "glVertexAttribs4fvNV", [(GLuint, "index"), (GLsizei, "n"), (Array(Const(GLfloat), "4"), "v")]),
1150     WglFunction(Void, "glVertexAttribs4svNV", [(GLuint, "index"), (GLsizei, "n"), (Array(Const(GLshort), "4"), "v")]),
1151     WglFunction(Void, "glVertexAttribs4ubvNV", [(GLuint, "index"), (GLsizei, "n"), (Array(Const(GLubyte), "4"), "v")]),
1152     WglFunction(Void, "glGetTexBumpParameterfvATI", [(GLenum, "pname"), (Pointer(GLfloat), "param")]),
1153     WglFunction(Void, "glGetTexBumpParameterivATI", [(GLenum, "pname"), (Pointer(GLint), "param")]),
1154     WglFunction(Void, "glTexBumpParameterfvATI", [(GLenum, "pname"), (Pointer(Const(GLfloat)), "param")]),
1155     WglFunction(Void, "glTexBumpParameterivATI", [(GLenum, "pname"), (Pointer(Const(GLint)), "param")]),
1156     WglFunction(Void, "glAlphaFragmentOp1ATI", [(GLenum, "op"), (GLuint, "dst"), (GLuint, "dstMod"), (GLuint, "arg1"), (GLuint, "arg1Rep"), (GLuint, "arg1Mod")]),
1157     WglFunction(Void, "glAlphaFragmentOp2ATI", [(GLenum, "op"), (GLuint, "dst"), (GLuint, "dstMod"), (GLuint, "arg1"), (GLuint, "arg1Rep"), (GLuint, "arg1Mod"), (GLuint, "arg2"), (GLuint, "arg2Rep"), (GLuint, "arg2Mod")]),
1158     WglFunction(Void, "glAlphaFragmentOp3ATI", [(GLenum, "op"), (GLuint, "dst"), (GLuint, "dstMod"), (GLuint, "arg1"), (GLuint, "arg1Rep"), (GLuint, "arg1Mod"), (GLuint, "arg2"), (GLuint, "arg2Rep"), (GLuint, "arg2Mod"), (GLuint, "arg3"), (GLuint, "arg3Rep"), (GLuint, "arg3Mod")]),
1159     WglFunction(Void, "glBeginFragmentShaderATI", []),
1160     WglFunction(Void, "glBindFragmentShaderATI", [(GLuint, "id")]),
1161     WglFunction(Void, "glColorFragmentOp1ATI", [(GLenum, "op"), (GLuint, "dst"), (GLuint, "dstMask"), (GLuint, "dstMod"), (GLuint, "arg1"), (GLuint, "arg1Rep"), (GLuint, "arg1Mod")]),
1162     WglFunction(Void, "glColorFragmentOp2ATI", [(GLenum, "op"), (GLuint, "dst"), (GLuint, "dstMask"), (GLuint, "dstMod"), (GLuint, "arg1"), (GLuint, "arg1Rep"), (GLuint, "arg1Mod"), (GLuint, "arg2"), (GLuint, "arg2Rep"), (GLuint, "arg2Mod")]),
1163     WglFunction(Void, "glColorFragmentOp3ATI", [(GLenum, "op"), (GLuint, "dst"), (GLuint, "dstMask"), (GLuint, "dstMod"), (GLuint, "arg1"), (GLuint, "arg1Rep"), (GLuint, "arg1Mod"), (GLuint, "arg2"), (GLuint, "arg2Rep"), (GLuint, "arg2Mod"), (GLuint, "arg3"), (GLuint, "arg3Rep"), (GLuint, "arg3Mod")]),
1164     WglFunction(Void, "glDeleteFragmentShaderATI", [(GLuint, "id")]),
1165     WglFunction(Void, "glEndFragmentShaderATI", []),
1166     WglFunction(GLuint, "glGenFragmentShadersATI", [(GLuint, "range")]),
1167     WglFunction(Void, "glPassTexCoordATI", [(GLuint, "dst"), (GLuint, "coord"), (GLenum, "swizzle")]),
1168     WglFunction(Void, "glSampleMapATI", [(GLuint, "dst"), (GLuint, "interp"), (GLenum, "swizzle")]),
1169     WglFunction(Void, "glSetFragmentShaderConstantATI", [(GLuint, "dst"), (Pointer(Const(GLfloat)), "value")]),
1170     WglFunction(Void, "glPointParameteri", [(GLenum, "pname"), (GLint, "param")]),
1171     WglFunction(Void, "glPointParameteriNV", [(GLenum, "pname"), (GLint, "param")]),
1172     WglFunction(Void, "glPointParameteriv", [(GLenum, "pname"), (Pointer(Const(GLint)), "params")]),
1173     WglFunction(Void, "glPointParameterivNV", [(GLenum, "pname"), (Pointer(Const(GLint)), "params")]),
1174     WglFunction(Void, "glActiveStencilFaceEXT", [(GLenum, "face")]),
1175     WglFunction(Void, "glBindVertexArrayAPPLE", [(GLuint, "array")]),
1176     WglFunction(Void, "glDeleteVertexArrays", [(GLsizei, "n"), (Pointer(Const(GLuint)), "arrays")]),
1177     WglFunction(Void, "glDeleteVertexArraysAPPLE", [(GLsizei, "n"), (Pointer(Const(GLuint)), "arrays")]),
1178     WglFunction(Void, "glGenVertexArraysAPPLE", [(GLsizei, "n"), (Pointer(GLuint), "arrays")]),
1179     WglFunction(GLboolean, "glIsVertexArray", [(GLuint, "array")]),
1180     WglFunction(GLboolean, "glIsVertexArrayAPPLE", [(GLuint, "array")]),
1181     WglFunction(Void, "glGetProgramNamedParameterdvNV", [(GLuint, "id"), (GLsizei, "len"), (Pointer(Const(GLubyte)), "name"), (Array(GLdouble, "4"), "params")]),
1182     WglFunction(Void, "glGetProgramNamedParameterfvNV", [(GLuint, "id"), (GLsizei, "len"), (Pointer(Const(GLubyte)), "name"), (Array(GLfloat, "4"), "params")]),
1183     WglFunction(Void, "glProgramNamedParameter4dNV", [(GLuint, "id"), (GLsizei, "len"), (Pointer(Const(GLubyte)), "name"), (GLdouble, "x"), (GLdouble, "y"), (GLdouble, "z"), (GLdouble, "w")]),
1184     WglFunction(Void, "glProgramNamedParameter4dvNV", [(GLuint, "id"), (GLsizei, "len"), (Pointer(Const(GLubyte)), "name"), (Array(Const(GLdouble), "4"), "v")]),
1185     WglFunction(Void, "glProgramNamedParameter4fNV", [(GLuint, "id"), (GLsizei, "len"), (Pointer(Const(GLubyte)), "name"), (GLfloat, "x"), (GLfloat, "y"), (GLfloat, "z"), (GLfloat, "w")]),
1186     WglFunction(Void, "glProgramNamedParameter4fvNV", [(GLuint, "id"), (GLsizei, "len"), (Pointer(Const(GLubyte)), "name"), (Array(Const(GLfloat), "4"), "v")]),
1187     WglFunction(Void, "glDepthBoundsEXT", [(GLclampd, "zmin"), (GLclampd, "zmax")]),
1188     WglFunction(Void, "glBlendEquationSeparate", [(GLenum, "modeRGB"), (GLenum, "modeA")]),
1189     WglFunction(Void, "glBlendEquationSeparateEXT", [(GLenum, "modeRGB"), (GLenum, "modeA")]),
1190     WglFunction(Void, "glBlendEquationSeparateATI", [(GLenum, "modeRGB"), (GLenum, "modeA")]),
1191     WglFunction(Void, "glBindFramebuffer", [(GLenum, "target"), (GLuint, "framebuffer")]),
1192     WglFunction(Void, "glBindFramebufferEXT", [(GLenum, "target"), (GLuint, "framebuffer")]),
1193     WglFunction(Void, "glBindRenderbuffer", [(GLenum, "target"), (GLuint, "renderbuffer")]),
1194     WglFunction(Void, "glBindRenderbufferEXT", [(GLenum, "target"), (GLuint, "renderbuffer")]),
1195     WglFunction(GLenum, "glCheckFramebufferStatus", [(GLenum, "target")]),
1196     WglFunction(GLenum, "glCheckFramebufferStatusEXT", [(GLenum, "target")]),
1197     WglFunction(Void, "glDeleteFramebuffers", [(GLsizei, "n"), (Pointer(Const(GLuint)), "framebuffers")]),
1198     WglFunction(Void, "glDeleteFramebuffersEXT", [(GLsizei, "n"), (Pointer(Const(GLuint)), "framebuffers")]),
1199     WglFunction(Void, "glDeleteRenderbuffers", [(GLsizei, "n"), (Pointer(Const(GLuint)), "renderbuffers")]),
1200     WglFunction(Void, "glDeleteRenderbuffersEXT", [(GLsizei, "n"), (Pointer(Const(GLuint)), "renderbuffers")]),
1201     WglFunction(Void, "glFramebufferRenderbuffer", [(GLenum, "target"), (GLenum, "attachment"), (GLenum, "renderbuffertarget"), (GLuint, "renderbuffer")]),
1202     WglFunction(Void, "glFramebufferRenderbufferEXT", [(GLenum, "target"), (GLenum, "attachment"), (GLenum, "renderbuffertarget"), (GLuint, "renderbuffer")]),
1203     WglFunction(Void, "glFramebufferTexture1D", [(GLenum, "target"), (GLenum, "attachment"), (GLenum, "textarget"), (GLuint, "texture"), (GLint, "level")]),
1204     WglFunction(Void, "glFramebufferTexture1DEXT", [(GLenum, "target"), (GLenum, "attachment"), (GLenum, "textarget"), (GLuint, "texture"), (GLint, "level")]),
1205     WglFunction(Void, "glFramebufferTexture2D", [(GLenum, "target"), (GLenum, "attachment"), (GLenum, "textarget"), (GLuint, "texture"), (GLint, "level")]),
1206     WglFunction(Void, "glFramebufferTexture2DEXT", [(GLenum, "target"), (GLenum, "attachment"), (GLenum, "textarget"), (GLuint, "texture"), (GLint, "level")]),
1207     WglFunction(Void, "glFramebufferTexture3D", [(GLenum, "target"), (GLenum, "attachment"), (GLenum, "textarget"), (GLuint, "texture"), (GLint, "level"), (GLint, "zoffset")]),
1208     WglFunction(Void, "glFramebufferTexture3DEXT", [(GLenum, "target"), (GLenum, "attachment"), (GLenum, "textarget"), (GLuint, "texture"), (GLint, "level"), (GLint, "zoffset")]),
1209     WglFunction(Void, "glGenFramebuffers", [(GLsizei, "n"), (Pointer(GLuint), "framebuffers")]),
1210     WglFunction(Void, "glGenFramebuffersEXT", [(GLsizei, "n"), (Pointer(GLuint), "framebuffers")]),
1211     WglFunction(Void, "glGenRenderbuffers", [(GLsizei, "n"), (Pointer(GLuint), "renderbuffers")]),
1212     WglFunction(Void, "glGenRenderbuffersEXT", [(GLsizei, "n"), (Pointer(GLuint), "renderbuffers")]),
1213     WglFunction(Void, "glGenerateMipmap", [(GLenum, "target")]),
1214     WglFunction(Void, "glGenerateMipmapEXT", [(GLenum, "target")]),
1215     WglFunction(Void, "glGetFramebufferAttachmentParameteriv", [(GLenum, "target"), (GLenum, "attachment"), (GLenum, "pname"), (Pointer(GLint), "params")]),
1216     WglFunction(Void, "glGetFramebufferAttachmentParameterivEXT", [(GLenum, "target"), (GLenum, "attachment"), (GLenum, "pname"), (Pointer(GLint), "params")]),
1217     WglFunction(Void, "glGetRenderbufferParameteriv", [(GLenum, "target"), (GLenum, "pname"), (Pointer(GLint), "params")]),
1218     WglFunction(Void, "glGetRenderbufferParameterivEXT", [(GLenum, "target"), (GLenum, "pname"), (Pointer(GLint), "params")]),
1219     WglFunction(GLboolean, "glIsFramebuffer", [(GLuint, "framebuffer")]),
1220     WglFunction(GLboolean, "glIsFramebufferEXT", [(GLuint, "framebuffer")]),
1221     WglFunction(GLboolean, "glIsRenderbuffer", [(GLuint, "renderbuffer")]),
1222     WglFunction(GLboolean, "glIsRenderbufferEXT", [(GLuint, "renderbuffer")]),
1223     WglFunction(Void, "glRenderbufferStorage", [(GLenum, "target"), (GLenum, "internalformat"), (GLsizei, "width"), (GLsizei, "height")]),
1224     WglFunction(Void, "glRenderbufferStorageEXT", [(GLenum, "target"), (GLenum, "internalformat"), (GLsizei, "width"), (GLsizei, "height")]),
1225     WglFunction(Void, "glBlitFramebuffer", [(GLint, "srcX0"), (GLint, "srcY0"), (GLint, "srcX1"), (GLint, "srcY1"), (GLint, "dstX0"), (GLint, "dstY0"), (GLint, "dstX1"), (GLint, "dstY1"), (GLbitfield, "mask"), (GLenum, "filter")]),
1226     WglFunction(Void, "glBlitFramebufferEXT", [(GLint, "srcX0"), (GLint, "srcY0"), (GLint, "srcX1"), (GLint, "srcY1"), (GLint, "dstX0"), (GLint, "dstY0"), (GLint, "dstX1"), (GLint, "dstY1"), (GLbitfield, "mask"), (GLenum, "filter")]),
1227     WglFunction(Void, "glBufferParameteriAPPLE", [(GLenum, "target"), (GLenum, "pname"), (GLint, "param")]),
1228     WglFunction(Void, "glFlushMappedBufferRangeAPPLE", [(GLenum, "target"), (GLintptr, "offset"), (GLsizeiptr, "size")]),
1229     WglFunction(Void, "glFramebufferTextureLayer", [(GLenum, "target"), (GLenum, "attachment"), (GLuint, "texture"), (GLint, "level"), (GLint, "layer")]),
1230     WglFunction(Void, "glFramebufferTextureLayerEXT", [(GLenum, "target"), (GLenum, "attachment"), (GLuint, "texture"), (GLint, "level"), (GLint, "layer")]),
1231     WglFunction(Void, "glProvokingVertexEXT", [(GLenum, "mode")]),
1232     WglFunction(Void, "glProvokingVertex", [(GLenum, "mode")]),
1233     WglFunction(Void, "glGetTexParameterPointervAPPLE", [(GLenum, "target"), (GLenum, "pname"), (Pointer(Pointer(GLvoid)), "params")]),
1234     WglFunction(Void, "glTextureRangeAPPLE", [(GLenum, "target"), (GLsizei, "length"), (Pointer(GLvoid), "pointer")]),
1235     WglFunction(Void, "glStencilFuncSeparateATI", [(GLenum, "frontfunc"), (GLenum, "backfunc"), (GLint, "ref"), (GLuint, "mask")]),
1236     WglFunction(Void, "glProgramEnvParameters4fvEXT", [(GLenum, "target"), (GLuint, "index"), (GLsizei, "count"), (Pointer(Const(GLfloat)), "params")]),
1237     WglFunction(Void, "glProgramLocalParameters4fvEXT", [(GLenum, "target"), (GLuint, "index"), (GLsizei, "count"), (Pointer(Const(GLfloat)), "params")]),
1238     WglFunction(Void, "glGetQueryObjecti64vEXT", [(GLuint, "id"), (GLenum, "pname"), (Pointer(GLint64EXT), "params")]),
1239     WglFunction(Void, "glGetQueryObjectui64vEXT", [(GLuint, "id"), (GLenum, "pname"), (Pointer(GLuint64EXT), "params")]),
1240     # WGL_ARB_extensions_string
1241     WglFunction(Const(String), "wglGetExtensionsStringARB", [(HDC, "hdc")]),
1242     # WGL_ARB_pbuffer
1243     WglFunction(HPBUFFERARB, "wglCreatePbufferARB", [(HDC, "hDC"), (Int, "iPixelFormat"), (Int, "iWidth"), (Int, "iHeight"), (Pointer(Const(Int)), "piAttribList")]), 
1244     WglFunction(HDC, "wglGetPbufferDCARB", [(HPBUFFERARB, "hPbuffer")]),
1245     WglFunction(Int, "wglReleasePbufferDCARB", [(HPBUFFERARB, "hPbuffer"), (HDC, "hDC")]),
1246     WglFunction(BOOL, "wglDestroyPbufferARB", [(HPBUFFERARB, "hPbuffer")]), 
1247     WglFunction(BOOL, "wglQueryPbufferARB", [(HPBUFFERARB, "hPbuffer"), (Int, "iAttribute"), (Pointer(Int), "piValue")]),
1248     # WGL_ARB_pixel_format
1249     WglFunction(BOOL, "wglGetPixelFormatAttribivARB", [(HDC, "hdc"), (Int, "iPixelFormat"), (Int, "iLayerPlane"), (UINT, "nAttributes"), (Pointer(attribute), "piAttributes"), (OutPointer(Int), "piValues")]),
1250     WglFunction(BOOL, "wglGetPixelFormatAttribfvARB", [(HDC, "hdc"), (Int, "iPixelFormat"), (Int, "iLayerPlane"), (UINT, "nAttributes"), (Pointer(attribute), "piAttributes"), (OutPointer(FLOAT), "pfValues")]),
1251     WglFunction(BOOL, "wglChoosePixelFormatARB", [(HDC, "hdc"), (Pointer(Const(Int)), "piAttribIList"), (Pointer(Const(FLOAT)), "pfAttribFList"), (UINT, "nMaxFormats"), (Pointer(Int), "piFormats"), (Pointer(UINT), "nNumFormats")]),
1252     # WGL_EXT_extensions_string
1253     WglFunction(Const(String), "wglGetExtensionsStringEXT", []),
1254     # WGL_EXT_pixel_format
1255     WglFunction(BOOL, "wglGetPixelFormatAttribivEXT", [(HDC, "hdc"), (Int, "iPixelFormat"), (Int, "iLayerPlane"), (UINT, "nAttributes"), (Pointer(attribute), "piAttributes"), (OutPointer(Int), "piValues")]),
1256     WglFunction(BOOL, "wglGetPixelFormatAttribfvEXT", [(HDC, "hdc"), (Int, "iPixelFormat"), (Int, "iLayerPlane"), (UINT, "nAttributes"), (Pointer(attribute), "piAttributes"), (OutPointer(FLOAT), "pfValues")]),
1257     WglFunction(BOOL, "wglChoosePixelFormatEXT", [(HDC, "hdc"), (Pointer(Const(Int)), "piAttribIList"), (Pointer(Const(FLOAT)), "pfAttribFList"), (UINT, "nMaxFormats"), (Pointer(Int), "piFormats"), (Pointer(UINT), "nNumFormats")]),
1258 ]
1259
1260 if __name__ == '__main__':
1261     print
1262     print '#define _GDI32_'
1263     print
1264     print '#include <windows.h>'
1265     print '#include <tchar.h>'
1266     print '#include <GL/gl.h>'
1267     print '#include "glext.h"'
1268     print '#include "wglext.h"'
1269     print
1270     print '#include "log.hpp"'
1271     print
1272     print '#ifndef PFD_SUPPORT_DIRECTDRAW'
1273     print '#define PFD_SUPPORT_DIRECTDRAW 0x00002000'
1274     print '#endif'
1275     print '#ifndef PFD_SUPPORT_COMPOSITION'
1276     print '#define PFD_SUPPORT_COMPOSITION 0x00008000'
1277     print '#endif'
1278     print
1279     print '#ifdef __MINGW32__'
1280     print ''
1281     print 'typedef struct _WGLSWAP'
1282     print '{'
1283     print '    HDC hdc;'
1284     print '    UINT uiFlags;'
1285     print '} WGLSWAP, *PWGLSWAP, FAR *LPWGLSWAP;'
1286     print ''
1287     print '#define WGL_SWAPMULTIPLE_MAX 16'
1288     print ''
1289     print '#endif'
1290     print
1291     print 'extern "C" {'
1292     print
1293     wrap()
1294     print
1295     print '}'