1 /*
2 
3 Boost Software License - Version 1.0 - August 17th, 2003
4 
5 Permission is hereby granted, free of charge, to any person or organization
6 obtaining a copy of the software and accompanying documentation covered by
7 this license(the "Software") to use, reproduce, display, distribute,
8 execute, and transmit the Software, and to prepare derivative works of the
9 Software, and to permit third-parties to whom the Software is furnished to
10 do so, all subject to the following:
11 
12 The copyright notices in the Software and this entire statement, including
13 the above license grant, this restriction and the following disclaimer,
14 must be included in all copies of the Software, in whole or in part, and
15 all derivative works of the Software, unless such copies or derivative
16 works are solely in the form of machine-executable object code generated by
17 a source language processor.
18 
19 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
22 SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
23 FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
24 ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
25 DEALINGS IN THE SOFTWARE.
26 
27 */
28 module derelict.opengl.extfuncs;
29 
30 private
31 {
32     version(Windows)
33     {
34         import derelict.util.wintypes;
35     }
36     import derelict.util.compat;
37     import derelict.opengl.gltypes;
38     import derelict.opengl.exttypes;
39 }
40 
41 version = DerelictGL_ALL;
42 
43 version(DerelictGL_ALL)
44 {
45     version = DerelictGL_ARB;
46     version = DerelictGL_EXT;
47     version = DerelictGL_NV;
48     version = DerelictGL_ATI;
49     version = DerelictGL_AMD;
50     version = DerelictGL_SGI;
51     version = DerelictGL_SGIS;
52     version = DerelictGL_SGIX;
53     version = DerelictGL_HP;
54     version = DerelictGL_PGI;
55     version = DerelictGL_IBM;
56     version = DerelictGL_WIN;
57     version = DerelictGL_INTEL;
58     version = DerelictGL_REND;
59     version = DerelictGL_APPLE;
60     version = DerelictGL_SUNX;
61     version = DerelictGL_SUN;
62     version = DerelictGL_INGR;
63     version = DerelictGL_MESA;
64     version = DerelictGL_3DFX;
65     version = DerelictGL_OML;
66     version = DerelictGL_S3;
67     version = DerelictGL_OES;
68     version = DerelictGL_GREMEDY;
69     version = DerelictGL_MESAX;
70     version = DerelictGL_I3D;
71     version = DerelictGL_3DL;
72 }
73 
74 extern(System)
75 {
76     mixin(gsharedString!() ~
77     "
78     version(DerelictGL_ARB)
79     {
80         // GL_ARB_multitexture
81         void function(GLenum) glActiveTextureARB;
82         void function(GLenum) glClientActiveTextureARB;
83         void function(GLenum, GLdouble) glMultiTexCoord1dARB;
84         void function(GLenum, in GLdouble*) glMultiTexCoord1dvARB;
85         void function(GLenum, GLfloat) glMultiTexCoord1fARB;
86         void function(GLenum, in GLfloat*) glMultiTexCoord1fvARB;
87         void function(GLenum, GLint) glMultiTexCoord1iARB;
88         void function(GLenum, in GLint*) glMultiTexCoord1ivARB;
89         void function(GLenum, GLshort) glMultiTexCoord1sARB;
90         void function(GLenum, in GLshort*) glMultiTexCoord1svARB;
91         void function(GLenum, GLdouble, GLdouble) glMultiTexCoord2dARB;
92         void function(GLenum, in GLdouble*) glMultiTexCoord2dvARB;
93         void function(GLenum, GLfloat, GLfloat) glMultiTexCoord2fARB;
94         void function(GLenum, in GLfloat*) glMultiTexCoord2fvARB;
95         void function(GLenum, GLint, GLint) glMultiTexCoord2iARB;
96         void function(GLenum, in GLint*) glMultiTexCoord2ivARB;
97         void function(GLenum, GLshort, GLshort) glMultiTexCoord2sARB;
98         void function(GLenum, in GLshort*) glMultiTexCoord2svARB;
99         void function(GLenum, GLdouble, GLdouble, GLdouble) glMultiTexCoord3dARB;
100         void function(GLenum, in GLdouble*) glMultiTexCoord3dvARB;
101         void function(GLenum, GLfloat, GLfloat, GLfloat) glMultiTexCoord3fARB;
102         void function(GLenum, in GLfloat*) glMultiTexCoord3fvARB;
103         void function(GLenum, GLint, GLint, GLint) glMultiTexCoord3iARB;
104         void function(GLenum, in GLint*) glMultiTexCoord3ivARB;
105         void function(GLenum, GLshort, GLshort, GLshort) glMultiTexCoord3sARB;
106         void function(GLenum, in GLshort*) glMultiTexCoord3svARB;
107         void function(GLenum, GLdouble, GLdouble, GLdouble, GLdouble) glMultiTexCoord4dARB;
108         void function(GLenum, in GLdouble*) glMultiTexCoord4dvARB;
109         void function(GLenum, GLfloat, GLfloat, GLfloat, GLfloat) glMultiTexCoord4fARB;
110         void function(GLenum, in GLfloat*) glMultiTexCoord4fvARB;
111         void function(GLenum, GLint, GLint, GLint, GLint) glMultiTexCoord4iARB;
112         void function(GLenum, in GLint*) glMultiTexCoord4ivARB;
113         void function(GLenum, GLshort, GLshort, GLshort, GLshort) glMultiTexCoord4sARB;
114         void function(GLenum, in GLshort*) glMultiTexCoord4svARB;
115 
116         // GL_ARB_transpose_matrix
117         void function(GLfloat*) glLoadTransposeMatrixfARB;
118         void function(GLdouble*) glLoadTransposeMatrixdARB;
119         void function(GLfloat*) glMultTransposeMatrixfARB;
120         void function(GLdouble*) glMultTransposeMatrixdARB;
121 
122         // GL_ARB_multisample
123         void function(GLclampf, GLboolean) glSampleCoverageARB;
124 
125         // GL_ARB_texture_compression
126         void function(GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, in GLvoid*) glCompressedTexImage3DARB;
127         void function(GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLsizei, in GLvoid*) glCompressedTexImage2DARB;
128         void function(GLenum, GLint, GLenum, GLsizei, GLint, GLsizei, in GLvoid*) glCompressedTexImage1DARB;
129         void function(GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, in GLvoid*) glCompressedTexSubImage3DARB;
130         void function(GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLsizei, in GLvoid*) glCompressedTexSubImage2DARB;
131         void function(GLenum, GLint, GLint, GLsizei, GLenum, GLsizei, in GLvoid*) glCompressedTexSubImage1DARB;
132         void function(GLenum, GLint, GLvoid*) glGetCompressedTexImageARB;
133 
134         // GL_ARB_point_parameters
135         void function(GLenum, GLfloat) glPointParameterfARB;
136         void function(GLenum, GLfloat*) glPointParameterfvARB;
137 
138         // GL_ARB_vertex_blend
139         void function(GLint, GLbyte*) glWeightbvARB;
140         void function(GLint, GLshort*) glWeightsvARB;
141         void function(GLint, GLint*) glWeightivARB;
142         void function(GLint, GLfloat*) glWeightfvARB;
143         void function(GLint, GLdouble*) glWeightdvARB;
144         void function(GLint, GLubyte*) glWeightubvARB;
145         void function(GLint, GLushort*) glWeightusvARB;
146         void function(GLint, GLuint*) glWeightuivARB;
147         void function(GLint, GLenum, GLsizei, GLvoid*) glWeightPointerARB;
148         void function(GLint) glVertexBlendARB;
149 
150         // GL_ARB_matrix_palette
151         void function(GLint) glCurrentPaletteMatrixARB;
152         void function(GLint, GLubyte*) glMatrixIndexubvARB;
153         void function(GLint, GLushort*) glMatrixIndexusvARB;
154         void function(GLint, GLuint*) glMatrixIndexuivARB;
155         void function(GLint, GLenum, GLsizei, GLvoid*) glMatrixIndexPointerARB;
156 
157         // GL_ARB_window_pos
158         void function(GLdouble, GLdouble) glWindowPos2dARB;
159         void function(in GLdouble*) glWindowPos2dvARB;
160         void function(GLfloat, GLfloat) glWindowPos2fARB;
161         void function(in GLfloat*) glWindowPos2fvARB;
162         void function(GLint, GLint) glWindowPos2iARB;
163         void function(in GLint*) glWindowPos2ivARB;
164         void function(GLshort, GLshort) glWindowPos2sARB;
165         void function(in GLshort*) glWindowPos2svARB;
166         void function(GLdouble, GLdouble, GLdouble) glWindowPos3dARB;
167         void function(in GLdouble*) glWindowPos3dvARB;
168         void function(GLfloat, GLfloat, GLfloat) glWindowPos3fARB;
169         void function(in GLfloat*) glWindowPos3fvARB;
170         void function(GLint, GLint, GLint) glWindowPos3iARB;
171         void function(in GLint*) glWindowPos3ivARB;
172         void function(GLshort, GLshort, GLshort) glWindowPos3sARB;
173         void function(in GLshort*) glWindowPos3svARB;
174 
175         // GL_ARB_vertex_program
176         void function(GLuint, GLdouble) glVertexAttrib1dARB;
177         void function(GLuint, in GLdouble*) glVertexAttrib1dvARB;
178         void function(GLuint, GLfloat) glVertexAttrib1fARB;
179         void function(GLuint, in GLfloat*) glVertexAttrib1fvARB;
180         void function(GLuint, GLshort) glVertexAttrib1sARB;
181         void function(GLuint, in GLshort*) glVertexAttrib1svARB;
182         void function(GLuint, GLdouble, GLdouble) glVertexAttrib2dARB;
183         void function(GLuint, in GLdouble*) glVertexAttrib2dvARB;
184         void function(GLuint, GLfloat, GLfloat) glVertexAttrib2fARB;
185         void function(GLuint, in GLfloat*) glVertexAttrib2fvARB;
186         void function(GLuint, GLshort, GLshort) glVertexAttrib2sARB;
187         void function(GLuint, in GLshort*) glVertexAttrib2svARB;
188         void function(GLuint, GLdouble, GLdouble, GLdouble) glVertexAttrib3dARB;
189         void function(GLuint, in GLdouble*) glVertexAttrib3dvARB;
190         void function(GLuint, GLfloat, GLfloat, GLfloat) glVertexAttrib3fARB;
191         void function(GLuint, in GLfloat*) glVertexAttrib3fvARB;
192         void function(GLuint, GLshort, GLshort, GLshort) glVertexAttrib3sARB;
193         void function(GLuint, in GLshort*) glVertexAttrib3svARB;
194         void function(GLuint, in GLbyte*) glVertexAttrib4NbvARB;
195         void function(GLuint, in GLint*) glVertexAttrib4NivARB;
196         void function(GLuint, in GLshort*) glVertexAttrib4NsvARB;
197         void function(GLuint, GLubyte, GLubyte, GLubyte, GLubyte) glVertexAttrib4NubARB;
198         void function(GLuint, in GLubyte*) glVertexAttrib4NubvARB;
199         void function(GLuint, in GLuint*) glVertexAttrib4NuivARB;
200         void function(GLuint, in GLushort*) glVertexAttrib4NusvARB;
201         void function(GLuint, in GLbyte*) glVertexAttrib4bvARB;
202         void function(GLuint, GLdouble, GLdouble, GLdouble, GLdouble) glVertexAttrib4dARB;
203         void function(GLuint, in GLdouble*) glVertexAttrib4dvARB;
204         void function(GLuint, GLfloat, GLfloat, GLfloat, GLfloat) glVertexAttrib4fARB;
205         void function(GLuint, in GLfloat*) glVertexAttrib4fvARB;
206         void function(GLuint, in GLint*) glVertexAttrib4ivARB;
207         void function(GLuint, GLshort, GLshort, GLshort, GLshort) glVertexAttrib4sARB;
208         void function(GLuint, in GLshort*) glVertexAttrib4svARB;
209         void function(GLuint, in GLubyte*) glVertexAttrib4ubvARB;
210         void function(GLuint, in GLuint*) glVertexAttrib4uivARB;
211         void function(GLuint, in GLushort*) glVertexAttrib4usvARB;
212         void function(GLuint, GLint, GLenum, GLboolean, GLsizei, in GLvoid*) glVertexAttribPointerARB;
213         void function(GLuint) glEnableVertexAttribArrayARB;
214         void function(GLuint) glDisableVertexAttribArrayARB;
215         void function(GLenum, GLenum, GLsizei, in GLvoid*) glProgramStringARB;
216         void function(GLenum, GLuint) glBindProgramARB;
217         void function(GLsizei, in GLuint*) glDeleteProgramsARB;
218         void function(GLsizei, GLuint*) glGenProgramsARB;
219         void function(GLenum, GLuint, GLdouble, GLdouble, GLdouble, GLdouble) glProgramEnvParameter4dARB;
220         void function(GLenum, GLuint, in GLdouble*) glProgramEnvParameter4dvARB;
221         void function(GLenum, GLuint, GLfloat, GLfloat, GLfloat, GLfloat) glProgramEnvParameter4fARB;
222         void function(GLenum, GLuint, in GLfloat*) glProgramEnvParameter4fvARB;
223         void function(GLenum, GLuint, GLdouble, GLdouble, GLdouble, GLdouble) glProgramLocalParameter4dARB;
224         void function(GLenum, GLuint, in GLdouble*) glProgramLocalParameter4dvARB;
225         void function(GLenum, GLuint, GLfloat, GLfloat, GLfloat, GLfloat) glProgramLocalParameter4fARB;
226         void function(GLenum, GLuint, in GLfloat*) glProgramLocalParameter4fvARB;
227         void function(GLenum, GLuint, GLdouble*) glGetProgramEnvParameterdvARB;
228         void function(GLenum, GLuint, GLfloat*) glGetProgramEnvParameterfvARB;
229         void function(GLenum, GLuint, GLdouble*) glGetProgramLocalParameterdvARB;
230         void function(GLenum, GLuint, GLfloat*) glGetProgramLocalParameterfvARB;
231         void function(GLenum, GLenum, GLint*) glGetProgramivARB;
232         void function(GLenum, GLenum, GLvoid*) glGetProgramStringARB;
233         void function(GLuint, GLenum, GLdouble*) glGetVertexAttribdvARB;
234         void function(GLuint, GLenum, GLfloat*) glGetVertexAttribfvARB;
235         void function(GLuint, GLenum, GLint*) glGetVertexAttribivARB;
236         void function(GLuint, GLenum, GLvoid*) glGetVertexAttribPointervARB;
237         GLboolean function(GLuint) glIsProgramARB;
238 
239         // GL_ARB_vertex_buffer_object
240         void function(GLenum, GLuint) glBindBufferARB;
241         void function(GLsizei, in GLuint*) glDeleteBuffersARB;
242         void function(GLsizei, GLuint*) glGenBuffersARB;
243         GLboolean function(GLuint) glIsBufferARB;
244         void function(GLenum, GLsizeiptrARB, in GLvoid*, GLenum) glBufferDataARB;
245         void function(GLenum, GLintptrARB, GLsizeiptrARB, in GLvoid*) glBufferSubDataARB;
246         void function(GLenum, GLintptrARB, GLsizeiptrARB, GLvoid*) glGetBufferSubDataARB;
247         GLvoid* function(GLenum, GLenum) glMapBufferARB;
248         GLboolean function(GLenum) glUnmapBufferARB;
249         void function(GLenum, GLenum, GLint*) glGetBufferParameterivARB;
250         void function(GLenum, GLenum, GLvoid*) glGetBufferPointervARB;
251 
252         // GL_ARB_occlusion_query
253         void function(GLsizei, GLuint*) glGenQueriesARB;
254         void function(GLsizei, in GLuint*) glDeleteQueriesARB;
255         GLboolean function(GLuint) glIsQueryARB;
256         void function(GLenum, GLuint) glBeginQueryARB;
257         void function(GLenum) glEndQueryARB;
258         void function(GLenum, GLenum, GLint*) glGetQueryivARB;
259         void function(GLuint, GLenum, GLint*) glGetQueryObjectivARB;
260         void function(GLuint, GLenum, GLuint*) glGetQueryObjectuivARB;
261 
262         // GL_ARB_shader_objects
263         void function(GLhandleARB) glDeleteObjectARB;
264         GLhandleARB function(GLenum) glGetHandleARB;
265         void function(GLhandleARB, GLhandleARB) glDetachObjectARB;
266         GLhandleARB function(GLenum) glCreateShaderObjectARB;
267         void function(GLhandleARB, GLsizei, in GLcharARB**, in GLint*) glShaderSourceARB;
268         void function(GLhandleARB) glCompileShaderARB;
269         GLhandleARB function() glCreateProgramObjectARB;
270         void function(GLhandleARB, GLhandleARB) glAttachObjectARB;
271         void function(GLhandleARB) glLinkProgramARB;
272         void function(GLhandleARB) glUseProgramObjectARB;
273         void function(GLhandleARB) glValidateProgramARB;
274         void function(GLint, GLfloat) glUniform1fARB;
275         void function(GLint, GLfloat, GLfloat) glUniform2fARB;
276         void function(GLint, GLfloat, GLfloat, GLfloat) glUniform3fARB;
277         void function(GLint, GLfloat, GLfloat, GLfloat, GLfloat) glUniform4fARB;
278         void function(GLint, GLint) glUniform1iARB;
279         void function(GLint, GLint, GLint) glUniform2iARB;
280         void function(GLint, GLint, GLint, GLint) glUniform3iARB;
281         void function(GLint, GLint, GLint, GLint, GLint) glUniform4iARB;
282         void function(GLint, GLsizei, in GLfloat*) glUniform1fvARB;
283         void function(GLint, GLsizei, in GLfloat*) glUniform2fvARB;
284         void function(GLint, GLsizei, in GLfloat*) glUniform3fvARB;
285         void function(GLint, GLsizei, in GLfloat*) glUniform4fvARB;
286         void function(GLint, GLsizei, in GLint*) glUniform1ivARB;
287         void function(GLint, GLsizei, in GLint*) glUniform2ivARB;
288         void function(GLint, GLsizei, in GLint*) glUniform3ivARB;
289         void function(GLint, GLsizei, in GLint*) glUniform4ivARB;
290         void function(GLint, GLsizei, GLboolean, in GLfloat*) glUniformMatrix2fvARB;
291         void function(GLint, GLsizei, GLboolean, in GLfloat*) glUniformMatrix3fvARB;
292         void function(GLint, GLsizei, GLboolean, in GLfloat*) glUniformMatrix4fvARB;
293         void function(GLhandleARB, GLenum, GLfloat*) glGetObjectParameterfvARB;
294         void function(GLhandleARB, GLenum, GLint*) glGetObjectParameterivARB;
295         void function(GLhandleARB, GLsizei, GLsizei*, GLcharARB*) glGetInfoLogARB;
296         void function(GLhandleARB, GLsizei, GLsizei*, GLhandleARB*) glGetAttachedObjectsARB;
297         GLint function(GLhandleARB, in GLcharARB*) glGetUniformLocationARB;
298         void function(GLhandleARB, GLuint, GLsizei, GLsizei*, GLint*, GLenum*, GLcharARB*) glGetActiveUniformARB;
299         void function(GLhandleARB, GLint, GLfloat*) glGetUniformfvARB;
300         void function(GLhandleARB, GLint, GLint*) glGetUniformivARB;
301         void function(GLhandleARB, GLsizei, GLsizei*, GLcharARB*) glGetShaderSourceARB;
302 
303         // GL_ARB_vertex_shader
304         void function(GLhandleARB, GLuint, in GLcharARB*) glBindAttribLocationARB;
305         void function(GLhandleARB, GLuint, GLsizei, GLsizei*, GLint*, GLenum*, GLcharARB*) glGetActiveAttribARB;
306         GLint function(GLhandleARB, in GLcharARB* name) glGetAttribLocationARB;
307 
308         // GL_ARB_draw_buffers
309         void function(GLsizei, in GLenum*) glDrawBuffersARB;
310 
311         // GL_ARB_color_buffer_float
312         void function(GLenum, GLenum) glClampColorARB;
313 
314         // GL_ARB_draw_instanced
315         void function(GLenum, GLint, GLsizei, GLsizei) glDrawArraysInstancedARB;
316         void function(GLenum, GLsizei, GLenum, in void*, GLsizei) glDrawElementsInstancedARB;
317 
318         // GL_ARB_framebuffer_object
319         GLboolean function(GLuint) glIsRenderbuffer;
320         void function(GLenum, GLuint) glBindRenderbuffer;
321         void function(GLsizei, in GLuint*) glDeleteRenderbuffers;
322         void function(GLsizei, GLuint*) glGenRenderbuffers;
323         void function(GLenum, GLenum, GLsizei, GLsizei) glRenderbufferStorage;
324         void function(GLenum, GLsizei, GLenum, GLsizei, GLsizei) glRenderbufferStorageMultisample;
325         void function(GLenum, GLenum, GLint*) glGetRenderbufferParameteriv;
326         GLboolean function(GLuint) glIsFramebuffer;
327         void function(GLenum, GLuint) glBindFramebuffer;
328         void function(GLsizei, in GLuint*) glDeleteFramebuffers;
329         void function(GLsizei, GLuint*) glGenFramebuffers;
330         GLenum function(GLenum) glCheckFramebufferStatus;
331         void function(GLenum, GLenum, GLenum, GLuint, GLint) glFramebufferTexture1D;
332         void function(GLenum, GLenum, GLenum, GLuint, GLint) glFramebufferTexture2D;
333         void function(GLenum, GLenum, GLenum, GLuint, GLint, GLint) glFramebufferTexture3D;
334         void function(GLenum, GLenum, GLuint, GLint, GLint) glFramebufferTextureLayer;
335         void function(GLenum, GLenum, GLenum, GLuint) glFramebufferRenderbuffer;
336         void function(GLenum, GLenum, GLenum, GLint*) glGetFramebufferAttachmentParameteriv;
337         void function(GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLbitfield, GLenum) glBlitFramebuffer;
338         void function(GLenum) glGenerateMipmap;
339 
340         // GL_ARB_geometry_shader4
341         void function(GLuint, GLenum, GLint) glProgramParameteriARB;
342         void function(GLenum, GLenum, GLuint, GLint) glFramebufferTextureARB;
343         void function(GLenum, GLenum, GLuint, GLint, GLint) glFramebufferTextureLayerARB;
344         void function(GLenum, GLenum, GLuint, GLint, GLenum) glFramebufferTextureFaceARB;
345 
346         // GL_ARB_imaging
347         void function(GLenum, GLenum, GLsizei, GLenum, GLenum, in void*) glColorTable;
348         void function(GLenum, GLsizei, GLsizei, GLenum, GLenum, in void*) glColorSubTable;
349         void function(GLenum, GLenum, in GLint*) glColorTableParameteriv;
350         void function(GLenum, GLenum, in GLfloat*) glColorTableParameterfv;
351         void function(GLenum, GLsizei, GLint, GLint, GLsizei) glCopyColorSubTable;
352         void function(GLenum, GLenum, GLint, GLint, GLsizei) glCopyColorTable;
353         void function(GLenum, GLenum, GLenum, void*) glGetColorTable;
354         void function(GLenum, GLenum, GLfloat*) glGetColorTableParameterfv;
355         void function(GLenum, GLenum, GLint*) glGetColorTableParameteriv;
356         void function(GLenum, GLsizei, GLenum, GLboolean) glHistogram;
357         void function(GLenum) glResetHistogram;
358         void function(GLenum, GLboolean, GLenum, GLenum, void*) glGetHistogram;
359         void function(GLenum, GLenum, GLfloat*) glGetHistogramParameterfv;
360         void function(GLenum, GLenum, GLint*) glGetHistogramParameteriv;
361         void function(GLenum, GLenum, GLboolean) glMinmax;
362         void function(GLenum) glResetMinmax;
363         void function(GLenum, GLboolean, GLenum, GLenum, void*) glGetMinmax;
364         void function(GLenum, GLenum, GLfloat*) glGetMinmaxParameterfv;
365         void function(GLenum, GLenum, GLint*) glGetMinmaxParameteriv;
366         void function(GLenum, GLenum, GLsizei, GLenum, GLenum, in void*) glConvolutionFilter1D;
367         void function(GLenum, GLenum, GLsizei, GLsizei, GLenum, GLenum, in void*) glConvolutionFilter2D;
368         void function(GLenum, GLenum, GLfloat) glConvolutionParameterf;
369         void function(GLenum, GLenum, in GLfloat*) glConvolutionParameterfv;
370         void function(GLenum, GLenum, GLint) glConvolutionParameteri;
371         void function(GLenum, GLenum, in GLint*) glConvolutionParameteriv;
372         void function(GLenum, GLenum, GLint, GLint, GLsizei) glCopyConvolutionFilter1D;
373         void function(GLenum, GLenum, GLint, GLint, GLsizei, GLsizei) glCopyConvolutionFilter2D;
374         void function(GLenum, GLenum, GLenum, void*) glGetConvolutionFilter;
375         void function(GLenum, GLenum, GLfloat*) glGetConvolutionParameterfv;
376         void function(GLenum, GLenum, GLint*) glGetConvolutionParameteriv;
377         void function(GLenum, GLenum, GLsizei, GLsizei, GLenum, GLenum, in void*, in void*) glSeparableFilter2D;
378         void function(GLenum, GLenum, GLenum, void*, void*, void*) glGetSeparableFilter;
379 
380         // GL_ARB_instanced_arrays
381         void function(GLuint, GLuint) glVertexAttribDivisorARB;
382 
383         // GL_ARB_map_buffer_range
384         void* function(GLenum, GLintptr, GLsizeiptr, GLbitfield) glMapBufferRange;
385         void function(GLenum, GLintptr, GLsizeiptr) glFlushMappedBufferRange;
386 
387         // GL_ARB_texture_buffer_object
388         void function(GLenum, GLenum, GLuint) glTexBufferARB;
389 
390         // GL_ARB_vertex_array_object
391         void function(GLuint) glBindVertexArray;
392         void function(GLsizei, in GLuint*) glDeleteVertexArrays;
393         void function(GLsizei, GLuint*) glGenVertexArrays;
394         GLboolean function(GLuint) glIsVertexArray;
395 
396         // GL_ARB_copy_buffer
397         void function(GLenum, GLenum, GLintptr, GLintptr, GLsizeiptr) glCopyBufferSubData;
398 
399         // GL_ARB_uniform_buffer_object
400         void function(GLuint, GLsizei, in char**, GLuint*) glGetUniformIndices;
401         void function(GLuint, GLsizei, in GLuint*, GLenum, GLint*) glGetActiveUniformsiv;
402         void function(GLuint, GLuint, GLsizei, GLsizei*, char*) glGetActiveUniformName;
403         GLuint function(GLuint, in char*) glGetUniformBlockIndex;
404         void function(GLuint, GLuint, GLenum, int*) glGetActiveUniformBlockiv;
405         void function(GLuint, GLuint, GLsizei, GLsizei*, char*) glGetActiveUniformBlockName;
406         void function(GLuint, GLuint, GLuint) glUniformBlockBinding;
407 
408         // GL_ARB_draw_elements_base_vertex
409         void function(GLenum, GLsizei, GLenum, const(GLvoid)*, GLint) glDrawElementsBaseVertex;
410         void function(GLenum, GLuint, GLuint, GLsizei, GLenum, const(GLvoid)*, GLint) glDrawRangeElementsBaseVertex;
411         void function(GLenum, GLsizei, GLenum, const(GLvoid)*, GLsizei, GLint) glDrawElementsInstancedBaseVertex;
412         void function(GLenum, const(GLsizei)*, GLenum, const(GLvoid*)*, GLsizei, const(GLint)*) glMultiDrawElementsBaseVertex;
413 
414         // GL_ARB_vertex_attrib_64bit
415         void function(GLuint, GLenum, GLdouble*) glGetVertexAttribLdv;
416         void function(GLuint, GLdouble) glVertexAttribL1d;
417         void function(GLuint, in GLdouble*) glVertexAttribL1dv;
418         void function(GLuint, GLdouble, GLdouble) glVertexAttribL2d;
419         void function(GLuint, in GLdouble*) glVertexAttribL2dv;
420         void function(GLuint, GLdouble, GLdouble, GLdouble) glVertexAttribL3d;
421         void function(GLuint, in GLdouble*) glVertexAttribL3dv;
422         void function(GLuint, GLdouble, GLdouble, GLdouble, GLdouble) glVertexAttribL4d;
423         void function(GLuint, in GLdouble*) glVertexAttribL4dv;
424         void function(GLuint, GLint, GLenum, GLsizei, in void*) glVertexAttribLPointer;
425 
426         // GL_ARB_provoking_vertex
427         void function(GLenum) glProvokingVertex;
428 
429         // GL_ARB_sync
430         GLsync function(GLenum, GLbitfield) glFenceSync;
431         GLboolean function(GLsync) glIsSync;
432         void function(GLsync) glDeleteSync;
433         GLenum function(GLsync, GLbitfield, GLuint64) glClientWaitSync;
434         void function(GLsync, GLbitfield, GLuint64) glWaitSync;
435         void function(GLsync, GLint64*) glGetInteger64v;
436         void function(GLsync, GLenum, GLsizei, GLsizei*, GLint*) glGetSynciv;
437 
438         // GL_ARB_texture_multisample
439         void function(GLenum, GLsizei, GLint, GLsizei, GLsizei, GLboolean) glTexImage2DMultisample;
440         void function(GLenum, GLsizei, GLint, GLsizei, GLsizei, GLsizei, GLboolean) glTexImage3DMultisample;
441         void function(GLenum, GLuint, GLfloat*) glGetMultisamplefv;
442         void function(GLuint, GLbitfield) glSampleMaski;
443 
444         // GL_ARB_viewport_array
445         void function(GLuint, GLsizei, in GLclampd*) glDepthRangeArrayv;
446         void function(GLuint, GLclampd, GLclampd) glDepthRangeIndexed;
447         void function(GLenum, GLuint, GLdouble*) glGetDoublei_v;
448         void function(GLenum, GLuint, GLfloat*) glGetFloati_v;
449         void function(GLuint, GLsizei, in GLint*) glScissorArrayv;
450         void function(GLuint, GLint, GLint, GLsizei, GLsizei) glScissorArrayIndexed;
451         void function(GLuint, GLint*) glScissorArrayIndexedv;
452         void function(GLuint, GLsizei, in GLfloat*) glViewportArrayv;
453         void function(GLuint, GLfloat, GLfloat, GLfloat, GLfloat) glViewportIndexedf;
454         void function(GLuint, in GLfloat*) glViewportIndexedfv;
455 
456         // GL_ARB_cl_event
457         void function(cl_context, cl_event, GLbitfield) glCreateSyncFromCLeventARB;
458 
459         // GL_ARB_debug_output
460         void function(GLDEBUGPROCARB, void*) glDebugMessageCallbackARB;
461         void function(GLenum, GLenum, GLenum, GLsizei, in GLuint*, GLboolean) glDebugMessageControlARB;
462         void function(GLenum, GLenum, GLuint, GLenum, GLsizei, in char*) glDebugMessageInsertARB;
463         GLuint function(GLuint, GLsizei, GLenum*, GLenum*, GLint*, GLenum*, GLsizei*, char*) glGetDebugMessageLogARB;
464 
465         // GL_ARB_robustness
466         void function(GLenum, GLenum, GLenum, GLsizei, void*) glGetnColorTableARB;
467         void function(GLenum, GLint, GLsizei, void*) glGetnCompressedTexImageARB;
468         void function(GLenum, GLenum, GLenum, GLsizei, void*) glGetnConvolutionFilterARB;
469         void function(GLenum, GLboolean, GLsizei, GLdouble*) glGetnHistogramARB;
470         void function(GLenum, GLenum, GLsizei, GLdouble*) glGetnMapdvARB;
471         void function(GLenum, GLenum, GLsizei, GLfloat*) glGetnMapfvARB;
472         void function(GLenum, GLenum, GLsizei, GLint*) glGetnMapivARB;
473         void function(GLenum, GLboolean, GLenum, GLenum, GLsizei, void*) glGetnMinMaxARB;
474         void function(GLenum, GLsizei, GLfloat*) glGetnPixelMapfvARB;
475         void function(GLenum, GLsizei, GLuint*) glGetnPixelMapuivARB;
476         void function(GLenum, GLsizei, GLushort*) glGetnPixelMapusvARB;
477         void function(GLsizei, GLubyte*) glGetnPolygonStippleARB;
478         void function(GLenum, GLenum, GLenum, GLsizei, void*, GLsizei, GLvoid*) glGetnSeparableFilterARB;
479         void function(GLenum, GLint, GLenum, GLenum, GLsizei, void*) glGetnTexImageARB;
480         void function(GLuint, GLint, GLsizei, GLdouble*) glGetnUniformdvARB;
481         void function(GLuint, GLint, GLsizei, GLfloat*) glGetnUniformfvARB;
482         void function(GLuint, GLint, GLsizei, GLint*) glGetnUniformivARB;
483         void function(GLuint, GLint, GLsizei, GLuint*) glGetUniformuivARB;
484         void function(GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, GLsizei, void*) glReadnPixelsARB;
485 
486         // GL_ARB_blend_func_extended
487         void function(GLuint, GLuint, GLuint, const(GLchar)*) glBindFragDataLocationIndexed;
488         GLint function(GLuint, const(GLchar)*) glGetFragDataIndex;
489 
490         // GL_ARB_sampler_objects
491         void function(GLuint, GLuint*) glGenSamplers;
492         void function(GLsizei, in GLuint*) glDeleteSamplers;
493         GLboolean function(GLuint) glIsSampler;
494         void function(GLuint, GLuint) glBindSampler;
495         void function(GLuint, GLenum, GLint) glSamplerParameteri;
496         void function(GLuint, GLenum, in GLint*) glSamplerParameteriv;
497         void function(GLuint, GLenum, GLfloat) glSamplerParameterf;
498         void function(GLuint, GLenum, in GLfloat*) glSamplerParameterfv;
499         void function(GLuint, GLenum, in GLint*) glSamplerParameterIiv;
500         void function(GLuint, GLenum, in GLuint*) glSamplerParameterIuiv;
501         void function(GLuint, GLenum, GLint*) glGetSamplerParameteriv;
502         void function(GLuint, GLenum, GLint*) glGetSamplerParameterIiv;
503         void function(GLuint, GLenum, GLfloat*) glGetSamplerParameterfv;
504         void function(GLuint, GLenum, GLuint*) glGetSamplerParameterIuiv;
505 
506         // GL_ARB_timer_query
507         void function(GLuint, GLenum) glQueryCounter;
508         void function(GLuint, GLenum, GLint64*) glGetQueryObjecti64v;
509         void function(GLuint, GLenum, GLuint64*) glGetQueryObjectui64v;
510 
511         // GL_ARB_vertex_type_2_10_10_10_rev
512         void function(GLenum, GLuint) glVertexP2ui;
513         void function(GLenum, const(GLuint)*) glVertexP2uiv;
514         void function(GLenum, GLuint) glVertexP3ui;
515         void function(GLenum, const(GLuint)*) glVertexP3uiv;
516         void function(GLenum, GLuint) glVertexP4ui;
517         void function(GLenum, const(GLuint)*) glVertexP4uiv;
518         void function(GLenum, GLuint) glTexCoordP1ui;
519         void function(GLenum, const(GLuint)*) glTexCoordP1uiv;
520         void function(GLenum, GLuint) glTexCoordP2ui;
521         void function(GLenum, const(GLuint)*) glTexCoordP2uiv;
522         void function(GLenum, GLuint) glTexCoordP3ui;
523         void function(GLenum, const(GLuint)*) glTexCoordP3uiv;
524         void function(GLenum, GLuint) glTexCoordP4ui;
525         void function(GLenum, const(GLuint)*) glTexCoordP4uiv;
526         void function(GLenum, GLenum, GLuint) glMultiTexCoordP1ui;
527         void function(GLenum, GLenum, const(GLuint)*) glMultiTexCoordP1uiv;
528         void function(GLenum, GLenum, GLuint) glMultiTexCoordP2ui;
529         void function(GLenum, GLenum, const(GLuint)*) glMultiTexCoordP2uiv;
530         void function(GLenum, GLenum, GLuint) glMultiTexCoordP3ui;
531         void function(GLenum, GLenum, const(GLuint)*) glMultiTexCoordP3uiv;
532         void function(GLenum, GLenum, GLuint) glMultiTexCoordP4ui;
533         void function(GLenum, GLenum, const(GLuint)*) glMultiTexCoordP4uiv;
534         void function(GLenum, GLuint) glNormalP3ui;
535         void function(GLenum, const(GLuint)*) glNormalP3uiv;
536         void function(GLenum, GLuint) glColorP3ui;
537         void function(GLenum, const(GLuint)*) glColorP3uiv;
538         void function(GLenum, GLuint) glColorP4ui;
539         void function(GLenum, const(GLuint)*) glColorP4uiv;
540         void function(GLenum, GLuint) glSecondaryColorP3ui;
541         void function(GLenum, const(GLuint)*) glSecondaryColorP3uiv;
542         void function(GLuint, GLenum, GLboolean, GLuint) glVertexAttribP1ui;
543         void function(GLuint, GLenum, GLboolean, const(GLuint)*) glVertexAttribP1uiv;
544         void function(GLuint, GLenum, GLboolean, GLuint) glVertexAttribP2ui;
545         void function(GLuint, GLenum, GLboolean, const(GLuint)*) glVertexAttribP2uiv;
546         void function(GLuint, GLenum, GLboolean, GLuint) glVertexAttribP3ui;
547         void function(GLuint, GLenum, GLboolean, const(GLuint)*) glVertexAttribP3uiv;
548         void function(GLuint, GLenum, GLboolean, GLuint) glVertexAttribP4ui;
549         void function(GLuint, GLenum, GLboolean, const(GLuint)*) glVertexAttribP4uiv;
550     }
551 
552     version(DerelictGL_EXT)
553     {
554         // GL_EXT_blend_color
555         void function(GLclampf, GLclampf, GLclampf, GLclampf) glBlendColorEXT;
556 
557         // GL_EXT_polygon_offset
558         void function(GLfloat, GLfloat) glPolygonOffsetEXT;
559 
560         // GL_EXT_texture3D
561         void function(GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, GLvoid*) glTexImage3DEXT;
562         void function(GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, GLvoid*) glTexSubImage3DEXT;
563 
564         // GL_EXT_subtexture
565         void function(GLenum, GLint, GLint, GLsizei, GLenum, GLenum, in GLvoid*) glTexSubImage1DEXT;
566         void function(GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, in GLvoid*) glTexSubImage21DEXT;
567 
568         // GL_EXT_copy_texture
569         void function(GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLint) glCopyTexImage1DEXT;
570         void function(GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLsizei, GLint)glCopyTexImage2DEXT;
571         void function(GLenum, GLint, GLint, GLint, GLint, GLsizei) glCopyTexSubImage1DEXT;
572         void function(GLenum, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei) glCopyTexSubImage2DEXT;
573         void function(GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei) glCopyTexSubImage3DEXT;
574 
575         // GL_EXT_histogram
576         void function(GLenum, GLboolean, GLenum, GLenum, GLvoid*) glGetHistogramEXT;
577         void function(GLenum, GLenum, GLfloat*) glGetHistogramParameterfvEXT;
578         void function(GLenum, GLenum, GLint*) glGetHistogramParameterivEXT;
579         void function(GLenum, GLboolean, GLenum, GLenum, GLvoid*) glGetMinmaxEXT;
580         void function(GLenum, GLenum, GLfloat*) glGetMinmaxParameterfvEXT;
581         void function(GLenum, GLsizei, GLenum, GLint*) glGetMinmaxParameterivEXT;
582         void function(GLenum, GLsizei, GLenum, GLboolean) glHistogramEXT;
583         void function(GLenum, GLenum, GLboolean) glMinmaxEXT;
584         void function(GLenum) glResetHistogramEXT;
585         void function(GLenum) glResetMinmaxEXT;
586 
587         // GL_EXT_convolution
588         void function(GLenum, GLenum, GLsizei, GLenum, GLenum, GLvoid*) glConvolutionFilter1DEXT;
589         void function(GLenum, GLenum, GLsizei, GLsizei, GLenum, GLenum, GLvoid*) glConvolutionFilter2DEXT;
590         void function(GLenum, GLenum, GLfloat) glConvolutionParameterfEXT;
591         void function(GLenum, GLenum, GLfloat*) glConvolutionParameterfvEXT;
592         void function(GLenum, GLenum, GLint) glConvolutionParameteriEXT;
593         void function(GLenum, GLenum, GLint*) glConvolutionParameterivEXT;
594         void function(GLenum, GLenum, GLint, GLint, GLsizei) glCopyConvolutionFilter1DEXT;
595         void function(GLenum, GLenum, GLint, GLint, GLsizei, GLsizei) glCopyConvolutionFilter2DEXT;
596         void function(GLenum, GLenum, GLenum, GLvoid*) glGetConvolutionFilterEXT;
597         void function(GLenum, GLenum, GLfloat*) glGetConvolutionParameterfvEXT;
598         void function(GLenum, GLenum, GLint*) glGetConvolutionParameterivEXT;
599         void function(GLenum, GLenum, GLenum, GLvoid*, GLvoid*, GLvoid*) glGetSeparableFilterEXT;
600         void function(GLenum, GLenum, GLsizei, GLsizei, GLenum, GLenum, GLvoid*, GLvoid*) glSeparableFilter2DEXT;
601 
602         // GL_EXT_texture_object
603         GLboolean function(GLsizei, in GLuint*, GLboolean*) glAreTexturesResidentEXT;
604         void function(GLenum, GLuint) glBindTextureEXT;
605         void function(GLsizei, in GLuint*) glDeleteTexturesEXT;
606         void function(GLsizei, GLuint*) glGenTexturesEXT;
607         GLboolean function(GLuint) glIsTextureEXT;
608         void function(GLsizei, in GLuint*, in GLclampf*) glPrioritizeTexturesEXT;
609 
610         // GL_EXT_vertex_array
611         void function(GLint) glArrayElementEXT;
612         void function(GLint, GLenum, GLsizei, GLsizei, in GLvoid*) glColorPointerEXT;
613         void function(GLenum, GLint, GLsizei) glDrawArraysEXT;
614         void function(GLsizei, GLsizei, in GLboolean*) glEdgeFlagPointerEXT;
615         void function(GLenum, GLvoid**) glGetPointervEXT;
616         void function(GLenum, GLsizei, GLsizei, in GLvoid*) glIndexPointerEXT;
617         void function(GLenum, GLsizei, GLsizei, in GLvoid*) glNormalPointerEXT;
618         void function(GLint, GLenum, GLsizei, GLsizei, in GLvoid*) glTexCoordPointerEXT;
619         void function(GLint, GLenum, GLsizei, GLsizei, in GLvoid*) glVertexPointerEXT;
620 
621         // GL_EXT_blend_minmax
622         void function(GLenum) glBlendEquationEXT;
623 
624         // GL_EXT_point_parameters
625         void function(GLenum, GLfloat) glPointParameterfEXT;
626         void function(GLenum, in GLfloat*) glPointParameterfvEXT;
627 
628         // GL_EXT_color_subtable
629         void function(GLenum, GLsizei, GLsizei, GLenum, GLenum, in GLvoid*) glColorSubTableEXT;
630         void function(GLenum, GLsizei, GLint, GLint, GLsizei) glCopyColorSubTableEXT;
631 
632         // GL_EXT_paletted_texture
633         void function(GLenum, GLenum, GLsizei, GLenum, GLenum, in GLvoid*) glColorTableEXT;
634         void function(GLenum, GLenum, GLenum, GLvoid*) glGetColorTableEXT;
635         void function(GLenum, GLenum, GLint*) glGetColorTableParameterivEXT;
636         void function(GLenum, GLenum, GLfloat*) glGetColorTableParameterfvEXT;
637 
638         //GL_EXT_index_material
639         void function(GLenum, GLenum) glIndexMaterialEXT;
640 
641         // GL_EXT_index_func
642         void function(GLenum, GLclampf) glIndexFuncEXT;
643 
644         // GL_EXT_compiled_vertex_array
645         void function(GLint, GLsizei) glLockArraysEXT;
646         void function() glUnlockArraysEXT;
647 
648         // GL_EXT_cull_vertex
649         void function(GLenum, GLdouble*) glCullParameterdvEXT;
650         void function(GLenum, GLfloat*) glCullParameterfvEXT;
651 
652         // GL_EXT_draw_range_elements
653         void function(GLenum, GLuint, GLuint, GLsizei, GLenum, in GLvoid*) glDrawRangeElementsEXT;
654 
655         // GL_EXT_light_texture
656         void function(GLenum) glApplyTextureEXT;
657         void function(GLenum) glTextureLightEXT;
658         void function(GLenum, GLenum) glTextureMaterialEXT;
659 
660         // GL_EXT_pixel_transform
661         void function(GLenum, GLenum, GLint) glPixelTransformParameteriEXT;
662         void function(GLenum, GLenum, GLfloat) glPixelTransformParameterfEXT;
663         void function(GLenum, GLenum, in GLint*) glPixelTransformParameterivEXT;
664         void function(GLenum, GLenum, in GLfloat*) glPixelTransformParameterfvEXT;
665 
666         // GL_EXT_secondary_color
667         void function(GLbyte, GLbyte, GLbyte) glSecondaryColor3bEXT;
668         void function(in GLbyte*) glSecondaryColor3bvEXT;
669         void function(GLdouble, GLdouble, GLdouble) glSecondaryColor3dEXT;
670         void function(in GLdouble*) glSecondaryColor3dvEXT;
671         void function(GLfloat, GLfloat, GLfloat) glSecondaryColor3fEXT;
672         void function(in GLfloat*) glSecondaryColor3fvEXT;
673         void function(GLint, GLint, GLint) glSecondaryColor3iEXT;
674         void function(in GLint*) glSecondaryColor3ivEXT;
675         void function(GLshort, GLshort, GLshort) glSecondaryColor3sEXT;
676         void function(in GLshort*) glSecondaryColor3svEXT;
677         void function(GLubyte, GLubyte, GLubyte) glSecondaryColor3ubEXT;
678         void function(in GLubyte*) glSecondaryColor3ubvEXT;
679         void function(GLuint, GLuint, GLuint) glSecondaryColor3uiEXT;
680         void function(in GLuint*) glSecondaryColor3uivEXT;
681         void function(GLushort, GLushort, GLushort) glSecondaryColor3usEXT;
682         void function(in GLushort*) glSecondaryColor3usvEXT;
683         void function(GLint, GLenum, GLsizei, in GLvoid*) glSecondaryColorPointerEXT;
684 
685         // GL_EXT_texture_perturb_normal
686         void function(GLenum) glTextureNormalEXT;
687 
688         // GL_EXT_multi_draw_arrays
689         void function(GLenum, GLint*, GLsizei*, GLsizei) glMultiDrawArraysEXT;
690         void function(GLenum, in GLsizei*, GLenum, in GLvoid**, GLsizei) glMultiDrawElementsEXT;
691 
692         // GL_EXT_fog_coord
693         void function(GLfloat) glFogCoordfEXT;
694         void function(in GLfloat*) glFogCoordfvEXT;
695         void function(GLdouble) glFogCoorddEXT;
696         void function(in GLdouble*) glFogCoorddvEXT;
697         void function(GLenum, GLsizei, in GLvoid*) glFogCoordPointerEXT;
698 
699         // GL_EXT_coordinate_frame
700         void function(GLbyte, GLbyte, GLbyte) glTangent3bEXT;
701         void function(in GLbyte*) glTangent3bvEXT;
702         void function(GLdouble, GLdouble, GLdouble) glTangent3dEXT;
703         void function(in GLdouble*) glTangent3dvEXT;
704         void function(GLfloat, GLfloat, GLfloat) glTangent3fEXT;
705         void function(in GLfloat*) glTangent3fvEXT;
706         void function(GLint, GLint, GLint) glTangent3iEXT;
707         void function(in GLint*) glTangent3ivEXT;
708         void function(GLshort, GLshort, GLshort) glTangent3sEXT;
709         void function(in GLshort*) glTangent3svEXT;
710         void function(GLbyte, GLbyte, GLbyte) glBinormal3bEXT;
711         void function(in GLbyte*) glBinormal3bvEXT;
712         void function(GLdouble, GLdouble, GLdouble) glBinormal3dEXT;
713         void function(in GLdouble*) glBinormal3dvEXT;
714         void function(GLfloat, GLfloat, GLfloat) glBinormal3fEXT;
715         void function(in GLfloat*) glBinormal3fvEXT;
716         void function(GLint, GLint, GLint) glBinormal3iEXT;
717         void function(in GLint*) glBinormal3ivEXT;
718         void function(GLshort, GLshort, GLshort) glBinormal3sEXT;
719         void function(in GLshort*) glBinormal3svEXT;
720         void function(GLenum, GLsizei, in GLvoid*) glTangentPointerEXT;
721         void function(GLenum, GLsizei, in GLvoid*) glBinormalPointerEXT;
722 
723         // GL_EXT_blend_func_separate
724         void function(GLenum, GLenum, GLenum, GLenum) glBlendFuncSeparateEXT;
725 
726         // GL_EXT_vertex_weighting
727         void function(GLfloat) glVertexWeightfEXT;
728         void function(in GLfloat*) glVertexWeightfvEXT;
729         void function(GLsizei, GLenum, GLsizei, in GLvoid*) glVertexWeightPointerEXT;
730 
731         // GL_EXT_multisample
732         void function(GLclampf, GLboolean) glSampleMaskEXT;
733         void function(GLenum) glSamplePatternEXT;
734 
735         // GL_EXT_vertex_shader
736         void function() glBeginVertexShaderEXT;
737         void function() glEndVertexShaderEXT;
738         void function(GLuint) glBindVertexShaderEXT;
739         GLuint function(GLuint) glGenVertexShadersEXT;
740         void function(GLuint) glDeleteVertexShaderEXT;
741         void function(GLenum, GLuint, GLuint) glShaderOp1EXT;
742         void function(GLenum, GLuint, GLuint, GLuint) glShaderOp2EXT;
743         void function(GLenum, GLuint, GLuint, GLuint, GLuint) glShaderOp3EXT;
744         void function(GLuint, GLuint, GLenum, GLenum, GLenum, GLenum) glSwizzleEXT;
745         void function(GLuint, GLuint, GLenum, GLenum, GLenum, GLenum) glWriteMaskEXT;
746         void function(GLuint, GLuint, GLuint) glInsertComponentEXT;
747         void function(GLuint, GLuint, GLuint) glExtractComponentEXT;
748         GLuint function(GLenum, GLenum, GLenum, GLuint) glGenSymbolsEXT;
749         void function(GLuint, GLenum, in GLvoid*) glSetInvariantEXT;
750         void function(GLuint, GLenum, in GLvoid*) glSetLocalConstantEXT;
751         void function(GLuint, in GLbyte*) glVariantbvEXT;
752         void function(GLuint, in GLshort*) glVariantsvEXT;
753         void function(GLuint, in GLint*) glVariantivEXT;
754         void function(GLuint, in GLfloat*) glVariantfvEXT;
755         void function(GLuint, in GLdouble*) glVariantdvEXT;
756         void function(GLuint, in GLubyte*) glVariantubvEXT;
757         void function(GLuint, in GLushort*) glVariantusvEXT;
758         void function(GLuint, in GLuint*) glVariantuivEXT;
759         void function(GLuint, GLenum, GLuint, in GLvoid*) glVariantPointerEXT;
760         void function(GLuint) glEnableVariantClientStateEXT;
761         void function(GLuint) glDisableVariantClientStateEXT;
762         GLuint function(GLenum, GLenum) glBindLightParameterEXT;
763         GLuint function(GLenum, GLenum) glBindMaterialParameterEXT;
764         GLuint function(GLenum, GLenum, GLenum) glBindTexGenParameterEXT;
765         GLuint function(GLenum, GLenum) glBindTextureUnitParameterEXT;
766         GLuint function(GLenum) glBindParameterEXT;
767         GLboolean function(GLuint, GLenum) glIsVariantEnabledEXT;
768         void function(GLuint, GLenum, GLboolean*) glGetVariantBooleanvEXT;
769         void function(GLuint, GLenum, GLint*) glGetVariantIntegervEXT;
770         void function(GLuint, GLenum, GLfloat*) glGetVariantFloatvEXT;
771         void function(GLuint, GLenum, GLvoid**) glGetVariantPointervEXT;
772         void function(GLuint, GLenum, GLboolean*) glGetInvariantBooleanvEXT;
773         void function(GLuint, GLenum, GLint*) glGetInvariantIntegervEXT;
774         void function(GLuint, GLenum, GLfloat*) glGetInvariantFloatvEXT;
775         void function(GLuint, GLenum, GLboolean*) glGetLocalConstantBooleanvEXT;
776         void function(GLuint, GLenum, GLint*) glGetLocalConstantIntegervEXT;
777         void function(GLuint, GLenum, GLfloat*) glGetLocalConstantFloatvEXT;
778 
779         // GL_EXT_stencil_two_side
780         void function(GLenum) glActiveStencilFaceEXT;
781 
782         // GL_EXT_depth_bounds_test
783         void function(GLclampd, GLclampd) glDepthBoundsEXT;
784 
785         // GL_EXT_blend_equation_separate
786         void function(GLenum, GLenum) glBlendEquationSeparateEXT;
787 
788         // GL_EXT_framebuffer_object
789         GLboolean function(GLuint) glIsRenderbufferEXT;
790         void function(GLenum, GLuint) glBindRenderbufferEXT;
791         void function(GLsizei, in GLuint*) glDeleteRenderbuffersEXT;
792         void function(GLsizei, GLuint*) glGenRenderbuffersEXT;
793         void function(GLenum, GLenum, GLsizei, GLsizei) glRenderbufferStorageEXT;
794         void function(GLenum, GLenum, GLint*) glGetRenderbufferParameterivEXT;
795         GLboolean function(GLuint) glIsFramebufferEXT;
796         void function(GLenum, GLuint) glBindFramebufferEXT;
797         void function(GLsizei, in GLuint*) glDeleteFramebuffersEXT;
798         void function(GLsizei, GLuint*) glGenFramebuffersEXT;
799         GLenum function(GLenum) glCheckFramebufferStatusEXT;
800         void function(GLenum, GLenum, GLenum, GLuint, GLint) glFramebufferTexture1DEXT;
801         void function(GLenum, GLenum, GLenum, GLuint, GLint) glFramebufferTexture2DEXT;
802         void function(GLenum, GLenum, GLenum, GLuint, GLint, GLint) glFramebufferTexture3DEXT;
803         void function(GLenum, GLenum, GLenum, GLuint) glFramebufferRenderbufferEXT;
804         void function(GLenum, GLenum, GLenum, GLint*) glGetFramebufferAttachmentParameterivEXT;
805         void function(GLenum) glGenerateMipmapEXT;
806 
807         // GL_EXT_stencil_clear_tag
808         void function(GLsizei, GLuint) glStencilClearTagEXT;
809 
810         // GL_EXT_framebuffer_blit
811         void function(GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLbitfield, GLenum) glBlitFramebufferEXT;
812 
813         // GL_EXT_framebuffer_multisample
814         void function(GLenum, GLsizei, GLenum, GLsizei, GLsizei) glRenderbufferStorageMultisampleEXT;
815 
816         // GL_EXT_timer_query
817         void function(GLuint, GLenum, GLint64EXT*) glGetQueryObjecti64vEXT;
818         void function(GLuint, GLenum, GLuint64EXT*) glGetQueryObjectui64vEXT;
819 
820         // GL_EXT_gpu_program_parameters
821         void function(GLenum, GLuint, GLsizei, in GLfloat*) glProgramEnvParameters4fvEXT;
822         void function(GLenum, GLuint, GLsizei, in GLfloat*) glProgramLocalParameters4fvEXT;
823 
824         // GL_EXT_geometry_shader4
825         void function(GLuint, GLenum, GLint) glProgramParameteriEXT;
826 
827         // GL_EXT_gpu_shader4
828         void function(GLuint, GLint, GLuint*) glGetUniformuivEXT;
829         void function(GLuint, GLuint, in GLchar*) glBindFragDataLocationEXT;
830         GLint function(GLuint, in GLchar*) glGetFragDataLocationEXT;
831         void function(GLint, GLuint) glUniform1uiEXT;
832         void function(GLint, GLuint, GLuint) glUniform2uiEXT;
833         void function(GLint, GLuint, GLuint, GLuint) glUniform3uiEXT;
834         void function(GLint, GLuint, GLuint, GLuint, GLuint) glUniform4uiEXT;
835         void function(GLint, GLsizei, in GLuint*) glUniform1uivEXT;
836         void function(GLint, GLsizei, in GLuint*) glUniform2uivEXT;
837         void function(GLint, GLsizei, in GLuint*) glUniform3uivEXT;
838         void function(GLint, GLsizei, in GLuint*) glUniform4uivEXT;
839 
840         // GL_EXT_draw_instanced
841         void function(GLenum, GLint, GLsizei, GLsizei) glDrawArraysInstancedEXT;
842         void function(GLenum, GLsizei, GLenum, in GLvoid*, GLsizei) glDrawElementsInstancedEXT;
843 
844         // GL_EXT_texture_buffer_object
845         void function(GLenum, GLenum, GLuint) glTexBufferEXT;
846 
847         // GL_EXT_draw_buffers2
848         void function(GLuint, GLboolean, GLboolean, GLboolean, GLboolean) glColorMaskIndexedEXT;
849         void function(GLenum, GLuint, GLboolean*) glGetBooleanIndexedvEXT;
850         void function(GLenum, GLuint, GLint*) glGetIntegerIndexedvEXT;
851         void function(GLenum, GLuint) glEnableIndexedEXT;
852         void function(GLenum, GLuint) glDisableIndexedEXT;
853         GLboolean function(GLenum, GLuint) glIsEnabledIndexedEXT;
854 
855         // GL_EXT_bindable_uniform
856         void function(GLuint, GLint, GLuint) glUniformBufferEXT;
857         void function(GLuint, GLint) glGetUniformBufferSizeEXT;
858         void function(GLuint, GLint) glGetUniformOffsetEXT;
859 
860         // GL_EXT_texture_integer
861         void function(GLenum, GLenum, in GLint*) glTexParameterIivEXT;
862         void function(GLenum, GLenum, in GLuint*) glTexParameterIuivEXT;
863         void function(GLenum, GLenum, GLint*) glGetTexParameterIivEXT;
864         void function(GLenum, GLenum, GLuint*) glGetTexParameterIuivEXT;
865         void function(GLint, GLint, GLint, GLint) glClearColorIiEXT;
866         void function(GLuint, GLuint, GLuint, GLuint) glClearColorIuiEXT;
867 
868         // GL_EXT_transform_feedback
869         void function(GLenum) glBeginTransformFeedbackEXT;
870         void function() glEndTransformFeedbackEXT;
871         void function(GLenum, GLuint, GLuint, GLintptr, GLsizeiptr) glBindBufferRangeEXT;
872         void function(GLenum, GLuint, GLuint, GLintptr) glBindBufferOffsetEXT;
873         void function(GLenum, GLuint, GLuint) glBindBufferBaseEXT;
874         void function(GLuint, GLsizei, in GLchar**, GLenum) glTransformFeedbackVaryingsEXT;
875         void function(GLuint, GLuint, GLsizei, GLsizei*, GLsizei*, GLenum*, GLchar*) glGetTransformFeedbackVaryingEXT;
876 
877         // GL_EXT_direct_state_access
878         void function(GLbitfield) glClientAttribDefaultEXT;
879         void function(GLbitfield) glPushClientAttribDefaultEXT;
880         void function(GLenum, in GLfloat*) glMatrixLoadfEXT;
881         void function(GLenum, in GLdouble*) glMatrixLoaddEXT;
882         void function(GLenum, in GLfloat*) glMatrixMultfEXT;
883         void function(GLenum, in GLdouble*) glMatrixMultdEXT;
884         void function(GLenum) glMatrixLoadIdentityEXT;
885         void function(GLenum, GLfloat, GLfloat, GLfloat, GLfloat) glMatrixRotatefEXT;
886         void function(GLenum, GLdouble, GLdouble, GLdouble, GLdouble) glMatrixRotatedEXT;
887         void function(GLenum, GLfloat, GLfloat, GLfloat) glMatrixScalefEXT;
888         void function(GLenum, GLdouble, GLdouble, GLdouble) glMatrixScaledEXT;
889         void function(GLenum, GLfloat, GLfloat, GLfloat) glMatrixTranslatefEXT;
890         void function(GLenum, GLdouble, GLdouble, GLdouble) glMatrixTranslatedEXT;
891         void function(GLenum, GLdouble, GLdouble, GLdouble, GLdouble, GLdouble, GLdouble) glMatrixFrustumEXT;
892         void function(GLenum, GLdouble, GLdouble, GLdouble, GLdouble, GLdouble, GLdouble) glMatrixOrthoEXT;
893         void function(GLenum) glMatrixPopEXT;
894         void function(GLenum) glMatrixPushEXT;
895         void function(GLenum, in GLfloat*) glMatrixLoadTransposefEXT;
896         void function(GLenum, in GLdouble*) glMatrixLoadTransposedEXT;
897         void function(GLenum, in GLfloat*) glMatrixMultTransposefEXT;
898         void function(GLenum, in GLdouble*) glMatrixMultTransposedEXT;
899         void function(GLuint, GLenum, GLenum, GLfloat) glTextureParameterfEXT;
900         void function(GLuint, GLenum, GLenum, in GLfloat*) glTextureParameterfvEXT;
901         void function(GLuint, GLenum, GLenum, GLint) glTextureParameteriEXT;
902         void function(GLuint, GLenum, GLenum, in GLint*) glTextureParameterivEXT;
903         void function(GLuint, GLenum, GLint, GLenum, GLsizei, GLint, GLenum, GLenum, in GLvoid*) glTextureImage1DEXT;
904         void function(GLuint, GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLenum, GLenum, in GLvoid*) glTextureImage2DEXT;
905         void function(GLuint, GLenum, GLint, GLint, GLsizei, GLenum, GLenum, in GLvoid*) glTextureSubImage1DEXT;
906         void function(GLuint, GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, in GLvoid*) glTextureSubImage2DEXT;
907         void function(GLuint, GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLint) glCopyTextureImage1DEXT;
908         void function(GLuint, GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLsizei, GLint) glCopyTextureImage2DEXT;
909         void function(GLuint, GLenum, GLint, GLint, GLint, GLint, GLsizei) glCopyTextureSubImage1DEXT;
910         void function(GLuint, GLenum, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei) glCopyTextureSubImage2DEXT;
911         void function(GLuint, GLenum, GLint, GLenum, GLenum, GLvoid*) glGetTextureImageEXT;
912         void function(GLuint, GLenum, GLenum, GLfloat*) glGetTextureParameterfvEXT;
913         void function(GLuint, GLenum, GLenum, GLint*) glGetTextureParameterivEXT;
914         void function(GLuint, GLenum, GLint, GLenum, GLfloat*) glGetTextureLevelParameterfvEXT;
915         void function(GLuint, GLenum, GLint, GLenum, GLint*) glGetTextureLevelParameterivEXT;
916         void function(GLuint, GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, in GLvoid*) glTextureImage3DEXT;
917         void function(GLuint, GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, in GLvoid*) glTextureSubImage3DEXT;
918         void function(GLuint, GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei) glCopyTextureSubImage3DEXT;
919         void function(GLenum, GLenum, GLenum, GLfloat) glMultiTexParameterfEXT;
920         void function(GLenum, GLenum, GLenum, in GLfloat*) glMultiTexParameterfvEXT;
921         void function(GLenum, GLenum, GLenum, GLint) glMultiTexParameteriEXT;
922         void function(GLenum, GLenum, GLenum, in GLint*) glMultiTexParameterivEXT;
923         void function(GLenum, GLenum, GLint, GLenum, GLsizei, GLint, GLenum, GLenum, in GLvoid*) glMultiTexImage1DEXT;
924         void function(GLenum, GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLenum, GLenum, in GLvoid*) glMultiTexImage2DEXT;
925         void function(GLenum, GLenum, GLint, GLint, GLsizei, GLenum, GLenum, in GLvoid*) glMultiTexSubImage1DEXT;
926         void function(GLenum, GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, in GLvoid*) glMultiTexSubImage2DEXT;
927         void function(GLenum, GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLint) glCopyMultiTexImage1DEXT;
928         void function(GLenum, GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLsizei, GLint) glCopyMultiTexImage2DEXT;
929         void function(GLenum, GLenum, GLint, GLint, GLint, GLint, GLsizei) glCopyMultiTexSubImage1DEXT;
930         void function(GLenum, GLenum, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei) glCopyMultiTexSubImage2DEXT;
931         void function(GLenum, GLenum, GLint, GLenum, GLenum, GLvoid*) glGetMultiTexImageEXT;
932         void function(GLenum, GLenum, GLenum, GLfloat*) glGetMultiTexParameterfvEXT;
933         void function(GLenum, GLenum, GLenum, GLint*) glGetMultiTexParameterivEXT;
934         void function(GLenum, GLenum, GLint, GLenum, GLfloat*) glGetMultiTexLevelParameterfvEXT;
935         void function(GLenum, GLenum, GLint, GLenum, GLint*) glGetMultiTexLevelParameterivEXT;
936         void function(GLenum, GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, in GLvoid*) glMultiTexImage3DEXT;
937         void function(GLenum, GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, in GLvoid*) glMultiTexSubImage3DEXT;
938         void function(GLenum, GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei) glCopyMultiTexSubImage3DEXT;
939         void function(GLenum, GLenum, GLuint) glBindMultiTextureEXT;
940         void function(GLenum, GLuint) glEnableClientStateIndexedEXT;
941         void function(GLenum, GLuint) glDisableClientStateIndexedEXT;
942         void function(GLenum, GLint, GLenum, GLsizei, in GLvoid*) glMultiTexCoordPointerEXT;
943         void function(GLenum, GLenum, GLenum, GLfloat) glMultiTexEnvfEXT;
944         void function(GLenum, GLenum, GLenum, in GLfloat*) glMultiTexEnvfvEXT;
945         void function(GLenum, GLenum, GLenum, GLint) glMultiTexEnviEXT;
946         void function(GLenum, GLenum, GLenum, in GLint*) glMultiTexEnvivEXT;
947         void function(GLenum, GLenum, GLenum, GLdouble) glMultiTexGendEXT;
948         void function(GLenum, GLenum, GLenum, in GLdouble*) glMultiTexGendvEXT;
949         void function(GLenum, GLenum, GLenum, GLfloat) glMultiTexGenfEXT;
950         void function(GLenum, GLenum, GLenum, in GLfloat*) glMultiTexGenfvEXT;
951         void function(GLenum, GLenum, GLenum, GLint) glMultiTexGeniEXT;
952         void function(GLenum, GLenum, GLenum, in GLint*) glMultiTexGenivEXT;
953         void function(GLenum, GLenum, GLenum, GLfloat*) glGetMultiTexEnvfvEXT;
954         void function(GLenum, GLenum, GLenum, GLint*) glGetMultiTexEnvivEXT;
955         void function(GLenum, GLenum, GLenum, GLdouble*) glGetMultiTexGendvEXT;
956         void function(GLenum, GLenum, GLenum, GLfloat*) glGetMultiTexGenfvEXT;
957         void function(GLenum, GLenum, GLenum, GLint*) glGetMultiTexGenivEXT;
958         void function(GLenum, GLuint, GLfloat*) glGetFloatIndexedvEXT;
959         void function(GLenum, GLuint, GLdouble*) glGetDoubleIndexedvEXT;
960         void function(GLenum, GLuint, GLvoid**) glGetPointerIndexedvEXT;
961         void function(GLuint, GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, in GLvoid*) glCompressedTextureImage3DEXT;
962         void function(GLuint, GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLsizei, in GLvoid*) glCompressedTextureImage2DEXT;
963         void function(GLuint, GLenum, GLint, GLenum, GLsizei, GLint, GLsizei, in GLvoid*) glCompressedTextureImage1DEXT;
964         void function(GLuint, GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, in GLvoid*) glCompressedTextureSubImage3DEXT;
965         void function(GLuint, GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLsizei, in GLvoid*) glCompressedTextureSubImage2DEXT;
966         void function(GLuint, GLenum, GLint, GLint, GLsizei, GLenum, GLsizei, in GLvoid*) glCompressedTextureSubImage1DEXT;
967         void function(GLuint, GLenum, GLint, GLvoid*) glGetCompressedTextureImageEXT;
968         void function(GLenum, GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, in GLvoid*) glCompressedMultiTexImage3DEXT;
969         void function(GLenum, GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLsizei, in GLvoid*) glCompressedMultiTexImage2DEXT;
970         void function(GLenum, GLenum, GLint, GLenum, GLsizei, GLint, GLsizei, in GLvoid*) glCompressedMultiTexImage1DEXT;
971         void function(GLenum, GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, in GLvoid*) glCompressedMultiTexSubImage3DEXT;
972         void function(GLenum, GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLsizei, in GLvoid*) glCompressedMultiTexSubImage2DEXT;
973         void function(GLenum, GLenum, GLint, GLint, GLsizei, GLenum, GLsizei, in GLvoid*) glCompressedMultiTexSubImage1DEXT;
974         void function(GLenum, GLenum, GLint, GLvoid*) glGetCompressedMultiTexImageEXT;
975         void function(GLuint, GLenum, GLenum, GLsizei, in GLvoid*) glNamedProgramStringEXT;
976         void function(GLuint, GLenum, GLuint, GLdouble, GLdouble, GLdouble, GLdouble) glNamedProgramLocalParameter4dEXT;
977         void function(GLuint, GLenum, GLuint, in GLdouble*) glNamedProgramLocalParameter4dvEXT;
978         void function(GLuint, GLenum, GLuint, GLfloat, GLfloat, GLfloat, GLfloat) glNamedProgramLocalParameter4fEXT;
979         void function(GLuint, GLenum, GLuint, in GLfloat*) glNamedProgramLocalParameter4fvEXT;
980         void function(GLuint, GLenum, GLuint, GLdouble*) glGetNamedProgramLocalParameterdvEXT;
981         void function(GLuint, GLenum, GLuint, GLfloat*) glGetNamedProgramLocalParameterfvEXT;
982         void function(GLuint, GLenum, GLenum, GLint*) glGetNamedProgramivEXT;
983         void function(GLuint, GLenum, GLenum, GLvoid*) glGetNamedProgramStringEXT;
984         void function(GLuint, GLenum, GLuint, GLsizei, in GLfloat*) glNamedProgramLocalParameters4fvEXT;
985         void function(GLuint, GLenum, GLuint, GLint, GLint, GLint, GLint) glNamedProgramLocalParameterI4iEXT;
986         void function(GLuint, GLenum, GLuint, in GLint*) glNamedProgramLocalParameterI4ivEXT;
987         void function(GLuint, GLenum, GLuint, GLsizei, in GLint*) glNamedProgramLocalParametersI4ivEXT;
988         void function(GLuint, GLenum, GLuint, GLuint, GLuint, GLuint, GLuint) glNamedProgramLocalParameterI4uiEXT;
989         void function(GLuint, GLenum, GLuint, in GLuint*) glNamedProgramLocalParameterI4uivEXT;
990         void function(GLuint, GLenum, GLuint, GLsizei, in GLuint*) glNamedProgramLocalParametersI4uivEXT;
991         void function(GLuint, GLenum, GLuint, GLint*) glGetNamedProgramLocalParameterIivEXT;
992         void function(GLuint, GLenum, GLuint, GLuint*) glGetNamedProgramLocalParameterIuivEXT;
993         void function(GLuint, GLenum, GLenum, in GLint*) glTextureParameterIivEXT;
994         void function(GLuint, GLenum, GLenum, in GLuint*) glTextureParameterIuivEXT;
995         void function(GLuint, GLenum, GLenum, GLint*) glGetTextureParameterIivEXT;
996         void function(GLuint, GLenum, GLenum, GLuint*) glGetTextureParameterIuivEXT;
997         void function(GLenum, GLenum, GLenum, in GLint*) glMultiTexParameterIivEXT;
998         void function(GLenum, GLenum, GLenum, in GLuint*) glMultiTexParameterIuivEXT;
999         void function(GLenum, GLenum, GLenum, GLint*) glGetMultiTexParameterIivEXT;
1000         void function(GLenum, GLenum, GLenum, GLuint*) glGetMultiTexParameterIuivEXT;
1001         void function(GLuint, GLint, GLfloat) glProgramUniform1fEXT;
1002         void function(GLuint, GLint, GLfloat, GLfloat) glProgramUniform2fEXT;
1003         void function(GLuint, GLint, GLfloat, GLfloat, GLfloat) glProgramUniform3fEXT;
1004         void function(GLuint, GLint, GLfloat, GLfloat, GLfloat, GLfloat) glProgramUniform4fEXT;
1005         void function(GLuint, GLint, GLint) glProgramUniform1iEXT;
1006         void function(GLuint, GLint, GLint, GLint) glProgramUniform2iEXT;
1007         void function(GLuint, GLint, GLint, GLint, GLint) glProgramUniform3iEXT;
1008         void function(GLuint, GLint, GLint, GLint, GLint, GLint) glProgramUniform4iEXT;
1009         void function(GLuint, GLint, GLsizei, in GLfloat*) glProgramUniform1fvEXT;
1010         void function(GLuint, GLint, GLsizei, in GLfloat*) glProgramUniform2fvEXT;
1011         void function(GLuint, GLint, GLsizei, in GLfloat*) glProgramUniform3fvEXT;
1012         void function(GLuint, GLint, GLsizei, in GLfloat*) glProgramUniform4fvEXT;
1013         void function(GLuint, GLint, GLsizei, in GLint*) glProgramUniform1ivEXT;
1014         void function(GLuint, GLint, GLsizei, in GLint*) glProgramUniform2ivEXT;
1015         void function(GLuint, GLint, GLsizei, in GLint*) glProgramUniform3ivEXT;
1016         void function(GLuint, GLint, GLsizei, in GLint*) glProgramUniform4ivEXT;
1017         void function(GLuint, GLint, GLsizei, GLboolean, in GLfloat*) glProgramUniformMatrix2fvEXT;
1018         void function(GLuint, GLint, GLsizei, GLboolean, in GLfloat*) glProgramUniformMatrix3fvEXT;
1019         void function(GLuint, GLint, GLsizei, GLboolean, in GLfloat*) glProgramUniformMatrix4fvEXT;
1020         void function(GLuint, GLint, GLsizei, GLboolean, in GLfloat*) glProgramUniformMatrix2x3fvEXT;
1021         void function(GLuint, GLint, GLsizei, GLboolean, in GLfloat*) glProgramUniformMatrix3x2fvEXT;
1022         void function(GLuint, GLint, GLsizei, GLboolean, in GLfloat*) glProgramUniformMatrix2x4fvEXT;
1023         void function(GLuint, GLint, GLsizei, GLboolean, in GLfloat*) glProgramUniformMatrix4x2fvEXT;
1024         void function(GLuint, GLint, GLsizei, GLboolean, in GLfloat*) glProgramUniformMatrix3x4fvEXT;
1025         void function(GLuint, GLint, GLsizei, GLboolean, in GLfloat*) glProgramUniformMatrix4x3fvEXT;
1026         void function(GLuint, GLint, GLuint) glProgramUniform1uiEXT;
1027         void function(GLuint, GLint, GLuint, GLuint) glProgramUniform2uiEXT;
1028         void function(GLuint, GLint, GLuint, GLuint, GLuint) glProgramUniform3uiEXT;
1029         void function(GLuint, GLint, GLuint, GLuint, GLuint, GLuint) glProgramUniform4uiEXT;
1030         void function(GLuint, GLint, GLsizei, in GLuint*) glProgramUniform1uivEXT;
1031         void function(GLuint, GLint, GLsizei, in GLuint*) glProgramUniform2uivEXT;
1032         void function(GLuint, GLint, GLsizei, in GLuint*) glProgramUniform3uivEXT;
1033         void function(GLuint, GLint, GLsizei, in GLuint*) glProgramUniform4uivEXT;
1034         void function(GLuint, GLsizeiptr, in GLvoid*, GLenum) glNamedBufferDataEXT;
1035         void function(GLuint, GLintptr, GLsizeiptr, in GLvoid*) glNamedBufferSubDataEXT;
1036         GLvoid* function(GLuint, GLenum) glMapNamedBufferEXT;
1037         GLboolean function(GLuint) glUnmapNamedBufferEXT;
1038         void function(GLuint, GLenum, GLint*) glGetNamedBufferParameterivEXT;
1039         void function(GLuint, GLenum, GLvoid**) glGetNamedBufferPointervEXT;
1040         void function(GLuint, GLintptr, GLsizeiptr, GLvoid*) glGetNamedBufferSubDataEXT;
1041         void function(GLuint, GLenum, GLenum, GLuint) glTextureBufferEXT;
1042         void function(GLenum, GLenum, GLenum, GLuint) glMultiTexBufferEXT;
1043         void function(GLuint, GLenum, GLsizei, GLsizei) glNamedRenderbufferStorageEXT;
1044         void function(GLuint, GLenum, GLint*) glGetNamedRenderbufferParameterivEXT;
1045         GLenum function(GLuint, GLenum) glCheckNamedFramebufferStatusEXT;
1046         void function(GLuint, GLenum, GLenum, GLuint, GLint) glNamedFramebufferTexture1DEXT;
1047         void function(GLuint, GLenum, GLenum, GLuint, GLint) glNamedFramebufferTexture2DEXT;
1048         void function(GLuint, GLenum, GLenum, GLuint, GLint, GLint) glNamedFramebufferTexture3DEXT;
1049         void function(GLuint, GLenum, GLenum, GLuint) glNamedFramebufferRenderbufferEXT;
1050         void function(GLuint, GLenum, GLenum, GLint*) glGetNamedFramebufferAttachmentParameterivEXT;
1051         void function(GLuint, GLenum) glGenerateTextureMipmapEXT;
1052         void function(GLenum, GLenum) glGenerateMultiTexMipmapEXT;
1053         void function(GLuint, GLenum) glFramebufferDrawBufferEXT;
1054         void function(GLuint, GLsizei, in GLenum*) glFramebufferDrawBuffersEXT;
1055         void function(GLuint, GLenum) glFramebufferReadBufferEXT;
1056         void function(GLuint, GLenum, GLint*) glGetFramebufferParameterivEXT;
1057         void function(GLuint, GLsizei, GLenum, GLsizei, GLsizei) glNamedRenderbufferStorageMultisampleEXT;
1058         void function(GLuint, GLsizei, GLsizei, GLenum, GLsizei, GLsizei) glNamedRenderbufferStorageMultisampleCoverageEXT;
1059         void function(GLuint, GLenum, GLuint, GLint) glNamedFramebufferTextureEXT;
1060         void function(GLuint, GLenum, GLuint, GLint, GLint) glNamedFramebufferTextureLayerEXT;
1061         void function(GLuint, GLenum, GLuint, GLint, GLenum) glNamedFramebufferTextureFaceEXT;
1062         void function(GLuint, GLenum, GLuint) glTextureRenderbufferEXT;
1063         void function(GLenum, GLenum, GLuint) glMultiTexRenderbufferEXT;
1064 
1065         // GL_EXT_provoking_vertex
1066         void function(GLenum) glProvokingVertexEXT;
1067 
1068         // GL_EXT_separate_shader_objects
1069         void function(GLenum, GLuint) glUseShaderProgramEXT;
1070         void function(GLuint) glActiveProgramEXT;
1071         GLuint function(GLenum, in GLchar*) glCreateShaderProgramEXT;
1072     }
1073 
1074     version(DerelictGL_NV)
1075     {
1076         // GL_NV_vertex_array_range
1077         void function() glFlushVertexArrayRangeNV;
1078         void function(GLsizei, in GLvoid*) glVertexArrayRangeNV;
1079 
1080         // GL_NV_register_combiners
1081         void function(GLenum, in GLfloat*) glCombinerParameterfvNV;
1082         void function(GLenum, GLfloat) glCombinerParameterfNV;
1083         void function(GLenum, in GLint*) glCombinerParameterivNV;
1084         void function(GLenum, GLint) glCombinerParameteriNV;
1085         void function(GLenum, GLenum, GLenum, GLenum, GLenum, GLenum) glCombinerInputNV;
1086         void function(GLenum, GLenum, GLenum, GLenum, GLenum, GLenum, GLenum, GLboolean, GLboolean, GLboolean) glCombinerOutputNV;
1087         void function(GLenum, GLenum, GLenum, GLenum) glFinalCombinerInputNV;
1088         void function(GLenum, GLenum, GLenum, GLenum, GLfloat*) glGetCombinerInputParameterfvNV;
1089         void function(GLenum, GLenum, GLenum, GLenum, GLint*) glGetCombinerInputParameterivNV;
1090         void function(GLenum, GLenum, GLenum, GLfloat*) glGetCombinerOutputParameterfvNV;
1091         void function(GLenum, GLenum, GLenum, GLint*) glGetCombinerOutputParameterivNV;
1092         void function(GLenum, GLenum, GLfloat*) glGetFinalCombinerInputParameterfvNV;
1093         void function(GLenum, GLenum, GLint*) glGetFinalCombinerInputParameterivNV;
1094 
1095         // GL_NV_fence
1096         void function(GLsizei, in GLuint*) glDeleteFencesNV;
1097         void function(GLsizei, GLuint*) glGenFencesNV;
1098         GLboolean function(GLuint) glIsFenceNV;
1099         GLboolean function(GLuint) glTestFenceNV;
1100         void function(GLuint, GLenum, GLint*) glGetFenceivNV;
1101         void function(GLuint) glFinishFenceNV;
1102         void function(GLuint, GLenum) glSetFenceNV;
1103 
1104         // GL_NV_evaluators
1105         void function(GLenum, GLuint, GLenum, GLsizei, GLsizei, GLint, GLint, GLboolean, in GLvoid*) glMapControlPointsNV;
1106         void function(GLenum, GLenum, in GLint*) glMapParameterivNV;
1107         void function(GLenum, GLenum, in GLfloat*) glMapParameterfvNV;
1108         void function(GLenum, GLuint, GLenum, GLsizei, GLsizei, GLboolean, GLvoid*) glGetMapControlPointsNV;
1109         void function(GLenum, GLenum, GLint*) glGetMapParameterivNV;
1110         void function(GLenum, GLenum, GLfloat*) glGetMapParameterfvNV;
1111         void function(GLenum, GLuint, GLenum, GLint*) glGetMapAttribParameterivNV;
1112         void function(GLenum, GLuint, GLenum, GLfloat*) glGetMapAttribParameterfvNV;
1113 
1114         // GL_NV_register_combiners2
1115         void function(GLenum, GLenum, in GLfloat*) glCombinerStageParameterfvNV;
1116         void function(GLenum, GLenum, GLfloat*) glGetCombinerStageParameterfvNV;
1117 
1118         // GL_NV_vertex_program
1119         GLboolean function(GLsizei, in GLuint*, GLboolean*) glAreProgramsResidentNV;
1120         void function(GLenum, GLuint) glBindProgramNV;
1121         void function(GLsizei, in GLuint*) glDeleteProgramsNV;
1122         void function(GLenum, GLuint, in GLfloat*) glExecuteProgramNV;
1123         void function(GLsizei, GLuint*) glGenProgramsNV;
1124         void function(GLenum, GLuint, GLenum, GLdouble*) glGetProgramParameterdvNV;
1125         void function(GLenum, GLuint, GLenum, GLfloat*) glGetProgramParameterfvNV;
1126         void function(GLuint, GLenum, GLint*) glGetProgramivNV;
1127         void function(GLuint, GLenum, GLubyte*) glGetProgramStringNV;
1128         void function(GLenum, GLuint, GLenum, GLint*) glGetTrackMatrixivNV;
1129         void function(GLuint, GLenum, GLdouble*) glGetVertexAttribdvNV;
1130         void function(GLuint, GLenum, GLfloat*) glGetVertexAttribfvNV;
1131         void function(GLuint, GLenum, GLint*) glGetVertexAttribivNV;
1132         void function(GLuint, GLenum, GLvoid**) glGetVertexAttribPointervNV;
1133         GLboolean function(GLuint) glIsProgramNV;
1134         void function(GLenum, GLuint, GLsizei, in GLubyte*) glLoadProgramNV;
1135         void function(GLenum, GLuint, GLdouble, GLdouble, GLdouble, GLdouble) glProgramParameter4dNV;
1136         void function(GLenum, GLuint, in GLdouble*) glProgramParameter4dvNV;
1137         void function(GLenum, GLuint, GLfloat, GLfloat, GLfloat, GLfloat) glProgramParameter4fNV;
1138         void function(GLenum, GLuint, in GLfloat*) glProgramParameter4fvNV;
1139         void function(GLenum, GLuint, GLuint, in GLdouble*) glProgramParameters4dvNV;
1140         void function(GLenum, GLuint, GLuint, in GLfloat*) glProgramParameters4fvNV;
1141         void function(GLsizei, in GLuint*) glRequestResidentProgramsNV;
1142         void function(GLenum, GLuint, GLenum, GLenum) glTrackMatrixNV;
1143         void function(GLuint, GLint, GLenum, GLsizei, in GLvoid*) glVertexAttribPointerNV;
1144         void function(GLuint, GLdouble) glVertexAttrib1dNV;
1145         void function(GLuint, in GLdouble*) glVertexAttrib1dvNV;
1146         void function(GLuint, GLfloat) glVertexAttrib1fNV;
1147         void function(GLuint, in GLfloat*) glVertexAttrib1fvNV;
1148         void function(GLuint, GLshort) glVertexAttrib1sNV;
1149         void function(GLuint, in GLshort*) glVertexAttrib1svNV;
1150         void function(GLuint, GLdouble, GLdouble) glVertexAttrib2dNV;
1151         void function(GLuint, in GLdouble*) glVertexAttrib2dvNV;
1152         void function(GLuint, GLfloat, GLfloat) glVertexAttrib2fNV;
1153         void function(GLuint, in GLfloat*) glVertexAttrib2fvNV;
1154         void function(GLuint, GLshort, GLshort) glVertexAttrib2sNV;
1155         void function(GLuint, in GLshort*) glVertexAttrib2svNV;
1156         void function(GLuint, GLdouble, GLdouble, GLdouble) glVertexAttrib3dNV;
1157         void function(GLuint, in GLdouble*) glVertexAttrib3dvNV;
1158         void function(GLuint, GLfloat, GLfloat, GLfloat) glVertexAttrib3fNV;
1159         void function(GLuint, in GLfloat*) glVertexAttrib3fvNV;
1160         void function(GLuint, GLshort, GLshort, GLshort) glVertexAttrib3sNV;
1161         void function(GLuint, in GLshort*) glVertexAttrib3svNV;
1162         void function(GLuint, GLdouble, GLdouble, GLdouble, GLdouble) glVertexAttrib4dNV;
1163         void function(GLuint, in GLdouble*) glVertexAttrib4dvNV;
1164         void function(GLuint, GLfloat, GLfloat, GLfloat, GLfloat) glVertexAttrib4fNV;
1165         void function(GLuint, in GLfloat*) glVertexAttrib4fvNV;
1166         void function(GLuint, GLshort, GLshort, GLshort, GLshort) glVertexAttrib4sNV;
1167         void function(GLuint, in GLshort*) glVertexAttrib4svNV;
1168         void function(GLuint, GLubyte, GLubyte, GLubyte, GLubyte) glVertexAttrib4ubNV;
1169         void function(GLuint, in GLubyte*) glVertexAttrib4ubvNV;
1170         void function(GLuint, GLsizei, in GLdouble*) glVertexAttribs1dvNV;
1171         void function(GLuint, GLsizei, in GLfloat*) glVertexAttribs1fvNV;
1172         void function(GLuint, GLsizei, in GLshort*) glVertexAttribs1svNV;
1173         void function(GLuint, GLsizei, in GLdouble*) glVertexAttribs2dvNV;
1174         void function(GLuint, GLsizei, in GLfloat*) glVertexAttribs2fvNV;
1175         void function(GLuint, GLsizei, in GLshort*) glVertexAttribs2svNV;
1176         void function(GLuint, GLsizei, in GLdouble*) glVertexAttribs3dvNV;
1177         void function(GLuint, GLsizei, in GLfloat*) glVertexAttribs3fvNV;
1178         void function(GLuint, GLsizei, in GLshort*) glVertexAttribs3svNV;
1179         void function(GLuint, GLsizei, in GLdouble*) glVertexAttribs4dvNV;
1180         void function(GLuint, GLsizei, in GLfloat*) glVertexAttribs4fvNV;
1181         void function(GLuint, GLsizei, in GLshort*) glVertexAttribs4svNV;
1182         void function(GLuint, GLsizei, in GLubyte*) glVertexAttribs4ubvNV;
1183 
1184         // GL_NV_occlusion_query
1185         void function(GLsizei, GLuint*) glGenOcclusionQueriesNV;
1186         void function(GLsizei, in GLuint*) glDeleteOcclusionQueriesNV;
1187         GLboolean function(GLuint) glIsOcclusionQueryNV;
1188         void function(GLuint) glBeginOcclusionQueryNV;
1189         void function() glEndOcclusionQueryNV;
1190         void function(GLuint, GLenum, GLint*) glGetOcclusionQueryivNV;
1191         void function(GLuint, GLenum, GLuint*) glGetOcclusionQueryuivNV;
1192 
1193         // GL_NV_point_sprite
1194         void function(GLenum, GLint) glPointParameteriNV;
1195         void function(GLenum, in GLint*) glPointParameterivNV;
1196 
1197         // GL_NV_fragment_program
1198         void function(GLuint, GLsizei, in GLubyte*, GLfloat, GLfloat, GLfloat, GLfloat) glProgramNamedParameter4fNV;
1199         void function(GLuint, GLsizei, in GLubyte*, GLdouble, GLdouble, GLdouble, GLdouble) glProgramNamedParameter4dNV;
1200         void function(GLuint, GLsizei, in GLubyte*, in GLfloat*) glProgramNamedParameter4fvNV;
1201         void function(GLuint, GLsizei, in GLubyte*, in GLdouble*) glProgramNamedParameter4dvNV;
1202         void function(GLuint, GLsizei, in GLubyte*, GLfloat*) glGetProgramNamedParameterfvNV;
1203         void function(GLuint, GLsizei, in GLubyte*, GLdouble*) glGetProgramNamedParameterdvNV;
1204 
1205         // GL_NV_half_float
1206         void function(GLhalfNV, GLhalfNV) glVertex2hNV;
1207         void function(in GLhalfNV*) glVertex2hvNV;
1208         void function(GLhalfNV, GLhalfNV, GLhalfNV) glVertex3hNV;
1209         void function(in GLhalfNV*) glVertex3hvNV;
1210         void function(GLhalfNV, GLhalfNV, GLhalfNV, GLhalfNV) glVertex4hNV;
1211         void function(in GLhalfNV*) glVertex4hvNV;
1212         void function(GLhalfNV, GLhalfNV, GLhalfNV) glNormal3hNV;
1213         void function(in GLhalfNV*) glNormal3hvNV;
1214         void function(GLhalfNV, GLhalfNV, GLhalfNV) glColor3hNV;
1215         void function(in GLhalfNV*) glColor3hvNV;
1216         void function(GLhalfNV, GLhalfNV, GLhalfNV, GLhalfNV) glColor4hNV;
1217         void function(in GLhalfNV*) glColor4hvNV;
1218         void function(GLhalfNV) glTexCoord1hNV;
1219         void function(in GLhalfNV*) glTexCoord1hvNV;
1220         void function(GLhalfNV, GLhalfNV) glTexCoord2hNV;
1221         void function(in GLhalfNV*) glTexCoord2hvNV;
1222         void function(GLhalfNV, GLhalfNV, GLhalfNV) glTexCoord3hNV;
1223         void function(in GLhalfNV*) glTexCoord3hvNV;
1224         void function(GLhalfNV, GLhalfNV, GLhalfNV, GLhalfNV) glTexCoord4hNV;
1225         void function(in GLhalfNV*) glTexCoord4hvNV;
1226         void function(GLenum, GLhalfNV) glMultiTexCoord1hNV;
1227         void function(GLenum, in GLhalfNV*) glMultiTexCoord1hvNV;
1228         void function(GLenum, GLhalfNV, GLhalfNV) glMultiTexCoord2hNV;
1229         void function(GLenum, in GLhalfNV*) glMultiTexCoord2hvNV;
1230         void function(GLenum, GLhalfNV, GLhalfNV, GLhalfNV) glMultiTexCoord3hNV;
1231         void function(GLenum, in GLhalfNV*) glMultiTexCoord3hvNV;
1232         void function(GLenum, GLhalfNV, GLhalfNV, GLhalfNV, GLhalfNV) glMultiTexCoord4hNV;
1233         void function(GLenum, in GLhalfNV*) glMultiTexCoord4hvNV;
1234         void function(GLhalfNV) glFogCoordhNV;
1235         void function(in GLhalfNV*) glFogCoordhvNV;
1236         void function(GLhalfNV, GLhalfNV, GLhalfNV) glSecondaryColor3hNV;
1237         void function(in GLhalfNV*) glSecondaryColor3hvNV;
1238 
1239         // These two funcs seem not to be present in the NVIDIA drivers
1240 //        void function(GLhalfNV) glVertexWeighthNV;
1241 //        void function(in GLhalfNV*) glVertexWeighthvNV;
1242 
1243         void function(GLuint, GLhalfNV) glVertexAttrib1hNV;
1244         void function(GLuint, in GLhalfNV*) glVertexAttrib1hvNV;
1245         void function(GLuint, GLhalfNV, GLhalfNV) glVertexAttrib2hNV;
1246         void function(GLuint, in GLhalfNV*) glVertexAttrib2hvNV;
1247         void function(GLuint, GLhalfNV, GLhalfNV, GLhalfNV) glVertexAttrib3hNV;
1248         void function(GLuint, in GLhalfNV*) glVertexAttrib3hvNV;
1249         void function(GLuint, GLhalfNV, GLhalfNV, GLhalfNV, GLhalfNV) glVertexAttrib4hNV;
1250         void function(GLuint, in GLhalfNV*) glVertexAttrib4hvNV;
1251         void function(GLuint, GLsizei, in GLhalfNV*) glVertexAttribs1hvNV;
1252         void function(GLuint, GLsizei, in GLhalfNV*) glVertexAttribs2hvNV;
1253         void function(GLuint, GLsizei, in GLhalfNV*) glVertexAttribs3hvNV;
1254         void function(GLuint, GLsizei, in GLhalfNV*) glVertexAttribs4hvNV;
1255 
1256         // GL_NV_pixel_data_range
1257         void function(GLenum, GLsizei, GLvoid*) glPixelDataRangeNV;
1258         void function(GLenum) glFlushPixelDataRangeNV;
1259 
1260         // GL_NV_primitive_restart
1261         void function() glPrimitiveRestartNV;
1262         void function(GLuint) glPrimitiveRestartIndexNV;
1263 
1264         // GL_NV_gpu_program4
1265         void function(GLenum, GLuint, GLint, GLint, GLint, GLint) glProgramLocalParameterI4iNV;
1266         void function(GLenum, GLuint, in GLint*) glProgramLocalParameterI4ivNV;
1267         void function(GLenum, GLuint, GLsizei, in GLint*) glProgramLocalParametersI4ivNV;
1268         void function(GLenum, GLuint, GLuint, GLuint, GLuint, GLuint) glProgramLocalParameterI4uiNV;
1269         void function(GLenum, GLuint, in GLuint*) glProgramLocalParameterI4uivNV;
1270         void function(GLenum, GLuint, GLsizei, in GLuint*) glProgramLocalParametersI4uivNV;
1271         void function(GLenum, GLuint, GLint, GLint, GLint, GLint) glProgramEnvParameterI4iNV;
1272         void function(GLenum, GLuint, in GLint*) glProgramEnvParameterI4ivNV;
1273         void function(GLenum, GLuint, GLsizei, in GLint*) glProgramEnvParametersI4ivNV;
1274         void function(GLenum, GLuint, GLuint, GLuint, GLuint, GLuint) glProgramEnvParameterI4uiNV;
1275         void function(GLenum, GLuint, in GLuint*) glProgramEnvParameterI4uivNV;
1276         void function(GLenum, GLuint, GLsizei, in GLuint*) glProgramEnvParametersI4uivNV;
1277         void function(GLenum, GLuint, GLint*) glGetProgramLocalParameterIivNV;
1278         void function(GLenum, GLuint, GLuint*) glGetProgramLocalParameterIuivNV;
1279         void function(GLenum, GLuint, GLint*) glGetProgramEnvParameterIivNV;
1280         void function(GLenum, GLuint, GLuint*) glGetProgramEnvParameterIuivNV;
1281 
1282         // GL_NV_geometry_program4
1283         void function(GLenum, GLint) glProgramVertexLimitNV;
1284         void function(GLenum, GLenum, GLuint, GLint) glFramebufferTextureEXT;
1285         void function(GLenum, GLenum, GLuint, GLint, GLint) glFramebufferTextureLayerEXT;
1286         void function(GLenum, GLenum, GLuint, GLint, GLenum) glFramebufferTextureFaceEXT;
1287 
1288         // GL_NV_vertex_program4
1289         void function(GLuint, GLint) glVertexAttribI1iEXT;
1290         void function(GLuint, GLint, GLint) glVertexAttribI2iEXT;
1291         void function(GLuint, GLint, GLint, GLint) glVertexAttribI3iEXT;
1292         void function(GLuint, GLint, GLint, GLint, GLint) glVertexAttribI4iEXT;
1293         void function(GLuint, GLuint) glVertexAttribI1uiEXT;
1294         void function(GLuint, GLuint, GLuint) glVertexAttribI2uiEXT;
1295         void function(GLuint, GLuint, GLuint, GLuint) glVertexAttribI3uiEXT;
1296         void function(GLuint, GLuint, GLuint, GLuint, GLuint) glVertexAttribI4uiEXT;
1297         void function(GLuint, in GLint*) glVertexAttribI1ivEXT;
1298         void function(GLuint, in GLint*) glVertexAttribI2ivEXT;
1299         void function(GLuint, in GLint*) glVertexAttribI3ivEXT;
1300         void function(GLuint, in GLint*) glVertexAttribI4ivEXT;
1301         void function(GLuint, in GLuint*) glVertexAttribI1uivEXT;
1302         void function(GLuint, in GLuint*) glVertexAttribI2uivEXT;
1303         void function(GLuint, in GLuint*) glVertexAttribI3uivEXT;
1304         void function(GLuint, in GLuint*) glVertexAttribI4uivEXT;
1305         void function(GLuint, in GLbyte*) glVertexAttribI4bvEXT;
1306         void function(GLuint, in GLshort*) glVertexAttribI4svEXT;
1307         void function(GLuint, in GLubyte*) glVertexAttribI4ubvEXT;
1308         void function(GLuint, in GLushort*) glVertexAttribI4usvEXT;
1309         void function(GLuint, GLint, GLenum, GLsizei, in GLvoid*) glVertexAttribIPointerEXT;
1310         void function(GLuint, GLenum, GLint*) glGetVertexAttribIivEXT;
1311         void function(GLuint, GLenum, GLuint*) glGetVertexAttribIuivEXT;
1312 
1313         // GL_NV_depth_buffer_float
1314         void function(GLdouble, GLdouble) glDepthRangedNV;
1315         void function(GLdouble) glClearDepthdNV;
1316         void function(GLdouble, GLdouble) glDepthBoundsdNV;
1317 
1318         // GL_NV_framebuffer_multisample_coverage
1319         void function(GLenum, GLsizei, GLsizei, GLenum, GLsizei, GLsizei) glRenderbufferStorageMultisampleCoverageNV;
1320 
1321         // GL_NV_transform_feedback
1322         void function(GLenum) glBeginTransformFeedbackNV;
1323         void function() glEndTransformFeedbackNV;
1324         void function(GLuint, in GLint*, GLenum) glTransformFeedbackAttribsNV;
1325         void function(GLenum, GLuint, GLuint, GLintptr, GLsizeiptr) glBindBufferRangeNV;
1326         void function(GLenum, GLuint, GLuint, GLintptr) glBindBufferOffsetNV;
1327         void function(GLenum, GLuint, GLuint) glBindBufferBaseNV;
1328         void function(GLuint, GLsizei, in GLchar**, GLenum) glTransformFeedbackVaryingsNV;
1329         void function(GLuint, in GLchar*) glActiveVaryingNV;
1330         GLint function(GLuint, in GLchar*) glGetVaryingLocationNV;
1331         void function(GLuint, GLuint, GLsizei, GLsizei*, GLsizei*, GLenum*, GLchar*) glGetActiveVaryingNV;
1332         void function(GLuint, GLuint, GLint*) glGetTransformFeedbackVaryingNV;
1333 
1334         // GL_NV_conditional_render
1335         void function(GLuint, GLenum) glBeginConditionalRenderNV;
1336         void function() glEndConditionalRenderNV;
1337 
1338         // GL_NV_present_video
1339         void function(GLuint, GLuint64EXT, GLuint, GLuint, GLenum, GLenum, GLuint, GLuint, GLenum, GLuint, GLuint) glPresentFrameKeyedNV;
1340         void function(GLuint, GLuint64EXT, GLuint, GLuint, GLenum, GLenum, GLuint, GLenum, GLuint, GLenum, GLuint, GLenum, GLuint) glPresentFrameDualFillNV;
1341         void function(GLuint, GLenum, GLint*) glGetVideoivNV;
1342         void function(GLuint, GLenum, GLuint*) glGetVideouivNV;
1343         void function(GLuint, GLenum, GLint64EXT*) glGetVideoi64vNV;
1344         void function(GLuint, GLenum, GLuint64EXT*) glGetVideoui64vNV;
1345 
1346         // GL_NV_explicit_multisample
1347         void function(GLenum, GLuint, GLfloat*) glGetMultisamplefvNV;
1348         void function(GLuint, GLbitfield) glSampleMaskIndexedNV;
1349         void function(GLenum, GLuint) glTexRenderbufferNV;
1350 
1351         // GL_NV_transform_feedback2
1352         void function(GLenum, GLuint) glBindTransformFeedbackNV;
1353         void function(GLsizei, in GLuint*) glDeleteTransformFeedbacksNV;
1354         void function(GLsizei, GLuint*) glGenTransformFeedbacksNV;
1355         GLboolean function(GLuint) glIsTransformFeedbackNV;
1356         void function() glPauseTransformFeedbackNV;
1357         void function() glResumeTransformFeedbackNV;
1358         void function(GLenum, GLuint) glDrawTransformFeedbackNV;
1359 
1360         // GL_NV_video_capture
1361         void function(GLuint) glBeginVideoCaptureNV;
1362         void function(GLuint, GLuint, GLenum, GLintptrARB) glBindVideoCaptureStreamBufferNV;
1363         void function(GLuint, GLuint, GLenum, GLenum, GLuint) glBindVideoCaptureStreamTextureNV;
1364         void function(GLuint) glEndVideoCaptureNV;
1365         void function(GLuint, GLenum, GLint*) glGetVideoCaptureivNV;
1366         void function(GLuint, GLuint, GLenum, GLint*) glGetVideoCaptureStreamivNV;
1367         void function(GLuint, GLuint, GLenum, GLfloat*) glGetVideoCaptureStreamfvNV;
1368         void function(GLuint, GLuint, GLenum, GLdouble*) glGetVideoCaptureStreamdvNV;
1369         GLenum function(GLuint, GLuint*, GLuint64EXT*) glVideoCaptureNV;
1370         void function(GLuint, GLuint, GLenum, in GLint*) glVideoCaptureStreamParameterivNV;
1371         void function(GLuint, GLuint, GLenum, in GLfloat*) glVideoCaptureStreamParameterfvNV;
1372         void function(GLuint, GLuint, GLenum, in GLdouble*) glVideoCaptureStreamParameterdvNV;
1373 
1374         // GL_NV_copy_image
1375         void function(GLuint, GLenum, GLint, GLint, GLint, GLint, GLuint, GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei) glCopyImageSubDataNV;
1376 
1377         // GL_NV_shader_buffer_load
1378         void function(GLenum, GLenum) glMakeBufferResidentNV;
1379         void function(GLenum) glMakeBufferNonResidentNV;
1380         GLboolean function(GLenum) glIsBufferResidentNV;
1381         void function(GLuint, GLenum) glNamedMakeBufferResidentNV;
1382         void function(GLuint) glNamedMakeBufferNonResidentNV;
1383         GLboolean function(GLuint) glIsNamedBufferResidentNV;
1384         void function(GLenum, GLenum, GLuint64EXT*) glGetBufferParameterui64vNV;
1385         void function(GLuint, GLenum, GLuint64EXT*) glGetNamedBufferParameterui64vNV;
1386         void function(GLenum, GLuint64EXT*) glGetIntegerui64vNV;
1387         void function(GLint, GLuint64EXT) glUniformui64NV;
1388         void function(GLint, GLsizei, in GLuint64EXT*) glUniformui64vNV;
1389         void function(GLuint, GLint, GLuint64EXT*) glGetUniformui64vNV;
1390         void function(GLuint, GLint, GLuint64EXT) glProgramUniformui64NV;
1391         void function(GLuint, GLint, GLsizei, in GLuint64EXT*) glProgramUniformui64vNV;
1392 
1393         // GL_NV_vertex_buffer_unified_memory
1394         void function(GLenum, GLuint, GLuint64EXT, GLsizeiptr) glBufferAddressRangeNV;
1395         void function(GLint, GLenum, GLsizei) glVertexFormatNV;
1396         void function(GLenum, GLsizei) glNormalFormatNV;
1397         void function(GLint, GLenum, GLsizei) glColorFormatNV;
1398         void function(GLenum, GLsizei) glIndexFormatNV;
1399         void function(GLint, GLenum, GLsizei) glTexCoordFormatNV;
1400         void function(GLsizei) glEdgeFlagFormatNV;
1401         void function(GLint, GLenum, GLsizei) glSecondaryColorFormatNV;
1402         void function(GLenum, GLsizei) glFogCoordFormatNV;
1403         void function(GLuint, GLint, GLenum, GLboolean, GLsizei) glVertexAttribFormatNV;
1404         void function(GLuint, GLint, GLenum, GLsizei) glVertexAttribIFormatNV;
1405         void function(GLenum, GLuint, GLuint64EXT*) glGetIntegerui64i_vNV;
1406 
1407         // GL_NV_texture_barrier
1408         void function() glTextureBarrierNV;
1409     }
1410 
1411     version(DerelictGL_ATI)
1412     {
1413         // GL_ATI_envmap_bumpmap
1414         void function(GLenum, in GLint*) glTexBumpParameterivATI;
1415         void function(GLenum, in GLfloat*) glTexBumpParameterfvATI;
1416         void function(GLenum, GLint*) glGetTexBumpParameterivATI;
1417         void function(GLenum, GLfloat*) glGetTexBumpParameterfvATI;
1418 
1419         // GL_ATI_fragment_shader
1420         GLuint function(GLuint) glGenFragmentShadersATI;
1421         void function(GLuint) glBindFragmentShaderATI;
1422         void function(GLuint) glDeleteFragmentShaderATI;
1423         void function() glBeginFragmentShaderATI;
1424         void function() glEndFragmentShaderATI;
1425         void function(GLuint, GLuint, GLenum) glPassTexCoordATI;
1426         void function(GLuint, GLuint, GLenum) glSampleMapATI;
1427         void function(GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint) glColorFragmentOp1ATI;
1428         void function(GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint) glColorFragmentOp2ATI;
1429         void function(GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint) glColorFragmentOp3ATI;
1430         void function(GLenum, GLuint, GLuint, GLuint, GLuint, GLuint) glAlphaFragmentOp1ATI;
1431         void function(GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint) glAlphaFragmentOp2ATI;
1432         void function(GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint) glAlphaFragmentOp3ATI;
1433         void function(GLuint, in GLfloat*) glSetFragmentShaderConstantATI;
1434 
1435         // GL_ATI_pn_triangles
1436         void function(GLenum, GLint) glPNTrianglesiATI;
1437         void function(GLenum, GLint) glPNTrianglesfATI;
1438 
1439         // GL_ATI_vertex_array_object
1440         GLuint function(GLsizei, in GLvoid*, GLenum) glNewObjectBufferATI;
1441         GLboolean function(GLuint) glIsObjectBufferATI;
1442         void function(GLuint, GLuint, GLsizei, in GLvoid*, GLenum) glUpdateObjectBufferATI;
1443         void function(GLuint, GLenum, GLfloat*) glGetObjectBufferfvATI;
1444         void function(GLuint, GLenum, GLint*) glGetObjectBufferivATI;
1445         void function(GLuint) glFreeObjectBufferATI;
1446         void function(GLenum, GLint, GLenum, GLsizei, GLuint, GLuint) glArrayObjectATI;
1447         void function(GLenum, GLenum, GLfloat*) glGetArrayObjectfvATI;
1448         void function(GLenum, GLenum, GLint*) glGetArrayObjectivATI;
1449         void function(GLuint, GLenum, GLsizei, GLuint, GLuint) glVariantArrayObjectATI;
1450         void function(GLuint, GLenum, GLfloat*) glGetVariantArrayObjectfvATI;
1451         void function(GLuint, GLenum, GLint*) glGetVariantArrayObjectivATI;
1452 
1453         // GL_ATI_vertex_streams
1454         void function(GLenum, GLshort) glVertexStream1sATI;
1455         void function(GLenum, in GLshort*) glVertexStream1svATI;
1456         void function(GLenum, GLint) glVertexStream1iATI;
1457         void function(GLenum, in GLint*) glVertexStream1ivATI;
1458         void function(GLenum, GLfloat) glVertexStream1fATI;
1459         void function(GLenum, in GLfloat*) glVertexStream1fvATI;
1460         void function(GLenum, GLdouble) glVertexStream1dATI;
1461         void function(GLenum, in GLdouble*) glVertexStream1dvATI;
1462         void function(GLenum, GLshort, GLshort) glVertexStream2sATI;
1463         void function(GLenum, in GLshort*) glVertexStream2svATI;
1464         void function(GLenum, GLint, GLint) glVertexStream2iATI;
1465         void function(GLenum, in GLint*) glVertexStream2ivATI;
1466         void function(GLenum, GLfloat, GLfloat) glVertexStream2fATI;
1467         void function(GLenum, in GLfloat*) glVertexStream2fvATI;
1468         void function(GLenum, GLdouble, GLdouble) glVertexStream2dATI;
1469         void function(GLenum, in GLdouble*) glVertexStream2dvATI;
1470         void function(GLenum, GLshort, GLshort, GLshort) glVertexStream3sATI;
1471         void function(GLenum, in GLshort*) glVertexStream3svATI;
1472         void function(GLenum, GLint, GLint, GLint) glVertexStream3iATI;
1473         void function(GLenum, in GLint*) glVertexStream3ivATI;
1474         void function(GLenum, GLfloat, GLfloat, GLfloat) glVertexStream3fATI;
1475         void function(GLenum, in GLfloat*) glVertexStream3fvATI;
1476         void function(GLenum, GLdouble, GLdouble, GLdouble) glVertexStream3dATI;
1477         void function(GLenum, in GLdouble*) glVertexStream3dvATI;
1478         void function(GLenum, GLshort, GLshort, GLshort, GLshort) glVertexStream4sATI;
1479         void function(GLenum, in GLshort*) glVertexStream4svATI;
1480         void function(GLenum, GLint, GLint, GLint, GLint) glVertexStream4iATI;
1481         void function(GLenum, in GLint*) glVertexStream4ivATI;
1482         void function(GLenum, GLfloat, GLfloat, GLfloat, GLfloat) glVertexStream4fATI;
1483         void function(GLenum, in GLfloat*) glVertexStream4fvATI;
1484         void function(GLenum, GLdouble, GLdouble, GLdouble, GLdouble) glVertexStream4dATI;
1485         void function(GLenum, in GLdouble*) glVertexStream4dvATI;
1486         void function(GLenum, GLbyte, GLbyte, GLbyte) glNormalStream3bATI;
1487         void function(GLenum, in GLbyte*) glNormalStream3bvATI;
1488         void function(GLenum, GLshort, GLshort, GLshort) glNormalStream3sATI;
1489         void function(GLenum, in GLshort*) glNormalStream3svATI;
1490         void function(GLenum, GLint, GLint, GLint) glNormalStream3iATI;
1491         void function(GLenum, in GLint*) glNormalStream3ivATI;
1492         void function(GLenum, GLfloat, GLfloat, GLfloat) glNormalStream3fATI;
1493         void function(GLenum, in GLfloat*) glNormalStream3fvATI;
1494         void function(GLenum, GLdouble, GLdouble, GLdouble) glNormalStream3dATI;
1495         void function(GLenum, in GLdouble*) glNormalStream3dvATI;
1496         void function(GLenum) glClientActiveVertexStreamATI;
1497         void function(GLenum, GLint) glVertexBlendEnviATI;
1498         void function(GLenum, GLfloat) glVertexBlendEnvfATI;
1499 
1500         // GL_ATI_element_array
1501         void function(GLenum, in GLvoid*) glElementPointerATI;
1502         void function(GLenum, GLsizei) glDrawElementArrayATI;
1503         void function(GLenum, GLuint, GLuint, GLsizei) glDrawRangeElementArrayATI;
1504 
1505         // GL_ATI_draw_buffers
1506         void function(GLsizei, in GLenum*) glDrawBuffersATI;
1507 
1508         // GL_ATI_map_object_buffer
1509         GLvoid* function(GLuint) glMapBufferATI;
1510         void function(GLuint) glUnmapBufferATI;
1511 
1512         // GL_ATI_separate_stencil
1513         void function(GLenum, GLenum, GLenum, GLenum) glStencilOpSeparateATI;
1514         void function(GLenum, GLenum, GLint, GLuint) glStencilFuncSeparateATI;
1515 
1516         // GL_ATI_vertex_attrib_array_object
1517         void function(GLuint, GLint, GLenum, GLboolean, GLsizei, GLuint, GLuint) glVertexAttribArrayObjectATI;
1518         void function(GLuint, GLenum, GLfloat*) glGetVertexAttribArrayObjectfvATI;
1519         void function(GLuint, GLenum, GLint*) glGetVertexAttribArrayObjectivATI;
1520     }
1521 
1522     version(DerelictGL_AMD)
1523     {
1524         // GL_AMD_performance_monitor
1525         void function(GLint*, GLsizei, GLuint*) glGetPerfMonitorGroupsAMD;
1526         void function(GLuint, GLint*, GLint*, GLsizei, GLuint*) glGetPerfMonitorCountersAMD;
1527         void function(GLuint, GLsizei, GLsizei*, GLchar*) glGetPerfMonitorGroupStringAMD;
1528         void function(GLuint, GLuint, GLsizei, GLsizei*, GLchar*) glGetPerfMonitorCounterStringAMD;
1529         void function(GLuint, GLuint, GLenum, void*) glGetPerfMonitorCounterInfoAMD;
1530         void function(GLsizei, GLuint*) glGenPerfMonitorsAMD;
1531         void function(GLsizei, GLuint*) glDeletePerfMonitorsAMD;
1532         void function(GLuint, GLboolean, GLuint, GLint, GLuint*) glSelectPerfMonitorCountersAMD;
1533         void function(GLuint) glBeginPerfMonitorAMD;
1534         void function(GLuint) glEndPerfMonitorAMD;
1535         void function(GLuint, GLenum, GLsizei, GLuint*, GLint*) glGetPerfMonitorCounterDataAMD;
1536 
1537         // GL_AMD_vertex_shader_tesselator
1538         void function(GLfloat) glTessellationFactorAMD;
1539         void function(GLenum) glTessellationModeAMD;
1540 
1541         // GL_AMD_draw_buffers_blend
1542         void function(GLuint, GLenum, GLenum) glBlendFuncIndexedAMD;
1543         void function(GLuint, GLenum, GLenum, GLenum, GLenum) glBlendFuncSeparateIndexedAMD;
1544         void function(GLuint, GLenum) glBlendEquationIndexedAMD;
1545         void function(GLuint, GLenum, GLenum) glBlendEquationSeparateIndexedAMD;
1546     }
1547 
1548     version(DerelictGL_SGI)
1549     {
1550         // GL_SGI_color_table
1551         void function(GLenum, GLenum, GLsizei, GLenum, GLenum, in GLvoid*) glColorTableSGI;
1552         void function(GLenum, GLenum, in GLfloat*) glColorTableParameterfvSGI;
1553         void function(GLenum, GLenum, in GLint*) glColorTableParameterivSGI;
1554         void function(GLenum, GLenum, GLint, GLint, GLsizei) glCopyColorTableSGI;
1555         void function(GLenum, GLenum, GLenum, GLvoid*) glGetColorTableSGI;
1556         void function(GLenum, GLenum, GLfloat*) glGetColorTableParameterfvSGI;
1557         void function(GLenum, GLenum, GLint*) glGetColorTableParameterivSGI;
1558     }
1559 
1560     version(DerelictGL_SGIS)
1561     {
1562         // GL_SGIS_texture_filter4
1563         void function(GLenum, GLenum, GLfloat*) glGetTexFilterFuncSGIS;
1564         void function(GLenum, GLenum, in GLfloat*) glTexFilterFuncSGIS;
1565 
1566         // GL_SGIS_pixel_texture
1567         void function(GLenum, GLint) glPixelTexGenParameteriSGIS;
1568         void function(GLenum, in GLint*) glPixelTexGenParameterivSGIS;
1569         void function(GLenum, GLfloat) glPixelTexGenParameterfSGIS;
1570         void function(GLenum, in GLfloat*) glPixelTexGenParameterfvSGIS;
1571         void function(GLenum, GLint*) glGetPixelTexGenParameterivSGIS;
1572         void function(GLenum, GLfloat*) glGetPixelTexGenParameterfvSGIS;
1573 
1574         // GL_SGIS_texture4D
1575         void function(GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, in GLvoid*) glTexImage4DSGIS;
1576         void function(GLenum, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLsizei, GLenum, GLenum, in GLvoid*) glTexSubImage4DSGIS;
1577 
1578         // GL_SGIS_detail_texture
1579         void function(GLenum, GLsizei, in GLfloat*) glDetailTexFuncSGIS;
1580         void function(GLenum, GLfloat*) glGetDetailTexFuncSGIS;
1581 
1582         // GL_SGIS_sharpen_texture
1583         void function(GLenum, GLsizei, in GLfloat*) glSharpenTexFuncSGIS;
1584         void function(GLenum, GLfloat*) glGetSharpenTexFuncSGIS;
1585 
1586         // GL_SGIS_multisample
1587         void function(GLclampf, GLboolean) glSampleMaskSGIS;
1588         void function(GLenum) glSamplePatternSGIS;
1589 
1590         // GL_SGIS_point_parameters
1591         void function(GLenum, GLfloat) glPointParameterfSGIS;
1592         void function(GLenum, in GLfloat*) glPointParameterfvSGIS;
1593 
1594         // GL_SGIS_fog_function
1595         void function(GLsizei, in GLfloat*) glFogFuncSGIS;
1596         void function(GLfloat*) glGetFogFuncSGIS;
1597 
1598         // GL_SGIS_texture_color_mask
1599         void function(GLboolean, GLboolean, GLboolean, GLboolean) glTextureColorMaskSGIS;
1600     }
1601 
1602     version(DerelictGL_SGIX)
1603     {
1604         // GL_SGIX_pixel_texture
1605         void function(GLenum) glPixelTexGenSGIX;
1606 
1607         // GL_SGIX_sprite
1608         void function(GLenum, GLfloat) glSpriteParameterfSGIX;
1609         void function(GLenum, in GLfloat*) glSpriteParameterfvSGIX;
1610         void function(GLenum, GLint) glSpriteParameteriSGIX;
1611         void function(GLenum, in GLint*) glSpriteParameterivSGIX;
1612 
1613         // GL_SGIX_instruments
1614         GLint function() glGetInstrumentsSGIX;
1615         void function(GLsizei, GLint*) glInstrumentsBufferSGIX;
1616         GLint function(GLint*) glPollInstrumentsSGIX;
1617         void function(GLint) glReadInstrumentsSGIX;
1618         void function() glStartInstrumentsSGIX;
1619         void function(GLint) glStopInstrumentsSGIX;
1620 
1621         // GL_SGIX_framezoom
1622         void function(GLint) glFrameZoomSGIX;
1623 
1624         // GL_SGIX_tag_sample_buffer
1625         void function() glTagSampleBufferSGIX;
1626 
1627         // GL_SGIX_polynomial_ffd
1628         void function(GLenum, GLdouble, GLdouble, GLint, GLint, GLdouble, GLdouble, GLint, GLint, GLdouble, GLdouble, GLint, GLint, in GLdouble*) glDeformationMap3dSGIX;
1629         void function(GLenum, GLfloat, GLfloat, GLint, GLint, GLfloat, GLfloat, GLint, GLint, GLfloat, GLfloat, GLint, GLint, in GLfloat*) glDeformationMap3fSGIX;
1630         void function(GLbitfield) glDeformSGIX;
1631         void function(GLbitfield) glLoadIdentityDeformationMapSGIX;
1632 
1633         // GL_SGIX_reference_plane
1634         void function(in GLdouble*) glReferencePlaneSGIX;
1635 
1636         // GL_SGIX_flush_raster
1637         void function() glFLushRasterSGIX;
1638 
1639         // GL_SGIX_list_priority
1640         void function(GLuint, GLenum, GLfloat*) glGetListParameterfvSGIX;
1641         void function(GLuint, GLenum, GLint*) glGetListParameterivSGIX;
1642         void function(GLuint, GLenum, GLfloat) glListParameterfSGIX;
1643         void function(GLuint, GLenum, in GLfloat*) glListParameterfvSGIX;
1644         void function(GLuint, GLenum, GLint) glListParameteriSGIX;
1645         void function(GLuint, GLenum, in GLint*) glListParameterivSGIX;
1646 
1647          // GL_SGIX_fragment_lighting
1648         void function(GLenum, GLenum) glFragmentColorMaterialSGIX;
1649         void function(GLenum, GLenum, GLfloat) glFragmentLightfSGIX;
1650         void function(GLenum, GLenum, in GLfloat*) glFragmentLightfvSGIX;
1651         void function(GLenum, GLenum, GLint) glFragmentLightiSGIX;
1652         void function(GLenum, GLenum, in GLint*) glFragmentLightivSGIX;
1653         void function(GLenum, GLfloat) glFragmentLightModelfSGIX;
1654         void function(GLenum, in GLfloat*) glFragmentLightModelfvSGIX;
1655         void function(GLenum, GLint) glFragmentLightModeliSGIX;
1656         void function(GLenum, in GLint*) glFragmentLightModelivSGIX;
1657         void function(GLenum, GLenum, GLfloat) glFragmentMaterialfSGIX;
1658         void function(GLenum, GLenum, in GLfloat*) glFragmentMaterialfvSGIX;
1659         void function(GLenum, GLenum, GLint) glFragmentMaterialiSGIX;
1660         void function(GLenum, GLenum, in GLint*) glFragmentMaterialivSGIX;
1661         void function(GLenum, GLenum, GLfloat*) glGetFragmentLightfvSGIX;
1662         void function(GLenum, GLenum, GLint*) glGetFragmentLightivSGIX;
1663         void function(GLenum, GLenum, GLfloat*) glGetFragmentMaterialfvSGIX;
1664         void function(GLenum, GLenum, GLint*) glGetFragmentMaterialivSGIX;
1665         void function(GLenum, GLint) glLightEnviSGIX;
1666 
1667         // GL_SGIX_async
1668         void function(GLuint) glAsyncMarkerSGIX;
1669         GLint function(GLuint*) glFinishAsyncSGIX;
1670         GLint function(GLuint*) glPollAsyncSGIX;
1671         GLuint function(GLsizei) glGenAsyncMarkersSGIX;
1672         void function(GLuint, GLsizei) glDeleteAsyncMarkersSGIX;
1673         GLboolean function(GLuint) glIsAsyncMarkerSGIX;
1674     }
1675 
1676     version(DerelictGL_HP)
1677     {
1678         // GL_HP_image_transform
1679         void function(GLenum, GLenum, GLint) glImageTransformParameteriHP;
1680         void function(GLenum, GLenum, GLfloat) glImageTransformParameterfHP;
1681         void function(GLenum, GLenum, in GLint*) glImageTransformParameterivHP;
1682         void function(GLenum, GLenum, in GLfloat*) glImageTransformParameterfvHP;
1683         void function(GLenum, GLenum, GLint*) glGetImageTransformParameterivHP;
1684         void function(GLenum, GLenum, GLfloat*) glGetImageTransformParameterfvHP;
1685     }
1686 
1687     version(DerelictGL_PGI)
1688     {
1689         // GL_PGI_misc_hints
1690         void function(GLenum, GLint) glHintPGI;
1691     }
1692 
1693     version(DerelictGL_IBM)
1694     {
1695         // GL_IBM_multimode_draw_arrays
1696         void function(in GLenum*, in GLint*, in GLsizei*, GLsizei, GLint) glMultiModeDrawArraysIBM;
1697         void function(in GLenum*, in GLsizei*, GLenum, in GLvoid**, GLsizei, GLint) glMultiModeDrawElementsIBM;
1698 
1699         // GL_IBM_vertex_array_lists
1700         void function(GLint, GLenum, GLint, in GLvoid**, GLint) glColorPointerListIBM;
1701         void function(GLint, GLenum, GLint, in GLvoid**, GLint) glSecondaryColorPointerListIBM;
1702         void function(GLint, in GLboolean**, GLint) glEdgeFlagPointerListIBM;
1703         void function(GLenum, GLint, in GLvoid**, GLint) glFogCoordPointerListIBM;
1704         void function(GLenum, GLint, in GLvoid**, GLint) glIndexPointerListIBM;
1705         void function(GLenum, GLint, in GLvoid**, GLint) glNormalPointerListIBM;
1706         void function(GLint, GLenum, GLint, in GLvoid**, GLint) glTexCoordPointerListIBM;
1707         void function(GLint, GLenum, GLint, in GLvoid**, GLint) glVertexPointerListIBM;
1708     }
1709 
1710     version(DerelictGL_WIN)
1711     {
1712     }
1713 
1714     version(DerelictGL_INTEL)
1715     {
1716         // GL_INTEL_parallel_arrays
1717         void function(GLint, GLenum, in GLvoid**) glVertexPointervINTEL;
1718         void function(GLenum, in GLvoid**) glNormalPointervINTEL;
1719         void function(GLint, GLenum, in GLvoid**) glColorPointervINTEL;
1720         void function(GLint, GLenum, in GLvoid**) glTexCoordPointervINTEL;
1721     }
1722 
1723     version(DerelictGL_REND)
1724     {
1725     }
1726 
1727     version(DerelictGL_APPLE)
1728     {
1729         // GL_APPLE_element_array
1730         void function(GLenum, in GLvoid*) glElementPointerAPPLE;
1731         void function(GLenum, GLint, GLsizei) glDrawElementArrayAPPLE;
1732         void function(GLenum, GLuint, GLuint, GLint, GLsizei) glDrawRangeElementArrayAPPLE;
1733         void function(GLenum, in GLint*, in GLsizei*, GLsizei) glMultiDrawElementArrayAPPLE;
1734         void function(GLenum, GLuint, GLuint, in GLint*, in GLsizei*, GLsizei) glMultiDrawRangeElementArrayAPPLE;
1735 
1736         // GL_APPLE_fence
1737         void function(GLsizei, GLuint*) glGenFencesAPPLE;
1738         void function(GLsizei, in GLuint*) glDeleteFencesAPPLE;
1739         void function(GLuint) glSetFenceAPPLE;
1740         GLboolean function(GLuint) glIsFenceAPPLE;
1741         GLboolean function(GLuint) glTestFenceAPPLE;
1742         void function(GLuint) glFinishFenceAPPLE;
1743         GLboolean function(GLenum, GLuint) glTestObjectAPPLE;
1744         void function(GLenum, GLint) glFinishObjectAPPLE;
1745 
1746         // GL_APPLE_vertex_array_object
1747         void function(GLuint) glBindVertexArrayAPPLE;
1748         void function(GLsizei, in GLuint*) glDeleteVertexArraysAPPLE;
1749         void function(GLsizei, GLuint*) glGenVertexArraysAPPLE;
1750         GLboolean function(GLuint) glIsVertexArrayAPPLE;
1751 
1752         // GL_APPLE_vertex_array_range
1753         void function(GLsizei, GLvoid*) glVertexArrayRangeAPPLE;
1754         void function(GLsizei, GLvoid*) glFlushVertexArrayRangeAPPLE;
1755         void function(GLenum, GLint) glVertexArrayParameteriAPPLE;
1756 
1757         // GL_APPLE_flush_buffer_range
1758         void function(GLenum, GLenum, GLint) glBufferParameteriAPPLE;
1759         void function(GLenum, GLintptr, GLsizeiptr) glFlushMappedBufferRangeAPPLE;
1760 
1761         // GL_APPLE_texture_range
1762         void function(GLenum, GLsizei, in GLvoid*) glTextureRangeAPPLE;
1763         void function(GLenum, GLenum, GLvoid**) glGetTexParameterPointervAPPLE;
1764 
1765         // GL_APPLE_vertex_program_evaluators
1766         void function(GLuint, GLenum) glEnableVertexAttribAPPLE;
1767         void function(GLuint, GLenum) glDisableVertexAttribAPPLE;
1768         GLboolean function(GLuint, GLenum) glIsVertexAttribAPPLE;
1769         void function(GLuint, GLuint, GLdouble, GLdouble, GLint, GLint, in GLdouble*) glMapVertexAttrib1dAPPLE;
1770         void function(GLuint, GLuint, GLfloat, GLfloat, GLint, GLint, in GLfloat*) glMapVertexAttrib1fAPPLE;
1771         void function(GLuint, GLuint, GLdouble, GLdouble, GLint, GLint, GLdouble, GLdouble, GLint, GLint, in GLdouble*) glMapVertexAttrib2dAPPLE;
1772         void function(GLuint, GLuint, GLfloat, GLfloat, GLint, GLint, GLfloat, GLfloat, GLint, GLint, in GLfloat*) glMapVertexAttrib2fAPPLE;
1773 
1774         // GL_APPLE_object_purgeable
1775         GLenum function(GLenum, GLuint, GLenum) glObjectPurgeableAPPLE;
1776         GLenum function(GLenum, GLuint, GLenum) glObjectUnpurgeableAPPLE;
1777         void function(GLenum, GLuint, GLenum, GLuint*) glGetObjectParameterivAPPLE;
1778     }
1779 
1780     version(DerelictGL_SUNX)
1781     {
1782         // GL_SUNX_inant_data
1783         void function() glFinishTextureSUNX;
1784     }
1785 
1786     version(DerelictGL_SUN)
1787     {
1788         // GL_SUN_global_alpha
1789         void function(GLbyte) glGlobalAlphaFactorbSUN;
1790         void function(GLshort) glGlobalAlphaFactorsSUN;
1791         void function(GLint) glGlobalAlphaFactoriSUN;
1792         void function(GLfloat) glGlobalAlphaFactorfSUN;
1793         void function(GLdouble) glGlobalAlphaFactordSUN;
1794         void function(GLubyte) glGlobalAlphaFactorubSUN;
1795         void function(GLushort) glGlobalAlphaFactorusSUN;
1796         void function(GLuint) glGlobalAlphaFactoruiSUN;
1797 
1798         // GL_SUN_triangle_list
1799         void function(GLuint) glReplacementCodeuiSUN;
1800         void function(GLushort) glReplacementCodeusSUN;
1801         void function(GLubyte) glReplacementCodeubSUN;
1802         void function(in GLuint*) glReplacementCodeuivSUN;
1803         void function(in GLushort*) glReplacementCodeusvSUN;
1804         void function(in GLubyte*) glReplacementCodeubvSUN;
1805         void function(GLenum, GLsizei, in GLvoid**) glReplacementCodePointerSUN;
1806 
1807         // GL_SUN_vertex
1808         void function(GLubyte, GLubyte, GLubyte, GLubyte, GLfloat, GLfloat) glColor4ubVertex2fSUN;
1809         void function(in GLubyte*, in GLfloat*) glColor4ubVertex2fvSUN;
1810         void function(GLubyte, GLubyte, GLubyte, GLubyte, GLfloat, GLfloat, GLfloat) glColor4ubVertex3fSUN;
1811         void function(in GLubyte*, in GLfloat*) glColor4ubVertex3fvSUN;
1812         void function(GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat) glColor3fVertex3fSUN;
1813         void function(in GLfloat*, in GLfloat*) glColor3fVertex3fvSUN;
1814         void function(GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat) glNormal3fVertex3fSUN;
1815         void function(in GLfloat*, in GLfloat*) glNormal3fVertex3fvSUN;
1816         void function(GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat) glColor4fNormal3fVertex3fSUN;
1817         void function(in GLfloat*, in GLfloat*, in GLfloat*) glColor4fNormal3fVertex3fvSUN;
1818         void function(GLfloat, GLfloat, GLfloat, GLfloat, GLfloat) glTexCoord2fVertex3fSUN;
1819         void function(in GLfloat*, in GLfloat*) glTexCoord2fVertex3fvSUN;
1820         void function(GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat) glTexCoord4fVertex4fSUN;
1821         void function(in GLfloat*, in GLfloat*) glTexCoord4fVertex4fvSUN;
1822         void function(GLfloat, GLfloat, GLubyte, GLubyte, GLubyte, GLubyte, GLfloat, GLfloat, GLfloat) glTexCoord2fColor4ubVertex3fSUN;
1823         void function(in GLfloat*, in GLubyte*, in GLfloat*) glTexCoord2fColor4ubVertex3fvSUN;
1824         void function(GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat) glTexCoord2fColor3fVertex3fSUN;
1825         void function(in GLfloat*, in GLfloat*, in GLfloat*) glTexCoord2fColor3fVertex3fvSUN;
1826         void function(GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat) glTexCoord2fNormal3fVertex3fSUN;
1827         void function(in GLfloat*, in GLfloat*, in GLfloat*) glTexCoord2fNormal3fVertex3fvSUN;
1828         void function(GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat) glTexCoord2fColor4fNormal3fVertex3fSUN;
1829         void function(in GLfloat*, in GLfloat*, in GLfloat*, in GLfloat*) glTexCoord2fColor4fNormal3fVertex3fvSUN;
1830         void function(GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat) glTexCoord4fColor4fNormal3fVertex4fSUN;
1831         void function(in GLfloat*, in GLfloat*, in GLfloat*, in GLfloat*) glTexCoord4fColor4fNormal3fVertex4fvSUN;
1832         void function(GLuint, GLfloat, GLfloat, GLfloat) glReplacementCodeuiVertex3fSUN;
1833         void function(in GLuint*, in GLfloat*) glReplacementCodeuiVertex3fvSUN;
1834         void function(GLuint, GLubyte, GLubyte, GLubyte, GLubyte, GLfloat, GLfloat, GLfloat) glReplacementCodeuiColor4ubVertex3fSUN;
1835         void function(in GLuint*, in GLubyte*, in GLfloat*) glReplacementCodeuiColor4ubVertex3fvSUN;
1836         void function(GLuint, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat) glReplacementCodeuiColor3fVertex3fSUN;
1837         void function(in GLuint*, in GLfloat*, in GLfloat*) glReplacementCodeuiColor3fVertex3fvSUN;
1838         void function(GLuint, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat) glReplacementCodeuiNormal3fVertex3fSUN;
1839         void function(in GLuint*, in GLfloat*, in GLfloat*) glReplacementCodeuiNormal3fVertex3fvSUN;
1840         void function(GLuint, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat) glReplacementCodeuiColor4fNormal3fVertex3fSUN;
1841         void function(in GLuint*, in GLfloat*, in GLfloat*, in GLfloat*) glReplacementCodeuiColor4fNormal3fVertex3fvSUN;
1842         void function(GLuint, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat) glReplacementCodeuiTexCoord2fVertex3fSUN;
1843         void function(in GLuint*, in GLfloat*, in GLfloat*) glReplacementCodeuiTexCoord2fVertex3fvSUN;
1844         void function(GLuint, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat) glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN;
1845         void function(in GLuint*, in GLfloat*, in GLfloat*, in GLfloat*) glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN;
1846         void function(GLuint, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat) glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN;
1847         void function(in GLuint*, in GLfloat*, in GLfloat*, in GLfloat*, in GLfloat*) glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN;
1848 
1849         // GL_SUN_mesh_array
1850         void function(GLenum, GLint, GLsizei, GLsizei) glDrawMeshArraysSUN;
1851     }
1852 
1853     version(DerelictGL_INGR)
1854     {
1855     }
1856 
1857     version(DerelictGL_MESA)
1858     {
1859         // GL_MESA_resize_buffers
1860         void function() glResizeBuffersMESA;
1861 
1862         // GL_MESA_window_pos
1863         void function(GLdouble, GLdouble) glWindowPos2dMESA;
1864         void function(in GLdouble*) glWindowPos2dvMESA;
1865         void function(GLfloat, GLfloat) glWindowPos2fMESA;
1866         void function(in GLfloat*) glWindowPos2fvMESA;
1867         void function(GLint, GLint) glWindowPos2iMESA;
1868         void function(in GLint*) glWindowPos2ivMESA;
1869         void function(GLshort, GLshort) glWindowPos2sMESA;
1870         void function(in GLshort*) glWindowPos2svMESA;
1871         void function(GLdouble, GLdouble, GLdouble) glWindowPos3dMESA;
1872         void function(in GLdouble*) glWindowPos3dvMESA;
1873         void function(GLfloat, GLfloat, GLfloat) glWindowPos3fMESA;
1874         void function(in GLfloat*) glWindowPos3fvMESA;
1875         void function(GLint, GLint, GLint) glWindowPos3iMESA;
1876         void function(in GLint*) glWindowPos3ivMESA;
1877         void function(GLshort, GLshort, GLshort) glWindowPos3sMESA;
1878         void function(in GLshort*) glWindowPos3svMESA;
1879         void function(GLdouble, GLdouble, GLdouble, GLdouble) glWindowPos4dMESA;
1880         void function(in GLdouble*) glWindowPos4dvMESA;
1881         void function(GLfloat, GLfloat, GLfloat, GLfloat) glWindowPos4fMESA;
1882         void function(in GLfloat*) glWindowPos4fvMESA;
1883         void function(GLint, GLint, GLint, GLint) glWindowPos4iMESA;
1884         void function(in GLint*) glWindowPos4ivMESA;
1885         void function(GLshort, GLshort, GLshort, GLshort) glWindowPos4sMESA;
1886         void function(in GLshort*) glWindowPos4svMESA;
1887     }
1888 
1889     version(DerelictGL_3DFX)
1890     {
1891         // GL_3DFX_tbuffer
1892         void function(GLuint) glTbufferMask3DFX;
1893     }
1894 
1895     version(DerelictGL_OML)
1896     {
1897     }
1898 
1899     version(DerelictGL_S3)
1900     {
1901     }
1902 
1903     version(DerelictGL_OES)
1904     {
1905     }
1906 
1907     version(DerelictGL_GREMEDY)
1908     {
1909         // GL_GREMEDY_string_marker
1910         void function(GLsizei, in GLvoid*) glStringMarkerGREMEDY;
1911 
1912         // GL_GREMEDY_frame_terminator
1913         void function() glFrameTerminatorGREMEDY;
1914     }
1915 
1916     version(DerelictGL_MESAX)
1917     {
1918     }
1919 
1920     version(Windows)
1921     {
1922         version(DerelictGL_ARB)
1923         {
1924             // WGL_ARB_buffer_region
1925             HANDLE function(HDC, int, UINT) wglCreateBufferRegionARB;
1926             void function(HANDLE) wglDeleteBufferRegionARB;
1927             BOOL function(HANDLE, int, int, int, int) wglSaveBufferRegionARB;
1928             BOOL function(HANDLE, int, int, int, int, int, int) wglRestoreBufferRegionARB;
1929 
1930             // WGL_ARB_extensions_string
1931             CCPTR function(HDC) wglGetExtensionsStringARB;
1932 
1933             // WGL_ARB_pixel_format
1934             BOOL function(HDC, int, int, UINT, in int*, int*) wglGetPixelFormatAttribivARB;
1935             BOOL function(HDC, int, int, UINT, in int*, float*) wglGetPixelFormatAttribfvARB;
1936             BOOL function(HDC, in int*, in float*, UINT, int*, UINT*) wglChoosePixelFormatARB;
1937 
1938             // WGL_ARB_make_current_read
1939             BOOL function(HDC, HDC, HGLRC) wglMakeContextCurrentARB;
1940             HDC function() wglGetCurrentReadDCARB;
1941 
1942             // WGL_ARB_pbuffer
1943             HPBUFFERARB function(HDC, int, int, int, in int*) wglCreatePbufferARB;
1944             HDC function(HPBUFFERARB) wglGetPbufferDCARB;
1945             int function(HPBUFFERARB, HDC) wglReleasePbufferDCARB;
1946             BOOL function(HPBUFFERARB) wglDestroyPbufferARB;
1947             BOOL function(HPBUFFERARB, int, int*) wglQueryPbufferARB;
1948 
1949             // WGL_ARB_render_texture
1950             BOOL function(HPBUFFERARB, int) wglBindTexImageARB;
1951             BOOL function(HPBUFFERARB, int) wglReleaseTexImageARB;
1952             BOOL function(HPBUFFERARB, in int*) wglSetPbufferAttribARB;
1953 
1954             // WGL_ARB_create_context
1955             HGLRC function(HDC, HGLRC, in int*) wglCreateContextAttribsARB;
1956         }
1957 
1958         version(DerelictGL_EXT)
1959         {
1960             // WGL_EXT_display_color_table
1961             GLboolean function(GLushort) wglBindDisplayColorTableEXT;
1962             GLboolean function(GLushort) wglCreateDisplayColorTableEXT;
1963             void function(GLushort) wglDestroyDisplayColorTableEXT;
1964             GLboolean function(GLushort*, GLuint) wglLoadDisplayColorTableEXT;
1965 
1966             // WGL_EXT_extensions_string
1967             CCPTR function() wglGetExtensionsStringEXT;
1968 
1969             // WGL_EXT_make_current_read
1970             BOOL function(HDC, HDC, HGLRC) wglMakeContextCurrentEXT;
1971             HDC function() wglGetCurrentReadDCEXT;
1972 
1973             // WGL_EXT_pbuffer
1974             HPBUFFEREXT function(HDC, int, int, int, in int*) wglCreatePbufferEXT;
1975             BOOL function(HPBUFFEREXT) wglDestroyPbufferEXT;
1976             HDC function(HPBUFFEREXT) wglGetPbufferDCEXT;
1977             BOOL function(HPBUFFEREXT, int, int*) wglQueryPbufferEXT;
1978             int function(HPBUFFEREXT, HDC) wglReleasePbufferDCEXT;
1979 
1980             // WGL_EXT_pixel_format
1981             BOOL function(HDC, in int*, in FLOAT*, UINT, int*, UINT*) wglChoosePixelFormatEXT;
1982             BOOL function(HDC, int, int, UINT, int*, FLOAT*) wglGetPixelFormatAttribfvEXT;
1983             BOOL function(HDC, int, int, UINT, int*, int*) wglGetPixelFormatAttribivEXT;
1984 
1985             // WGL_EXT_swap_control
1986             int function() wglGetSwapIntervalEXT;
1987             BOOL function(int) wglSwapIntervalEXT;
1988         }
1989 
1990         version(DerelictGL_NV)
1991         {
1992             // WGL_NV_copy_image
1993             BOOL function(HGLRC, GLuint, GLenum, GLint, GLint, GLint, GLint, HGLRC, GLuint, GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei) wglCopyImageSubDataNV;
1994 
1995             // WGL_NV_gpu_affinity
1996             HDC function(in HGPUNV*) wglCreateAffinityDCNV;
1997             BOOL function(HDC) wglDeleteDCNV;
1998             BOOL function(HGPUNV, UINT, PGPU_DEVICE) wglEnumGpuDevicesNV;
1999             BOOL function(HDC, UINT, HGPUNV*) wglEnumGpusFromAffinityDCNV;
2000             BOOL function(UINT, HGPUNV*) wglEnumGpusNV;
2001 
2002             // WGL_NV_present_video
2003             BOOL function(HDC, uint, HVIDEOOUTPUTDEVICENV, in int*) wglBindVideoDeviceNV;
2004             int function(HDC, HVIDEOOUTPUTDEVICENV*) wglEnumerateVideoDevicesNV;
2005             BOOL function(HDC, int, int*) wglQueryCurrentContextNV;
2006 
2007             // WGL_NV_swap_group
2008             BOOL function(GLuint, GLuint) wglBindSwapBarrierNV;
2009             BOOL function(HDC, GLuint) wglJoinSwapGroupNV;
2010             BOOL function(HDC, GLuint*) wglQueryFrameCountNV;
2011             BOOL function(HDC, GLuint*, GLuint*) wglQueryMaxSwapGroupsNV;
2012             BOOL function(HDC, GLuint*, GLuint*) wglQuerySwapGroupNV;
2013             BOOL function(HDC) wglResetFrameCountNV;
2014 
2015             // WGL_NV_vertex_array_range
2016             void* function(GLsizei, GLfloat, GLfloat, GLfloat) wglAllocateMemoryNV;
2017             void function(void*) wglFreeMemoryNV;
2018 
2019             // WGL_NV_video_output
2020             BOOL function(HPVIDEODEV, HPBUFFERARB, int) wglBindVideoImageNV;
2021             BOOL function(HDC, int, HPVIDEODEV*) wglGetVideoDeviceNV;
2022             BOOL function(HPVIDEODEV, uint*, uint*) wglGetVideoInfoNV;
2023             BOOL function(HPVIDEODEV) wglReleaseVideoDeviceNV;
2024             BOOL function(HPBUFFERARB, int) wglReleaseVideoImageNV;
2025             BOOL function(HPBUFFERARB, int, uint*, BOOL) wglSendPbufferToVideoNV;
2026         }
2027 
2028         version(DerelictGL_AMD)
2029         {
2030             // WGL_AMD_gpu_association
2031             void function(HGLRC, GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLbitfield, GLenum) wglBlitContextFramebufferAMD;
2032             HGLRC function(UINT) wglCreateAssociatedContextAMD;
2033             HGLRC function(UINT, HGLRC, in int*) wglCreateAssociatedContextAttribsAMD;
2034             BOOL function(HGLRC) wglDeleteAssociatedContextAMD;
2035             UINT function(HGLRC) wglGetContextGPUIDAMD;
2036             HGLRC function() wglGetCurrentAssociatedContextAMD;
2037             UINT function(UINT, UINT*) wglGetGPUIDsAMD;
2038             INT function(UINT, INT, GLenum, UINT, void*) wglGetGPUInfoAMD;
2039             BOOL function(HGLRC) wglMakeAssociatedContextCurrentAMD;
2040         }
2041 
2042         version(DerelictGL_I3D)
2043         {
2044             // WGL_I3D_digital_video_control
2045             BOOL function(HDC, int, int*) wglGetDigitalVideoParametersI3D;
2046             BOOL function(HDC, int, in int*) wglSetDigitalVideoParametersI3D;
2047 
2048             // WGL_I3D_gamma
2049             BOOL function(HDC, int, USHORT*, USHORT*, USHORT*) wglGetGammaTableI3D;
2050             BOOL function(HDC, int, int*) wglGetGammaTableParametersI3D;
2051             BOOL function(HDC, int, in USHORT*, in USHORT*, in USHORT*) wglSetGammaTableI3D;
2052             BOOL function(HDC, int, in int*) wglSetGammaTableParametersI3D;
2053 
2054             // WGL_I3D_genlock
2055             BOOL function(HDC) wglDisableGenlockI3D;
2056             BOOL function(HDC) wglEnableGenlockI3D;
2057             BOOL function(HDC, UINT) wglGenlockSampleRateI3D;
2058             BOOL function(HDC, UINT) wglGenlockSourceDelayI3D;
2059             BOOL function(HDC, UINT) wglGenlockSourceEdgeI3D;
2060             BOOL function(HDC, UINT) wglGenlockSourceI3D;
2061             BOOL function(HDC, UINT*) wglGetGenlockSampleRateI3D;
2062             BOOL function(HDC, UINT*) wglGetGenlockSourceDelayI3D;
2063             BOOL function(HDC, UINT*) wglGetGenlockSourceEdgeI3D;
2064             BOOL function(HDC, UINT*) wglGetGenlockSourceI3D;
2065             BOOL function(HDC, BOOL*) wglIsEnabledGenlockI3D;
2066             BOOL function(HDC, UINT*, UINT*) wglQueryGenlockMaxSourceDelayI3D;
2067 
2068             // WGL_I3D_image_buffer
2069             BOOL function(HDC, HANDLE*, LPVOID*, DWORD*, UINT) wglAssociateImageBufferEventsI3D;
2070             LPVOID function(HDC, DWORD, UINT) wglCreateImageBufferI3D;
2071             BOOL function(HDC, LPVOID) wglDestroyImageBufferI3D;
2072             BOOL function(HDC, LPVOID*, UINT) wglReleaseImageBufferEventsI3D;
2073 
2074             // WGL_I3D_swap_frame_lock
2075             BOOL function() wglDisableFrameLockI3D;
2076             BOOL function() wglEnableFrameLockI3D;
2077             BOOL function(BOOL*) wglIsEnabledFrameLockI3D;
2078             BOOL function(BOOL*) wglQueryFrameLockMasterI3D;
2079 
2080             // WGL_I3D_swap_frame_usage
2081             BOOL function() wglBeginFrameTrackingI3D;
2082             BOOL function() wglEndFrameTrackingI3D;
2083             BOOL function(float*) wglGetFrameUsageI3D;
2084             BOOL function(DWORD*, DWORD*, float*) wglQueryFrameTrackingI3D;
2085         }
2086 
2087         version(DerelictGL_OML)
2088         {
2089             // WGL_OML_sync_control
2090             BOOL function(HDC, int*, int*) wglGetMscRateOML;
2091             BOOL function(HDC, long*, long*, long*) wglGetSyncValuesOML;
2092             long function(HDC, long, long, long) wglSwapBuffersMscOML;
2093             long function(HDC, int, long, long, long) wglSwapLayerBuffersMscOML;
2094             BOOL function(HDC, long, long, long, long*, long*, long*) wglWaitForMscOML;
2095             BOOL function(HDC, long, long*, long*, long*) wglWaitForSbcOML;
2096         }
2097 
2098         version(DerelictGL_3DL)
2099         {
2100             // WGL_3DL_stereo_control
2101             BOOL function(HDC, UINT) wglSetStereoEmitterState3DL;
2102         }
2103     }
2104     ");
2105 }