1 /*
2 ** Copyright (c) 2007-2012 The Khronos Group Inc.
3 ** 
4 ** Permission is hereby granted, free of charge, to any person obtaining a
5 ** copy of this software and/or associated documentation files (the
6 ** "Materials"), to deal in the Materials without restriction, including
7 ** without limitation the rights to use, copy, modify, merge, publish,
8 ** distribute, sublicense, and/or sell copies of the Materials, and to
9 ** permit persons to whom the Materials are furnished to do so, subject to
10 ** the following conditions:
11 ** 
12 ** The above copyright notice and this permission notice shall be included
13 ** in all copies or substantial portions of the Materials.
14 ** 
15 ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16 ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17 ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
18 ** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
19 ** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
20 ** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
21 ** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
22 */
23 
24 /* glcorearb.h replaces gl3.h. It is for use with OpenGL core
25  * profile implementations.
26  *
27  * glcorearb.h last updated on $Date: 2012-09-19 19:02:24 -0700 (Wed, 19 Sep 2012) $
28  *
29  * RELEASE NOTES - 2012/09/19
30  *
31  * glcorearb.h should be placed in the same directory as gl.h and
32  * included as
33  * '<GL/glcorearb.h>'.
34  *
35  * glcorearb.h includes only APIs in the latest OpenGL core profile
36  * implementation together with APIs in newer ARB extensions which can be
37  * can be supported by the core profile. It does not, and never will
38  * include functionality removed from the core profile, such as
39  * fixed-function vertex and fragment processing.
40  *
41  * It is not possible to #include both <GL/glcorearb.h> and either of
42  * <GL/gl.h> or <GL/glext.h> in the same source file.
43  *
44  * Feedback can be given by registering for the Khronos Bugzilla
45  * (www.khronos.org/bugzilla) and filing issues there under product
46  * "OpenGL", category "Registry".
47  */
48  
49  /* Function declaration macros - to move into glplatform.h */
50  
51  module deimos.gl.glcorearb;
52 
53 public:
54 	extern(C):
55 	
56 	version(Windows)
57 		import std.c.windows.windows;
58 		
59 	/* *********************************************************** */
60 		
61 	/* Base GL types */
62 
63 	alias uint GLenum;
64 	alias ubyte GLboolean;
65 	alias uint GLbitfield;
66 	alias byte GLbyte;
67 	alias short GLshort;
68 	alias int GLint;
69 	alias int GLsizei;
70 	alias ubyte GLubyte;
71 	alias ushort GLushort;
72 	alias uint GLuint;
73 	alias ushort GLhalf;
74 	alias float GLfloat;
75 	alias float GLclampf;
76 	alias double GLdouble;
77 	alias double GLclampd;
78 	alias void GLvoid;
79 	
80 	/* *********************************************************** */
81 	
82 	enum // GL_VERSION_1_1
83 	{
84 		/* AttribMask */
85 
86 		GL_DEPTH_BUFFER_BIT               = 0x00000100,
87 		GL_STENCIL_BUFFER_BIT             = 0x00000400,
88 		GL_COLOR_BUFFER_BIT               = 0x00004000,
89 
90 		/* Boolean */
91 
92 		GL_FALSE                          = 0,
93 		GL_TRUE                           = 1,
94 
95 		/* BeginMode */
96 
97 		GL_POINTS                         = 0x0000,
98 		GL_LINES                          = 0x0001,
99 		GL_LINE_LOOP                      = 0x0002,
100 		GL_LINE_STRIP                     = 0x0003,
101 		GL_TRIANGLES                      = 0x0004,
102 		GL_TRIANGLE_STRIP                 = 0x0005,
103 		GL_TRIANGLE_FAN                   = 0x0006,
104 		GL_QUADS                          = 0x0007,
105 
106 		/* AlphaFunction */
107 
108 		GL_NEVER                          = 0x0200,
109 		GL_LESS                           = 0x0201,
110 		GL_EQUAL                          = 0x0202,
111 		GL_LEQUAL                         = 0x0203,
112 		GL_GREATER                        = 0x0204,
113 		GL_NOTEQUAL                       = 0x0205,
114 		GL_GEQUAL                         = 0x0206,
115 		GL_ALWAYS                         = 0x0207,
116 
117 		/* BlendingFactorDest */
118 
119 		GL_ZERO                           = 0,
120 		GL_ONE                            = 1,
121 		GL_SRC_COLOR                      = 0x0300,
122 		GL_ONE_MINUS_SRC_COLOR            = 0x0301,
123 		GL_SRC_ALPHA                      = 0x0302,
124 		GL_ONE_MINUS_SRC_ALPHA            = 0x0303,
125 		GL_DST_ALPHA                      = 0x0304,
126 		GL_ONE_MINUS_DST_ALPHA            = 0x0305,
127 
128 		/* BlendingFactorSrc */
129 
130 		GL_DST_COLOR                      = 0x0306,
131 		GL_ONE_MINUS_DST_COLOR            = 0x0307,
132 		GL_SRC_ALPHA_SATURATE             = 0x0308,
133 
134 		/* DrawBufferMode */
135 
136 		GL_NONE                           = 0,
137 		GL_FRONT_LEFT                     = 0x0400,
138 		GL_FRONT_RIGHT                    = 0x0401,
139 		GL_BACK_LEFT                      = 0x0402,
140 		GL_BACK_RIGHT                     = 0x0403,
141 		GL_FRONT                          = 0x0404,
142 		GL_BACK                           = 0x0405,
143 		GL_LEFT                           = 0x0406,
144 		GL_RIGHT                          = 0x0407,
145 		GL_FRONT_AND_BACK                 = 0x0408,
146 
147 		/* ErrorCode */
148 
149 		GL_NO_ERROR                       = 0,
150 		GL_INVALID_ENUM                   = 0x0500,
151 		GL_INVALID_VALUE                  = 0x0501,
152 		GL_INVALID_OPERATION              = 0x0502,
153 		GL_OUT_OF_MEMORY                  = 0x0505,
154 
155 		/* FrontFaceDirection */
156 
157 		GL_CW                             = 0x0900,
158 		GL_CCW                            = 0x0901,
159 
160 		/* GetPName */
161 
162 		GL_POINT_SIZE                     = 0x0B11,
163 		GL_POINT_SIZE_RANGE               = 0x0B12,
164 		GL_POINT_SIZE_GRANULARITY         = 0x0B13,
165 		GL_LINE_SMOOTH                    = 0x0B20,
166 		GL_LINE_WIDTH                     = 0x0B21,
167 		GL_LINE_WIDTH_RANGE               = 0x0B22,
168 		GL_LINE_WIDTH_GRANULARITY         = 0x0B23,
169 		GL_POLYGON_MODE                   = 0x0B40,
170 		GL_POLYGON_SMOOTH                 = 0x0B41,
171 		GL_CULL_FACE                      = 0x0B44,
172 		GL_CULL_FACE_MODE                 = 0x0B45,
173 		GL_FRONT_FACE                     = 0x0B46,
174 		GL_DEPTH_RANGE                    = 0x0B70,
175 		GL_DEPTH_TEST                     = 0x0B71,
176 		GL_DEPTH_WRITEMASK                = 0x0B72,
177 		GL_DEPTH_CLEAR_VALUE              = 0x0B73,
178 		GL_DEPTH_FUNC                     = 0x0B74,
179 		GL_STENCIL_TEST                   = 0x0B90,
180 		GL_STENCIL_CLEAR_VALUE            = 0x0B91,
181 		GL_STENCIL_FUNC                   = 0x0B92,
182 		GL_STENCIL_VALUE_MASK             = 0x0B93,
183 		GL_STENCIL_FAIL                   = 0x0B94,
184 		GL_STENCIL_PASS_DEPTH_FAIL        = 0x0B95,
185 		GL_STENCIL_PASS_DEPTH_PASS        = 0x0B96,
186 		GL_STENCIL_REF                    = 0x0B97,
187 		GL_STENCIL_WRITEMASK              = 0x0B98,
188 		GL_VIEWPORT                       = 0x0BA2,
189 		GL_DITHER                         = 0x0BD0,
190 		GL_BLEND_DST                      = 0x0BE0,
191 		GL_BLEND_SRC                      = 0x0BE1,
192 		GL_BLEND                          = 0x0BE2,
193 		GL_LOGIC_OP_MODE                  = 0x0BF0,
194 		GL_COLOR_LOGIC_OP                 = 0x0BF2,
195 		GL_DRAW_BUFFER                    = 0x0C01,
196 		GL_READ_BUFFER                    = 0x0C02,
197 		GL_SCISSOR_BOX                    = 0x0C10,
198 		GL_SCISSOR_TEST                   = 0x0C11,
199 		GL_COLOR_CLEAR_VALUE              = 0x0C22,
200 		GL_COLOR_WRITEMASK                = 0x0C23,
201 		GL_DOUBLEBUFFER                   = 0x0C32,
202 		GL_STEREO                         = 0x0C33,
203 		GL_LINE_SMOOTH_HINT               = 0x0C52,
204 		GL_POLYGON_SMOOTH_HINT            = 0x0C53,
205 		GL_UNPACK_SWAP_BYTES              = 0x0CF0,
206 		GL_UNPACK_LSB_FIRST               = 0x0CF1,
207 		GL_UNPACK_ROW_LENGTH              = 0x0CF2,
208 		GL_UNPACK_SKIP_ROWS               = 0x0CF3,
209 		GL_UNPACK_SKIP_PIXELS             = 0x0CF4,
210 		GL_UNPACK_ALIGNMENT               = 0x0CF5,
211 		GL_PACK_SWAP_BYTES                = 0x0D00,
212 		GL_PACK_LSB_FIRST                 = 0x0D01,
213 		GL_PACK_ROW_LENGTH                = 0x0D02,
214 		GL_PACK_SKIP_ROWS                 = 0x0D03,
215 		GL_PACK_SKIP_PIXELS               = 0x0D04,
216 		GL_PACK_ALIGNMENT                 = 0x0D05,
217 		GL_MAX_TEXTURE_SIZE               = 0x0D33,
218 		GL_MAX_VIEWPORT_DIMS              = 0x0D3A,
219 		GL_SUBPIXEL_BITS                  = 0x0D50,
220 		GL_TEXTURE_1D                     = 0x0DE0,
221 		GL_TEXTURE_2D                     = 0x0DE1,
222 		GL_POLYGON_OFFSET_UNITS           = 0x2A00,
223 		GL_POLYGON_OFFSET_POINT           = 0x2A01,
224 		GL_POLYGON_OFFSET_LINE            = 0x2A02,
225 		GL_POLYGON_OFFSET_FILL            = 0x8037,
226 		GL_POLYGON_OFFSET_FACTOR          = 0x8038,
227 		GL_TEXTURE_BINDING_1D             = 0x8068,
228 		GL_TEXTURE_BINDING_2D             = 0x8069,
229 
230 		/* GetTextureParameter */
231 
232 		GL_TEXTURE_WIDTH                  = 0x1000,
233 		GL_TEXTURE_HEIGHT                 = 0x1001,
234 		GL_TEXTURE_INTERNAL_FORMAT        = 0x1003,
235 		GL_TEXTURE_BORDER_COLOR           = 0x1004,
236 		GL_TEXTURE_RED_SIZE               = 0x805C,
237 		GL_TEXTURE_GREEN_SIZE             = 0x805D,
238 		GL_TEXTURE_BLUE_SIZE              = 0x805E,
239 		GL_TEXTURE_ALPHA_SIZE             = 0x805F,
240 
241 		/* HintMode */
242 
243 		GL_DONT_CARE                      = 0x1100,
244 		GL_FASTEST                        = 0x1101,
245 		GL_NICEST                         = 0x1102,
246 
247 		/* DataType */
248 
249 		GL_BYTE                           = 0x1400,
250 		GL_UNSIGNED_BYTE                  = 0x1401,
251 		GL_SHORT                          = 0x1402,
252 		GL_UNSIGNED_SHORT                 = 0x1403,
253 		GL_INT                            = 0x1404,
254 		GL_UNSIGNED_INT                   = 0x1405,
255 		GL_FLOAT                          = 0x1406,
256 		GL_DOUBLE                         = 0x140A,
257 
258 		/* ErrorCode */
259 
260 		GL_STACK_OVERFLOW                 = 0x0503,
261 		GL_STACK_UNDERFLOW                = 0x0504,
262 
263 		/* LogicOp */
264 
265 		GL_CLEAR                          = 0x1500,
266 		GL_AND                            = 0x1501,
267 		GL_AND_REVERSE                    = 0x1502,
268 		GL_COPY                           = 0x1503,
269 		GL_AND_INVERTED                   = 0x1504,
270 		GL_NOOP                           = 0x1505,
271 		GL_XOR                            = 0x1506,
272 		GL_OR                             = 0x1507,
273 		GL_NOR                            = 0x1508,
274 		GL_EQUIV                          = 0x1509,
275 		GL_INVERT                         = 0x150A,
276 		GL_OR_REVERSE                     = 0x150B,
277 		GL_COPY_INVERTED                  = 0x150C,
278 		GL_OR_INVERTED                    = 0x150D,
279 		GL_NAND                           = 0x150E,
280 		GL_SET                            = 0x150F,
281 
282 		/* MatrixMode (for gl3.h, FBO attachment type) */
283 
284 		GL_TEXTURE                        = 0x1702,
285 
286 		/* PixelCopyType */
287 
288 		GL_COLOR                          = 0x1800,
289 		GL_DEPTH                          = 0x1801,
290 		GL_STENCIL                        = 0x1802,
291 
292 		/* PixelFormat */
293 
294 		GL_STENCIL_INDEX                  = 0x1901,
295 		GL_DEPTH_COMPONENT                = 0x1902,
296 		GL_RED                            = 0x1903,
297 		GL_GREEN                          = 0x1904,
298 		GL_BLUE                           = 0x1905,
299 		GL_ALPHA                          = 0x1906,
300 		GL_RGB                            = 0x1907,
301 		GL_RGBA                           = 0x1908,
302 
303 		/* PolygonMode */
304 
305 		GL_POINT                          = 0x1B00,
306 		GL_LINE                           = 0x1B01,
307 		GL_FILL                           = 0x1B02,
308 
309 		/* StencilOp */
310 
311 		GL_KEEP                           = 0x1E00,
312 		GL_REPLACE                        = 0x1E01,
313 		GL_INCR                           = 0x1E02,
314 		GL_DECR                           = 0x1E03,
315 
316 		/* StringName */
317 
318 		GL_VENDOR                         = 0x1F00,
319 		GL_RENDERER                       = 0x1F01,
320 		GL_VERSION                        = 0x1F02,
321 		GL_EXTENSIONS                     = 0x1F03,
322 
323 		/* TextureMagFilter */
324 
325 		GL_NEAREST                        = 0x2600,
326 		GL_LINEAR                         = 0x2601,
327 
328 		/* TextureMinFilter */
329 
330 		GL_NEAREST_MIPMAP_NEAREST         = 0x2700,
331 		GL_LINEAR_MIPMAP_NEAREST          = 0x2701,
332 		GL_NEAREST_MIPMAP_LINEAR          = 0x2702,
333 		GL_LINEAR_MIPMAP_LINEAR           = 0x2703,
334 
335 		/* TextureParameterName */
336 
337 		GL_TEXTURE_MAG_FILTER             = 0x2800,
338 		GL_TEXTURE_MIN_FILTER             = 0x2801,
339 		GL_TEXTURE_WRAP_S                 = 0x2802,
340 		GL_TEXTURE_WRAP_T                 = 0x2803,
341 
342 		/* TextureTarget */
343 
344 		GL_PROXY_TEXTURE_1D               = 0x8063,
345 		GL_PROXY_TEXTURE_2D               = 0x8064,
346 
347 		/* TextureWrapMode */
348 
349 		GL_REPEAT                         = 0x2901,
350 
351 		/* PixelInternalFormat */
352 
353 		GL_R3_G3_B2                       = 0x2A10,
354 		GL_RGB4                           = 0x804F,
355 		GL_RGB5                           = 0x8050,
356 		GL_RGB8                           = 0x8051,
357 		GL_RGB10                          = 0x8052,
358 		GL_RGB12                          = 0x8053,
359 		GL_RGB16                          = 0x8054,
360 		GL_RGBA2                          = 0x8055,
361 		GL_RGBA4                          = 0x8056,
362 		GL_RGB5_A1                        = 0x8057,
363 		GL_RGBA8                          = 0x8058,
364 		GL_RGB10_A2                       = 0x8059,
365 		GL_RGBA12                         = 0x805A,
366 		GL_RGBA16                         = 0x805B,
367 	}
368 
369 	enum // GL_VERSION_1_2
370 	{
371 		GL_UNSIGNED_BYTE_3_3_2            = 0x8032,
372 		GL_UNSIGNED_SHORT_4_4_4_4         = 0x8033,
373 		GL_UNSIGNED_SHORT_5_5_5_1         = 0x8034,
374 		GL_UNSIGNED_INT_8_8_8_8           = 0x8035,
375 		GL_UNSIGNED_INT_10_10_10_2        = 0x8036,
376 		GL_TEXTURE_BINDING_3D             = 0x806A,
377 		GL_PACK_SKIP_IMAGES               = 0x806B,
378 		GL_PACK_IMAGE_HEIGHT              = 0x806C,
379 		GL_UNPACK_SKIP_IMAGES             = 0x806D,
380 		GL_UNPACK_IMAGE_HEIGHT            = 0x806E,
381 		GL_TEXTURE_3D                     = 0x806F,
382 		GL_PROXY_TEXTURE_3D               = 0x8070,
383 		GL_TEXTURE_DEPTH                  = 0x8071,
384 		GL_TEXTURE_WRAP_R                 = 0x8072,
385 		GL_MAX_3D_TEXTURE_SIZE            = 0x8073,
386 		GL_UNSIGNED_BYTE_2_3_3_REV        = 0x8362,
387 		GL_UNSIGNED_SHORT_5_6_5           = 0x8363,
388 		GL_UNSIGNED_SHORT_5_6_5_REV       = 0x8364,
389 		GL_UNSIGNED_SHORT_4_4_4_4_REV     = 0x8365,
390 		GL_UNSIGNED_SHORT_1_5_5_5_REV     = 0x8366,
391 		GL_UNSIGNED_INT_8_8_8_8_REV       = 0x8367,
392 		GL_UNSIGNED_INT_2_10_10_10_REV    = 0x8368,
393 		GL_BGR                            = 0x80E0,
394 		GL_BGRA                           = 0x80E1,
395 		GL_MAX_ELEMENTS_VERTICES          = 0x80E8,
396 		GL_MAX_ELEMENTS_INDICES           = 0x80E9,
397 		GL_CLAMP_TO_EDGE                  = 0x812F,
398 		GL_TEXTURE_MIN_LOD                = 0x813A,
399 		GL_TEXTURE_MAX_LOD                = 0x813B,
400 		GL_TEXTURE_BASE_LEVEL             = 0x813C,
401 		GL_TEXTURE_MAX_LEVEL              = 0x813D,
402 		GL_SMOOTH_POINT_SIZE_RANGE        = 0x0B12,
403 		GL_SMOOTH_POINT_SIZE_GRANULARITY  = 0x0B13,
404 		GL_SMOOTH_LINE_WIDTH_RANGE        = 0x0B22,
405 		GL_SMOOTH_LINE_WIDTH_GRANULARITY  = 0x0B23,
406 		GL_ALIASED_LINE_WIDTH_RANGE       = 0x846E,
407 	}
408 	
409 	enum // GL_VERSION_1_3
410 	{
411 		GL_TEXTURE0                       = 0x84C0,
412 		GL_TEXTURE1                       = 0x84C1,
413 		GL_TEXTURE2                       = 0x84C2,
414 		GL_TEXTURE3                       = 0x84C3,
415 		GL_TEXTURE4                       = 0x84C4,
416 		GL_TEXTURE5                       = 0x84C5,
417 		GL_TEXTURE6                       = 0x84C6,
418 		GL_TEXTURE7                       = 0x84C7,
419 		GL_TEXTURE8                       = 0x84C8,
420 		GL_TEXTURE9                       = 0x84C9,
421 		GL_TEXTURE10                      = 0x84CA,
422 		GL_TEXTURE11                      = 0x84CB,
423 		GL_TEXTURE12                      = 0x84CC,
424 		GL_TEXTURE13                      = 0x84CD,
425 		GL_TEXTURE14                      = 0x84CE,
426 		GL_TEXTURE15                      = 0x84CF,
427 		GL_TEXTURE16                      = 0x84D0,
428 		GL_TEXTURE17                      = 0x84D1,
429 		GL_TEXTURE18                      = 0x84D2,
430 		GL_TEXTURE19                      = 0x84D3,
431 		GL_TEXTURE20                      = 0x84D4,
432 		GL_TEXTURE21                      = 0x84D5,
433 		GL_TEXTURE22                      = 0x84D6,
434 		GL_TEXTURE23                      = 0x84D7,
435 		GL_TEXTURE24                      = 0x84D8,
436 		GL_TEXTURE25                      = 0x84D9,
437 		GL_TEXTURE26                      = 0x84DA,
438 		GL_TEXTURE27                      = 0x84DB,
439 		GL_TEXTURE28                      = 0x84DC,
440 		GL_TEXTURE29                      = 0x84DD,
441 		GL_TEXTURE30                      = 0x84DE,
442 		GL_TEXTURE31                      = 0x84DF,
443 		GL_ACTIVE_TEXTURE                 = 0x84E0,
444 		GL_MULTISAMPLE                    = 0x809D,
445 		GL_SAMPLE_ALPHA_TO_COVERAGE       = 0x809E,
446 		GL_SAMPLE_ALPHA_TO_ONE            = 0x809F,
447 		GL_SAMPLE_COVERAGE                = 0x80A0,
448 		GL_SAMPLE_BUFFERS                 = 0x80A8,
449 		GL_SAMPLES                        = 0x80A9,
450 		GL_SAMPLE_COVERAGE_VALUE          = 0x80AA,
451 		GL_SAMPLE_COVERAGE_INVERT         = 0x80AB,
452 		GL_TEXTURE_CUBE_MAP               = 0x8513,
453 		GL_TEXTURE_BINDING_CUBE_MAP       = 0x8514,
454 		GL_TEXTURE_CUBE_MAP_POSITIVE_X    = 0x8515,
455 		GL_TEXTURE_CUBE_MAP_NEGATIVE_X    = 0x8516,
456 		GL_TEXTURE_CUBE_MAP_POSITIVE_Y    = 0x8517,
457 		GL_TEXTURE_CUBE_MAP_NEGATIVE_Y    = 0x8518,
458 		GL_TEXTURE_CUBE_MAP_POSITIVE_Z    = 0x8519,
459 		GL_TEXTURE_CUBE_MAP_NEGATIVE_Z    = 0x851A,
460 		GL_PROXY_TEXTURE_CUBE_MAP         = 0x851B,
461 		GL_MAX_CUBE_MAP_TEXTURE_SIZE      = 0x851C,
462 		GL_COMPRESSED_RGB                 = 0x84ED,
463 		GL_COMPRESSED_RGBA                = 0x84EE,
464 		GL_TEXTURE_COMPRESSION_HINT       = 0x84EF,
465 		GL_TEXTURE_COMPRESSED_IMAGE_SIZE  = 0x86A0,
466 		GL_TEXTURE_COMPRESSED             = 0x86A1,
467 		GL_NUM_COMPRESSED_TEXTURE_FORMATS = 0x86A2,
468 		GL_COMPRESSED_TEXTURE_FORMATS     = 0x86A3,
469 		GL_CLAMP_TO_BORDER                = 0x812D,
470 	}
471 	
472 	enum // GL_VERSION_1_4
473 	{
474 		GL_BLEND_DST_RGB                  = 0x80C8,
475 		GL_BLEND_SRC_RGB                  = 0x80C9,
476 		GL_BLEND_DST_ALPHA                = 0x80CA,
477 		GL_BLEND_SRC_ALPHA                = 0x80CB,
478 		GL_POINT_FADE_THRESHOLD_SIZE      = 0x8128,
479 		GL_DEPTH_COMPONENT16              = 0x81A5,
480 		GL_DEPTH_COMPONENT24              = 0x81A6,
481 		GL_DEPTH_COMPONENT32              = 0x81A7,
482 		GL_MIRRORED_REPEAT                = 0x8370,
483 		GL_MAX_TEXTURE_LOD_BIAS           = 0x84FD,
484 		GL_TEXTURE_LOD_BIAS               = 0x8501,
485 		GL_INCR_WRAP                      = 0x8507,
486 		GL_DECR_WRAP                      = 0x8508,
487 		GL_TEXTURE_DEPTH_SIZE             = 0x884A,
488 		GL_TEXTURE_COMPARE_MODE           = 0x884C,
489 		GL_TEXTURE_COMPARE_FUNC           = 0x884D,
490 	}
491 	
492 	enum // GL_VERSION_1_5
493 	{
494 		GL_BUFFER_SIZE                    = 0x8764,
495 		GL_BUFFER_USAGE                   = 0x8765,
496 		GL_QUERY_COUNTER_BITS             = 0x8864,
497 		GL_CURRENT_QUERY                  = 0x8865,
498 		GL_QUERY_RESULT                   = 0x8866,
499 		GL_QUERY_RESULT_AVAILABLE         = 0x8867,
500 		GL_ARRAY_BUFFER                   = 0x8892,
501 		GL_ELEMENT_ARRAY_BUFFER           = 0x8893,
502 		GL_ARRAY_BUFFER_BINDING           = 0x8894,
503 		GL_ELEMENT_ARRAY_BUFFER_BINDING   = 0x8895,
504 		GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 0x889F,
505 		GL_READ_ONLY                      = 0x88B8,
506 		GL_WRITE_ONLY                     = 0x88B9,
507 		GL_READ_WRITE                     = 0x88BA,
508 		GL_BUFFER_ACCESS                  = 0x88BB,
509 		GL_BUFFER_MAPPED                  = 0x88BC,
510 		GL_BUFFER_MAP_POINTER             = 0x88BD,
511 		GL_STREAM_DRAW                    = 0x88E0,
512 		GL_STREAM_READ                    = 0x88E1,
513 		GL_STREAM_COPY                    = 0x88E2,
514 		GL_STATIC_DRAW                    = 0x88E4,
515 		GL_STATIC_READ                    = 0x88E5,
516 		GL_STATIC_COPY                    = 0x88E6,
517 		GL_DYNAMIC_DRAW                   = 0x88E8,
518 		GL_DYNAMIC_READ                   = 0x88E9,
519 		GL_DYNAMIC_COPY                   = 0x88EA,
520 		GL_SAMPLES_PASSED                 = 0x8914,
521 		GL_SRC1_ALPHA                     = 0x8589,
522 	}
523 
524 	enum // GL_VERSION_2_0
525 	{
526 		GL_BLEND_EQUATION_RGB             = 0x8009,
527 		GL_VERTEX_ATTRIB_ARRAY_ENABLED    = 0x8622,
528 		GL_VERTEX_ATTRIB_ARRAY_SIZE       = 0x8623,
529 		GL_VERTEX_ATTRIB_ARRAY_STRIDE     = 0x8624,
530 		GL_VERTEX_ATTRIB_ARRAY_TYPE       = 0x8625,
531 		GL_CURRENT_VERTEX_ATTRIB          = 0x8626,
532 		GL_VERTEX_PROGRAM_POINT_SIZE      = 0x8642,
533 		GL_VERTEX_ATTRIB_ARRAY_POINTER    = 0x8645,
534 		GL_STENCIL_BACK_FUNC              = 0x8800,
535 		GL_STENCIL_BACK_FAIL              = 0x8801,
536 		GL_STENCIL_BACK_PASS_DEPTH_FAIL   = 0x8802,
537 		GL_STENCIL_BACK_PASS_DEPTH_PASS   = 0x8803,
538 		GL_MAX_DRAW_BUFFERS               = 0x8824,
539 		GL_DRAW_BUFFER0                   = 0x8825,
540 		GL_DRAW_BUFFER1                   = 0x8826,
541 		GL_DRAW_BUFFER2                   = 0x8827,
542 		GL_DRAW_BUFFER3                   = 0x8828,
543 		GL_DRAW_BUFFER4                   = 0x8829,
544 		GL_DRAW_BUFFER5                   = 0x882A,
545 		GL_DRAW_BUFFER6                   = 0x882B,
546 		GL_DRAW_BUFFER7                   = 0x882C,
547 		GL_DRAW_BUFFER8                   = 0x882D,
548 		GL_DRAW_BUFFER9                   = 0x882E,
549 		GL_DRAW_BUFFER10                  = 0x882F,
550 		GL_DRAW_BUFFER11                  = 0x8830,
551 		GL_DRAW_BUFFER12                  = 0x8831,
552 		GL_DRAW_BUFFER13                  = 0x8832,
553 		GL_DRAW_BUFFER14                  = 0x8833,
554 		GL_DRAW_BUFFER15                  = 0x8834,
555 		GL_BLEND_EQUATION_ALPHA           = 0x883D,
556 		GL_MAX_VERTEX_ATTRIBS             = 0x8869,
557 		GL_VERTEX_ATTRIB_ARRAY_NORMALIZED = 0x886A,
558 		GL_MAX_TEXTURE_IMAGE_UNITS        = 0x8872,
559 		GL_FRAGMENT_SHADER                = 0x8B30,
560 		GL_VERTEX_SHADER                  = 0x8B31,
561 		GL_MAX_FRAGMENT_UNIFORM_COMPONENTS = 0x8B49,
562 		GL_MAX_VERTEX_UNIFORM_COMPONENTS  = 0x8B4A,
563 		GL_MAX_VARYING_FLOATS             = 0x8B4B,
564 		GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS = 0x8B4C,
565 		GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS = 0x8B4D,
566 		GL_SHADER_TYPE                    = 0x8B4F,
567 		GL_FLOAT_VEC2                     = 0x8B50,
568 		GL_FLOAT_VEC3                     = 0x8B51,
569 		GL_FLOAT_VEC4                     = 0x8B52,
570 		GL_INT_VEC2                       = 0x8B53,
571 		GL_INT_VEC3                       = 0x8B54,
572 		GL_INT_VEC4                       = 0x8B55,
573 		GL_BOOL                           = 0x8B56,
574 		GL_BOOL_VEC2                      = 0x8B57,
575 		GL_BOOL_VEC3                      = 0x8B58,
576 		GL_BOOL_VEC4                      = 0x8B59,
577 		GL_FLOAT_MAT2                     = 0x8B5A,
578 		GL_FLOAT_MAT3                     = 0x8B5B,
579 		GL_FLOAT_MAT4                     = 0x8B5C,
580 		GL_SAMPLER_1D                     = 0x8B5D,
581 		GL_SAMPLER_2D                     = 0x8B5E,
582 		GL_SAMPLER_3D                     = 0x8B5F,
583 		GL_SAMPLER_CUBE                   = 0x8B60,
584 		GL_SAMPLER_1D_SHADOW              = 0x8B61,
585 		GL_SAMPLER_2D_SHADOW              = 0x8B62,
586 		GL_DELETE_STATUS                  = 0x8B80,
587 		GL_COMPILE_STATUS                 = 0x8B81,
588 		GL_LINK_STATUS                    = 0x8B82,
589 		GL_VALIDATE_STATUS                = 0x8B83,
590 		GL_INFO_LOG_LENGTH                = 0x8B84,
591 		GL_ATTACHED_SHADERS               = 0x8B85,
592 		GL_ACTIVE_UNIFORMS                = 0x8B86,
593 		GL_ACTIVE_UNIFORM_MAX_LENGTH      = 0x8B87,
594 		GL_SHADER_SOURCE_LENGTH           = 0x8B88,
595 		GL_ACTIVE_ATTRIBUTES              = 0x8B89,
596 		GL_ACTIVE_ATTRIBUTE_MAX_LENGTH    = 0x8B8A,
597 		GL_FRAGMENT_SHADER_DERIVATIVE_HINT = 0x8B8B,
598 		GL_SHADING_LANGUAGE_VERSION       = 0x8B8C,
599 		GL_CURRENT_PROGRAM                = 0x8B8D,
600 		GL_POINT_SPRITE_COORD_ORIGIN      = 0x8CA0,
601 		GL_LOWER_LEFT                     = 0x8CA1,
602 		GL_UPPER_LEFT                     = 0x8CA2,
603 		GL_STENCIL_BACK_REF               = 0x8CA3,
604 		GL_STENCIL_BACK_VALUE_MASK        = 0x8CA4,
605 		GL_STENCIL_BACK_WRITEMASK         = 0x8CA5,
606 	}
607 	
608 	enum // GL_VERSION_2_1
609 	{
610 		GL_PIXEL_PACK_BUFFER              = 0x88EB,
611 		GL_PIXEL_UNPACK_BUFFER            = 0x88EC,
612 		GL_PIXEL_PACK_BUFFER_BINDING      = 0x88ED,
613 		GL_PIXEL_UNPACK_BUFFER_BINDING    = 0x88EF,
614 		GL_FLOAT_MAT2x3                   = 0x8B65,
615 		GL_FLOAT_MAT2x4                   = 0x8B66,
616 		GL_FLOAT_MAT3x2                   = 0x8B67,
617 		GL_FLOAT_MAT3x4                   = 0x8B68,
618 		GL_FLOAT_MAT4x2                   = 0x8B69,
619 		GL_FLOAT_MAT4x3                   = 0x8B6A,
620 		GL_SRGB                           = 0x8C40,
621 		GL_SRGB8                          = 0x8C41,
622 		GL_SRGB_ALPHA                     = 0x8C42,
623 		GL_SRGB8_ALPHA8                   = 0x8C43,
624 		GL_COMPRESSED_SRGB                = 0x8C48,
625 		GL_COMPRESSED_SRGB_ALPHA          = 0x8C49,
626 	}
627 
628 	enum // GL_VERSION_3_0
629 	{
630 		GL_COMPARE_REF_TO_TEXTURE         = 0x884E,
631 		GL_CLIP_DISTANCE0                 = 0x3000,
632 		GL_CLIP_DISTANCE1                 = 0x3001,
633 		GL_CLIP_DISTANCE2                 = 0x3002,
634 		GL_CLIP_DISTANCE3                 = 0x3003,
635 		GL_CLIP_DISTANCE4                 = 0x3004,
636 		GL_CLIP_DISTANCE5                 = 0x3005,
637 		GL_CLIP_DISTANCE6                 = 0x3006,
638 		GL_CLIP_DISTANCE7                 = 0x3007,
639 		GL_MAX_CLIP_DISTANCES             = 0x0D32,
640 		GL_MAJOR_VERSION                  = 0x821B,
641 		GL_MINOR_VERSION                  = 0x821C,
642 		GL_NUM_EXTENSIONS                 = 0x821D,
643 		GL_CONTEXT_FLAGS                  = 0x821E,
644 		GL_COMPRESSED_RED                 = 0x8225,
645 		GL_COMPRESSED_RG                  = 0x8226,
646 		GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT = 0x0001,
647 		GL_RGBA32F                        = 0x8814,
648 		GL_RGB32F                         = 0x8815,
649 		GL_RGBA16F                        = 0x881A,
650 		GL_RGB16F                         = 0x881B,
651 		GL_VERTEX_ATTRIB_ARRAY_INTEGER    = 0x88FD,
652 		GL_MAX_ARRAY_TEXTURE_LAYERS       = 0x88FF,
653 		GL_MIN_PROGRAM_TEXEL_OFFSET       = 0x8904,
654 		GL_MAX_PROGRAM_TEXEL_OFFSET       = 0x8905,
655 		GL_CLAMP_READ_COLOR               = 0x891C,
656 		GL_FIXED_ONLY                     = 0x891D,
657 		GL_MAX_VARYING_COMPONENTS         = 0x8B4B,
658 		GL_TEXTURE_1D_ARRAY               = 0x8C18,
659 		GL_PROXY_TEXTURE_1D_ARRAY         = 0x8C19,
660 		GL_TEXTURE_2D_ARRAY               = 0x8C1A,
661 		GL_PROXY_TEXTURE_2D_ARRAY         = 0x8C1B,
662 		GL_TEXTURE_BINDING_1D_ARRAY       = 0x8C1C,
663 		GL_TEXTURE_BINDING_2D_ARRAY       = 0x8C1D,
664 		GL_R11F_G11F_B10F                 = 0x8C3A,
665 		GL_UNSIGNED_INT_10F_11F_11F_REV   = 0x8C3B,
666 		GL_RGB9_E5                        = 0x8C3D,
667 		GL_UNSIGNED_INT_5_9_9_9_REV       = 0x8C3E,
668 		GL_TEXTURE_SHARED_SIZE            = 0x8C3F,
669 		GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH = 0x8C76,
670 		GL_TRANSFORM_FEEDBACK_BUFFER_MODE = 0x8C7F,
671 		GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS = 0x8C80,
672 		GL_TRANSFORM_FEEDBACK_VARYINGS    = 0x8C83,
673 		GL_TRANSFORM_FEEDBACK_BUFFER_START = 0x8C84,
674 		GL_TRANSFORM_FEEDBACK_BUFFER_SIZE = 0x8C85,
675 		GL_PRIMITIVES_GENERATED           = 0x8C87,
676 		GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN = 0x8C88,
677 		GL_RASTERIZER_DISCARD             = 0x8C89,
678 		GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS = 0x8C8A,
679 		GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS = 0x8C8B,
680 		GL_INTERLEAVED_ATTRIBS            = 0x8C8C,
681 		GL_SEPARATE_ATTRIBS               = 0x8C8D,
682 		GL_TRANSFORM_FEEDBACK_BUFFER      = 0x8C8E,
683 		GL_TRANSFORM_FEEDBACK_BUFFER_BINDING = 0x8C8F,
684 		GL_RGBA32UI                       = 0x8D70,
685 		GL_RGB32UI                        = 0x8D71,
686 		GL_RGBA16UI                       = 0x8D76,
687 		GL_RGB16UI                        = 0x8D77,
688 		GL_RGBA8UI                        = 0x8D7C,
689 		GL_RGB8UI                         = 0x8D7D,
690 		GL_RGBA32I                        = 0x8D82,
691 		GL_RGB32I                         = 0x8D83,
692 		GL_RGBA16I                        = 0x8D88,
693 		GL_RGB16I                         = 0x8D89,
694 		GL_RGBA8I                         = 0x8D8E,
695 		GL_RGB8I                          = 0x8D8F,
696 		GL_RED_INTEGER                    = 0x8D94,
697 		GL_GREEN_INTEGER                  = 0x8D95,
698 		GL_BLUE_INTEGER                   = 0x8D96,
699 		GL_RGB_INTEGER                    = 0x8D98,
700 		GL_RGBA_INTEGER                   = 0x8D99,
701 		GL_BGR_INTEGER                    = 0x8D9A,
702 		GL_BGRA_INTEGER                   = 0x8D9B,
703 		GL_SAMPLER_1D_ARRAY               = 0x8DC0,
704 		GL_SAMPLER_2D_ARRAY               = 0x8DC1,
705 		GL_SAMPLER_1D_ARRAY_SHADOW        = 0x8DC3,
706 		GL_SAMPLER_2D_ARRAY_SHADOW        = 0x8DC4,
707 		GL_SAMPLER_CUBE_SHADOW            = 0x8DC5,
708 		GL_UNSIGNED_INT_VEC2              = 0x8DC6,
709 		GL_UNSIGNED_INT_VEC3              = 0x8DC7,
710 		GL_UNSIGNED_INT_VEC4              = 0x8DC8,
711 		GL_INT_SAMPLER_1D                 = 0x8DC9,
712 		GL_INT_SAMPLER_2D                 = 0x8DCA,
713 		GL_INT_SAMPLER_3D                 = 0x8DCB,
714 		GL_INT_SAMPLER_CUBE               = 0x8DCC,
715 		GL_INT_SAMPLER_1D_ARRAY           = 0x8DCE,
716 		GL_INT_SAMPLER_2D_ARRAY           = 0x8DCF,
717 		GL_UNSIGNED_INT_SAMPLER_1D        = 0x8DD1,
718 		GL_UNSIGNED_INT_SAMPLER_2D        = 0x8DD2,
719 		GL_UNSIGNED_INT_SAMPLER_3D        = 0x8DD3,
720 		GL_UNSIGNED_INT_SAMPLER_CUBE      = 0x8DD4,
721 		GL_UNSIGNED_INT_SAMPLER_1D_ARRAY  = 0x8DD6,
722 		GL_UNSIGNED_INT_SAMPLER_2D_ARRAY  = 0x8DD7,
723 		GL_QUERY_WAIT                     = 0x8E13,
724 		GL_QUERY_NO_WAIT                  = 0x8E14,
725 		GL_QUERY_BY_REGION_WAIT           = 0x8E15,
726 		GL_QUERY_BY_REGION_NO_WAIT        = 0x8E16,
727 		GL_BUFFER_ACCESS_FLAGS            = 0x911F,
728 		GL_BUFFER_MAP_LENGTH              = 0x9120,
729 		GL_BUFFER_MAP_OFFSET              = 0x9121,
730 		
731 		/* Reuse tokens from ARB_depth_buffer_float */
732 		
733 			/* reuse GL_DEPTH_COMPONENT32F */
734 			/* reuse GL_DEPTH32F_STENCIL8 */
735 			/* reuse GL_FLOAT_32_UNSIGNED_INT_24_8_REV */
736 			
737 		/* Reuse tokens from ARB_framebuffer_object */
738 		
739 			/* reuse GL_INVALID_FRAMEBUFFER_OPERATION */
740 			/* reuse GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING */
741 			/* reuse GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE */
742 			/* reuse GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE */
743 			/* reuse GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE */
744 			/* reuse GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE */
745 			/* reuse GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE */
746 			/* reuse GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE */
747 			/* reuse GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE */
748 			/* reuse GL_FRAMEBUFFER_DEFAULT */
749 			/* reuse GL_FRAMEBUFFER_UNDEFINED */
750 			/* reuse GL_DEPTH_STENCIL_ATTACHMENT */
751 			/* reuse GL_INDEX */
752 			/* reuse GL_MAX_RENDERBUFFER_SIZE */
753 			/* reuse GL_DEPTH_STENCIL */
754 			/* reuse GL_UNSIGNED_INT_24_8 */
755 			/* reuse GL_DEPTH24_STENCIL8 */
756 			/* reuse GL_TEXTURE_STENCIL_SIZE */
757 			/* reuse GL_TEXTURE_RED_TYPE */
758 			/* reuse GL_TEXTURE_GREEN_TYPE */
759 			/* reuse GL_TEXTURE_BLUE_TYPE */
760 			/* reuse GL_TEXTURE_ALPHA_TYPE */
761 			/* reuse GL_TEXTURE_DEPTH_TYPE */
762 			/* reuse GL_UNSIGNED_NORMALIZED */
763 			/* reuse GL_FRAMEBUFFER_BINDING */
764 			/* reuse GL_DRAW_FRAMEBUFFER_BINDING */
765 			/* reuse GL_RENDERBUFFER_BINDING */
766 			/* reuse GL_READ_FRAMEBUFFER */
767 			/* reuse GL_DRAW_FRAMEBUFFER */
768 			/* reuse GL_READ_FRAMEBUFFER_BINDING */
769 			/* reuse GL_RENDERBUFFER_SAMPLES */
770 			/* reuse GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE */
771 			/* reuse GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME */
772 			/* reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL */
773 			/* reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE */
774 			/* reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER */
775 			/* reuse GL_FRAMEBUFFER_COMPLETE */
776 			/* reuse GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT */
777 			/* reuse GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT */
778 			/* reuse GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER */
779 			/* reuse GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER */
780 			/* reuse GL_FRAMEBUFFER_UNSUPPORTED */
781 			/* reuse GL_MAX_COLOR_ATTACHMENTS */
782 			/* reuse GL_COLOR_ATTACHMENT0 */
783 			/* reuse GL_COLOR_ATTACHMENT1 */
784 			/* reuse GL_COLOR_ATTACHMENT2 */
785 			/* reuse GL_COLOR_ATTACHMENT3 */
786 			/* reuse GL_COLOR_ATTACHMENT4 */
787 			/* reuse GL_COLOR_ATTACHMENT5 */
788 			/* reuse GL_COLOR_ATTACHMENT6 */
789 			/* reuse GL_COLOR_ATTACHMENT7 */
790 			/* reuse GL_COLOR_ATTACHMENT8 */
791 			/* reuse GL_COLOR_ATTACHMENT9 */
792 			/* reuse GL_COLOR_ATTACHMENT10 */
793 			/* reuse GL_COLOR_ATTACHMENT11 */
794 			/* reuse GL_COLOR_ATTACHMENT12 */
795 			/* reuse GL_COLOR_ATTACHMENT13 */
796 			/* reuse GL_COLOR_ATTACHMENT14 */
797 			/* reuse GL_COLOR_ATTACHMENT15 */
798 			/* reuse GL_DEPTH_ATTACHMENT */
799 			/* reuse GL_STENCIL_ATTACHMENT */
800 			/* reuse GL_FRAMEBUFFER */
801 			/* reuse GL_RENDERBUFFER */
802 			/* reuse GL_RENDERBUFFER_WIDTH */
803 			/* reuse GL_RENDERBUFFER_HEIGHT */
804 			/* reuse GL_RENDERBUFFER_INTERNAL_FORMAT */
805 			/* reuse GL_STENCIL_INDEX1 */
806 			/* reuse GL_STENCIL_INDEX4 */
807 			/* reuse GL_STENCIL_INDEX8 */
808 			/* reuse GL_STENCIL_INDEX16 */
809 			/* reuse GL_RENDERBUFFER_RED_SIZE */
810 			/* reuse GL_RENDERBUFFER_GREEN_SIZE */
811 			/* reuse GL_RENDERBUFFER_BLUE_SIZE */
812 			/* reuse GL_RENDERBUFFER_ALPHA_SIZE */
813 			/* reuse GL_RENDERBUFFER_DEPTH_SIZE */
814 			/* reuse GL_RENDERBUFFER_STENCIL_SIZE */
815 			/* reuse GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE */
816 			/* reuse GL_MAX_SAMPLES */
817 		
818 		/* Reuse tokens from ARB_framebuffer_sRGB */
819 		
820 			/* reuse GL_FRAMEBUFFER_SRGB */
821 		
822 		/* Reuse tokens from ARB_half_float_vertex */
823 		
824 			/* reuse GL_HALF_FLOAT */
825 		
826 		/* Reuse tokens from ARB_map_buffer_range */
827 		
828 			/* reuse GL_MAP_READ_BIT */
829 			/* reuse GL_MAP_WRITE_BIT */
830 			/* reuse GL_MAP_INVALIDATE_RANGE_BIT */
831 			/* reuse GL_MAP_INVALIDATE_BUFFER_BIT */
832 			/* reuse GL_MAP_FLUSH_EXPLICIT_BIT */
833 			/* reuse GL_MAP_UNSYNCHRONIZED_BIT */
834 		
835 		/* Reuse tokens from ARB_texture_compression_rgtc */
836 		
837 			/* reuse GL_COMPRESSED_RED_RGTC1 */
838 			/* reuse GL_COMPRESSED_SIGNED_RED_RGTC1 */
839 			/* reuse GL_COMPRESSED_RG_RGTC2 */
840 			/* reuse GL_COMPRESSED_SIGNED_RG_RGTC2 */
841 		
842 		/* Reuse tokens from ARB_texture_rg */
843 		
844 			/* reuse GL_RG */
845 			/* reuse GL_RG_INTEGER */
846 			/* reuse GL_R8 */
847 			/* reuse GL_R16 */
848 			/* reuse GL_RG8 */
849 			/* reuse GL_RG16 */
850 			/* reuse GL_R16F */
851 			/* reuse GL_R32F */
852 			/* reuse GL_RG16F */
853 			/* reuse GL_RG32F */
854 			/* reuse GL_R8I */
855 			/* reuse GL_R8UI */
856 			/* reuse GL_R16I */
857 			/* reuse GL_R16UI */
858 			/* reuse GL_R32I */
859 			/* reuse GL_R32UI */
860 			/* reuse GL_RG8I */
861 			/* reuse GL_RG8UI */
862 			/* reuse GL_RG16I */
863 			/* reuse GL_RG16UI */
864 			/* reuse GL_RG32I */
865 			/* reuse GL_RG32UI */
866 		
867 		/* Reuse tokens from ARB_vertex_array_object */
868 		
869 			/* reuse GL_VERTEX_ARRAY_BINDING */
870 	}
871 
872 	enum // GL_VERSION_3_1
873 	{
874 		GL_SAMPLER_2D_RECT                = 0x8B63,
875 		GL_SAMPLER_2D_RECT_SHADOW         = 0x8B64,
876 		GL_SAMPLER_BUFFER                 = 0x8DC2,
877 		GL_INT_SAMPLER_2D_RECT            = 0x8DCD,
878 		GL_INT_SAMPLER_BUFFER             = 0x8DD0,
879 		GL_UNSIGNED_INT_SAMPLER_2D_RECT   = 0x8DD5,
880 		GL_UNSIGNED_INT_SAMPLER_BUFFER    = 0x8DD8,
881 		GL_TEXTURE_BUFFER                 = 0x8C2A,
882 		GL_MAX_TEXTURE_BUFFER_SIZE        = 0x8C2B,
883 		GL_TEXTURE_BINDING_BUFFER         = 0x8C2C,
884 		GL_TEXTURE_BUFFER_DATA_STORE_BINDING = 0x8C2D,
885 		GL_TEXTURE_RECTANGLE              = 0x84F5,
886 		GL_TEXTURE_BINDING_RECTANGLE      = 0x84F6,
887 		GL_PROXY_TEXTURE_RECTANGLE        = 0x84F7,
888 		GL_MAX_RECTANGLE_TEXTURE_SIZE     = 0x84F8,
889 		GL_RED_SNORM                      = 0x8F90,
890 		GL_RG_SNORM                       = 0x8F91,
891 		GL_RGB_SNORM                      = 0x8F92,
892 		GL_RGBA_SNORM                     = 0x8F93,
893 		GL_R8_SNORM                       = 0x8F94,
894 		GL_RG8_SNORM                      = 0x8F95,
895 		GL_RGB8_SNORM                     = 0x8F96,
896 		GL_RGBA8_SNORM                    = 0x8F97,
897 		GL_R16_SNORM                      = 0x8F98,
898 		GL_RG16_SNORM                     = 0x8F99,
899 		GL_RGB16_SNORM                    = 0x8F9A,
900 		GL_RGBA16_SNORM                   = 0x8F9B,
901 		GL_SIGNED_NORMALIZED              = 0x8F9C,
902 		GL_PRIMITIVE_RESTART              = 0x8F9D,
903 		GL_PRIMITIVE_RESTART_INDEX        = 0x8F9E,
904 		
905 		/* Reuse tokens from ARB_copy_buffer */
906 		
907 			/* reuse GL_COPY_READ_BUFFER */
908 			/* reuse GL_COPY_WRITE_BUFFER */
909 
910 		/* Reuse tokens from ARB_draw_instanced (none) */
911 
912 		/* Reuse tokens from ARB_uniform_buffer_object */
913 		
914 			/* reuse GL_UNIFORM_BUFFER */
915 			/* reuse GL_UNIFORM_BUFFER_BINDING */
916 			/* reuse GL_UNIFORM_BUFFER_START */
917 			/* reuse GL_UNIFORM_BUFFER_SIZE */
918 			/* reuse GL_MAX_VERTEX_UNIFORM_BLOCKS */
919 			/* reuse GL_MAX_FRAGMENT_UNIFORM_BLOCKS */
920 			/* reuse GL_MAX_COMBINED_UNIFORM_BLOCKS */
921 			/* reuse GL_MAX_UNIFORM_BUFFER_BINDINGS */
922 			/* reuse GL_MAX_UNIFORM_BLOCK_SIZE */
923 			/* reuse GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS */
924 			/* reuse GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS */
925 			/* reuse GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT */
926 			/* reuse GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH */
927 			/* reuse GL_ACTIVE_UNIFORM_BLOCKS */
928 			/* reuse GL_UNIFORM_TYPE */
929 			/* reuse GL_UNIFORM_SIZE */
930 			/* reuse GL_UNIFORM_NAME_LENGTH */
931 			/* reuse GL_UNIFORM_BLOCK_INDEX */
932 			/* reuse GL_UNIFORM_OFFSET */
933 			/* reuse GL_UNIFORM_ARRAY_STRIDE */
934 			/* reuse GL_UNIFORM_MATRIX_STRIDE */
935 			/* reuse GL_UNIFORM_IS_ROW_MAJOR */
936 			/* reuse GL_UNIFORM_BLOCK_BINDING */
937 			/* reuse GL_UNIFORM_BLOCK_DATA_SIZE */
938 			/* reuse GL_UNIFORM_BLOCK_NAME_LENGTH */
939 			/* reuse GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS */
940 			/* reuse GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES */
941 			/* reuse GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER */
942 			/* reuse GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER */
943 			/* reuse GL_INVALID_INDEX */
944 	}
945 
946 	enum // GL_VERSION_3_2
947 	{
948 		GL_CONTEXT_CORE_PROFILE_BIT       = 0x00000001,
949 		GL_CONTEXT_COMPATIBILITY_PROFILE_BIT = 0x00000002,
950 		GL_LINES_ADJACENCY                = 0x000A,
951 		GL_LINE_STRIP_ADJACENCY           = 0x000B,
952 		GL_TRIANGLES_ADJACENCY            = 0x000C,
953 		GL_TRIANGLE_STRIP_ADJACENCY       = 0x000D,
954 		GL_PROGRAM_POINT_SIZE             = 0x8642,
955 		GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS = 0x8C29,
956 		GL_FRAMEBUFFER_ATTACHMENT_LAYERED = 0x8DA7,
957 		GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS = 0x8DA8,
958 		GL_GEOMETRY_SHADER                = 0x8DD9,
959 		GL_GEOMETRY_VERTICES_OUT          = 0x8916,
960 		GL_GEOMETRY_INPUT_TYPE            = 0x8917,
961 		GL_GEOMETRY_OUTPUT_TYPE           = 0x8918,
962 		GL_MAX_GEOMETRY_UNIFORM_COMPONENTS = 0x8DDF,
963 		GL_MAX_GEOMETRY_OUTPUT_VERTICES   = 0x8DE0,
964 		GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS = 0x8DE1,
965 		GL_MAX_VERTEX_OUTPUT_COMPONENTS   = 0x9122,
966 		GL_MAX_GEOMETRY_INPUT_COMPONENTS  = 0x9123,
967 		GL_MAX_GEOMETRY_OUTPUT_COMPONENTS = 0x9124,
968 		GL_MAX_FRAGMENT_INPUT_COMPONENTS  = 0x9125,
969 		GL_CONTEXT_PROFILE_MASK           = 0x9126,
970 		
971 			/* reuse GL_MAX_VARYING_COMPONENTS */
972 			/* reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER */
973 		
974 		/* Reuse tokens from ARB_depth_clamp */
975 
976 			/* reuse GL_DEPTH_CLAMP */
977 			
978 		/* Reuse tokens from ARB_draw_elements_base_vertex (none) */
979 		
980 		/* Reuse tokens from ARB_fragment_coord_conventions (none) */
981 		
982 		/* Reuse tokens from ARB_provoking_vertex */
983 		
984 			/* reuse GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION */
985 			/* reuse GL_FIRST_VERTEX_CONVENTION */
986 			/* reuse GL_LAST_VERTEX_CONVENTION */
987 			/* reuse GL_PROVOKING_VERTEX */
988 			
989 		/* Reuse tokens from ARB_seamless_cube_map */
990 			
991 			/* reuse GL_TEXTURE_CUBE_MAP_SEAMLESS */
992 			/* Reuse tokens from ARB_sync */
993 			/* reuse GL_MAX_SERVER_WAIT_TIMEOUT */
994 			/* reuse GL_OBJECT_TYPE */
995 			/* reuse GL_SYNC_CONDITION */
996 			/* reuse GL_SYNC_STATUS */
997 			/* reuse GL_SYNC_FLAGS */
998 			/* reuse GL_SYNC_FENCE */
999 			/* reuse GL_SYNC_GPU_COMMANDS_COMPLETE */
1000 			/* reuse GL_UNSIGNALED */
1001 			/* reuse GL_SIGNALED */
1002 			/* reuse GL_ALREADY_SIGNALED */
1003 			/* reuse GL_TIMEOUT_EXPIRED */
1004 			/* reuse GL_CONDITION_SATISFIED */
1005 			/* reuse GL_WAIT_FAILED */
1006 			/* reuse GL_TIMEOUT_IGNORED */
1007 			/* reuse GL_SYNC_FLUSH_COMMANDS_BIT */
1008 			/* reuse GL_TIMEOUT_IGNORED */
1009 			
1010 		/* Reuse tokens from ARB_texture_multisample */
1011 		
1012 			/* reuse GL_SAMPLE_POSITION */
1013 			/* reuse GL_SAMPLE_MASK */
1014 			/* reuse GL_SAMPLE_MASK_VALUE */
1015 			/* reuse GL_MAX_SAMPLE_MASK_WORDS */
1016 			/* reuse GL_TEXTURE_2D_MULTISAMPLE */
1017 			/* reuse GL_PROXY_TEXTURE_2D_MULTISAMPLE */
1018 			/* reuse GL_TEXTURE_2D_MULTISAMPLE_ARRAY */
1019 			/* reuse GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY */
1020 			/* reuse GL_TEXTURE_BINDING_2D_MULTISAMPLE */
1021 			/* reuse GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY */
1022 			/* reuse GL_TEXTURE_SAMPLES */
1023 			/* reuse GL_TEXTURE_FIXED_SAMPLE_LOCATIONS */
1024 			/* reuse GL_SAMPLER_2D_MULTISAMPLE */
1025 			/* reuse GL_INT_SAMPLER_2D_MULTISAMPLE */
1026 			/* reuse GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE */
1027 			/* reuse GL_SAMPLER_2D_MULTISAMPLE_ARRAY */
1028 			/* reuse GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY */
1029 			/* reuse GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY */
1030 			/* reuse GL_MAX_COLOR_TEXTURE_SAMPLES */
1031 			/* reuse GL_MAX_DEPTH_TEXTURE_SAMPLES */
1032 			/* reuse GL_MAX_INTEGER_SAMPLES */
1033 		
1034 		/* Don't need to reuse tokens from ARB_vertex_array_bgra since they're already in 1.2 core */
1035 	}
1036 
1037 	enum // GL_VERSION_3_3
1038 	{
1039 		GL_VERTEX_ATTRIB_ARRAY_DIVISOR    = 0x88FE,
1040 		
1041 		/* Reuse tokens from ARB_blend_func_extended */
1042 			
1043 			/* reuse GL_SRC1_COLOR */
1044 			/* reuse GL_ONE_MINUS_SRC1_COLOR */
1045 			/* reuse GL_ONE_MINUS_SRC1_ALPHA */
1046 			/* reuse GL_MAX_DUAL_SOURCE_DRAW_BUFFERS */
1047 			
1048 		/* Reuse tokens from ARB_explicit_attrib_location (none) */
1049 		
1050 		/* Reuse tokens from ARB_occlusion_query2 */
1051 		
1052 			/* reuse GL_ANY_SAMPLES_PASSED */
1053 			
1054 		/* Reuse tokens from ARB_sampler_objects */
1055 		
1056 			/* reuse GL_SAMPLER_BINDING */
1057 			
1058 		/* Reuse tokens from ARB_shader_bit_encoding (none) */
1059 		
1060 		/* Reuse tokens from ARB_texture_rgb10_a2ui */
1061 		
1062 			/* reuse GL_RGB10_A2UI */
1063 			
1064 		/* Reuse tokens from ARB_texture_swizzle */
1065 		
1066 			/* reuse GL_TEXTURE_SWIZZLE_R */
1067 			/* reuse GL_TEXTURE_SWIZZLE_G */
1068 			/* reuse GL_TEXTURE_SWIZZLE_B */
1069 			/* reuse GL_TEXTURE_SWIZZLE_A */
1070 			/* reuse GL_TEXTURE_SWIZZLE_RGBA */
1071 			
1072 		/* Reuse tokens from ARB_timer_query */
1073 		
1074 			/* reuse GL_TIME_ELAPSED */
1075 			/* reuse GL_TIMESTAMP */
1076 			
1077 		/* Reuse tokens from ARB_vertex_type_2_10_10_10_rev */
1078 		
1079 			/* reuse GL_INT_2_10_10_10_REV */
1080 	}
1081 
1082 	enum // GL_VERSION_4_0
1083 	{
1084 		GL_SAMPLE_SHADING                 = 0x8C36,
1085 		GL_MIN_SAMPLE_SHADING_VALUE       = 0x8C37,
1086 		GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET = 0x8E5E,
1087 		GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET = 0x8E5F,
1088 		GL_TEXTURE_CUBE_MAP_ARRAY         = 0x9009,
1089 		GL_TEXTURE_BINDING_CUBE_MAP_ARRAY = 0x900A,
1090 		GL_PROXY_TEXTURE_CUBE_MAP_ARRAY   = 0x900B,
1091 		GL_SAMPLER_CUBE_MAP_ARRAY         = 0x900C,
1092 		GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW  = 0x900D,
1093 		GL_INT_SAMPLER_CUBE_MAP_ARRAY     = 0x900E,
1094 		GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY = 0x900F,
1095 		
1096 		/* Reuse tokens from ARB_texture_query_lod (none) */
1097 		
1098 		/* Reuse tokens from ARB_draw_buffers_blend (none) */
1099 		
1100 		/* Reuse tokens from ARB_draw_indirect */
1101 			
1102 			/* reuse GL_DRAW_INDIRECT_BUFFER */
1103 			/* reuse GL_DRAW_INDIRECT_BUFFER_BINDING */
1104 			
1105 		/* Reuse tokens from ARB_gpu_shader5 */
1106 		
1107 			/* reuse GL_GEOMETRY_SHADER_INVOCATIONS */
1108 			/* reuse GL_MAX_GEOMETRY_SHADER_INVOCATIONS */
1109 			/* reuse GL_MIN_FRAGMENT_INTERPOLATION_OFFSET */
1110 			/* reuse GL_MAX_FRAGMENT_INTERPOLATION_OFFSET */
1111 			/* reuse GL_FRAGMENT_INTERPOLATION_OFFSET_BITS */
1112 			/* reuse GL_MAX_VERTEX_STREAMS */
1113 			
1114 		/* Reuse tokens from ARB_gpu_shader_fp64 */
1115 		
1116 			/* reuse GL_DOUBLE_VEC2 */
1117 			/* reuse GL_DOUBLE_VEC3 */
1118 			/* reuse GL_DOUBLE_VEC4 */
1119 			/* reuse GL_DOUBLE_MAT2 */
1120 			/* reuse GL_DOUBLE_MAT3 */
1121 			/* reuse GL_DOUBLE_MAT4 */
1122 			/* reuse GL_DOUBLE_MAT2x3 */
1123 			/* reuse GL_DOUBLE_MAT2x4 */
1124 			/* reuse GL_DOUBLE_MAT3x2 */
1125 			/* reuse GL_DOUBLE_MAT3x4 */
1126 			/* reuse GL_DOUBLE_MAT4x2 */
1127 			/* reuse GL_DOUBLE_MAT4x3 */
1128 			
1129 		/* Reuse tokens from ARB_shader_subroutine */
1130 		
1131 			/* reuse GL_ACTIVE_SUBROUTINES */
1132 			/* reuse GL_ACTIVE_SUBROUTINE_UNIFORMS */
1133 			/* reuse GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS */
1134 			/* reuse GL_ACTIVE_SUBROUTINE_MAX_LENGTH */
1135 			/* reuse GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH */
1136 			/* reuse GL_MAX_SUBROUTINES */
1137 			/* reuse GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS */
1138 			/* reuse GL_NUM_COMPATIBLE_SUBROUTINES */
1139 			/* reuse GL_COMPATIBLE_SUBROUTINES */
1140 			
1141 		/* Reuse tokens from ARB_tessellation_shader */
1142 		
1143 			/* reuse GL_PATCHES */
1144 			/* reuse GL_PATCH_VERTICES */
1145 			/* reuse GL_PATCH_DEFAULT_INNER_LEVEL */
1146 			/* reuse GL_PATCH_DEFAULT_OUTER_LEVEL */
1147 			/* reuse GL_TESS_CONTROL_OUTPUT_VERTICES */
1148 			/* reuse GL_TESS_GEN_MODE */
1149 			/* reuse GL_TESS_GEN_SPACING */
1150 			/* reuse GL_TESS_GEN_VERTEX_ORDER */
1151 			/* reuse GL_TESS_GEN_POINT_MODE */
1152 			/* reuse GL_ISOLINES */
1153 			/* reuse GL_FRACTIONAL_ODD */
1154 			/* reuse GL_FRACTIONAL_EVEN */
1155 			/* reuse GL_MAX_PATCH_VERTICES */
1156 			/* reuse GL_MAX_TESS_GEN_LEVEL */
1157 			/* reuse GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS */
1158 			/* reuse GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS */
1159 			/* reuse GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS */
1160 			/* reuse GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS */
1161 			/* reuse GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS */
1162 			/* reuse GL_MAX_TESS_PATCH_COMPONENTS */
1163 			/* reuse GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS */
1164 			/* reuse GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS */
1165 			/* reuse GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS */
1166 			/* reuse GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS */
1167 			/* reuse GL_MAX_TESS_CONTROL_INPUT_COMPONENTS */
1168 			/* reuse GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS */
1169 			/* reuse GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS */
1170 			/* reuse GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS */
1171 			/* reuse GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER */
1172 			/* reuse GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER */
1173 			/* reuse GL_TESS_EVALUATION_SHADER */
1174 			/* reuse GL_TESS_CONTROL_SHADER */
1175 			
1176 		/* Reuse tokens from ARB_texture_buffer_object_rgb32 (none) */
1177 		
1178 		/* Reuse tokens from ARB_transform_feedback2 */
1179 		
1180 			/* reuse GL_TRANSFORM_FEEDBACK */
1181 			/* reuse GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED */
1182 			/* reuse GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE */
1183 			/* reuse GL_TRANSFORM_FEEDBACK_BINDING */
1184 			
1185 		/* Reuse tokens from ARB_transform_feedback3 */
1186 		
1187 			/* reuse GL_MAX_TRANSFORM_FEEDBACK_BUFFERS */
1188 			/* reuse GL_MAX_VERTEX_STREAMS */
1189 	}
1190 
1191 	version(none)
1192 	enum // GL_VERSION_4_1
1193 	{
1194 		/* Reuse tokens from ARB_ES2_compatibility */
1195 		
1196 			/* reuse GL_FIXED */
1197 			/* reuse GL_IMPLEMENTATION_COLOR_READ_TYPE */
1198 			/* reuse GL_IMPLEMENTATION_COLOR_READ_FORMAT */
1199 			/* reuse GL_LOW_FLOAT */
1200 			/* reuse GL_MEDIUM_FLOAT */
1201 			/* reuse GL_HIGH_FLOAT */
1202 			/* reuse GL_LOW_INT */
1203 			/* reuse GL_MEDIUM_INT */
1204 			/* reuse GL_HIGH_INT */
1205 			/* reuse GL_SHADER_COMPILER */
1206 			/* reuse GL_SHADER_BINARY_FORMATS */
1207 			/* reuse GL_NUM_SHADER_BINARY_FORMATS */
1208 			/* reuse GL_MAX_VERTEX_UNIFORM_VECTORS */
1209 			/* reuse GL_MAX_VARYING_VECTORS */
1210 			/* reuse GL_MAX_FRAGMENT_UNIFORM_VECTORS */
1211 			/* reuse GL_RGB565 */
1212 			
1213 		/* Reuse tokens from ARB_get_program_binary */
1214 		
1215 			/* reuse GL_PROGRAM_BINARY_RETRIEVABLE_HINT */
1216 			/* reuse GL_PROGRAM_BINARY_LENGTH */
1217 			/* reuse GL_NUM_PROGRAM_BINARY_FORMATS */
1218 			/* reuse GL_PROGRAM_BINARY_FORMATS */
1219 			
1220 		/* Reuse tokens from ARB_separate_shader_objects */
1221 
1222 		/* reuse GL_VERTEX_SHADER_BIT */
1223 			/* reuse GL_FRAGMENT_SHADER_BIT */
1224 			/* reuse GL_GEOMETRY_SHADER_BIT */
1225 			/* reuse GL_TESS_CONTROL_SHADER_BIT */
1226 			/* reuse GL_TESS_EVALUATION_SHADER_BIT */
1227 			/* reuse GL_ALL_SHADER_BITS */
1228 			/* reuse GL_PROGRAM_SEPARABLE */
1229 			/* reuse GL_ACTIVE_PROGRAM */
1230 			/* reuse GL_PROGRAM_PIPELINE_BINDING */
1231 
1232 		/* Reuse tokens from ARB_shader_precision (none) */
1233 
1234 		/* Reuse tokens from ARB_vertex_attrib_64bit - all are in GL 3.0 and 4.0 already */
1235 
1236 		/* Reuse tokens from ARB_viewport_array - some are in GL 1.1 and ARB_provoking_vertex already */
1237 
1238 			/* reuse GL_MAX_VIEWPORTS */
1239 			/* reuse GL_VIEWPORT_SUBPIXEL_BITS */
1240 			/* reuse GL_VIEWPORT_BOUNDS_RANGE */
1241 			/* reuse GL_LAYER_PROVOKING_VERTEX */
1242 			/* reuse GL_VIEWPORT_INDEX_PROVOKING_VERTEX */
1243 			/* reuse GL_UNDEFINED_VERTEX */
1244 	}
1245 
1246 	version(none)
1247 	enum // GL_VERSION_4_2
1248 	{
1249 		/* Reuse tokens from ARB_base_instance (none) */
1250 		
1251 		/* Reuse tokens from ARB_shading_language_420pack (none) */
1252 		
1253 		/* Reuse tokens from ARB_transform_feedback_instanced (none) */
1254 		
1255 		/* Reuse tokens from ARB_compressed_texture_pixel_storage */
1256 		
1257 			/* reuse GL_UNPACK_COMPRESSED_BLOCK_WIDTH */
1258 			/* reuse GL_UNPACK_COMPRESSED_BLOCK_HEIGHT */
1259 			/* reuse GL_UNPACK_COMPRESSED_BLOCK_DEPTH */
1260 			/* reuse GL_UNPACK_COMPRESSED_BLOCK_SIZE */
1261 			/* reuse GL_PACK_COMPRESSED_BLOCK_WIDTH */
1262 			/* reuse GL_PACK_COMPRESSED_BLOCK_HEIGHT */
1263 			/* reuse GL_PACK_COMPRESSED_BLOCK_DEPTH */
1264 			/* reuse GL_PACK_COMPRESSED_BLOCK_SIZE */
1265 		
1266 		/* Reuse tokens from ARB_conservative_depth (none) */
1267 		
1268 		/* Reuse tokens from ARB_internalformat_query */
1269 		
1270 			/* reuse GL_NUM_SAMPLE_COUNTS */
1271 		
1272 		/* Reuse tokens from ARB_map_buffer_alignment */
1273 		
1274 			/* reuse GL_MIN_MAP_BUFFER_ALIGNMENT */
1275 		
1276 		/* Reuse tokens from ARB_shader_atomic_counters */
1277 		
1278 			/* reuse GL_ATOMIC_COUNTER_BUFFER */
1279 			/* reuse GL_ATOMIC_COUNTER_BUFFER_BINDING */
1280 			/* reuse GL_ATOMIC_COUNTER_BUFFER_START */
1281 			/* reuse GL_ATOMIC_COUNTER_BUFFER_SIZE */
1282 			/* reuse GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE */
1283 			/* reuse GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS */
1284 			/* reuse GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES */
1285 			/* reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER */
1286 			/* reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER */
1287 			/* reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER */
1288 			/* reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER */
1289 			/* reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER */
1290 			/* reuse GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS */
1291 			/* reuse GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS */
1292 			/* reuse GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS */
1293 			/* reuse GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS */
1294 			/* reuse GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS */
1295 			/* reuse GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS */
1296 			/* reuse GL_MAX_VERTEX_ATOMIC_COUNTERS */
1297 			/* reuse GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS */
1298 			/* reuse GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS */
1299 			/* reuse GL_MAX_GEOMETRY_ATOMIC_COUNTERS */
1300 			/* reuse GL_MAX_FRAGMENT_ATOMIC_COUNTERS */
1301 			/* reuse GL_MAX_COMBINED_ATOMIC_COUNTERS */
1302 			/* reuse GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE */
1303 			/* reuse GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS */
1304 			/* reuse GL_ACTIVE_ATOMIC_COUNTER_BUFFERS */
1305 			/* reuse GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX */
1306 			/* reuse GL_UNSIGNED_INT_ATOMIC_COUNTER */
1307 		
1308 		/* Reuse tokens from ARB_shader_image_load_store */
1309 		
1310 			/* reuse GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT */
1311 			/* reuse GL_ELEMENT_ARRAY_BARRIER_BIT */
1312 			/* reuse GL_UNIFORM_BARRIER_BIT */
1313 			/* reuse GL_TEXTURE_FETCH_BARRIER_BIT */
1314 			/* reuse GL_SHADER_IMAGE_ACCESS_BARRIER_BIT */
1315 			/* reuse GL_COMMAND_BARRIER_BIT */
1316 			/* reuse GL_PIXEL_BUFFER_BARRIER_BIT */
1317 			/* reuse GL_TEXTURE_UPDATE_BARRIER_BIT */
1318 			/* reuse GL_BUFFER_UPDATE_BARRIER_BIT */
1319 			/* reuse GL_FRAMEBUFFER_BARRIER_BIT */
1320 			/* reuse GL_TRANSFORM_FEEDBACK_BARRIER_BIT */
1321 			/* reuse GL_ATOMIC_COUNTER_BARRIER_BIT */
1322 			/* reuse GL_ALL_BARRIER_BITS */
1323 			/* reuse GL_MAX_IMAGE_UNITS */
1324 			/* reuse GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS */
1325 			/* reuse GL_IMAGE_BINDING_NAME */
1326 			/* reuse GL_IMAGE_BINDING_LEVEL */
1327 			/* reuse GL_IMAGE_BINDING_LAYERED */
1328 			/* reuse GL_IMAGE_BINDING_LAYER */
1329 			/* reuse GL_IMAGE_BINDING_ACCESS */
1330 			/* reuse GL_IMAGE_1D */
1331 			/* reuse GL_IMAGE_2D */
1332 			/* reuse GL_IMAGE_3D */
1333 			/* reuse GL_IMAGE_2D_RECT */
1334 			/* reuse GL_IMAGE_CUBE */
1335 			/* reuse GL_IMAGE_BUFFER */
1336 			/* reuse GL_IMAGE_1D_ARRAY */
1337 			/* reuse GL_IMAGE_2D_ARRAY */
1338 			/* reuse GL_IMAGE_CUBE_MAP_ARRAY */
1339 			/* reuse GL_IMAGE_2D_MULTISAMPLE */
1340 			/* reuse GL_IMAGE_2D_MULTISAMPLE_ARRAY */
1341 			/* reuse GL_INT_IMAGE_1D */
1342 			/* reuse GL_INT_IMAGE_2D */
1343 			/* reuse GL_INT_IMAGE_3D */
1344 			/* reuse GL_INT_IMAGE_2D_RECT */
1345 			/* reuse GL_INT_IMAGE_CUBE */
1346 			/* reuse GL_INT_IMAGE_BUFFER */
1347 			/* reuse GL_INT_IMAGE_1D_ARRAY */
1348 			/* reuse GL_INT_IMAGE_2D_ARRAY */
1349 			/* reuse GL_INT_IMAGE_CUBE_MAP_ARRAY */
1350 			/* reuse GL_INT_IMAGE_2D_MULTISAMPLE */
1351 			/* reuse GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY */
1352 			/* reuse GL_UNSIGNED_INT_IMAGE_1D */
1353 			/* reuse GL_UNSIGNED_INT_IMAGE_2D */
1354 			/* reuse GL_UNSIGNED_INT_IMAGE_3D */
1355 			/* reuse GL_UNSIGNED_INT_IMAGE_2D_RECT */
1356 			/* reuse GL_UNSIGNED_INT_IMAGE_CUBE */
1357 			/* reuse GL_UNSIGNED_INT_IMAGE_BUFFER */
1358 			/* reuse GL_UNSIGNED_INT_IMAGE_1D_ARRAY */
1359 			/* reuse GL_UNSIGNED_INT_IMAGE_2D_ARRAY */
1360 			/* reuse GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY */
1361 			/* reuse GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE */
1362 			/* reuse GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY */
1363 			/* reuse GL_MAX_IMAGE_SAMPLES */
1364 			/* reuse GL_IMAGE_BINDING_FORMAT */
1365 			/* reuse GL_IMAGE_FORMAT_COMPATIBILITY_TYPE */
1366 			/* reuse GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE */
1367 			/* reuse GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS */
1368 			/* reuse GL_MAX_VERTEX_IMAGE_UNIFORMS */
1369 			/* reuse GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS */
1370 			/* reuse GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS */
1371 			/* reuse GL_MAX_GEOMETRY_IMAGE_UNIFORMS */
1372 			/* reuse GL_MAX_FRAGMENT_IMAGE_UNIFORMS */
1373 			/* reuse GL_MAX_COMBINED_IMAGE_UNIFORMS */
1374 		
1375 		/* Reuse tokens from ARB_shading_language_packing (none) */
1376 		
1377 		/* Reuse tokens from ARB_texture_storage */
1378 		
1379 			/* reuse GL_TEXTURE_IMMUTABLE_FORMAT */
1380 	}
1381 
1382 	enum // GL_VERSION_4_3
1383 	{
1384 		GL_NUM_SHADING_LANGUAGE_VERSIONS  = 0x82E9,
1385 		GL_VERTEX_ATTRIB_ARRAY_LONG       = 0x874E,
1386 		
1387 		/* Reuse tokens from ARB_arrays_of_arrays (none, GLSL only) */
1388 		
1389 		/* Reuse tokens from ARB_fragment_layer_viewport (none, GLSL only) */
1390 		
1391 		/* Reuse tokens from ARB_shader_image_size (none, GLSL only) */
1392 		
1393 		/* Reuse tokens from ARB_ES3_compatibility */
1394 		
1395 			/* reuse GL_COMPRESSED_RGB8_ETC2 */
1396 			/* reuse GL_COMPRESSED_SRGB8_ETC2 */
1397 			/* reuse GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 */
1398 			/* reuse GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 */
1399 			/* reuse GL_COMPRESSED_RGBA8_ETC2_EAC */
1400 			/* reuse GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC */
1401 			/* reuse GL_COMPRESSED_R11_EAC */
1402 			/* reuse GL_COMPRESSED_SIGNED_R11_EAC */
1403 			/* reuse GL_COMPRESSED_RG11_EAC */
1404 			/* reuse GL_COMPRESSED_SIGNED_RG11_EAC */
1405 			/* reuse GL_PRIMITIVE_RESTART_FIXED_INDEX */
1406 			/* reuse GL_ANY_SAMPLES_PASSED_CONSERVATIVE */
1407 			/* reuse GL_MAX_ELEMENT_INDEX */
1408 		
1409 		/* Reuse tokens from ARB_clear_buffer_object (none) */
1410 		
1411 		/* Reuse tokens from ARB_compute_shader */
1412 		
1413 			/* reuse GL_COMPUTE_SHADER */
1414 			/* reuse GL_MAX_COMPUTE_UNIFORM_BLOCKS */
1415 			/* reuse GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS */
1416 			/* reuse GL_MAX_COMPUTE_IMAGE_UNIFORMS */
1417 			/* reuse GL_MAX_COMPUTE_SHARED_MEMORY_SIZE */
1418 			/* reuse GL_MAX_COMPUTE_UNIFORM_COMPONENTS */
1419 			/* reuse GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS */
1420 			/* reuse GL_MAX_COMPUTE_ATOMIC_COUNTERS */
1421 			/* reuse GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS */
1422 			/* reuse GL_MAX_COMPUTE_LOCAL_INVOCATIONS */
1423 			/* reuse GL_MAX_COMPUTE_WORK_GROUP_COUNT */
1424 			/* reuse GL_MAX_COMPUTE_WORK_GROUP_SIZE */
1425 			/* reuse GL_COMPUTE_LOCAL_WORK_SIZE */
1426 			/* reuse GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER */
1427 			/* reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER */
1428 			/* reuse GL_DISPATCH_INDIRECT_BUFFER */
1429 			/* reuse GL_DISPATCH_INDIRECT_BUFFER_BINDING */
1430 		
1431 		/* Reuse tokens from ARB_copy_image (none) */
1432 		
1433 		/* Reuse tokens from KHR_debug */
1434 		
1435 			/* reuse GL_DEBUG_OUTPUT_SYNCHRONOUS */
1436 			/* reuse GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH */
1437 			/* reuse GL_DEBUG_CALLBACK_FUNCTION */
1438 			/* reuse GL_DEBUG_CALLBACK_USER_PARAM */
1439 			/* reuse GL_DEBUG_SOURCE_API */
1440 			/* reuse GL_DEBUG_SOURCE_WINDOW_SYSTEM */
1441 			/* reuse GL_DEBUG_SOURCE_SHADER_COMPILER */
1442 			/* reuse GL_DEBUG_SOURCE_THIRD_PARTY */
1443 			/* reuse GL_DEBUG_SOURCE_APPLICATION */
1444 			/* reuse GL_DEBUG_SOURCE_OTHER */
1445 			/* reuse GL_DEBUG_TYPE_ERROR */
1446 			/* reuse GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR */
1447 			/* reuse GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR */
1448 			/* reuse GL_DEBUG_TYPE_PORTABILITY */
1449 			/* reuse GL_DEBUG_TYPE_PERFORMANCE */
1450 			/* reuse GL_DEBUG_TYPE_OTHER */
1451 			/* reuse GL_MAX_DEBUG_MESSAGE_LENGTH */
1452 			/* reuse GL_MAX_DEBUG_LOGGED_MESSAGES */
1453 			/* reuse GL_DEBUG_LOGGED_MESSAGES */
1454 			/* reuse GL_DEBUG_SEVERITY_HIGH */
1455 			/* reuse GL_DEBUG_SEVERITY_MEDIUM */
1456 			/* reuse GL_DEBUG_SEVERITY_LOW */
1457 			/* reuse GL_DEBUG_TYPE_MARKER */
1458 			/* reuse GL_DEBUG_TYPE_PUSH_GROUP */
1459 			/* reuse GL_DEBUG_TYPE_POP_GROUP */
1460 			/* reuse GL_DEBUG_SEVERITY_NOTIFICATION */
1461 			/* reuse GL_MAX_DEBUG_GROUP_STACK_DEPTH */
1462 			/* reuse GL_DEBUG_GROUP_STACK_DEPTH */
1463 			/* reuse GL_BUFFER */
1464 			/* reuse GL_SHADER */
1465 			/* reuse GL_PROGRAM */
1466 			/* reuse GL_QUERY */
1467 			/* reuse GL_PROGRAM_PIPELINE */
1468 			/* reuse GL_SAMPLER */
1469 			/* reuse GL_DISPLAY_LIST */
1470 			/* reuse GL_MAX_LABEL_LENGTH */
1471 			/* reuse GL_DEBUG_OUTPUT */
1472 			/* reuse GL_CONTEXT_FLAG_DEBUG_BIT */
1473 			/* reuse GL_STACK_UNDERFLOW */
1474 			/* reuse GL_STACK_OVERFLOW */
1475 		
1476 		/* Reuse tokens from ARB_explicit_uniform_location */
1477 		
1478 			/* reuse GL_MAX_UNIFORM_LOCATIONS */
1479 		
1480 		/* Reuse tokens from ARB_framebuffer_no_attachments */
1481 		
1482 			/* reuse GL_FRAMEBUFFER_DEFAULT_WIDTH */
1483 			/* reuse GL_FRAMEBUFFER_DEFAULT_HEIGHT */
1484 			/* reuse GL_FRAMEBUFFER_DEFAULT_LAYERS */
1485 			/* reuse GL_FRAMEBUFFER_DEFAULT_SAMPLES */
1486 			/* reuse GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS */
1487 			/* reuse GL_MAX_FRAMEBUFFER_WIDTH */
1488 			/* reuse GL_MAX_FRAMEBUFFER_HEIGHT */
1489 			/* reuse GL_MAX_FRAMEBUFFER_LAYERS */
1490 			/* reuse GL_MAX_FRAMEBUFFER_SAMPLES */
1491 		
1492 		/* Reuse tokens from ARB_internalformat_query2 */
1493 		
1494 			/* reuse GL_INTERNALFORMAT_SUPPORTED */
1495 			/* reuse GL_INTERNALFORMAT_PREFERRED */
1496 			/* reuse GL_INTERNALFORMAT_RED_SIZE */
1497 			/* reuse GL_INTERNALFORMAT_GREEN_SIZE */
1498 			/* reuse GL_INTERNALFORMAT_BLUE_SIZE */
1499 			/* reuse GL_INTERNALFORMAT_ALPHA_SIZE */
1500 			/* reuse GL_INTERNALFORMAT_DEPTH_SIZE */
1501 			/* reuse GL_INTERNALFORMAT_STENCIL_SIZE */
1502 			/* reuse GL_INTERNALFORMAT_SHARED_SIZE */
1503 			/* reuse GL_INTERNALFORMAT_RED_TYPE */
1504 			/* reuse GL_INTERNALFORMAT_GREEN_TYPE */
1505 			/* reuse GL_INTERNALFORMAT_BLUE_TYPE */
1506 			/* reuse GL_INTERNALFORMAT_ALPHA_TYPE */
1507 			/* reuse GL_INTERNALFORMAT_DEPTH_TYPE */
1508 			/* reuse GL_INTERNALFORMAT_STENCIL_TYPE */
1509 			/* reuse GL_MAX_WIDTH */
1510 			/* reuse GL_MAX_HEIGHT */
1511 			/* reuse GL_MAX_DEPTH */
1512 			/* reuse GL_MAX_LAYERS */
1513 			/* reuse GL_MAX_COMBINED_DIMENSIONS */
1514 			/* reuse GL_COLOR_COMPONENTS */
1515 			/* reuse GL_DEPTH_COMPONENTS */
1516 			/* reuse GL_STENCIL_COMPONENTS */
1517 			/* reuse GL_COLOR_RENDERABLE */
1518 			/* reuse GL_DEPTH_RENDERABLE */
1519 			/* reuse GL_STENCIL_RENDERABLE */
1520 			/* reuse GL_FRAMEBUFFER_RENDERABLE */
1521 			/* reuse GL_FRAMEBUFFER_RENDERABLE_LAYERED */
1522 			/* reuse GL_FRAMEBUFFER_BLEND */
1523 			/* reuse GL_READ_PIXELS */
1524 			/* reuse GL_READ_PIXELS_FORMAT */
1525 			/* reuse GL_READ_PIXELS_TYPE */
1526 			/* reuse GL_TEXTURE_IMAGE_FORMAT */
1527 			/* reuse GL_TEXTURE_IMAGE_TYPE */
1528 			/* reuse GL_GET_TEXTURE_IMAGE_FORMAT */
1529 			/* reuse GL_GET_TEXTURE_IMAGE_TYPE */
1530 			/* reuse GL_MIPMAP */
1531 			/* reuse GL_MANUAL_GENERATE_MIPMAP */
1532 			/* reuse GL_AUTO_GENERATE_MIPMAP */
1533 			/* reuse GL_COLOR_ENCODING */
1534 			/* reuse GL_SRGB_READ */
1535 			/* reuse GL_SRGB_WRITE */
1536 			/* reuse GL_FILTER */
1537 			/* reuse GL_VERTEX_TEXTURE */
1538 			/* reuse GL_TESS_CONTROL_TEXTURE */
1539 			/* reuse GL_TESS_EVALUATION_TEXTURE */
1540 			/* reuse GL_GEOMETRY_TEXTURE */
1541 			/* reuse GL_FRAGMENT_TEXTURE */
1542 			/* reuse GL_COMPUTE_TEXTURE */
1543 			/* reuse GL_TEXTURE_SHADOW */
1544 			/* reuse GL_TEXTURE_GATHER */
1545 			/* reuse GL_TEXTURE_GATHER_SHADOW */
1546 			/* reuse GL_SHADER_IMAGE_LOAD */
1547 			/* reuse GL_SHADER_IMAGE_STORE */
1548 			/* reuse GL_SHADER_IMAGE_ATOMIC */
1549 			/* reuse GL_IMAGE_TEXEL_SIZE */
1550 			/* reuse GL_IMAGE_COMPATIBILITY_CLASS */
1551 			/* reuse GL_IMAGE_PIXEL_FORMAT */
1552 			/* reuse GL_IMAGE_PIXEL_TYPE */
1553 			/* reuse GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST */
1554 			/* reuse GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST */
1555 			/* reuse GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE */
1556 			/* reuse GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE */
1557 			/* reuse GL_TEXTURE_COMPRESSED_BLOCK_WIDTH */
1558 			/* reuse GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT */
1559 			/* reuse GL_TEXTURE_COMPRESSED_BLOCK_SIZE */
1560 			/* reuse GL_CLEAR_BUFFER */
1561 			/* reuse GL_TEXTURE_VIEW */
1562 			/* reuse GL_VIEW_COMPATIBILITY_CLASS */
1563 			/* reuse GL_FULL_SUPPORT */
1564 			/* reuse GL_CAVEAT_SUPPORT */
1565 			/* reuse GL_IMAGE_CLASS_4_X_32 */
1566 			/* reuse GL_IMAGE_CLASS_2_X_32 */
1567 			/* reuse GL_IMAGE_CLASS_1_X_32 */
1568 			/* reuse GL_IMAGE_CLASS_4_X_16 */
1569 			/* reuse GL_IMAGE_CLASS_2_X_16 */
1570 			/* reuse GL_IMAGE_CLASS_1_X_16 */
1571 			/* reuse GL_IMAGE_CLASS_4_X_8 */
1572 			/* reuse GL_IMAGE_CLASS_2_X_8 */
1573 			/* reuse GL_IMAGE_CLASS_1_X_8 */
1574 			/* reuse GL_IMAGE_CLASS_11_11_10 */
1575 			/* reuse GL_IMAGE_CLASS_10_10_10_2 */
1576 			/* reuse GL_VIEW_CLASS_128_BITS */
1577 			/* reuse GL_VIEW_CLASS_96_BITS */
1578 			/* reuse GL_VIEW_CLASS_64_BITS */
1579 			/* reuse GL_VIEW_CLASS_48_BITS */
1580 			/* reuse GL_VIEW_CLASS_32_BITS */
1581 			/* reuse GL_VIEW_CLASS_24_BITS */
1582 			/* reuse GL_VIEW_CLASS_16_BITS */
1583 			/* reuse GL_VIEW_CLASS_8_BITS */
1584 			/* reuse GL_VIEW_CLASS_S3TC_DXT1_RGB */
1585 			/* reuse GL_VIEW_CLASS_S3TC_DXT1_RGBA */
1586 			/* reuse GL_VIEW_CLASS_S3TC_DXT3_RGBA */
1587 			/* reuse GL_VIEW_CLASS_S3TC_DXT5_RGBA */
1588 			/* reuse GL_VIEW_CLASS_RGTC1_RED */
1589 			/* reuse GL_VIEW_CLASS_RGTC2_RG */
1590 			/* reuse GL_VIEW_CLASS_BPTC_UNORM */
1591 			/* reuse GL_VIEW_CLASS_BPTC_FLOAT */
1592 		
1593 		/* Reuse tokens from ARB_invalidate_subdata (none) */
1594 		
1595 		/* Reuse tokens from ARB_multi_draw_indirect (none) */
1596 		
1597 		/* Reuse tokens from ARB_program_interface_query */
1598 		
1599 			/* reuse GL_UNIFORM */
1600 			/* reuse GL_UNIFORM_BLOCK */
1601 			/* reuse GL_PROGRAM_INPUT */
1602 			/* reuse GL_PROGRAM_OUTPUT */
1603 			/* reuse GL_BUFFER_VARIABLE */
1604 			/* reuse GL_SHADER_STORAGE_BLOCK */
1605 			/* reuse GL_VERTEX_SUBROUTINE */
1606 			/* reuse GL_TESS_CONTROL_SUBROUTINE */
1607 			/* reuse GL_TESS_EVALUATION_SUBROUTINE */
1608 			/* reuse GL_GEOMETRY_SUBROUTINE */
1609 			/* reuse GL_FRAGMENT_SUBROUTINE */
1610 			/* reuse GL_COMPUTE_SUBROUTINE */
1611 			/* reuse GL_VERTEX_SUBROUTINE_UNIFORM */
1612 			/* reuse GL_TESS_CONTROL_SUBROUTINE_UNIFORM */
1613 			/* reuse GL_TESS_EVALUATION_SUBROUTINE_UNIFORM */
1614 			/* reuse GL_GEOMETRY_SUBROUTINE_UNIFORM */
1615 			/* reuse GL_FRAGMENT_SUBROUTINE_UNIFORM */
1616 			/* reuse GL_COMPUTE_SUBROUTINE_UNIFORM */
1617 			/* reuse GL_TRANSFORM_FEEDBACK_VARYING */
1618 			/* reuse GL_ACTIVE_RESOURCES */
1619 			/* reuse GL_MAX_NAME_LENGTH */
1620 			/* reuse GL_MAX_NUM_ACTIVE_VARIABLES */
1621 			/* reuse GL_MAX_NUM_COMPATIBLE_SUBROUTINES */
1622 			/* reuse GL_NAME_LENGTH */
1623 			/* reuse GL_TYPE */
1624 			/* reuse GL_ARRAY_SIZE */
1625 			/* reuse GL_OFFSET */
1626 			/* reuse GL_BLOCK_INDEX */
1627 			/* reuse GL_ARRAY_STRIDE */
1628 			/* reuse GL_MATRIX_STRIDE */
1629 			/* reuse GL_IS_ROW_MAJOR */
1630 			/* reuse GL_ATOMIC_COUNTER_BUFFER_INDEX */
1631 			/* reuse GL_BUFFER_BINDING */
1632 			/* reuse GL_BUFFER_DATA_SIZE */
1633 			/* reuse GL_NUM_ACTIVE_VARIABLES */
1634 			/* reuse GL_ACTIVE_VARIABLES */
1635 			/* reuse GL_REFERENCED_BY_VERTEX_SHADER */
1636 			/* reuse GL_REFERENCED_BY_TESS_CONTROL_SHADER */
1637 			/* reuse GL_REFERENCED_BY_TESS_EVALUATION_SHADER */
1638 			/* reuse GL_REFERENCED_BY_GEOMETRY_SHADER */
1639 			/* reuse GL_REFERENCED_BY_FRAGMENT_SHADER */
1640 			/* reuse GL_REFERENCED_BY_COMPUTE_SHADER */
1641 			/* reuse GL_TOP_LEVEL_ARRAY_SIZE */
1642 			/* reuse GL_TOP_LEVEL_ARRAY_STRIDE */
1643 			/* reuse GL_LOCATION */
1644 			/* reuse GL_LOCATION_INDEX */
1645 			/* reuse GL_IS_PER_PATCH */
1646 		
1647 		/* Reuse tokens from ARB_robust_buffer_access_behavior (none) */
1648 		
1649 		/* Reuse tokens from ARB_shader_storage_buffer_object */
1650 		
1651 			/* reuse GL_SHADER_STORAGE_BUFFER */
1652 			/* reuse GL_SHADER_STORAGE_BUFFER_BINDING */
1653 			/* reuse GL_SHADER_STORAGE_BUFFER_START */
1654 			/* reuse GL_SHADER_STORAGE_BUFFER_SIZE */
1655 			/* reuse GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS */
1656 			/* reuse GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS */
1657 			/* reuse GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS */
1658 			/* reuse GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS */
1659 			/* reuse GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS */
1660 			/* reuse GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS */
1661 			/* reuse GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS */
1662 			/* reuse GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS */
1663 			/* reuse GL_MAX_SHADER_STORAGE_BLOCK_SIZE */
1664 			/* reuse GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT */
1665 			/* reuse GL_SHADER_STORAGE_BARRIER_BIT */
1666 			/* reuse GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES */
1667 		
1668 		/* Reuse tokens from ARB_stencil_texturing */
1669 		
1670 			/* reuse GL_DEPTH_STENCIL_TEXTURE_MODE */
1671 		
1672 		/* Reuse tokens from ARB_texture_buffer_range */
1673 		
1674 			/* reuse GL_TEXTURE_BUFFER_OFFSET */
1675 			/* reuse GL_TEXTURE_BUFFER_SIZE */
1676 			/* reuse GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT */
1677 		
1678 		/* Reuse tokens from ARB_texture_query_levels (none) */
1679 		
1680 		/* Reuse tokens from ARB_texture_storage_multisample (none) */
1681 		
1682 		/* Reuse tokens from ARB_texture_view */
1683 		
1684 			/* reuse GL_TEXTURE_VIEW_MIN_LEVEL */
1685 			/* reuse GL_TEXTURE_VIEW_NUM_LEVELS */
1686 			/* reuse GL_TEXTURE_VIEW_MIN_LAYER */
1687 			/* reuse GL_TEXTURE_VIEW_NUM_LAYERS */
1688 			/* reuse GL_TEXTURE_IMMUTABLE_LEVELS */
1689 		
1690 		/* Reuse tokens from ARB_vertex_attrib_binding */
1691 		
1692 			/* reuse GL_VERTEX_ATTRIB_BINDING */
1693 			/* reuse GL_VERTEX_ATTRIB_RELATIVE_OFFSET */
1694 			/* reuse GL_VERTEX_BINDING_DIVISOR */
1695 			/* reuse GL_VERTEX_BINDING_OFFSET */
1696 			/* reuse GL_VERTEX_BINDING_STRIDE */
1697 			/* reuse GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET */
1698 			/* reuse GL_MAX_VERTEX_ATTRIB_BINDINGS */
1699 	}
1700 
1701 	enum // GL_ARB_imaging
1702 	{
1703 		GL_CONSTANT_COLOR                 = 0x8001,
1704 		GL_ONE_MINUS_CONSTANT_COLOR       = 0x8002,
1705 		GL_CONSTANT_ALPHA                 = 0x8003,
1706 		GL_ONE_MINUS_CONSTANT_ALPHA       = 0x8004,
1707 		GL_BLEND_COLOR                    = 0x8005,
1708 		GL_FUNC_ADD                       = 0x8006,
1709 		GL_MIN                            = 0x8007,
1710 		GL_MAX                            = 0x8008,
1711 		GL_BLEND_EQUATION                 = 0x8009,
1712 		GL_FUNC_SUBTRACT                  = 0x800A,
1713 		GL_FUNC_REVERSE_SUBTRACT          = 0x800B,
1714 	}
1715 
1716 	enum // GL_ARB_depth_buffer_float
1717 	{
1718 		GL_DEPTH_COMPONENT32F             = 0x8CAC,
1719 		GL_DEPTH32F_STENCIL8              = 0x8CAD,
1720 		GL_FLOAT_32_UNSIGNED_INT_24_8_REV = 0x8DAD,
1721 	}
1722 
1723 	enum // GL_ARB_framebuffer_object
1724 	{
1725 		GL_INVALID_FRAMEBUFFER_OPERATION  = 0x0506,
1726 		GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING = 0x8210,
1727 		GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE = 0x8211,
1728 		GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE = 0x8212,
1729 		GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE = 0x8213,
1730 		GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE = 0x8214,
1731 		GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE = 0x8215,
1732 		GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE = 0x8216,
1733 		GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE = 0x8217,
1734 		GL_FRAMEBUFFER_DEFAULT            = 0x8218,
1735 		GL_FRAMEBUFFER_UNDEFINED          = 0x8219,
1736 		GL_DEPTH_STENCIL_ATTACHMENT       = 0x821A,
1737 		GL_MAX_RENDERBUFFER_SIZE          = 0x84E8,
1738 		GL_DEPTH_STENCIL                  = 0x84F9,
1739 		GL_UNSIGNED_INT_24_8              = 0x84FA,
1740 		GL_DEPTH24_STENCIL8               = 0x88F0,
1741 		GL_TEXTURE_STENCIL_SIZE           = 0x88F1,
1742 		GL_TEXTURE_RED_TYPE               = 0x8C10,
1743 		GL_TEXTURE_GREEN_TYPE             = 0x8C11,
1744 		GL_TEXTURE_BLUE_TYPE              = 0x8C12,
1745 		GL_TEXTURE_ALPHA_TYPE             = 0x8C13,
1746 		GL_TEXTURE_DEPTH_TYPE             = 0x8C16,
1747 		GL_UNSIGNED_NORMALIZED            = 0x8C17,
1748 		GL_FRAMEBUFFER_BINDING            = 0x8CA6,
1749 		GL_DRAW_FRAMEBUFFER_BINDING       = GL_FRAMEBUFFER_BINDING,
1750 		GL_RENDERBUFFER_BINDING           = 0x8CA7,
1751 		GL_READ_FRAMEBUFFER               = 0x8CA8,
1752 		GL_DRAW_FRAMEBUFFER               = 0x8CA9,
1753 		GL_READ_FRAMEBUFFER_BINDING       = 0x8CAA,
1754 		GL_RENDERBUFFER_SAMPLES           = 0x8CAB,
1755 		GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 0x8CD0,
1756 		GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 0x8CD1,
1757 		GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 0x8CD2,
1758 		GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 0x8CD3,
1759 		GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER = 0x8CD4,
1760 		GL_FRAMEBUFFER_COMPLETE           = 0x8CD5,
1761 		GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 0x8CD6,
1762 		GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 0x8CD7,
1763 		GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER = 0x8CDB,
1764 		GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER = 0x8CDC,
1765 		GL_FRAMEBUFFER_UNSUPPORTED        = 0x8CDD,
1766 		GL_MAX_COLOR_ATTACHMENTS          = 0x8CDF,
1767 		GL_COLOR_ATTACHMENT0              = 0x8CE0,
1768 		GL_COLOR_ATTACHMENT1              = 0x8CE1,
1769 		GL_COLOR_ATTACHMENT2              = 0x8CE2,
1770 		GL_COLOR_ATTACHMENT3              = 0x8CE3,
1771 		GL_COLOR_ATTACHMENT4              = 0x8CE4,
1772 		GL_COLOR_ATTACHMENT5              = 0x8CE5,
1773 		GL_COLOR_ATTACHMENT6              = 0x8CE6,
1774 		GL_COLOR_ATTACHMENT7              = 0x8CE7,
1775 		GL_COLOR_ATTACHMENT8              = 0x8CE8,
1776 		GL_COLOR_ATTACHMENT9              = 0x8CE9,
1777 		GL_COLOR_ATTACHMENT10             = 0x8CEA,
1778 		GL_COLOR_ATTACHMENT11             = 0x8CEB,
1779 		GL_COLOR_ATTACHMENT12             = 0x8CEC,
1780 		GL_COLOR_ATTACHMENT13             = 0x8CED,
1781 		GL_COLOR_ATTACHMENT14             = 0x8CEE,
1782 		GL_COLOR_ATTACHMENT15             = 0x8CEF,
1783 		GL_DEPTH_ATTACHMENT               = 0x8D00,
1784 		GL_STENCIL_ATTACHMENT             = 0x8D20,
1785 		GL_FRAMEBUFFER                    = 0x8D40,
1786 		GL_RENDERBUFFER                   = 0x8D41,
1787 		GL_RENDERBUFFER_WIDTH             = 0x8D42,
1788 		GL_RENDERBUFFER_HEIGHT            = 0x8D43,
1789 		GL_RENDERBUFFER_INTERNAL_FORMAT   = 0x8D44,
1790 		GL_STENCIL_INDEX1                 = 0x8D46,
1791 		GL_STENCIL_INDEX4                 = 0x8D47,
1792 		GL_STENCIL_INDEX8                 = 0x8D48,
1793 		GL_STENCIL_INDEX16                = 0x8D49,
1794 		GL_RENDERBUFFER_RED_SIZE          = 0x8D50,
1795 		GL_RENDERBUFFER_GREEN_SIZE        = 0x8D51,
1796 		GL_RENDERBUFFER_BLUE_SIZE         = 0x8D52,
1797 		GL_RENDERBUFFER_ALPHA_SIZE        = 0x8D53,
1798 		GL_RENDERBUFFER_DEPTH_SIZE        = 0x8D54,
1799 		GL_RENDERBUFFER_STENCIL_SIZE      = 0x8D55,
1800 		GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE = 0x8D56,
1801 		GL_MAX_SAMPLES                    = 0x8D57,
1802 	}
1803 
1804 	enum // GL_ARB_framebuffer_sRGB
1805 	{
1806 		GL_FRAMEBUFFER_SRGB               = 0x8DB9,
1807 	}
1808 
1809 	enum // GL_ARB_half_float_vertex
1810 	{
1811 		GL_HALF_FLOAT                     = 0x140B,
1812 	}
1813 
1814 	enum // GL_ARB_map_buffer_range
1815 	{
1816 		GL_MAP_READ_BIT                   = 0x0001,
1817 		GL_MAP_WRITE_BIT                  = 0x0002,
1818 		GL_MAP_INVALIDATE_RANGE_BIT       = 0x0004,
1819 		GL_MAP_INVALIDATE_BUFFER_BIT      = 0x0008,
1820 		GL_MAP_FLUSH_EXPLICIT_BIT         = 0x0010,
1821 		GL_MAP_UNSYNCHRONIZED_BIT         = 0x0020,
1822 	}
1823 
1824 	enum // GL_ARB_texture_compression_rgtc
1825 	{
1826 		GL_COMPRESSED_RED_RGTC1           = 0x8DBB,
1827 		GL_COMPRESSED_SIGNED_RED_RGTC1    = 0x8DBC,
1828 		GL_COMPRESSED_RG_RGTC2            = 0x8DBD,
1829 		GL_COMPRESSED_SIGNED_RG_RGTC2     = 0x8DBE,
1830 	}
1831 
1832 	enum // GL_ARB_texture_rg
1833 	{
1834 		GL_RG                             = 0x8227,
1835 		GL_RG_INTEGER                     = 0x8228,
1836 		GL_R8                             = 0x8229,
1837 		GL_R16                            = 0x822A,
1838 		GL_RG8                            = 0x822B,
1839 		GL_RG16                           = 0x822C,
1840 		GL_R16F                           = 0x822D,
1841 		GL_R32F                           = 0x822E,
1842 		GL_RG16F                          = 0x822F,
1843 		GL_RG32F                          = 0x8230,
1844 		GL_R8I                            = 0x8231,
1845 		GL_R8UI                           = 0x8232,
1846 		GL_R16I                           = 0x8233,
1847 		GL_R16UI                          = 0x8234,
1848 		GL_R32I                           = 0x8235,
1849 		GL_R32UI                          = 0x8236,
1850 		GL_RG8I                           = 0x8237,
1851 		GL_RG8UI                          = 0x8238,
1852 		GL_RG16I                          = 0x8239,
1853 		GL_RG16UI                         = 0x823A,
1854 		GL_RG32I                          = 0x823B,
1855 		GL_RG32UI                         = 0x823C,
1856 	}
1857 
1858 	enum // GL_ARB_vertex_array_object
1859 	{
1860 		GL_VERTEX_ARRAY_BINDING           = 0x85B5,
1861 	}
1862 
1863 	enum // GL_ARB_uniform_buffer_object
1864 	{
1865 		GL_UNIFORM_BUFFER                 = 0x8A11,
1866 		GL_UNIFORM_BUFFER_BINDING         = 0x8A28,
1867 		GL_UNIFORM_BUFFER_START           = 0x8A29,
1868 		GL_UNIFORM_BUFFER_SIZE            = 0x8A2A,
1869 		GL_MAX_VERTEX_UNIFORM_BLOCKS      = 0x8A2B,
1870 		GL_MAX_GEOMETRY_UNIFORM_BLOCKS    = 0x8A2C,
1871 		GL_MAX_FRAGMENT_UNIFORM_BLOCKS    = 0x8A2D,
1872 		GL_MAX_COMBINED_UNIFORM_BLOCKS    = 0x8A2E,
1873 		GL_MAX_UNIFORM_BUFFER_BINDINGS    = 0x8A2F,
1874 		GL_MAX_UNIFORM_BLOCK_SIZE         = 0x8A30,
1875 		GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS = 0x8A31,
1876 		GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS = 0x8A32,
1877 		GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS = 0x8A33,
1878 		GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT = 0x8A34,
1879 		GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH = 0x8A35,
1880 		GL_ACTIVE_UNIFORM_BLOCKS          = 0x8A36,
1881 		GL_UNIFORM_TYPE                   = 0x8A37,
1882 		GL_UNIFORM_SIZE                   = 0x8A38,
1883 		GL_UNIFORM_NAME_LENGTH            = 0x8A39,
1884 		GL_UNIFORM_BLOCK_INDEX            = 0x8A3A,
1885 		GL_UNIFORM_OFFSET                 = 0x8A3B,
1886 		GL_UNIFORM_ARRAY_STRIDE           = 0x8A3C,
1887 		GL_UNIFORM_MATRIX_STRIDE          = 0x8A3D,
1888 		GL_UNIFORM_IS_ROW_MAJOR           = 0x8A3E,
1889 		GL_UNIFORM_BLOCK_BINDING          = 0x8A3F,
1890 		GL_UNIFORM_BLOCK_DATA_SIZE        = 0x8A40,
1891 		GL_UNIFORM_BLOCK_NAME_LENGTH      = 0x8A41,
1892 		GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS  = 0x8A42,
1893 		GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 0x8A43,
1894 		GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 0x8A44,
1895 		GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER = 0x8A45,
1896 		GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 0x8A46,
1897 		GL_INVALID_INDEX                  = 0xFFFFFFFFu,
1898 	}
1899 
1900 	enum // GL_ARB_copy_buffer
1901 	{
1902 		GL_COPY_READ_BUFFER_BINDING       = 0x8F36,
1903 		GL_COPY_READ_BUFFER               = GL_COPY_READ_BUFFER_BINDING,
1904 		GL_COPY_WRITE_BUFFER_BINDING      = 0x8F37,
1905 		GL_COPY_WRITE_BUFFER              = GL_COPY_WRITE_BUFFER_BINDING,
1906 	}
1907 
1908 	enum // GL_ARB_depth_clamp
1909 	{
1910 		GL_DEPTH_CLAMP                    = 0x864F,
1911 	}
1912 
1913 	version(none)
1914 	enum // GL_ARB_draw_elements_base_vertex
1915 	{
1916 	}
1917 
1918 	version(none)
1919 	enum // GL_ARB_fragment_coord_conventions
1920 	{
1921 	}
1922 
1923 	enum // GL_ARB_provoking_vertex
1924 	{
1925 		GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION = 0x8E4C,
1926 		GL_FIRST_VERTEX_CONVENTION        = 0x8E4D,
1927 		GL_LAST_VERTEX_CONVENTION         = 0x8E4E,
1928 		GL_PROVOKING_VERTEX               = 0x8E4F,
1929 	}
1930 
1931 	enum // GL_ARB_seamless_cube_map
1932 	{
1933 		GL_TEXTURE_CUBE_MAP_SEAMLESS      = 0x884F,
1934 	}
1935 
1936 	enum // GL_ARB_sync
1937 	{
1938 		GL_MAX_SERVER_WAIT_TIMEOUT        = 0x9111,
1939 		GL_OBJECT_TYPE                    = 0x9112,
1940 		GL_SYNC_CONDITION                 = 0x9113,
1941 		GL_SYNC_STATUS                    = 0x9114,
1942 		GL_SYNC_FLAGS                     = 0x9115,
1943 		GL_SYNC_FENCE                     = 0x9116,
1944 		GL_SYNC_GPU_COMMANDS_COMPLETE     = 0x9117,
1945 		GL_UNSIGNALED                     = 0x9118,
1946 		GL_SIGNALED                       = 0x9119,
1947 		GL_ALREADY_SIGNALED               = 0x911A,
1948 		GL_TIMEOUT_EXPIRED                = 0x911B,
1949 		GL_CONDITION_SATISFIED            = 0x911C,
1950 		GL_WAIT_FAILED                    = 0x911D,
1951 		GL_SYNC_FLUSH_COMMANDS_BIT        = 0x00000001,
1952 		GL_TIMEOUT_IGNORED                = 0xFFFFFFFFFFFFFFFFUL,
1953 	}
1954 
1955 	enum // GL_ARB_texture_multisample
1956 	{
1957 		GL_SAMPLE_POSITION                = 0x8E50,
1958 		GL_SAMPLE_MASK                    = 0x8E51,
1959 		GL_SAMPLE_MASK_VALUE              = 0x8E52,
1960 		GL_MAX_SAMPLE_MASK_WORDS          = 0x8E59,
1961 		GL_TEXTURE_2D_MULTISAMPLE         = 0x9100,
1962 		GL_PROXY_TEXTURE_2D_MULTISAMPLE   = 0x9101,
1963 		GL_TEXTURE_2D_MULTISAMPLE_ARRAY   = 0x9102,
1964 		GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9103,
1965 		GL_TEXTURE_BINDING_2D_MULTISAMPLE = 0x9104,
1966 		GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY = 0x9105,
1967 		GL_TEXTURE_SAMPLES                = 0x9106,
1968 		GL_TEXTURE_FIXED_SAMPLE_LOCATIONS = 0x9107,
1969 		GL_SAMPLER_2D_MULTISAMPLE         = 0x9108,
1970 		GL_INT_SAMPLER_2D_MULTISAMPLE     = 0x9109,
1971 		GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE = 0x910A,
1972 		GL_SAMPLER_2D_MULTISAMPLE_ARRAY   = 0x910B,
1973 		GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910C,
1974 		GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910D,
1975 		GL_MAX_COLOR_TEXTURE_SAMPLES      = 0x910E,
1976 		GL_MAX_DEPTH_TEXTURE_SAMPLES      = 0x910F,
1977 		GL_MAX_INTEGER_SAMPLES            = 0x9110,
1978 	}
1979 
1980 	version(none)
1981 	enum // GL_ARB_vertex_array_bgra
1982 	{
1983 			/* reuse GL_BGRA */
1984 	}
1985 
1986 	version(none)
1987 	enum // GL_ARB_draw_buffers_blend
1988 	{
1989 	}
1990 
1991 	enum // GL_ARB_sample_shading
1992 	{
1993 		GL_SAMPLE_SHADING_ARB             = 0x8C36,
1994 		GL_MIN_SAMPLE_SHADING_VALUE_ARB   = 0x8C37,
1995 	}
1996 
1997 	enum // GL_ARB_texture_cube_map_array
1998 	{
1999 		GL_TEXTURE_CUBE_MAP_ARRAY_ARB     = 0x9009,
2000 		GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB = 0x900A,
2001 		GL_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB = 0x900B,
2002 		GL_SAMPLER_CUBE_MAP_ARRAY_ARB     = 0x900C,
2003 		GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB = 0x900D,
2004 		GL_INT_SAMPLER_CUBE_MAP_ARRAY_ARB = 0x900E,
2005 		GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB = 0x900F,
2006 	}
2007 
2008 	enum // GL_ARB_texture_gather
2009 	{
2010 		GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB = 0x8E5E,
2011 		GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB = 0x8E5F,
2012 		GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS_ARB = 0x8F9F,
2013 	}
2014 
2015 	version(none)
2016 	enum // GL_ARB_texture_query_lod
2017 	{
2018 	}
2019 
2020 	enum // GL_ARB_shading_language_include
2021 	{
2022 		GL_SHADER_INCLUDE_ARB             = 0x8DAE,
2023 		GL_NAMED_STRING_LENGTH_ARB        = 0x8DE9,
2024 		GL_NAMED_STRING_TYPE_ARB          = 0x8DEA,
2025 	}
2026 
2027 	enum // GL_ARB_texture_compression_bptc
2028 	{
2029 		GL_COMPRESSED_RGBA_BPTC_UNORM_ARB = 0x8E8C,
2030 		GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB = 0x8E8D,
2031 		GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB = 0x8E8E,
2032 		GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB = 0x8E8F,
2033 	}
2034 
2035 	enum // GL_ARB_blend_func_extended
2036 	{
2037 		GL_SRC1_COLOR                     = 0x88F9,
2038 			/* reuse GL_SRC1_ALPHA */
2039 		GL_ONE_MINUS_SRC1_COLOR           = 0x88FA,
2040 		GL_ONE_MINUS_SRC1_ALPHA           = 0x88FB,
2041 		GL_MAX_DUAL_SOURCE_DRAW_BUFFERS   = 0x88FC,
2042 	}
2043 
2044 	version(none)
2045 	enum // GL_ARB_explicit_attrib_location
2046 	{
2047 	}
2048 
2049 	enum // GL_ARB_occlusion_query2
2050 	{
2051 		GL_ANY_SAMPLES_PASSED             = 0x8C2F,
2052 	}
2053 
2054 	enum // GL_ARB_sampler_objects
2055 	{
2056 		GL_SAMPLER_BINDING                = 0x8919,
2057 	}
2058 
2059 	version(none)
2060 	enum // GL_ARB_shader_bit_encoding
2061 	{
2062 	}
2063 
2064 	enum // GL_ARB_texture_rgb10_a2ui
2065 	{
2066 		GL_RGB10_A2UI                     = 0x906F,
2067 	}
2068 
2069 	enum // GL_ARB_texture_swizzle
2070 	{
2071 		GL_TEXTURE_SWIZZLE_R              = 0x8E42,
2072 		GL_TEXTURE_SWIZZLE_G              = 0x8E43,
2073 		GL_TEXTURE_SWIZZLE_B              = 0x8E44,
2074 		GL_TEXTURE_SWIZZLE_A              = 0x8E45,
2075 		GL_TEXTURE_SWIZZLE_RGBA           = 0x8E46,
2076 	}
2077 
2078 	enum // GL_ARB_timer_query
2079 	{
2080 		GL_TIME_ELAPSED                   = 0x88BF,
2081 		GL_TIMESTAMP                      = 0x8E28,
2082 	}
2083 
2084 	enum // GL_ARB_vertex_type_2_10_10_10_rev
2085 	{
2086 			/* reuse GL_UNSIGNED_INT_2_10_10_10_REV */
2087 			
2088 		GL_INT_2_10_10_10_REV             = 0x8D9F,
2089 	}
2090 
2091 	enum // GL_ARB_draw_indirect
2092 	{
2093 		GL_DRAW_INDIRECT_BUFFER           = 0x8F3F,
2094 		GL_DRAW_INDIRECT_BUFFER_BINDING   = 0x8F43,
2095 	}
2096 
2097 	enum // GL_ARB_gpu_shader5
2098 	{
2099 		GL_GEOMETRY_SHADER_INVOCATIONS    = 0x887F,
2100 		GL_MAX_GEOMETRY_SHADER_INVOCATIONS = 0x8E5A,
2101 		GL_MIN_FRAGMENT_INTERPOLATION_OFFSET = 0x8E5B,
2102 		GL_MAX_FRAGMENT_INTERPOLATION_OFFSET = 0x8E5C,
2103 		GL_FRAGMENT_INTERPOLATION_OFFSET_BITS = 0x8E5D,
2104 			/* reuse GL_MAX_VERTEX_STREAMS */
2105 	}
2106 
2107 	enum // GL_ARB_gpu_shader_fp64
2108 	{
2109 			/* reuse GL_DOUBLE */
2110 			
2111 		GL_DOUBLE_VEC2                    = 0x8FFC,
2112 		GL_DOUBLE_VEC3                    = 0x8FFD,
2113 		GL_DOUBLE_VEC4                    = 0x8FFE,
2114 		GL_DOUBLE_MAT2                    = 0x8F46,
2115 		GL_DOUBLE_MAT3                    = 0x8F47,
2116 		GL_DOUBLE_MAT4                    = 0x8F48,
2117 		GL_DOUBLE_MAT2x3                  = 0x8F49,
2118 		GL_DOUBLE_MAT2x4                  = 0x8F4A,
2119 		GL_DOUBLE_MAT3x2                  = 0x8F4B,
2120 		GL_DOUBLE_MAT3x4                  = 0x8F4C,
2121 		GL_DOUBLE_MAT4x2                  = 0x8F4D,
2122 		GL_DOUBLE_MAT4x3                  = 0x8F4E,
2123 	}
2124 
2125 	enum // GL_ARB_shader_subroutine
2126 	{
2127 		GL_ACTIVE_SUBROUTINES             = 0x8DE5,
2128 		GL_ACTIVE_SUBROUTINE_UNIFORMS     = 0x8DE6,
2129 		GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS = 0x8E47,
2130 		GL_ACTIVE_SUBROUTINE_MAX_LENGTH   = 0x8E48,
2131 		GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH = 0x8E49,
2132 		GL_MAX_SUBROUTINES                = 0x8DE7,
2133 		GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS = 0x8DE8,
2134 		GL_NUM_COMPATIBLE_SUBROUTINES     = 0x8E4A,
2135 		GL_COMPATIBLE_SUBROUTINES         = 0x8E4B,
2136 		
2137 			/* reuse GL_UNIFORM_SIZE */
2138 			/* reuse GL_UNIFORM_NAME_LENGTH */
2139 	}
2140 
2141 	enum // GL_ARB_tessellation_shader
2142 	{
2143 		GL_PATCHES                        = 0x000E,
2144 		GL_PATCH_VERTICES                 = 0x8E72,
2145 		GL_PATCH_DEFAULT_INNER_LEVEL      = 0x8E73,
2146 		GL_PATCH_DEFAULT_OUTER_LEVEL      = 0x8E74,
2147 		GL_TESS_CONTROL_OUTPUT_VERTICES   = 0x8E75,
2148 		GL_TESS_GEN_MODE                  = 0x8E76,
2149 		GL_TESS_GEN_SPACING               = 0x8E77,
2150 		GL_TESS_GEN_VERTEX_ORDER          = 0x8E78,
2151 		GL_TESS_GEN_POINT_MODE            = 0x8E79,
2152 		
2153 			/* reuse GL_TRIANGLES */
2154 			/* reuse GL_QUADS */
2155 			
2156 		GL_ISOLINES                       = 0x8E7A,
2157 		
2158 			/* reuse GL_EQUAL */
2159 			
2160 		GL_FRACTIONAL_ODD                 = 0x8E7B,
2161 		GL_FRACTIONAL_EVEN                = 0x8E7C,
2162 		
2163 			/* reuse GL_CCW */
2164 			/* reuse GL_CW */
2165 			
2166 		GL_MAX_PATCH_VERTICES             = 0x8E7D,
2167 		GL_MAX_TESS_GEN_LEVEL             = 0x8E7E,
2168 		GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS = 0x8E7F,
2169 		GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS = 0x8E80,
2170 		GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS = 0x8E81,
2171 		GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS = 0x8E82,
2172 		GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS = 0x8E83,
2173 		GL_MAX_TESS_PATCH_COMPONENTS      = 0x8E84,
2174 		GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS = 0x8E85,
2175 		GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS = 0x8E86,
2176 		GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS = 0x8E89,
2177 		GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS = 0x8E8A,
2178 		GL_MAX_TESS_CONTROL_INPUT_COMPONENTS = 0x886C,
2179 		GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS = 0x886D,
2180 		GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS = 0x8E1E,
2181 		GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS = 0x8E1F,
2182 		GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER = 0x84F0,
2183 		GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER = 0x84F1,
2184 		GL_TESS_EVALUATION_SHADER         = 0x8E87,
2185 		GL_TESS_CONTROL_SHADER            = 0x8E88,
2186 	}
2187 
2188 	version(none)
2189 	enum // GL_ARB_texture_buffer_object_rgb32
2190 	{
2191 			/* reuse GL_RGB32F */
2192 			/* reuse GL_RGB32UI */
2193 			/* reuse GL_RGB32I */
2194 	}
2195 
2196 	enum // GL_ARB_transform_feedback2
2197 	{
2198 		GL_TRANSFORM_FEEDBACK             = 0x8E22,
2199 		GL_TRANSFORM_FEEDBACK_PAUSED      = 0x8E23,
2200 		GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED = GL_TRANSFORM_FEEDBACK_PAUSED,
2201 		GL_TRANSFORM_FEEDBACK_ACTIVE      = 0x8E24,
2202 		GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE = GL_TRANSFORM_FEEDBACK_ACTIVE,
2203 		GL_TRANSFORM_FEEDBACK_BINDING     = 0x8E25,
2204 	}
2205 
2206 	enum // GL_ARB_transform_feedback3
2207 	{
2208 		GL_MAX_TRANSFORM_FEEDBACK_BUFFERS = 0x8E70,
2209 		GL_MAX_VERTEX_STREAMS             = 0x8E71,
2210 	}
2211 
2212 	enum // GL_ARB_ES2_compatibility
2213 	{
2214 		GL_FIXED                          = 0x140C,
2215 		GL_IMPLEMENTATION_COLOR_READ_TYPE = 0x8B9A,
2216 		GL_IMPLEMENTATION_COLOR_READ_FORMAT = 0x8B9B,
2217 		GL_LOW_FLOAT                      = 0x8DF0,
2218 		GL_MEDIUM_FLOAT                   = 0x8DF1,
2219 		GL_HIGH_FLOAT                     = 0x8DF2,
2220 		GL_LOW_INT                        = 0x8DF3,
2221 		GL_MEDIUM_INT                     = 0x8DF4,
2222 		GL_HIGH_INT                       = 0x8DF5,
2223 		GL_SHADER_COMPILER                = 0x8DFA,
2224 		GL_SHADER_BINARY_FORMATS          = 0x8DF8,
2225 		GL_NUM_SHADER_BINARY_FORMATS      = 0x8DF9,
2226 		GL_MAX_VERTEX_UNIFORM_VECTORS     = 0x8DFB,
2227 		GL_MAX_VARYING_VECTORS            = 0x8DFC,
2228 		GL_MAX_FRAGMENT_UNIFORM_VECTORS   = 0x8DFD,
2229 		GL_RGB565                         = 0x8D62,
2230 	}
2231 
2232 	enum // GL_ARB_get_program_binary
2233 	{
2234 		GL_PROGRAM_BINARY_RETRIEVABLE_HINT = 0x8257,
2235 		GL_PROGRAM_BINARY_LENGTH          = 0x8741,
2236 		GL_NUM_PROGRAM_BINARY_FORMATS     = 0x87FE,
2237 		GL_PROGRAM_BINARY_FORMATS         = 0x87FF,
2238 	}
2239 
2240 	enum // GL_ARB_separate_shader_objects
2241 	{
2242 		GL_VERTEX_SHADER_BIT              = 0x00000001,
2243 		GL_FRAGMENT_SHADER_BIT            = 0x00000002,
2244 		GL_GEOMETRY_SHADER_BIT            = 0x00000004,
2245 		GL_TESS_CONTROL_SHADER_BIT        = 0x00000008,
2246 		GL_TESS_EVALUATION_SHADER_BIT     = 0x00000010,
2247 		GL_ALL_SHADER_BITS                = 0xFFFFFFFF,
2248 		GL_PROGRAM_SEPARABLE              = 0x8258,
2249 		GL_ACTIVE_PROGRAM                 = 0x8259,
2250 		GL_PROGRAM_PIPELINE_BINDING       = 0x825A,
2251 	}
2252 
2253 	version(none)
2254 	enum // GL_ARB_shader_precision
2255 	{
2256 	}
2257 
2258 	version(none)
2259 	enum // GL_ARB_vertex_attrib_64bit
2260 	{
2261 			/* reuse GL_RGB32I */
2262 			/* reuse GL_DOUBLE_VEC2 */
2263 			/* reuse GL_DOUBLE_VEC3 */
2264 			/* reuse GL_DOUBLE_VEC4 */
2265 			/* reuse GL_DOUBLE_MAT2 */
2266 			/* reuse GL_DOUBLE_MAT3 */
2267 			/* reuse GL_DOUBLE_MAT4 */
2268 			/* reuse GL_DOUBLE_MAT2x3 */
2269 			/* reuse GL_DOUBLE_MAT2x4 */
2270 			/* reuse GL_DOUBLE_MAT3x2 */
2271 			/* reuse GL_DOUBLE_MAT3x4 */
2272 			/* reuse GL_DOUBLE_MAT4x2 */
2273 			/* reuse GL_DOUBLE_MAT4x3 */
2274 	}
2275 
2276 	enum // GL_ARB_viewport_array
2277 	{
2278 			/* reuse GL_SCISSOR_BOX */
2279 			/* reuse GL_VIEWPORT */
2280 			/* reuse GL_DEPTH_RANGE */
2281 			/* reuse GL_SCISSOR_TEST */
2282 			
2283 		GL_MAX_VIEWPORTS                  = 0x825B,
2284 		GL_VIEWPORT_SUBPIXEL_BITS         = 0x825C,
2285 		GL_VIEWPORT_BOUNDS_RANGE          = 0x825D,
2286 		GL_LAYER_PROVOKING_VERTEX         = 0x825E,
2287 		GL_VIEWPORT_INDEX_PROVOKING_VERTEX = 0x825F,
2288 		GL_UNDEFINED_VERTEX               = 0x8260,
2289 		
2290 			/* reuse GL_FIRST_VERTEX_CONVENTION */
2291 			/* reuse GL_LAST_VERTEX_CONVENTION */
2292 			/* reuse GL_PROVOKING_VERTEX */
2293 	}
2294 
2295 	enum // GL_ARB_cl_event
2296 	{
2297 		GL_SYNC_CL_EVENT_ARB              = 0x8240,
2298 		GL_SYNC_CL_EVENT_COMPLETE_ARB     = 0x8241,
2299 	}
2300 
2301 	enum // GL_ARB_debug_output
2302 	{
2303 		GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB   = 0x8242,
2304 		GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB = 0x8243,
2305 		GL_DEBUG_CALLBACK_FUNCTION_ARB    = 0x8244,
2306 		GL_DEBUG_CALLBACK_USER_PARAM_ARB  = 0x8245,
2307 		GL_DEBUG_SOURCE_API_ARB           = 0x8246,
2308 		GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB = 0x8247,
2309 		GL_DEBUG_SOURCE_SHADER_COMPILER_ARB = 0x8248,
2310 		GL_DEBUG_SOURCE_THIRD_PARTY_ARB   = 0x8249,
2311 		GL_DEBUG_SOURCE_APPLICATION_ARB   = 0x824A,
2312 		GL_DEBUG_SOURCE_OTHER_ARB         = 0x824B,
2313 		GL_DEBUG_TYPE_ERROR_ARB           = 0x824C,
2314 		GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB = 0x824D,
2315 		GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB = 0x824E,
2316 		GL_DEBUG_TYPE_PORTABILITY_ARB     = 0x824F,
2317 		GL_DEBUG_TYPE_PERFORMANCE_ARB     = 0x8250,
2318 		GL_DEBUG_TYPE_OTHER_ARB           = 0x8251,
2319 		GL_MAX_DEBUG_MESSAGE_LENGTH_ARB   = 0x9143,
2320 		GL_MAX_DEBUG_LOGGED_MESSAGES_ARB  = 0x9144,
2321 		GL_DEBUG_LOGGED_MESSAGES_ARB      = 0x9145,
2322 		GL_DEBUG_SEVERITY_HIGH_ARB        = 0x9146,
2323 		GL_DEBUG_SEVERITY_MEDIUM_ARB      = 0x9147,
2324 		GL_DEBUG_SEVERITY_LOW_ARB         = 0x9148,
2325 	}
2326 
2327 	enum // GL_ARB_robustness
2328 	{
2329 			/* reuse GL_NO_ERROR */
2330 			
2331 		GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB = 0x00000004,
2332 		GL_LOSE_CONTEXT_ON_RESET_ARB      = 0x8252,
2333 		GL_GUILTY_CONTEXT_RESET_ARB       = 0x8253,
2334 		GL_INNOCENT_CONTEXT_RESET_ARB     = 0x8254,
2335 		GL_UNKNOWN_CONTEXT_RESET_ARB      = 0x8255,
2336 		GL_RESET_NOTIFICATION_STRATEGY_ARB = 0x8256,
2337 		GL_NO_RESET_NOTIFICATION_ARB      = 0x8261,
2338 	}
2339 
2340 	version(none)
2341 	enum // GL_ARB_shader_stencil_export
2342 	{
2343 	}
2344 
2345 	version(none)
2346 	enum // GL_ARB_base_instance
2347 	{
2348 	}
2349 
2350 	version(none)
2351 	enum // GL_ARB_shading_language_420pack
2352 	{
2353 	}
2354 
2355 	version(none)
2356 	enum // GL_ARB_transform_feedback_instanced
2357 	{
2358 	}
2359 
2360 	enum // GL_ARB_compressed_texture_pixel_storage
2361 	{
2362 		GL_UNPACK_COMPRESSED_BLOCK_WIDTH  = 0x9127,
2363 		GL_UNPACK_COMPRESSED_BLOCK_HEIGHT = 0x9128,
2364 		GL_UNPACK_COMPRESSED_BLOCK_DEPTH  = 0x9129,
2365 		GL_UNPACK_COMPRESSED_BLOCK_SIZE   = 0x912A,
2366 		GL_PACK_COMPRESSED_BLOCK_WIDTH    = 0x912B,
2367 		GL_PACK_COMPRESSED_BLOCK_HEIGHT   = 0x912C,
2368 		GL_PACK_COMPRESSED_BLOCK_DEPTH    = 0x912D,
2369 		GL_PACK_COMPRESSED_BLOCK_SIZE     = 0x912E,
2370 	}
2371 
2372 	version(none)
2373 	enum // GL_ARB_conservative_depth
2374 	{
2375 	}
2376 
2377 	enum // GL_ARB_internalformat_query
2378 	{
2379 		GL_NUM_SAMPLE_COUNTS              = 0x9380,
2380 	}
2381 
2382 	enum // GL_ARB_map_buffer_alignment
2383 	{
2384 		GL_MIN_MAP_BUFFER_ALIGNMENT       = 0x90BC,
2385 	}
2386 
2387 	enum // GL_ARB_shader_atomic_counters
2388 	{
2389 		GL_ATOMIC_COUNTER_BUFFER          = 0x92C0,
2390 		GL_ATOMIC_COUNTER_BUFFER_BINDING  = 0x92C1,
2391 		GL_ATOMIC_COUNTER_BUFFER_START    = 0x92C2,
2392 		GL_ATOMIC_COUNTER_BUFFER_SIZE     = 0x92C3,
2393 		GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE = 0x92C4,
2394 		GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS = 0x92C5,
2395 		GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES = 0x92C6,
2396 		GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER = 0x92C7,
2397 		GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER = 0x92C8,
2398 		GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER = 0x92C9,
2399 		GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER = 0x92CA,
2400 		GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER = 0x92CB,
2401 		GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS = 0x92CC,
2402 		GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS = 0x92CD,
2403 		GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS = 0x92CE,
2404 		GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS = 0x92CF,
2405 		GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS = 0x92D0,
2406 		GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS = 0x92D1,
2407 		GL_MAX_VERTEX_ATOMIC_COUNTERS     = 0x92D2,
2408 		GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS = 0x92D3,
2409 		GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS = 0x92D4,
2410 		GL_MAX_GEOMETRY_ATOMIC_COUNTERS   = 0x92D5,
2411 		GL_MAX_FRAGMENT_ATOMIC_COUNTERS   = 0x92D6,
2412 		GL_MAX_COMBINED_ATOMIC_COUNTERS   = 0x92D7,
2413 		GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE = 0x92D8,
2414 		GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS = 0x92DC,
2415 		GL_ACTIVE_ATOMIC_COUNTER_BUFFERS  = 0x92D9,
2416 		GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX = 0x92DA,
2417 		GL_UNSIGNED_INT_ATOMIC_COUNTER    = 0x92DB,
2418 	}
2419 
2420 	enum // GL_ARB_shader_image_load_store
2421 	{
2422 		GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT = 0x00000001,
2423 		GL_ELEMENT_ARRAY_BARRIER_BIT      = 0x00000002,
2424 		GL_UNIFORM_BARRIER_BIT            = 0x00000004,
2425 		GL_TEXTURE_FETCH_BARRIER_BIT      = 0x00000008,
2426 		GL_SHADER_IMAGE_ACCESS_BARRIER_BIT = 0x00000020,
2427 		GL_COMMAND_BARRIER_BIT            = 0x00000040,
2428 		GL_PIXEL_BUFFER_BARRIER_BIT       = 0x00000080,
2429 		GL_TEXTURE_UPDATE_BARRIER_BIT     = 0x00000100,
2430 		GL_BUFFER_UPDATE_BARRIER_BIT      = 0x00000200,
2431 		GL_FRAMEBUFFER_BARRIER_BIT        = 0x00000400,
2432 		GL_TRANSFORM_FEEDBACK_BARRIER_BIT = 0x00000800,
2433 		GL_ATOMIC_COUNTER_BARRIER_BIT     = 0x00001000,
2434 		GL_ALL_BARRIER_BITS               = 0xFFFFFFFF,
2435 		GL_MAX_IMAGE_UNITS                = 0x8F38,
2436 		GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS = 0x8F39,
2437 		GL_IMAGE_BINDING_NAME             = 0x8F3A,
2438 		GL_IMAGE_BINDING_LEVEL            = 0x8F3B,
2439 		GL_IMAGE_BINDING_LAYERED          = 0x8F3C,
2440 		GL_IMAGE_BINDING_LAYER            = 0x8F3D,
2441 		GL_IMAGE_BINDING_ACCESS           = 0x8F3E,
2442 		GL_IMAGE_1D                       = 0x904C,
2443 		GL_IMAGE_2D                       = 0x904D,
2444 		GL_IMAGE_3D                       = 0x904E,
2445 		GL_IMAGE_2D_RECT                  = 0x904F,
2446 		GL_IMAGE_CUBE                     = 0x9050,
2447 		GL_IMAGE_BUFFER                   = 0x9051,
2448 		GL_IMAGE_1D_ARRAY                 = 0x9052,
2449 		GL_IMAGE_2D_ARRAY                 = 0x9053,
2450 		GL_IMAGE_CUBE_MAP_ARRAY           = 0x9054,
2451 		GL_IMAGE_2D_MULTISAMPLE           = 0x9055,
2452 		GL_IMAGE_2D_MULTISAMPLE_ARRAY     = 0x9056,
2453 		GL_INT_IMAGE_1D                   = 0x9057,
2454 		GL_INT_IMAGE_2D                   = 0x9058,
2455 		GL_INT_IMAGE_3D                   = 0x9059,
2456 		GL_INT_IMAGE_2D_RECT              = 0x905A,
2457 		GL_INT_IMAGE_CUBE                 = 0x905B,
2458 		GL_INT_IMAGE_BUFFER               = 0x905C,
2459 		GL_INT_IMAGE_1D_ARRAY             = 0x905D,
2460 		GL_INT_IMAGE_2D_ARRAY             = 0x905E,
2461 		GL_INT_IMAGE_CUBE_MAP_ARRAY       = 0x905F,
2462 		GL_INT_IMAGE_2D_MULTISAMPLE       = 0x9060,
2463 		GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY = 0x9061,
2464 		GL_UNSIGNED_INT_IMAGE_1D          = 0x9062,
2465 		GL_UNSIGNED_INT_IMAGE_2D          = 0x9063,
2466 		GL_UNSIGNED_INT_IMAGE_3D          = 0x9064,
2467 		GL_UNSIGNED_INT_IMAGE_2D_RECT     = 0x9065,
2468 		GL_UNSIGNED_INT_IMAGE_CUBE        = 0x9066,
2469 		GL_UNSIGNED_INT_IMAGE_BUFFER      = 0x9067,
2470 		GL_UNSIGNED_INT_IMAGE_1D_ARRAY    = 0x9068,
2471 		GL_UNSIGNED_INT_IMAGE_2D_ARRAY    = 0x9069,
2472 		GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY = 0x906A,
2473 		GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE = 0x906B,
2474 		GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY = 0x906C,
2475 		GL_MAX_IMAGE_SAMPLES              = 0x906D,
2476 		GL_IMAGE_BINDING_FORMAT           = 0x906E,
2477 		GL_IMAGE_FORMAT_COMPATIBILITY_TYPE = 0x90C7,
2478 		GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE = 0x90C8,
2479 		GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS = 0x90C9,
2480 		GL_MAX_VERTEX_IMAGE_UNIFORMS      = 0x90CA,
2481 		GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS = 0x90CB,
2482 		GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS = 0x90CC,
2483 		GL_MAX_GEOMETRY_IMAGE_UNIFORMS    = 0x90CD,
2484 		GL_MAX_FRAGMENT_IMAGE_UNIFORMS    = 0x90CE,
2485 		GL_MAX_COMBINED_IMAGE_UNIFORMS    = 0x90CF,
2486 	}
2487 
2488 	version(none)
2489 	enum // GL_ARB_shading_language_packing
2490 	{
2491 	}
2492 
2493 	enum // GL_ARB_texture_storage
2494 	{
2495 		GL_TEXTURE_IMMUTABLE_FORMAT       = 0x912F,
2496 	}
2497 
2498 	enum // GL_KHR_texture_compression_astc_ldr
2499 	{
2500 		GL_COMPRESSED_RGBA_ASTC_4x4_KHR   = 0x93B0,
2501 		GL_COMPRESSED_RGBA_ASTC_5x4_KHR   = 0x93B1,
2502 		GL_COMPRESSED_RGBA_ASTC_5x5_KHR   = 0x93B2,
2503 		GL_COMPRESSED_RGBA_ASTC_6x5_KHR   = 0x93B3,
2504 		GL_COMPRESSED_RGBA_ASTC_6x6_KHR   = 0x93B4,
2505 		GL_COMPRESSED_RGBA_ASTC_8x5_KHR   = 0x93B5,
2506 		GL_COMPRESSED_RGBA_ASTC_8x6_KHR   = 0x93B6,
2507 		GL_COMPRESSED_RGBA_ASTC_8x8_KHR   = 0x93B7,
2508 		GL_COMPRESSED_RGBA_ASTC_10x5_KHR  = 0x93B8,
2509 		GL_COMPRESSED_RGBA_ASTC_10x6_KHR  = 0x93B9,
2510 		GL_COMPRESSED_RGBA_ASTC_10x8_KHR  = 0x93BA,
2511 		GL_COMPRESSED_RGBA_ASTC_10x10_KHR = 0x93BB,
2512 		GL_COMPRESSED_RGBA_ASTC_12x10_KHR = 0x93BC,
2513 		GL_COMPRESSED_RGBA_ASTC_12x12_KHR = 0x93BD,
2514 		GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR = 0x93D0,
2515 		GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR = 0x93D1,
2516 		GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR = 0x93D2,
2517 		GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR = 0x93D3,
2518 		GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR = 0x93D4,
2519 		GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR = 0x93D5,
2520 		GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR = 0x93D6,
2521 		GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR = 0x93D7,
2522 		GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR = 0x93D8,
2523 		GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR = 0x93D9,
2524 		GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR = 0x93DA,
2525 		GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR = 0x93DB,
2526 		GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR = 0x93DC,
2527 		GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR = 0x93DD,
2528 	}
2529 
2530 	enum // GL_KHR_debug
2531 	{
2532 		GL_DEBUG_OUTPUT_SYNCHRONOUS       = 0x8242,
2533 		GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH = 0x8243,
2534 		GL_DEBUG_CALLBACK_FUNCTION        = 0x8244,
2535 		GL_DEBUG_CALLBACK_USER_PARAM      = 0x8245,
2536 		GL_DEBUG_SOURCE_API               = 0x8246,
2537 		GL_DEBUG_SOURCE_WINDOW_SYSTEM     = 0x8247,
2538 		GL_DEBUG_SOURCE_SHADER_COMPILER   = 0x8248,
2539 		GL_DEBUG_SOURCE_THIRD_PARTY       = 0x8249,
2540 		GL_DEBUG_SOURCE_APPLICATION       = 0x824A,
2541 		GL_DEBUG_SOURCE_OTHER             = 0x824B,
2542 		GL_DEBUG_TYPE_ERROR               = 0x824C,
2543 		GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR = 0x824D,
2544 		GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR  = 0x824E,
2545 		GL_DEBUG_TYPE_PORTABILITY         = 0x824F,
2546 		GL_DEBUG_TYPE_PERFORMANCE         = 0x8250,
2547 		GL_DEBUG_TYPE_OTHER               = 0x8251,
2548 		GL_DEBUG_TYPE_MARKER              = 0x8268,
2549 		GL_DEBUG_TYPE_PUSH_GROUP          = 0x8269,
2550 		GL_DEBUG_TYPE_POP_GROUP           = 0x826A,
2551 		GL_DEBUG_SEVERITY_NOTIFICATION    = 0x826B,
2552 		GL_MAX_DEBUG_GROUP_STACK_DEPTH    = 0x826C,
2553 		GL_DEBUG_GROUP_STACK_DEPTH        = 0x826D,
2554 		GL_BUFFER                         = 0x82E0,
2555 		GL_SHADER                         = 0x82E1,
2556 		GL_PROGRAM                        = 0x82E2,
2557 		GL_QUERY                          = 0x82E3,
2558 		GL_PROGRAM_PIPELINE               = 0x82E4,
2559 		GL_SAMPLER                        = 0x82E6,
2560 		GL_DISPLAY_LIST                   = 0x82E7,
2561 		
2562 		/* DISPLAY_LIST used in compatibility profile only */
2563 
2564 		GL_MAX_LABEL_LENGTH               = 0x82E8,
2565 		GL_MAX_DEBUG_MESSAGE_LENGTH       = 0x9143,
2566 		GL_MAX_DEBUG_LOGGED_MESSAGES      = 0x9144,
2567 		GL_DEBUG_LOGGED_MESSAGES          = 0x9145,
2568 		GL_DEBUG_SEVERITY_HIGH            = 0x9146,
2569 		GL_DEBUG_SEVERITY_MEDIUM          = 0x9147,
2570 		GL_DEBUG_SEVERITY_LOW             = 0x9148,
2571 		GL_DEBUG_OUTPUT                   = 0x92E0,
2572 		GL_CONTEXT_FLAG_DEBUG_BIT         = 0x00000002,
2573 		
2574 			/* reuse GL_STACK_UNDERFLOW */
2575 			/* reuse GL_STACK_OVERFLOW */
2576 	}
2577 
2578 	version(none)
2579 	enum // GL_ARB_arrays_of_arrays
2580 	{
2581 	}
2582 
2583 	version(none)
2584 	enum // GL_ARB_clear_buffer_object
2585 	{
2586 	}
2587 
2588 	enum // GL_ARB_compute_shader
2589 	{
2590 		GL_COMPUTE_SHADER                 = 0x91B9,
2591 		GL_MAX_COMPUTE_UNIFORM_BLOCKS     = 0x91BB,
2592 		GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS = 0x91BC,
2593 		GL_MAX_COMPUTE_IMAGE_UNIFORMS     = 0x91BD,
2594 		GL_MAX_COMPUTE_SHARED_MEMORY_SIZE = 0x8262,
2595 		GL_MAX_COMPUTE_UNIFORM_COMPONENTS = 0x8263,
2596 		GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS = 0x8264,
2597 		GL_MAX_COMPUTE_ATOMIC_COUNTERS    = 0x8265,
2598 		GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS = 0x8266,
2599 		GL_MAX_COMPUTE_LOCAL_INVOCATIONS  = 0x90EB,
2600 		GL_MAX_COMPUTE_WORK_GROUP_COUNT   = 0x91BE,
2601 		GL_MAX_COMPUTE_WORK_GROUP_SIZE    = 0x91BF,
2602 		GL_COMPUTE_LOCAL_WORK_SIZE        = 0x8267,
2603 		GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER = 0x90EC,
2604 		GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER = 0x90ED,
2605 		GL_DISPATCH_INDIRECT_BUFFER       = 0x90EE,
2606 		GL_DISPATCH_INDIRECT_BUFFER_BINDING = 0x90EF,
2607 		GL_COMPUTE_SHADER_BIT             = 0x00000020,
2608 	}
2609 
2610 	version(none)
2611 	enum // GL_ARB_copy_image
2612 	{
2613 	}
2614 
2615 	enum // GL_ARB_texture_view
2616 	{
2617 		GL_TEXTURE_VIEW_MIN_LEVEL         = 0x82DB,
2618 		GL_TEXTURE_VIEW_NUM_LEVELS        = 0x82DC,
2619 		GL_TEXTURE_VIEW_MIN_LAYER         = 0x82DD,
2620 		GL_TEXTURE_VIEW_NUM_LAYERS        = 0x82DE,
2621 		GL_TEXTURE_IMMUTABLE_LEVELS       = 0x82DF,
2622 	}
2623 
2624 	enum // GL_ARB_vertex_attrib_binding
2625 	{
2626 		GL_VERTEX_ATTRIB_BINDING          = 0x82D4,
2627 		GL_VERTEX_ATTRIB_RELATIVE_OFFSET  = 0x82D5,
2628 		GL_VERTEX_BINDING_DIVISOR         = 0x82D6,
2629 		GL_VERTEX_BINDING_OFFSET          = 0x82D7,
2630 		GL_VERTEX_BINDING_STRIDE          = 0x82D8,
2631 		GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET = 0x82D9,
2632 		GL_MAX_VERTEX_ATTRIB_BINDINGS     = 0x82DA,
2633 	}
2634 
2635 	version(none)
2636 	enum // GL_ARB_robustness_isolation
2637 	{
2638 	}
2639 
2640 	enum // GL_ARB_ES3_compatibility
2641 	{
2642 		GL_COMPRESSED_RGB8_ETC2           = 0x9274,
2643 		GL_COMPRESSED_SRGB8_ETC2          = 0x9275,
2644 		GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 0x9276,
2645 		GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 0x9277,
2646 		GL_COMPRESSED_RGBA8_ETC2_EAC      = 0x9278,
2647 		GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC = 0x9279,
2648 		GL_COMPRESSED_R11_EAC             = 0x9270,
2649 		GL_COMPRESSED_SIGNED_R11_EAC      = 0x9271,
2650 		GL_COMPRESSED_RG11_EAC            = 0x9272,
2651 		GL_COMPRESSED_SIGNED_RG11_EAC     = 0x9273,
2652 		GL_PRIMITIVE_RESTART_FIXED_INDEX  = 0x8D69,
2653 		GL_ANY_SAMPLES_PASSED_CONSERVATIVE = 0x8D6A,
2654 		GL_MAX_ELEMENT_INDEX              = 0x8D6B,
2655 	}
2656 
2657 	enum // GL_ARB_explicit_uniform_location
2658 	{
2659 		GL_MAX_UNIFORM_LOCATIONS          = 0x826E,
2660 	}
2661 
2662 	version(none)
2663 	enum // GL_ARB_fragment_layer_viewport
2664 	{
2665 	}
2666 
2667 	enum // GL_ARB_framebuffer_no_attachments
2668 	{
2669 		GL_FRAMEBUFFER_DEFAULT_WIDTH      = 0x9310,
2670 		GL_FRAMEBUFFER_DEFAULT_HEIGHT     = 0x9311,
2671 		GL_FRAMEBUFFER_DEFAULT_LAYERS     = 0x9312,
2672 		GL_FRAMEBUFFER_DEFAULT_SAMPLES    = 0x9313,
2673 		GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS = 0x9314,
2674 		GL_MAX_FRAMEBUFFER_WIDTH          = 0x9315,
2675 		GL_MAX_FRAMEBUFFER_HEIGHT         = 0x9316,
2676 		GL_MAX_FRAMEBUFFER_LAYERS         = 0x9317,
2677 		GL_MAX_FRAMEBUFFER_SAMPLES        = 0x9318,
2678 	}
2679 
2680 	enum // GL_ARB_internalformat_query2
2681 	{
2682 			/* reuse GL_IMAGE_FORMAT_COMPATIBILITY_TYPE */
2683 			/* reuse GL_NUM_SAMPLE_COUNTS */
2684 			/* reuse GL_RENDERBUFFER */
2685 			/* reuse GL_SAMPLES */
2686 			/* reuse GL_TEXTURE_1D */
2687 			/* reuse GL_TEXTURE_1D_ARRAY */
2688 			/* reuse GL_TEXTURE_2D */
2689 			/* reuse GL_TEXTURE_2D_ARRAY */
2690 			/* reuse GL_TEXTURE_3D */
2691 			/* reuse GL_TEXTURE_CUBE_MAP */
2692 			/* reuse GL_TEXTURE_CUBE_MAP_ARRAY */
2693 			/* reuse GL_TEXTURE_RECTANGLE */
2694 			/* reuse GL_TEXTURE_BUFFER */
2695 			/* reuse GL_TEXTURE_2D_MULTISAMPLE */
2696 			/* reuse GL_TEXTURE_2D_MULTISAMPLE_ARRAY */
2697 			/* reuse GL_TEXTURE_COMPRESSED */
2698 			
2699 		GL_INTERNALFORMAT_SUPPORTED       = 0x826F,
2700 		GL_INTERNALFORMAT_PREFERRED       = 0x8270,
2701 		GL_INTERNALFORMAT_RED_SIZE        = 0x8271,
2702 		GL_INTERNALFORMAT_GREEN_SIZE      = 0x8272,
2703 		GL_INTERNALFORMAT_BLUE_SIZE       = 0x8273,
2704 		GL_INTERNALFORMAT_ALPHA_SIZE      = 0x8274,
2705 		GL_INTERNALFORMAT_DEPTH_SIZE      = 0x8275,
2706 		GL_INTERNALFORMAT_STENCIL_SIZE    = 0x8276,
2707 		GL_INTERNALFORMAT_SHARED_SIZE     = 0x8277,
2708 		GL_INTERNALFORMAT_RED_TYPE        = 0x8278,
2709 		GL_INTERNALFORMAT_GREEN_TYPE      = 0x8279,
2710 		GL_INTERNALFORMAT_BLUE_TYPE       = 0x827A,
2711 		GL_INTERNALFORMAT_ALPHA_TYPE      = 0x827B,
2712 		GL_INTERNALFORMAT_DEPTH_TYPE      = 0x827C,
2713 		GL_INTERNALFORMAT_STENCIL_TYPE    = 0x827D,
2714 		GL_MAX_WIDTH                      = 0x827E,
2715 		GL_MAX_HEIGHT                     = 0x827F,
2716 		GL_MAX_DEPTH                      = 0x8280,
2717 		GL_MAX_LAYERS                     = 0x8281,
2718 		GL_MAX_COMBINED_DIMENSIONS        = 0x8282,
2719 		GL_COLOR_COMPONENTS               = 0x8283,
2720 		GL_DEPTH_COMPONENTS               = 0x8284,
2721 		GL_STENCIL_COMPONENTS             = 0x8285,
2722 		GL_COLOR_RENDERABLE               = 0x8286,
2723 		GL_DEPTH_RENDERABLE               = 0x8287,
2724 		GL_STENCIL_RENDERABLE             = 0x8288,
2725 		GL_FRAMEBUFFER_RENDERABLE         = 0x8289,
2726 		GL_FRAMEBUFFER_RENDERABLE_LAYERED = 0x828A,
2727 		GL_FRAMEBUFFER_BLEND              = 0x828B,
2728 		GL_READ_PIXELS                    = 0x828C,
2729 		GL_READ_PIXELS_FORMAT             = 0x828D,
2730 		GL_READ_PIXELS_TYPE               = 0x828E,
2731 		GL_TEXTURE_IMAGE_FORMAT           = 0x828F,
2732 		GL_TEXTURE_IMAGE_TYPE             = 0x8290,
2733 		GL_GET_TEXTURE_IMAGE_FORMAT       = 0x8291,
2734 		GL_GET_TEXTURE_IMAGE_TYPE         = 0x8292,
2735 		GL_MIPMAP                         = 0x8293,
2736 		GL_MANUAL_GENERATE_MIPMAP         = 0x8294,
2737 		GL_AUTO_GENERATE_MIPMAP           = 0x8295,
2738 		GL_COLOR_ENCODING                 = 0x8296,
2739 		GL_SRGB_READ                      = 0x8297,
2740 		GL_SRGB_WRITE                     = 0x8298,
2741 		GL_SRGB_DECODE_ARB                = 0x8299,
2742 		GL_FILTER                         = 0x829A,
2743 		GL_VERTEX_TEXTURE                 = 0x829B,
2744 		GL_TESS_CONTROL_TEXTURE           = 0x829C,
2745 		GL_TESS_EVALUATION_TEXTURE        = 0x829D,
2746 		GL_GEOMETRY_TEXTURE               = 0x829E,
2747 		GL_FRAGMENT_TEXTURE               = 0x829F,
2748 		GL_COMPUTE_TEXTURE                = 0x82A0,
2749 		GL_TEXTURE_SHADOW                 = 0x82A1,
2750 		GL_TEXTURE_GATHER                 = 0x82A2,
2751 		GL_TEXTURE_GATHER_SHADOW          = 0x82A3,
2752 		GL_SHADER_IMAGE_LOAD              = 0x82A4,
2753 		GL_SHADER_IMAGE_STORE             = 0x82A5,
2754 		GL_SHADER_IMAGE_ATOMIC            = 0x82A6,
2755 		GL_IMAGE_TEXEL_SIZE               = 0x82A7,
2756 		GL_IMAGE_COMPATIBILITY_CLASS      = 0x82A8,
2757 		GL_IMAGE_PIXEL_FORMAT             = 0x82A9,
2758 		GL_IMAGE_PIXEL_TYPE               = 0x82AA,
2759 		GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST = 0x82AC,
2760 		GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST = 0x82AD,
2761 		GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE = 0x82AE,
2762 		GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE = 0x82AF,
2763 		GL_TEXTURE_COMPRESSED_BLOCK_WIDTH = 0x82B1,
2764 		GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT = 0x82B2,
2765 		GL_TEXTURE_COMPRESSED_BLOCK_SIZE  = 0x82B3,
2766 		GL_CLEAR_BUFFER                   = 0x82B4,
2767 		GL_TEXTURE_VIEW                   = 0x82B5,
2768 		GL_VIEW_COMPATIBILITY_CLASS       = 0x82B6,
2769 		GL_FULL_SUPPORT                   = 0x82B7,
2770 		GL_CAVEAT_SUPPORT                 = 0x82B8,
2771 		GL_IMAGE_CLASS_4_X_32             = 0x82B9,
2772 		GL_IMAGE_CLASS_2_X_32             = 0x82BA,
2773 		GL_IMAGE_CLASS_1_X_32             = 0x82BB,
2774 		GL_IMAGE_CLASS_4_X_16             = 0x82BC,
2775 		GL_IMAGE_CLASS_2_X_16             = 0x82BD,
2776 		GL_IMAGE_CLASS_1_X_16             = 0x82BE,
2777 		GL_IMAGE_CLASS_4_X_8              = 0x82BF,
2778 		GL_IMAGE_CLASS_2_X_8              = 0x82C0,
2779 		GL_IMAGE_CLASS_1_X_8              = 0x82C1,
2780 		GL_IMAGE_CLASS_11_11_10           = 0x82C2,
2781 		GL_IMAGE_CLASS_10_10_10_2         = 0x82C3,
2782 		GL_VIEW_CLASS_128_BITS            = 0x82C4,
2783 		GL_VIEW_CLASS_96_BITS             = 0x82C5,
2784 		GL_VIEW_CLASS_64_BITS             = 0x82C6,
2785 		GL_VIEW_CLASS_48_BITS             = 0x82C7,
2786 		GL_VIEW_CLASS_32_BITS             = 0x82C8,
2787 		GL_VIEW_CLASS_24_BITS             = 0x82C9,
2788 		GL_VIEW_CLASS_16_BITS             = 0x82CA,
2789 		GL_VIEW_CLASS_8_BITS              = 0x82CB,
2790 		GL_VIEW_CLASS_S3TC_DXT1_RGB       = 0x82CC,
2791 		GL_VIEW_CLASS_S3TC_DXT1_RGBA      = 0x82CD,
2792 		GL_VIEW_CLASS_S3TC_DXT3_RGBA      = 0x82CE,
2793 		GL_VIEW_CLASS_S3TC_DXT5_RGBA      = 0x82CF,
2794 		GL_VIEW_CLASS_RGTC1_RED           = 0x82D0,
2795 		GL_VIEW_CLASS_RGTC2_RG            = 0x82D1,
2796 		GL_VIEW_CLASS_BPTC_UNORM          = 0x82D2,
2797 		GL_VIEW_CLASS_BPTC_FLOAT          = 0x82D3,
2798 	}
2799 
2800 	version(none)
2801 	enum // GL_ARB_invalidate_subdata
2802 	{
2803 	}
2804 
2805 	version(none)
2806 	enum // GL_ARB_multi_draw_indirect
2807 	{
2808 	}
2809 
2810 	enum // GL_ARB_program_interface_query
2811 	{
2812 		GL_UNIFORM                        = 0x92E1,
2813 		GL_UNIFORM_BLOCK                  = 0x92E2,
2814 		GL_PROGRAM_INPUT                  = 0x92E3,
2815 		GL_PROGRAM_OUTPUT                 = 0x92E4,
2816 		GL_BUFFER_VARIABLE                = 0x92E5,
2817 		GL_SHADER_STORAGE_BLOCK           = 0x92E6,
2818 		
2819 			/* reuse GL_ATOMIC_COUNTER_BUFFER */
2820 			
2821 		GL_VERTEX_SUBROUTINE              = 0x92E8,
2822 		GL_TESS_CONTROL_SUBROUTINE        = 0x92E9,
2823 		GL_TESS_EVALUATION_SUBROUTINE     = 0x92EA,
2824 		GL_GEOMETRY_SUBROUTINE            = 0x92EB,
2825 		GL_FRAGMENT_SUBROUTINE            = 0x92EC,
2826 		GL_COMPUTE_SUBROUTINE             = 0x92ED,
2827 		GL_VERTEX_SUBROUTINE_UNIFORM      = 0x92EE,
2828 		GL_TESS_CONTROL_SUBROUTINE_UNIFORM = 0x92EF,
2829 		GL_TESS_EVALUATION_SUBROUTINE_UNIFORM = 0x92F0,
2830 		GL_GEOMETRY_SUBROUTINE_UNIFORM    = 0x92F1,
2831 		GL_FRAGMENT_SUBROUTINE_UNIFORM    = 0x92F2,
2832 		GL_COMPUTE_SUBROUTINE_UNIFORM     = 0x92F3,
2833 		GL_TRANSFORM_FEEDBACK_VARYING     = 0x92F4,
2834 		GL_ACTIVE_RESOURCES               = 0x92F5,
2835 		GL_MAX_NAME_LENGTH                = 0x92F6,
2836 		GL_MAX_NUM_ACTIVE_VARIABLES       = 0x92F7,
2837 		GL_MAX_NUM_COMPATIBLE_SUBROUTINES = 0x92F8,
2838 		GL_NAME_LENGTH                    = 0x92F9,
2839 		GL_TYPE                           = 0x92FA,
2840 		GL_ARRAY_SIZE                     = 0x92FB,
2841 		GL_OFFSET                         = 0x92FC,
2842 		GL_BLOCK_INDEX                    = 0x92FD,
2843 		GL_ARRAY_STRIDE                   = 0x92FE,
2844 		GL_MATRIX_STRIDE                  = 0x92FF,
2845 		GL_IS_ROW_MAJOR                   = 0x9300,
2846 		GL_ATOMIC_COUNTER_BUFFER_INDEX    = 0x9301,
2847 		GL_BUFFER_BINDING                 = 0x9302,
2848 		GL_BUFFER_DATA_SIZE               = 0x9303,
2849 		GL_NUM_ACTIVE_VARIABLES           = 0x9304,
2850 		GL_ACTIVE_VARIABLES               = 0x9305,
2851 		GL_REFERENCED_BY_VERTEX_SHADER    = 0x9306,
2852 		GL_REFERENCED_BY_TESS_CONTROL_SHADER = 0x9307,
2853 		GL_REFERENCED_BY_TESS_EVALUATION_SHADER = 0x9308,
2854 		GL_REFERENCED_BY_GEOMETRY_SHADER  = 0x9309,
2855 		GL_REFERENCED_BY_FRAGMENT_SHADER  = 0x930A,
2856 		GL_REFERENCED_BY_COMPUTE_SHADER   = 0x930B,
2857 		GL_TOP_LEVEL_ARRAY_SIZE           = 0x930C,
2858 		GL_TOP_LEVEL_ARRAY_STRIDE         = 0x930D,
2859 		GL_LOCATION                       = 0x930E,
2860 		GL_LOCATION_INDEX                 = 0x930F,
2861 		GL_IS_PER_PATCH                   = 0x92E7,
2862 		
2863 			/* reuse GL_NUM_COMPATIBLE_SUBROUTINES */
2864 			/* reuse GL_COMPATIBLE_SUBROUTINES */
2865 	}
2866 
2867 	version(none)
2868 	enum // GL_ARB_robust_buffer_access_behavior
2869 	{
2870 	}
2871 
2872 	version(none)
2873 	enum // GL_ARB_shader_image_size
2874 	{
2875 	}
2876 
2877 	enum // GL_ARB_shader_storage_buffer_object
2878 	{
2879 		GL_SHADER_STORAGE_BUFFER          = 0x90D2,
2880 		GL_SHADER_STORAGE_BUFFER_BINDING  = 0x90D3,
2881 		GL_SHADER_STORAGE_BUFFER_START    = 0x90D4,
2882 		GL_SHADER_STORAGE_BUFFER_SIZE     = 0x90D5,
2883 		GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS = 0x90D6,
2884 		GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS = 0x90D7,
2885 		GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS = 0x90D8,
2886 		GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS = 0x90D9,
2887 		GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS = 0x90DA,
2888 		GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS = 0x90DB,
2889 		GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS = 0x90DC,
2890 		GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS = 0x90DD,
2891 		GL_MAX_SHADER_STORAGE_BLOCK_SIZE  = 0x90DE,
2892 		GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT = 0x90DF,
2893 		GL_SHADER_STORAGE_BARRIER_BIT     = 0x2000,
2894 		GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES = GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS,
2895 		
2896 			/* reuse GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS */
2897 	}
2898 
2899 	enum // GL_ARB_stencil_texturing
2900 	{
2901 		GL_DEPTH_STENCIL_TEXTURE_MODE     = 0x90EA,
2902 	}
2903 
2904 	enum // GL_ARB_texture_buffer_range
2905 	{
2906 		GL_TEXTURE_BUFFER_OFFSET          = 0x919D,
2907 		GL_TEXTURE_BUFFER_SIZE            = 0x919E,
2908 		GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT = 0x919F,
2909 	}
2910 
2911 	version(none)
2912 	enum // GL_ARB_texture_query_levels
2913 	{
2914 	}
2915 
2916 	version(none)
2917 	enum // GL_ARB_texture_storage_multisample
2918 	{
2919 	}
2920 	
2921 	/* *********************************************************** */
2922 
2923 	// GL_VERSION_2_0
2924 	/* GL type for program/shader text */
2925 	alias char GLchar;
2926 
2927 	// GL_VERSION_1_5
2928 	/* GL types for handling large vertex buffer objects */
2929 	alias ptrdiff_t GLintptr;
2930 	alias ptrdiff_t GLsizeiptr;
2931 
2932 	// GL_ARB_vertex_buffer_object
2933 	/* GL types for handling large vertex buffer objects */
2934 	alias ptrdiff_t GLintptrARB;
2935 	alias ptrdiff_t GLsizeiptrARB;
2936 
2937 	// GL_ARB_shader_objects
2938 	/* GL types for program/shader text and shader object handles */
2939 	alias char GLcharARB;
2940 	alias uint GLhandleARB;
2941 
2942 	/* GL type for "half" precision (s10e5) float data in host memory */
2943 	// GL_ARB_half_float_pixel
2944 	alias ushort GLhalfARB;
2945 
2946 	// GL_NV_half_float
2947 	alias ushort GLhalfNV;
2948 
2949 	/* Define int32_t,  int64_t,  and uint64_t types for UST/MSC */
2950 	/* (as used in the GL_EXT_timer_query extension). */
2951 	alias int int32_t;
2952 	alias long int64_t;
2953 	alias ulong uint64_t;
2954 
2955 	// GL_EXT_timer_query
2956 	alias int64_t GLint64EXT;
2957 	alias uint64_t GLuint64EXT;
2958 
2959 	// GL_ARB_sync
2960 	alias int64_t GLint64;
2961 	alias uint64_t GLuint64;
2962 	struct __GLsync;
2963 	alias __GLsync *GLsync;
2964 
2965 	// GL_ARB_cl_event
2966 	/* These incomplete types let us declare types compatible with OpenCL's cl_context and cl_event */
2967 	struct _cl_context;
2968 	struct _cl_event;
2969 
2970 	// GL_ARB_debug_output
2971 	alias void function(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const(GLchar)* message, GLvoid* userParam) GLDEBUGPROCARB;
2972 
2973 	// GL_AMD_debug_output
2974 	alias void function(GLuint id, GLenum category, GLenum severity, GLsizei length, const(GLchar)* message, GLvoid* userParam) GLDEBUGPROCAMD;
2975 
2976 	// GL_KHR_debug
2977 	alias void function(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const(GLchar)* message, GLvoid* userParam) GLDEBUGPROC;
2978 
2979 	// GL_NV_vdpau_interop
2980 	alias GLintptr GLvdpauSurfaceNV;
2981 	
2982 	
2983 	/* *********************************************************** */
2984 	
2985 	// GL_VERSION_1_0
2986 
2987 	export void glCullFace(GLenum mode);
2988 	export void glFrontFace(GLenum mode);
2989 	export void glHint(GLenum target, GLenum mode);
2990 	export void glLineWidth(GLfloat width);
2991 	export void glPointSize(GLfloat size);
2992 	export void glPolygonMode(GLenum face, GLenum mode);
2993 	export void glScissor(GLint x, GLint y, GLsizei width, GLsizei height);
2994 	export void glTexParameterf(GLenum target, GLenum pname, GLfloat param);
2995 	export void glTexParameterfv(GLenum target, GLenum pname, const(GLfloat)* params);
2996 	export void glTexParameteri(GLenum target, GLenum pname, GLint param);
2997 	export void glTexParameteriv(GLenum target, GLenum pname, const(GLint)* params);
2998 	export void glTexImage1D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const(GLvoid)* pixels);
2999 	export void glTexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const(GLvoid)* pixels);
3000 	export void glDrawBuffer(GLenum mode);
3001 	export void glClear(GLbitfield mask);
3002 	export void glClearColor(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
3003 	export void glClearStencil(GLint s);
3004 	export void glClearDepth(GLdouble depth);
3005 	export void glStencilMask(GLuint mask);
3006 	export void glColorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
3007 	export void glDepthMask(GLboolean flag);
3008 	export void glDisable(GLenum cap);
3009 	export void glEnable(GLenum cap);
3010 	export void glFinish();
3011 	export void glFlush();
3012 	export void glBlendFunc(GLenum sfactor, GLenum dfactor);
3013 	export void glLogicOp(GLenum opcode);
3014 	export void glStencilFunc(GLenum func, GLint ref_, GLuint mask);
3015 	export void glStencilOp(GLenum fail, GLenum zfail, GLenum zpass);
3016 	export void glDepthFunc(GLenum func);
3017 	export void glPixelStoref(GLenum pname, GLfloat param);
3018 	export void glPixelStorei(GLenum pname, GLint param);
3019 	export void glReadBuffer(GLenum mode);
3020 	export void glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid* pixels);
3021 	export void glGetBooleanv(GLenum pname, GLboolean* params);
3022 	export void glGetDoublev(GLenum pname, GLdouble* params);
3023 	export GLenum glGetError();
3024 	export void glGetFloatv(GLenum pname, GLfloat* params);
3025 	export void glGetIntegerv(GLenum pname, GLint* params);
3026 	export const(GLubyte)* glGetString(GLenum name);
3027 	export void glGetTexImage(GLenum target, GLint level, GLenum format, GLenum type, GLvoid* pixels);
3028 	export void glGetTexParameterfv(GLenum target, GLenum pname, GLfloat* params);
3029 	export void glGetTexParameteriv(GLenum target, GLenum pname, GLint* params);
3030 	export void glGetTexLevelParameterfv(GLenum target, GLint level, GLenum pname, GLfloat* params);
3031 	export void glGetTexLevelParameteriv(GLenum target, GLint level, GLenum pname, GLint* params);
3032 	export GLboolean glIsEnabled(GLenum cap);
3033 	export void glDepthRange(GLdouble near, GLdouble far);
3034 	export void glViewport(GLint x, GLint y, GLsizei width, GLsizei height);
3035 
3036 	alias void function(GLenum mode) PFNGLCULLFACEPROC;
3037 	alias void function(GLenum mode) PFNGLFRONTFACEPROC;
3038 	alias void function(GLenum target, GLenum mode) PFNGLHINTPROC;
3039 	alias void function(GLfloat width) PFNGLLINEWIDTHPROC;
3040 	alias void function(GLfloat size) PFNGLPOINTSIZEPROC;
3041 	alias void function(GLenum face, GLenum mode) PFNGLPOLYGONMODEPROC;
3042 	alias void function(GLint x, GLint y, GLsizei width, GLsizei height) PFNGLSCISSORPROC;
3043 	alias void function(GLenum target, GLenum pname, GLfloat param) PFNGLTEXPARAMETERFPROC;
3044 	alias void function(GLenum target, GLenum pname, const(GLfloat)* params) PFNGLTEXPARAMETERFVPROC;
3045 	alias void function(GLenum target, GLenum pname, GLint param) PFNGLTEXPARAMETERIPROC;
3046 	alias void function(GLenum target, GLenum pname, const(GLint)* params) PFNGLTEXPARAMETERIVPROC;
3047 	alias void function(GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const(GLvoid)* pixels) PFNGLTEXIMAGE1DPROC;
3048 	alias void function(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const(GLvoid)* pixels) PFNGLTEXIMAGE2DPROC;
3049 	alias void function(GLenum mode) PFNGLDRAWBUFFERPROC;
3050 	alias void function(GLbitfield mask) PFNGLCLEARPROC;
3051 	alias void function(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha) PFNGLCLEARCOLORPROC;
3052 	alias void function(GLint s) PFNGLCLEARSTENCILPROC;
3053 	alias void function(GLdouble depth) PFNGLCLEARDEPTHPROC;
3054 	alias void function(GLuint mask) PFNGLSTENCILMASKPROC;
3055 	alias void function(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha) PFNGLCOLORMASKPROC;
3056 	alias void function(GLboolean flag) PFNGLDEPTHMASKPROC;
3057 	alias void function(GLenum cap) PFNGLDISABLEPROC;
3058 	alias void function(GLenum cap) PFNGLENABLEPROC;
3059 	alias void function() PFNGLFINISHPROC;
3060 	alias void function() PFNGLFLUSHPROC;
3061 	alias void function(GLenum sfactor, GLenum dfactor) PFNGLBLENDFUNCPROC;
3062 	alias void function(GLenum opcode) PFNGLLOGICOPPROC;
3063 	alias void function(GLenum func, GLint ref_, GLuint mask) PFNGLSTENCILFUNCPROC;
3064 	alias void function(GLenum fail, GLenum zfail, GLenum zpass) PFNGLSTENCILOPPROC;
3065 	alias void function(GLenum func) PFNGLDEPTHFUNCPROC;
3066 	alias void function(GLenum pname, GLfloat param) PFNGLPIXELSTOREFPROC;
3067 	alias void function(GLenum pname, GLint param) PFNGLPIXELSTOREIPROC;
3068 	alias void function(GLenum mode) PFNGLREADBUFFERPROC;
3069 	alias void function(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid* pixels) PFNGLREADPIXELSPROC;
3070 	alias void function(GLenum pname, GLboolean* params) PFNGLGETBOOLEANVPROC;
3071 	alias void function(GLenum pname, GLdouble* params) PFNGLGETDOUBLEVPROC;
3072 	alias GLenum function() PFNGLGETERRORPROC;
3073 	alias void function(GLenum pname, GLfloat* params) PFNGLGETFLOATVPROC;
3074 	alias void function(GLenum pname, GLint* params) PFNGLGETINTEGERVPROC;
3075 	alias const(GLubyte)*  function(GLenum name) PFNGLGETSTRINGPROC;
3076 	alias void function(GLenum target, GLint level, GLenum format, GLenum type, GLvoid* pixels) PFNGLGETTEXIMAGEPROC;
3077 	alias void function(GLenum target, GLenum pname, GLfloat* params) PFNGLGETTEXPARAMETERFVPROC;
3078 	alias void function(GLenum target, GLenum pname, GLint* params) PFNGLGETTEXPARAMETERIVPROC;
3079 	alias void function(GLenum target, GLint level, GLenum pname, GLfloat* params) PFNGLGETTEXLEVELPARAMETERFVPROC;
3080 	alias void function(GLenum target, GLint level, GLenum pname, GLint* params) PFNGLGETTEXLEVELPARAMETERIVPROC;
3081 	alias GLboolean function(GLenum cap) PFNGLISENABLEDPROC;
3082 	alias void function(GLdouble near, GLdouble far) PFNGLDEPTHRANGEPROC;
3083 	alias void function(GLint x, GLint y, GLsizei width, GLsizei height) PFNGLVIEWPORTPROC;
3084 
3085 	// GL_VERSION_1_1
3086 
3087 	export void glDrawArrays(GLenum mode, GLint first, GLsizei count);
3088 	export void glDrawElements(GLenum mode, GLsizei count, GLenum type, const(GLvoid)* indices);
3089 	export void glGetPointerv(GLenum pname, GLvoid** params);
3090 	export void glPolygonOffset(GLfloat factor, GLfloat units);
3091 	export void glCopyTexImage1D(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
3092 	export void glCopyTexImage2D(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
3093 	export void glCopyTexSubImage1D(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
3094 	export void glCopyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
3095 	export void glTexSubImage1D(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const(GLvoid)* pixels);
3096 	export void glTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const(GLvoid)* pixels);
3097 	export void glBindTexture(GLenum target, GLuint texture);
3098 	export void glDeleteTextures(GLsizei n, const(GLuint)* textures);
3099 	export void glGenTextures(GLsizei n, GLuint* textures);
3100 	export GLboolean glIsTexture(GLuint texture);
3101 
3102 	alias void function(GLenum mode, GLint first, GLsizei count) PFNGLDRAWARRAYSPROC;
3103 	alias void function(GLenum mode, GLsizei count, GLenum type, const(GLvoid)* indices) PFNGLDRAWELEMENTSPROC;
3104 	alias void function(GLenum pname, GLvoid** params) PFNGLGETPOINTERVPROC;
3105 	alias void function(GLfloat factor, GLfloat units) PFNGLPOLYGONOFFSETPROC;
3106 	alias void function(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border) PFNGLCOPYTEXIMAGE1DPROC;
3107 	alias void function(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border) PFNGLCOPYTEXIMAGE2DPROC;
3108 	alias void function(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width) PFNGLCOPYTEXSUBIMAGE1DPROC;
3109 	alias void function(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height) PFNGLCOPYTEXSUBIMAGE2DPROC;
3110 	alias void function(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const(GLvoid)* pixels) PFNGLTEXSUBIMAGE1DPROC;
3111 	alias void function(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const(GLvoid)* pixels) PFNGLTEXSUBIMAGE2DPROC;
3112 	alias void function(GLenum target, GLuint texture) PFNGLBINDTEXTUREPROC;
3113 	alias void function(GLsizei n, const(GLuint)* textures) PFNGLDELETETEXTURESPROC;
3114 	alias void function(GLsizei n, GLuint* textures) PFNGLGENTEXTURESPROC;
3115 	alias GLboolean function(GLuint texture) PFNGLISTEXTUREPROC;
3116 
3117 	// GL_VERSION_1_2
3118 
3119 	export void glBlendColor(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
3120 	export void glBlendEquation(GLenum mode);
3121 	export void glDrawRangeElements(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const(GLvoid)* indices);
3122 	export void glTexImage3D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const(GLvoid)* pixels);
3123 	export void glTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const(GLvoid)* pixels);
3124 	export void glCopyTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
3125 
3126 	alias void function(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha) PFNGLBLENDCOLORPROC;
3127 	alias void function(GLenum mode) PFNGLBLENDEQUATIONPROC;
3128 	alias void function(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const(GLvoid)* indices) PFNGLDRAWRANGEELEMENTSPROC;
3129 	alias void function(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const(GLvoid)* pixels) PFNGLTEXIMAGE3DPROC;
3130 	alias void function(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const(GLvoid)* pixels) PFNGLTEXSUBIMAGE3DPROC;
3131 	alias void function(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height) PFNGLCOPYTEXSUBIMAGE3DPROC;
3132 
3133 	// GL_VERSION_1_3
3134 
3135 	export void glActiveTexture(GLenum texture);
3136 	export void glSampleCoverage(GLfloat value, GLboolean invert);
3137 	export void glCompressedTexImage3D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const(GLvoid)* data);
3138 	export void glCompressedTexImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const(GLvoid)* data);
3139 	export void glCompressedTexImage1D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const(GLvoid)* data);
3140 	export void glCompressedTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const(GLvoid)* data);
3141 	export void glCompressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const(GLvoid)* data);
3142 	export void glCompressedTexSubImage1D(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const(GLvoid)* data);
3143 	export void glGetCompressedTexImage(GLenum target, GLint level, GLvoid* img);
3144 
3145 	alias void function(GLenum texture) PFNGLACTIVETEXTUREPROC;
3146 	alias void function(GLfloat value, GLboolean invert) PFNGLSAMPLECOVERAGEPROC;
3147 	alias void function(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const(GLvoid)* data) PFNGLCOMPRESSEDTEXIMAGE3DPROC;
3148 	alias void function(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const(GLvoid)* data) PFNGLCOMPRESSEDTEXIMAGE2DPROC;
3149 	alias void function(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const(GLvoid)* data) PFNGLCOMPRESSEDTEXIMAGE1DPROC;
3150 	alias void function(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const(GLvoid)* data) PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC;
3151 	alias void function(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const(GLvoid)* data) PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC;
3152 	alias void function(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const(GLvoid)* data) PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC;
3153 	alias void function(GLenum target, GLint level, GLvoid* img) PFNGLGETCOMPRESSEDTEXIMAGEPROC;
3154 
3155 	// GL_VERSION_1_4
3156 
3157 	export void glBlendFuncSeparate(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
3158 	export void glMultiDrawArrays(GLenum mode, const(GLint)* first, const(GLsizei)* count, GLsizei drawcount);
3159 	export void glMultiDrawElements(GLenum mode, const(GLsizei)* count, GLenum type, const(GLvoid)** indices, GLsizei drawcount);
3160 	export void glPointParameterf(GLenum pname, GLfloat param);
3161 	export void glPointParameterfv(GLenum pname, const(GLfloat)* params);
3162 	export void glPointParameteri(GLenum pname, GLint param);
3163 	export void glPointParameteriv(GLenum pname, const(GLint)* params);
3164 
3165 	alias void function(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha) PFNGLBLENDFUNCSEPARATEPROC;
3166 	alias void function(GLenum mode, const(GLint)* first, const(GLsizei)* count, GLsizei drawcount) PFNGLMULTIDRAWARRAYSPROC;
3167 	alias void function(GLenum mode, const(GLsizei)* count, GLenum type, const(GLvoid)** indices, GLsizei drawcount) PFNGLMULTIDRAWELEMENTSPROC;
3168 	alias void function(GLenum pname, GLfloat param) PFNGLPOINTPARAMETERFPROC;
3169 	alias void function(GLenum pname, const(GLfloat)* params) PFNGLPOINTPARAMETERFVPROC;
3170 	alias void function(GLenum pname, GLint param) PFNGLPOINTPARAMETERIPROC;
3171 	alias void function(GLenum pname, const(GLint)* params) PFNGLPOINTPARAMETERIVPROC;
3172 
3173 	// GL_VERSION_1_5
3174 
3175 	export void glGenQueries(GLsizei n, GLuint* ids);
3176 	export void glDeleteQueries(GLsizei n, const(GLuint)* ids);
3177 	export GLboolean glIsQuery(GLuint id);
3178 	export void glBeginQuery(GLenum target, GLuint id);
3179 	export void glEndQuery(GLenum target);
3180 	export void glGetQueryiv(GLenum target, GLenum pname, GLint* params);
3181 	export void glGetQueryObjectiv(GLuint id, GLenum pname, GLint* params);
3182 	export void glGetQueryObjectuiv(GLuint id, GLenum pname, GLuint* params);
3183 	export void glBindBuffer(GLenum target, GLuint buffer);
3184 	export void glDeleteBuffers(GLsizei n, const(GLuint)* buffers);
3185 	export void glGenBuffers(GLsizei n, GLuint* buffers);
3186 	export GLboolean glIsBuffer(GLuint buffer);
3187 	export void glBufferData(GLenum target, GLsizeiptr size, const(GLvoid)* data, GLenum usage);
3188 	export void glBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, const(GLvoid)* data);
3189 	export void glGetBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, GLvoid* data);
3190 	export GLvoid* glMapBuffer(GLenum target, GLenum access);
3191 	export GLboolean glUnmapBuffer(GLenum target);
3192 	export void glGetBufferParameteriv(GLenum target, GLenum pname, GLint* params);
3193 	export void glGetBufferPointerv(GLenum target, GLenum pname, GLvoid** params);
3194 
3195 	alias void function(GLsizei n, GLuint* ids) PFNGLGENQUERIESPROC;
3196 	alias void function(GLsizei n, const(GLuint)* ids) PFNGLDELETEQUERIESPROC;
3197 	alias GLboolean function(GLuint id) PFNGLISQUERYPROC;
3198 	alias void function(GLenum target, GLuint id) PFNGLBEGINQUERYPROC;
3199 	alias void function(GLenum target) PFNGLENDQUERYPROC;
3200 	alias void function(GLenum target, GLenum pname, GLint* params) PFNGLGETQUERYIVPROC;
3201 	alias void function(GLuint id, GLenum pname, GLint* params) PFNGLGETQUERYOBJECTIVPROC;
3202 	alias void function(GLuint id, GLenum pname, GLuint* params) PFNGLGETQUERYOBJECTUIVPROC;
3203 	alias void function(GLenum target, GLuint buffer) PFNGLBINDBUFFERPROC;
3204 	alias void function(GLsizei n, const(GLuint)* buffers) PFNGLDELETEBUFFERSPROC;
3205 	alias void function(GLsizei n, GLuint* buffers) PFNGLGENBUFFERSPROC;
3206 	alias GLboolean function(GLuint buffer) PFNGLISBUFFERPROC;
3207 	alias void function(GLenum target, GLsizeiptr size, const(GLvoid)* data, GLenum usage) PFNGLBUFFERDATAPROC;
3208 	alias void function(GLenum target, GLintptr offset, GLsizeiptr size, const(GLvoid)* data) PFNGLBUFFERSUBDATAPROC;
3209 	alias void function(GLenum target, GLintptr offset, GLsizeiptr size, GLvoid* data) PFNGLGETBUFFERSUBDATAPROC;
3210 	alias GLvoid* function(GLenum target, GLenum access) PFNGLMAPBUFFERPROC;
3211 	alias GLboolean function(GLenum target) PFNGLUNMAPBUFFERPROC;
3212 	alias void function(GLenum target, GLenum pname, GLint* params) PFNGLGETBUFFERPARAMETERIVPROC;
3213 	alias void function(GLenum target, GLenum pname, GLvoid** params) PFNGLGETBUFFERPOINTERVPROC;
3214 
3215 	// GL_VERSION_2_0
3216 
3217 	export void glBlendEquationSeparate(GLenum modeRGB, GLenum modeAlpha);
3218 	export void glDrawBuffers(GLsizei n, const(GLenum)* bufs);
3219 	export void glStencilOpSeparate(GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
3220 	export void glStencilFuncSeparate(GLenum face, GLenum func, GLint ref_, GLuint mask);
3221 	export void glStencilMaskSeparate(GLenum face, GLuint mask);
3222 	export void glAttachShader(GLuint program, GLuint shader);
3223 	export void glBindAttribLocation(GLuint program, GLuint index, const(GLchar)* name);
3224 	export void glCompileShader(GLuint shader);
3225 	export GLuint glCreateProgram();
3226 	export GLuint glCreateShader(GLenum type);
3227 	export void glDeleteProgram(GLuint program);
3228 	export void glDeleteShader(GLuint shader);
3229 	export void glDetachShader(GLuint program, GLuint shader);
3230 	export void glDisableVertexAttribArray(GLuint index);
3231 	export void glEnableVertexAttribArray(GLuint index);
3232 	export void glGetActiveAttrib(GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* type, GLchar* name);
3233 	export void glGetActiveUniform(GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* type, GLchar* name);
3234 	export void glGetAttachedShaders(GLuint program, GLsizei maxCount, GLsizei* count, GLuint* obj);
3235 	export GLint glGetAttribLocation(GLuint program, const(GLchar)* name);
3236 	export void glGetProgramiv(GLuint program, GLenum pname, GLint* params);
3237 	export void glGetProgramInfoLog(GLuint program, GLsizei bufSize, GLsizei* length, GLchar* infoLog);
3238 	export void glGetShaderiv(GLuint shader, GLenum pname, GLint* params);
3239 	export void glGetShaderInfoLog(GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* infoLog);
3240 	export void glGetShaderSource(GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* source);
3241 	export GLint glGetUniformLocation(GLuint program, const(GLchar)* name);
3242 	export void glGetUniformfv(GLuint program, GLint location, GLfloat* params);
3243 	export void glGetUniformiv(GLuint program, GLint location, GLint* params);
3244 	export void glGetVertexAttribdv(GLuint index, GLenum pname, GLdouble* params);
3245 	export void glGetVertexAttribfv(GLuint index, GLenum pname, GLfloat* params);
3246 	export void glGetVertexAttribiv(GLuint index, GLenum pname, GLint* params);
3247 	export void glGetVertexAttribPointerv(GLuint index, GLenum pname, GLvoid** pointer);
3248 	export GLboolean glIsProgram(GLuint program);
3249 	export GLboolean glIsShader(GLuint shader);
3250 	export void glLinkProgram(GLuint program);
3251 	export void glShaderSource(GLuint shader, GLsizei count, const(GLchar)** string, const(GLint)* length);
3252 	export void glUseProgram(GLuint program);
3253 	export void glUniform1f(GLint location, GLfloat v0);
3254 	export void glUniform2f(GLint location, GLfloat v0, GLfloat v1);
3255 	export void glUniform3f(GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
3256 	export void glUniform4f(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
3257 	export void glUniform1i(GLint location, GLint v0);
3258 	export void glUniform2i(GLint location, GLint v0, GLint v1);
3259 	export void glUniform3i(GLint location, GLint v0, GLint v1, GLint v2);
3260 	export void glUniform4i(GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
3261 	export void glUniform1fv(GLint location, GLsizei count, const(GLfloat)* value);
3262 	export void glUniform2fv(GLint location, GLsizei count, const(GLfloat)* value);
3263 	export void glUniform3fv(GLint location, GLsizei count, const(GLfloat)* value);
3264 	export void glUniform4fv(GLint location, GLsizei count, const(GLfloat)* value);
3265 	export void glUniform1iv(GLint location, GLsizei count, const(GLint)* value);
3266 	export void glUniform2iv(GLint location, GLsizei count, const(GLint)* value);
3267 	export void glUniform3iv(GLint location, GLsizei count, const(GLint)* value);
3268 	export void glUniform4iv(GLint location, GLsizei count, const(GLint)* value);
3269 	export void glUniformMatrix2fv(GLint location, GLsizei count, GLboolean transpose, const(GLfloat)* value);
3270 	export void glUniformMatrix3fv(GLint location, GLsizei count, GLboolean transpose, const(GLfloat)* value);
3271 	export void glUniformMatrix4fv(GLint location, GLsizei count, GLboolean transpose, const(GLfloat)* value);
3272 	export void glValidateProgram(GLuint program);
3273 	export void glVertexAttrib1d(GLuint index, GLdouble x);
3274 	export void glVertexAttrib1dv(GLuint index, const(GLdouble)* v);
3275 	export void glVertexAttrib1f(GLuint index, GLfloat x);
3276 	export void glVertexAttrib1fv(GLuint index, const(GLfloat)* v);
3277 	export void glVertexAttrib1s(GLuint index, GLshort x);
3278 	export void glVertexAttrib1sv(GLuint index, const(GLshort)* v);
3279 	export void glVertexAttrib2d(GLuint index, GLdouble x, GLdouble y);
3280 	export void glVertexAttrib2dv(GLuint index, const(GLdouble)* v);
3281 	export void glVertexAttrib2f(GLuint index, GLfloat x, GLfloat y);
3282 	export void glVertexAttrib2fv(GLuint index, const(GLfloat)* v);
3283 	export void glVertexAttrib2s(GLuint index, GLshort x, GLshort y);
3284 	export void glVertexAttrib2sv(GLuint index, const(GLshort)* v);
3285 	export void glVertexAttrib3d(GLuint index, GLdouble x, GLdouble y, GLdouble z);
3286 	export void glVertexAttrib3dv(GLuint index, const(GLdouble)* v);
3287 	export void glVertexAttrib3f(GLuint index, GLfloat x, GLfloat y, GLfloat z);
3288 	export void glVertexAttrib3fv(GLuint index, const(GLfloat)* v);
3289 	export void glVertexAttrib3s(GLuint index, GLshort x, GLshort y, GLshort z);
3290 	export void glVertexAttrib3sv(GLuint index, const(GLshort)* v);
3291 	export void glVertexAttrib4Nbv(GLuint index, const(GLbyte)* v);
3292 	export void glVertexAttrib4Niv(GLuint index, const(GLint)* v);
3293 	export void glVertexAttrib4Nsv(GLuint index, const(GLshort)* v);
3294 	export void glVertexAttrib4Nub(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
3295 	export void glVertexAttrib4Nubv(GLuint index, const(GLubyte)* v);
3296 	export void glVertexAttrib4Nuiv(GLuint index, const(GLuint)* v);
3297 	export void glVertexAttrib4Nusv(GLuint index, const(GLushort)* v);
3298 	export void glVertexAttrib4bv(GLuint index, const(GLbyte)* v);
3299 	export void glVertexAttrib4d(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
3300 	export void glVertexAttrib4dv(GLuint index, const(GLdouble)* v);
3301 	export void glVertexAttrib4f(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
3302 	export void glVertexAttrib4fv(GLuint index, const(GLfloat)* v);
3303 	export void glVertexAttrib4iv(GLuint index, const(GLint)* v);
3304 	export void glVertexAttrib4s(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
3305 	export void glVertexAttrib4sv(GLuint index, const(GLshort)* v);
3306 	export void glVertexAttrib4ubv(GLuint index, const(GLubyte)* v);
3307 	export void glVertexAttrib4uiv(GLuint index, const(GLuint)* v);
3308 	export void glVertexAttrib4usv(GLuint index, const(GLushort)* v);
3309 	export void glVertexAttribPointer(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const(GLvoid)* pointer);
3310 
3311 	alias void function(GLenum modeRGB, GLenum modeAlpha) PFNGLBLENDEQUATIONSEPARATEPROC;
3312 	alias void function(GLsizei n, const(GLenum)* bufs) PFNGLDRAWBUFFERSPROC;
3313 	alias void function(GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass) PFNGLSTENCILOPSEPARATEPROC;
3314 	alias void function(GLenum face, GLenum func, GLint ref_, GLuint mask) PFNGLSTENCILFUNCSEPARATEPROC;
3315 	alias void function(GLenum face, GLuint mask) PFNGLSTENCILMASKSEPARATEPROC;
3316 	alias void function(GLuint program, GLuint shader) PFNGLATTACHSHADERPROC;
3317 	alias void function(GLuint program, GLuint index, const(GLchar)* name) PFNGLBINDATTRIBLOCATIONPROC;
3318 	alias void function(GLuint shader) PFNGLCOMPILESHADERPROC;
3319 	alias GLuint function() PFNGLCREATEPROGRAMPROC;
3320 	alias GLuint function(GLenum type) PFNGLCREATESHADERPROC;
3321 	alias void function(GLuint program) PFNGLDELETEPROGRAMPROC;
3322 	alias void function(GLuint shader) PFNGLDELETESHADERPROC;
3323 	alias void function(GLuint program, GLuint shader) PFNGLDETACHSHADERPROC;
3324 	alias void function(GLuint index) PFNGLDISABLEVERTEXATTRIBARRAYPROC;
3325 	alias void function(GLuint index) PFNGLENABLEVERTEXATTRIBARRAYPROC;
3326 	alias void function(GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* type, GLchar* name) PFNGLGETACTIVEATTRIBPROC;
3327 	alias void function(GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* type, GLchar* name) PFNGLGETACTIVEUNIFORMPROC;
3328 	alias void function(GLuint program, GLsizei maxCount, GLsizei* count, GLuint* obj) PFNGLGETATTACHEDSHADERSPROC;
3329 	alias GLint function(GLuint program, const(GLchar)* name) PFNGLGETATTRIBLOCATIONPROC;
3330 	alias void function(GLuint program, GLenum pname, GLint* params) PFNGLGETPROGRAMIVPROC;
3331 	alias void function(GLuint program, GLsizei bufSize, GLsizei* length, GLchar* infoLog) PFNGLGETPROGRAMINFOLOGPROC;
3332 	alias void function(GLuint shader, GLenum pname, GLint* params) PFNGLGETSHADERIVPROC;
3333 	alias void function(GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* infoLog) PFNGLGETSHADERINFOLOGPROC;
3334 	alias void function(GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* source) PFNGLGETSHADERSOURCEPROC;
3335 	alias GLint function(GLuint program, const(GLchar)* name) PFNGLGETUNIFORMLOCATIONPROC;
3336 	alias void function(GLuint program, GLint location, GLfloat* params) PFNGLGETUNIFORMFVPROC;
3337 	alias void function(GLuint program, GLint location, GLint* params) PFNGLGETUNIFORMIVPROC;
3338 	alias void function(GLuint index, GLenum pname, GLdouble* params) PFNGLGETVERTEXATTRIBDVPROC;
3339 	alias void function(GLuint index, GLenum pname, GLfloat* params) PFNGLGETVERTEXATTRIBFVPROC;
3340 	alias void function(GLuint index, GLenum pname, GLint* params) PFNGLGETVERTEXATTRIBIVPROC;
3341 	alias void function(GLuint index, GLenum pname, GLvoid** pointer) PFNGLGETVERTEXATTRIBPOINTERVPROC;
3342 	alias GLboolean function(GLuint program) PFNGLISPROGRAMPROC;
3343 	alias GLboolean function(GLuint shader) PFNGLISSHADERPROC;
3344 	alias void function(GLuint program) PFNGLLINKPROGRAMPROC;
3345 	alias void function(GLuint shader, GLsizei count, const(GLchar)** string, const(GLint)* length) PFNGLSHADERSOURCEPROC;
3346 	alias void function(GLuint program) PFNGLUSEPROGRAMPROC;
3347 	alias void function(GLint location, GLfloat v0) PFNGLUNIFORM1FPROC;
3348 	alias void function(GLint location, GLfloat v0, GLfloat v1) PFNGLUNIFORM2FPROC;
3349 	alias void function(GLint location, GLfloat v0, GLfloat v1, GLfloat v2) PFNGLUNIFORM3FPROC;
3350 	alias void function(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3) PFNGLUNIFORM4FPROC;
3351 	alias void function(GLint location, GLint v0) PFNGLUNIFORM1IPROC;
3352 	alias void function(GLint location, GLint v0, GLint v1) PFNGLUNIFORM2IPROC;
3353 	alias void function(GLint location, GLint v0, GLint v1, GLint v2) PFNGLUNIFORM3IPROC;
3354 	alias void function(GLint location, GLint v0, GLint v1, GLint v2, GLint v3) PFNGLUNIFORM4IPROC;
3355 	alias void function(GLint location, GLsizei count, const(GLfloat)* value) PFNGLUNIFORM1FVPROC;
3356 	alias void function(GLint location, GLsizei count, const(GLfloat)* value) PFNGLUNIFORM2FVPROC;
3357 	alias void function(GLint location, GLsizei count, const(GLfloat)* value) PFNGLUNIFORM3FVPROC;
3358 	alias void function(GLint location, GLsizei count, const(GLfloat)* value) PFNGLUNIFORM4FVPROC;
3359 	alias void function(GLint location, GLsizei count, const(GLint)* value) PFNGLUNIFORM1IVPROC;
3360 	alias void function(GLint location, GLsizei count, const(GLint)* value) PFNGLUNIFORM2IVPROC;
3361 	alias void function(GLint location, GLsizei count, const(GLint)* value) PFNGLUNIFORM3IVPROC;
3362 	alias void function(GLint location, GLsizei count, const(GLint)* value) PFNGLUNIFORM4IVPROC;
3363 	alias void function(GLint location, GLsizei count, GLboolean transpose, const(GLfloat)* value) PFNGLUNIFORMMATRIX2FVPROC;
3364 	alias void function(GLint location, GLsizei count, GLboolean transpose, const(GLfloat)* value) PFNGLUNIFORMMATRIX3FVPROC;
3365 	alias void function(GLint location, GLsizei count, GLboolean transpose, const(GLfloat)* value) PFNGLUNIFORMMATRIX4FVPROC;
3366 	alias void function(GLuint program) PFNGLVALIDATEPROGRAMPROC;
3367 	alias void function(GLuint index, GLdouble x) PFNGLVERTEXATTRIB1DPROC;
3368 	alias void function(GLuint index, const(GLdouble)* v) PFNGLVERTEXATTRIB1DVPROC;
3369 	alias void function(GLuint index, GLfloat x) PFNGLVERTEXATTRIB1FPROC;
3370 	alias void function(GLuint index, const(GLfloat)* v) PFNGLVERTEXATTRIB1FVPROC;
3371 	alias void function(GLuint index, GLshort x) PFNGLVERTEXATTRIB1SPROC;
3372 	alias void function(GLuint index, const(GLshort)* v) PFNGLVERTEXATTRIB1SVPROC;
3373 	alias void function(GLuint index, GLdouble x, GLdouble y) PFNGLVERTEXATTRIB2DPROC;
3374 	alias void function(GLuint index, const(GLdouble)* v) PFNGLVERTEXATTRIB2DVPROC;
3375 	alias void function(GLuint index, GLfloat x, GLfloat y) PFNGLVERTEXATTRIB2FPROC;
3376 	alias void function(GLuint index, const(GLfloat)* v) PFNGLVERTEXATTRIB2FVPROC;
3377 	alias void function(GLuint index, GLshort x, GLshort y) PFNGLVERTEXATTRIB2SPROC;
3378 	alias void function(GLuint index, const(GLshort)* v) PFNGLVERTEXATTRIB2SVPROC;
3379 	alias void function(GLuint index, GLdouble x, GLdouble y, GLdouble z) PFNGLVERTEXATTRIB3DPROC;
3380 	alias void function(GLuint index, const(GLdouble)* v) PFNGLVERTEXATTRIB3DVPROC;
3381 	alias void function(GLuint index, GLfloat x, GLfloat y, GLfloat z) PFNGLVERTEXATTRIB3FPROC;
3382 	alias void function(GLuint index, const(GLfloat)* v) PFNGLVERTEXATTRIB3FVPROC;
3383 	alias void function(GLuint index, GLshort x, GLshort y, GLshort z) PFNGLVERTEXATTRIB3SPROC;
3384 	alias void function(GLuint index, const(GLshort)* v) PFNGLVERTEXATTRIB3SVPROC;
3385 	alias void function(GLuint index, const(GLbyte)* v) PFNGLVERTEXATTRIB4NBVPROC;
3386 	alias void function(GLuint index, const(GLint)* v) PFNGLVERTEXATTRIB4NIVPROC;
3387 	alias void function(GLuint index, const(GLshort)* v) PFNGLVERTEXATTRIB4NSVPROC;
3388 	alias void function(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w) PFNGLVERTEXATTRIB4NUBPROC;
3389 	alias void function(GLuint index, const(GLubyte)* v) PFNGLVERTEXATTRIB4NUBVPROC;
3390 	alias void function(GLuint index, const(GLuint)* v) PFNGLVERTEXATTRIB4NUIVPROC;
3391 	alias void function(GLuint index, const(GLushort)* v) PFNGLVERTEXATTRIB4NUSVPROC;
3392 	alias void function(GLuint index, const(GLbyte)* v) PFNGLVERTEXATTRIB4BVPROC;
3393 	alias void function(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w) PFNGLVERTEXATTRIB4DPROC;
3394 	alias void function(GLuint index, const(GLdouble)* v) PFNGLVERTEXATTRIB4DVPROC;
3395 	alias void function(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w) PFNGLVERTEXATTRIB4FPROC;
3396 	alias void function(GLuint index, const(GLfloat)* v) PFNGLVERTEXATTRIB4FVPROC;
3397 	alias void function(GLuint index, const(GLint)* v) PFNGLVERTEXATTRIB4IVPROC;
3398 	alias void function(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w) PFNGLVERTEXATTRIB4SPROC;
3399 	alias void function(GLuint index, const(GLshort)* v) PFNGLVERTEXATTRIB4SVPROC;
3400 	alias void function(GLuint index, const(GLubyte)* v) PFNGLVERTEXATTRIB4UBVPROC;
3401 	alias void function(GLuint index, const(GLuint)* v) PFNGLVERTEXATTRIB4UIVPROC;
3402 	alias void function(GLuint index, const(GLushort)* v) PFNGLVERTEXATTRIB4USVPROC;
3403 	alias void function(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const(GLvoid)* pointer) PFNGLVERTEXATTRIBPOINTERPROC;
3404 
3405 	// GL_VERSION_2_1
3406 
3407 	export void glUniformMatrix2x3fv(GLint location, GLsizei count, GLboolean transpose, const(GLfloat)* value);
3408 	export void glUniformMatrix3x2fv(GLint location, GLsizei count, GLboolean transpose, const(GLfloat)* value);
3409 	export void glUniformMatrix2x4fv(GLint location, GLsizei count, GLboolean transpose, const(GLfloat)* value);
3410 	export void glUniformMatrix4x2fv(GLint location, GLsizei count, GLboolean transpose, const(GLfloat)* value);
3411 	export void glUniformMatrix3x4fv(GLint location, GLsizei count, GLboolean transpose, const(GLfloat)* value);
3412 	export void glUniformMatrix4x3fv(GLint location, GLsizei count, GLboolean transpose, const(GLfloat)* value);
3413 
3414 	alias void function(GLint location, GLsizei count, GLboolean transpose, const(GLfloat)* value) PFNGLUNIFORMMATRIX2X3FVPROC;
3415 	alias void function(GLint location, GLsizei count, GLboolean transpose, const(GLfloat)* value) PFNGLUNIFORMMATRIX3X2FVPROC;
3416 	alias void function(GLint location, GLsizei count, GLboolean transpose, const(GLfloat)* value) PFNGLUNIFORMMATRIX2X4FVPROC;
3417 	alias void function(GLint location, GLsizei count, GLboolean transpose, const(GLfloat)* value) PFNGLUNIFORMMATRIX4X2FVPROC;
3418 	alias void function(GLint location, GLsizei count, GLboolean transpose, const(GLfloat)* value) PFNGLUNIFORMMATRIX3X4FVPROC;
3419 	alias void function(GLint location, GLsizei count, GLboolean transpose, const(GLfloat)* value) PFNGLUNIFORMMATRIX4X3FVPROC;
3420 
3421 	// GL_VERSION_3_0
3422 
3423 	/* OpenGL 3.0 also reuses entry points from these extensions: */
3424 	/* ARB_framebuffer_object*/
3425 	/* ARB_map_buffer_range*/
3426 	/* ARB_vertex_array_object)*/
3427 	export void glColorMaski(GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
3428 	export void glGetBooleani_v(GLenum target, GLuint index, GLboolean* data);
3429 	export void glGetIntegeri_v(GLenum target, GLuint index, GLint* data);
3430 	export void glEnablei(GLenum target, GLuint index);
3431 	export void glDisablei(GLenum target, GLuint index);
3432 	export GLboolean glIsEnabledi(GLenum target, GLuint index);
3433 	export void glBeginTransformFeedback(GLenum primitiveMode);
3434 	export void glEndTransformFeedback();
3435 	export void glBindBufferRange(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
3436 	export void glBindBufferBase(GLenum target, GLuint index, GLuint buffer);
3437 	export void glTransformFeedbackVaryings(GLuint program, GLsizei count, const(GLchar)** varyings, GLenum bufferMode);
3438 	export void glGetTransformFeedbackVarying(GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLsizei* size, GLenum* type, GLchar* name);
3439 	export void glClampColor(GLenum target, GLenum clamp);
3440 	export void glBeginConditionalRender(GLuint id, GLenum mode);
3441 	export void glEndConditionalRender();
3442 	export void glVertexAttribIPointer(GLuint index, GLint size, GLenum type, GLsizei stride, const(GLvoid)* pointer);
3443 	export void glGetVertexAttribIiv(GLuint index, GLenum pname, GLint* params);
3444 	export void glGetVertexAttribIuiv(GLuint index, GLenum pname, GLuint* params);
3445 	export void glVertexAttribI1i(GLuint index, GLint x);
3446 	export void glVertexAttribI2i(GLuint index, GLint x, GLint y);
3447 	export void glVertexAttribI3i(GLuint index, GLint x, GLint y, GLint z);
3448 	export void glVertexAttribI4i(GLuint index, GLint x, GLint y, GLint z, GLint w);
3449 	export void glVertexAttribI1ui(GLuint index, GLuint x);
3450 	export void glVertexAttribI2ui(GLuint index, GLuint x, GLuint y);
3451 	export void glVertexAttribI3ui(GLuint index, GLuint x, GLuint y, GLuint z);
3452 	export void glVertexAttribI4ui(GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
3453 	export void glVertexAttribI1iv(GLuint index, const(GLint)* v);
3454 	export void glVertexAttribI2iv(GLuint index, const(GLint)* v);
3455 	export void glVertexAttribI3iv(GLuint index, const(GLint)* v);
3456 	export void glVertexAttribI4iv(GLuint index, const(GLint)* v);
3457 	export void glVertexAttribI1uiv(GLuint index, const(GLuint)* v);
3458 	export void glVertexAttribI2uiv(GLuint index, const(GLuint)* v);
3459 	export void glVertexAttribI3uiv(GLuint index, const(GLuint)* v);
3460 	export void glVertexAttribI4uiv(GLuint index, const(GLuint)* v);
3461 	export void glVertexAttribI4bv(GLuint index, const(GLbyte)* v);
3462 	export void glVertexAttribI4sv(GLuint index, const(GLshort)* v);
3463 	export void glVertexAttribI4ubv(GLuint index, const(GLubyte)* v);
3464 	export void glVertexAttribI4usv(GLuint index, const(GLushort)* v);
3465 	export void glGetUniformuiv(GLuint program, GLint location, GLuint* params);
3466 	export void glBindFragDataLocation(GLuint program, GLuint color, const(GLchar)* name);
3467 	export GLint glGetFragDataLocation(GLuint program, const(GLchar)* name);
3468 	export void glUniform1ui(GLint location, GLuint v0);
3469 	export void glUniform2ui(GLint location, GLuint v0, GLuint v1);
3470 	export void glUniform3ui(GLint location, GLuint v0, GLuint v1, GLuint v2);
3471 	export void glUniform4ui(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
3472 	export void glUniform1uiv(GLint location, GLsizei count, const(GLuint)* value);
3473 	export void glUniform2uiv(GLint location, GLsizei count, const(GLuint)* value);
3474 	export void glUniform3uiv(GLint location, GLsizei count, const(GLuint)* value);
3475 	export void glUniform4uiv(GLint location, GLsizei count, const(GLuint)* value);
3476 	export void glTexParameterIiv(GLenum target, GLenum pname, const(GLint)* params);
3477 	export void glTexParameterIuiv(GLenum target, GLenum pname, const(GLuint)* params);
3478 	export void glGetTexParameterIiv(GLenum target, GLenum pname, GLint* params);
3479 	export void glGetTexParameterIuiv(GLenum target, GLenum pname, GLuint* params);
3480 	export void glClearBufferiv(GLenum buffer, GLint drawbuffer, const(GLint)* value);
3481 	export void glClearBufferuiv(GLenum buffer, GLint drawbuffer, const(GLuint)* value);
3482 	export void glClearBufferfv(GLenum buffer, GLint drawbuffer, const(GLfloat)* value);
3483 	export void glClearBufferfi(GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
3484 	export const(GLubyte)* glGetStringi(GLenum name, GLuint index);
3485 
3486 	alias void function(GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a) PFNGLCOLORMASKIPROC;
3487 	alias void function(GLenum target, GLuint index, GLboolean* data) PFNGLGETBOOLEANI_VPROC;
3488 	alias void function(GLenum target, GLuint index, GLint* data) PFNGLGETINTEGERI_VPROC;
3489 	alias void function(GLenum target, GLuint index) PFNGLENABLEIPROC;
3490 	alias void function(GLenum target, GLuint index) PFNGLDISABLEIPROC;
3491 	alias GLboolean function(GLenum target, GLuint index) PFNGLISENABLEDIPROC;
3492 	alias void function(GLenum primitiveMode) PFNGLBEGINTRANSFORMFEEDBACKPROC;
3493 	alias void function() PFNGLENDTRANSFORMFEEDBACKPROC;
3494 	alias void function(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size) PFNGLBINDBUFFERRANGEPROC;
3495 	alias void function(GLenum target, GLuint index, GLuint buffer) PFNGLBINDBUFFERBASEPROC;
3496 	alias void function(GLuint program, GLsizei count, const(GLchar)** varyings, GLenum bufferMode) PFNGLTRANSFORMFEEDBACKVARYINGSPROC;
3497 	alias void function(GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLsizei* size, GLenum* type, GLchar* name) PFNGLGETTRANSFORMFEEDBACKVARYINGPROC;
3498 	alias void function(GLenum target, GLenum clamp) PFNGLCLAMPCOLORPROC;
3499 	alias void function(GLuint id, GLenum mode) PFNGLBEGINCONDITIONALRENDERPROC;
3500 	alias void function() PFNGLENDCONDITIONALRENDERPROC;
3501 	alias void function(GLuint index, GLint size, GLenum type, GLsizei stride, const(GLvoid)* pointer) PFNGLVERTEXATTRIBIPOINTERPROC;
3502 	alias void function(GLuint index, GLenum pname, GLint* params) PFNGLGETVERTEXATTRIBIIVPROC;
3503 	alias void function(GLuint index, GLenum pname, GLuint* params) PFNGLGETVERTEXATTRIBIUIVPROC;
3504 	alias void function(GLuint index, GLint x) PFNGLVERTEXATTRIBI1IPROC;
3505 	alias void function(GLuint index, GLint x, GLint y) PFNGLVERTEXATTRIBI2IPROC;
3506 	alias void function(GLuint index, GLint x, GLint y, GLint z) PFNGLVERTEXATTRIBI3IPROC;
3507 	alias void function(GLuint index, GLint x, GLint y, GLint z, GLint w) PFNGLVERTEXATTRIBI4IPROC;
3508 	alias void function(GLuint index, GLuint x) PFNGLVERTEXATTRIBI1UIPROC;
3509 	alias void function(GLuint index, GLuint x, GLuint y) PFNGLVERTEXATTRIBI2UIPROC;
3510 	alias void function(GLuint index, GLuint x, GLuint y, GLuint z) PFNGLVERTEXATTRIBI3UIPROC;
3511 	alias void function(GLuint index, GLuint x, GLuint y, GLuint z, GLuint w) PFNGLVERTEXATTRIBI4UIPROC;
3512 	alias void function(GLuint index, const(GLint)* v) PFNGLVERTEXATTRIBI1IVPROC;
3513 	alias void function(GLuint index, const(GLint)* v) PFNGLVERTEXATTRIBI2IVPROC;
3514 	alias void function(GLuint index, const(GLint)* v) PFNGLVERTEXATTRIBI3IVPROC;
3515 	alias void function(GLuint index, const(GLint)* v) PFNGLVERTEXATTRIBI4IVPROC;
3516 	alias void function(GLuint index, const(GLuint)* v) PFNGLVERTEXATTRIBI1UIVPROC;
3517 	alias void function(GLuint index, const(GLuint)* v) PFNGLVERTEXATTRIBI2UIVPROC;
3518 	alias void function(GLuint index, const(GLuint)* v) PFNGLVERTEXATTRIBI3UIVPROC;
3519 	alias void function(GLuint index, const(GLuint)* v) PFNGLVERTEXATTRIBI4UIVPROC;
3520 	alias void function(GLuint index, const(GLbyte)* v) PFNGLVERTEXATTRIBI4BVPROC;
3521 	alias void function(GLuint index, const(GLshort)* v) PFNGLVERTEXATTRIBI4SVPROC;
3522 	alias void function(GLuint index, const(GLubyte)* v) PFNGLVERTEXATTRIBI4UBVPROC;
3523 	alias void function(GLuint index, const(GLushort)* v) PFNGLVERTEXATTRIBI4USVPROC;
3524 	alias void function(GLuint program, GLint location, GLuint* params) PFNGLGETUNIFORMUIVPROC;
3525 	alias void function(GLuint program, GLuint color, const(GLchar)* name) PFNGLBINDFRAGDATALOCATIONPROC;
3526 	alias GLint function(GLuint program, const(GLchar)* name) PFNGLGETFRAGDATALOCATIONPROC;
3527 	alias void function(GLint location, GLuint v0) PFNGLUNIFORM1UIPROC;
3528 	alias void function(GLint location, GLuint v0, GLuint v1) PFNGLUNIFORM2UIPROC;
3529 	alias void function(GLint location, GLuint v0, GLuint v1, GLuint v2) PFNGLUNIFORM3UIPROC;
3530 	alias void function(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3) PFNGLUNIFORM4UIPROC;
3531 	alias void function(GLint location, GLsizei count, const(GLuint)* value) PFNGLUNIFORM1UIVPROC;
3532 	alias void function(GLint location, GLsizei count, const(GLuint)* value) PFNGLUNIFORM2UIVPROC;
3533 	alias void function(GLint location, GLsizei count, const(GLuint)* value) PFNGLUNIFORM3UIVPROC;
3534 	alias void function(GLint location, GLsizei count, const(GLuint)* value) PFNGLUNIFORM4UIVPROC;
3535 	alias void function(GLenum target, GLenum pname, const(GLint)* params) PFNGLTEXPARAMETERIIVPROC;
3536 	alias void function(GLenum target, GLenum pname, const(GLuint)* params) PFNGLTEXPARAMETERIUIVPROC;
3537 	alias void function(GLenum target, GLenum pname, GLint* params) PFNGLGETTEXPARAMETERIIVPROC;
3538 	alias void function(GLenum target, GLenum pname, GLuint* params) PFNGLGETTEXPARAMETERIUIVPROC;
3539 	alias void function(GLenum buffer, GLint drawbuffer, const(GLint)* value) PFNGLCLEARBUFFERIVPROC;
3540 	alias void function(GLenum buffer, GLint drawbuffer, const(GLuint)* value) PFNGLCLEARBUFFERUIVPROC;
3541 	alias void function(GLenum buffer, GLint drawbuffer, const(GLfloat)* value) PFNGLCLEARBUFFERFVPROC;
3542 	alias void function(GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil) PFNGLCLEARBUFFERFIPROC;
3543 	alias const(GLubyte)*  function(GLenum name, GLuint index) PFNGLGETSTRINGIPROC;
3544 
3545 	// GL_VERSION_3_1
3546 
3547 	/* OpenGL 3.1 also reuses entry points from these extensions:*/
3548 	/* ARB_copy_buffer*/
3549 	/* ARB_uniform_buffer_object*/
3550 	export void glDrawArraysInstanced(GLenum mode, GLint first, GLsizei count, GLsizei instancecount);
3551 	export void glDrawElementsInstanced(GLenum mode, GLsizei count, GLenum type, const(GLvoid)* indices, GLsizei instancecount);
3552 	export void glTexBuffer(GLenum target, GLenum internalformat, GLuint buffer);
3553 	export void glPrimitiveRestartIndex(GLuint index);
3554 
3555 	alias void function(GLenum mode, GLint first, GLsizei count, GLsizei instancecount) PFNGLDRAWARRAYSINSTANCEDPROC;
3556 	alias void function(GLenum mode, GLsizei count, GLenum type, const(GLvoid)* indices, GLsizei instancecount) PFNGLDRAWELEMENTSINSTANCEDPROC;
3557 	alias void function(GLenum target, GLenum internalformat, GLuint buffer) PFNGLTEXBUFFERPROC;
3558 	alias void function(GLuint index) PFNGLPRIMITIVERESTARTINDEXPROC;
3559 
3560 	// GL_VERSION_3_2
3561 
3562 	/* OpenGL 3.2 also reuses entry points from these extensions:*/
3563 	/* ARB_draw_elements_base_vertex*/
3564 	/* ARB_provoking_vertex*/
3565 	/* ARB_sync*/
3566 	/* ARB_texture_multisample*/
3567 	export void glGetInteger64i_v(GLenum target, GLuint index, GLint64* data);
3568 	export void glGetBufferParameteri64v(GLenum target, GLenum pname, GLint64* params);
3569 	export void glFramebufferTexture(GLenum target, GLenum attachment, GLuint texture, GLint level);
3570 
3571 	alias void function(GLenum target, GLuint index, GLint64* data) PFNGLGETINTEGER64I_VPROC;
3572 	alias void function(GLenum target, GLenum pname, GLint64* params) PFNGLGETBUFFERPARAMETERI64VPROC;
3573 	alias void function(GLenum target, GLenum attachment, GLuint texture, GLint level) PFNGLFRAMEBUFFERTEXTUREPROC;
3574 
3575 	// GL_VERSION_3_3
3576 
3577 	/* OpenGL 3.3 also reuses entry points from these extensions:*/
3578 	/* ARB_blend_func_extended*/
3579 	/* ARB_sampler_objects*/
3580 	/* ARB_explicit_attrib_location, but it has none*/
3581 	/* ARB_occlusion_query2(no entry points)*/
3582 	/* ARB_shader_bit_encoding(no entry points)*/
3583 	/* ARB_texture_rgb10_a2ui(no entry points)*/
3584 	/* ARB_texture_swizzle(no entry points)*/
3585 	/* ARB_timer_query*/
3586 	/* ARB_vertex_type_2_10_10_10_rev*/
3587 	export void glVertexAttribDivisor(GLuint index, GLuint divisor);
3588 
3589 	alias void function(GLuint index, GLuint divisor) PFNGLVERTEXATTRIBDIVISORPROC;
3590 
3591 	// GL_VERSION_4_0
3592 
3593 	/* OpenGL 4.0 also reuses entry points from these extensions:*/
3594 	/* ARB_texture_query_lod(no entry points)*/
3595 	/* ARB_draw_indirect*/
3596 	/* ARB_gpu_shader5(no entry points)*/
3597 	/* ARB_gpu_shader_fp64*/
3598 	/* ARB_shader_subroutine*/
3599 	/* ARB_tessellation_shader*/
3600 	/* ARB_texture_buffer_object_rgb32(no entry points)*/
3601 	/* ARB_texture_cube_map_array(no entry points)*/
3602 	/* ARB_texture_gather(no entry points)*/
3603 	/* ARB_transform_feedback2*/
3604 	/* ARB_transform_feedback3*/
3605 	export void glMinSampleShading(GLfloat value);
3606 	export void glBlendEquationi(GLuint buf, GLenum mode);
3607 	export void glBlendEquationSeparatei(GLuint buf, GLenum modeRGB, GLenum modeAlpha);
3608 	export void glBlendFunci(GLuint buf, GLenum src, GLenum dst);
3609 	export void glBlendFuncSeparatei(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
3610 
3611 	alias void function(GLfloat value) PFNGLMINSAMPLESHADINGPROC;
3612 	alias void function(GLuint buf, GLenum mode) PFNGLBLENDEQUATIONIPROC;
3613 	alias void function(GLuint buf, GLenum modeRGB, GLenum modeAlpha) PFNGLBLENDEQUATIONSEPARATEIPROC;
3614 	alias void function(GLuint buf, GLenum src, GLenum dst) PFNGLBLENDFUNCIPROC;
3615 	alias void function(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha) PFNGLBLENDFUNCSEPARATEIPROC;
3616 
3617 	// GL_VERSION_4_1
3618 
3619 	/* OpenGL 4.1 reuses entry points from these extensions:*/
3620 	/* ARB_ES2_compatibility*/
3621 	/* ARB_get_program_binary*/
3622 	/* ARB_separate_shader_objects*/
3623 	/* ARB_shader_precision(no entry points)*/
3624 	/* ARB_vertex_attrib_64bit*/
3625 	/* ARB_viewport_array*/
3626 
3627 	// GL_VERSION_4_2
3628 
3629 	/* OpenGL 4.2 reuses entry points from these extensions:*/
3630 	/* ARB_base_instance*/
3631 	/* ARB_shading_language_420pack(no entry points)*/
3632 	/* ARB_transform_feedback_instanced*/
3633 	/* ARB_compressed_texture_pixel_storage(no entry points)*/
3634 	/* ARB_conservative_depth(no entry points)*/
3635 	/* ARB_internalformat_query*/
3636 	/* ARB_map_buffer_alignment(no entry points)*/
3637 	/* ARB_shader_atomic_counters*/
3638 	/* ARB_shader_image_load_store*/
3639 	/* ARB_shading_language_packing(no entry points)*/
3640 	/* ARB_texture_storage*/
3641 
3642 	// GL_VERSION_4_3
3643 
3644 	/* OpenGL 4.3 reuses entry points from these extensions:*/
3645 	/* ARB_arrays_of_arrays(no entry points, GLSL only)*/
3646 	/* ARB_fragment_layer_viewport(no entry points, GLSL only)*/
3647 	/* ARB_shader_image_size(no entry points, GLSL only)*/
3648 	/* ARB_ES3_compatibility(no entry points)*/
3649 	/* ARB_clear_buffer_object*/
3650 	/* ARB_compute_shader*/
3651 	/* ARB_copy_image*/
3652 	/* KHR_debug(includes ARB_debug_output commands promoted to KHR without suffixes)*/
3653 	/* ARB_explicit_uniform_location(no entry points)*/
3654 	/* ARB_framebuffer_no_attachments*/
3655 	/* ARB_internalformat_query2*/
3656 	/* ARB_invalidate_subdata*/
3657 	/* ARB_multi_draw_indirect*/
3658 	/* ARB_program_interface_query*/
3659 	/* ARB_robust_buffer_access_behavior(no entry points)*/
3660 	/* ARB_shader_storage_buffer_object*/
3661 	/* ARB_stencil_texturing(no entry points)*/
3662 	/* ARB_texture_buffer_range*/
3663 	/* ARB_texture_query_levels(no entry points)*/
3664 	/* ARB_texture_storage_multisample*/
3665 	/* ARB_texture_view*/
3666 	/* ARB_vertex_attrib_binding*/
3667 
3668 	// GL_ARB_depth_buffer_float
3669 
3670 	// GL_ARB_framebuffer_object
3671 
3672 	export GLboolean glIsRenderbuffer(GLuint renderbuffer);
3673 	export void glBindRenderbuffer(GLenum target, GLuint renderbuffer);
3674 	export void glDeleteRenderbuffers(GLsizei n, const(GLuint)* renderbuffers);
3675 	export void glGenRenderbuffers(GLsizei n, GLuint* renderbuffers);
3676 	export void glRenderbufferStorage(GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
3677 	export void glGetRenderbufferParameteriv(GLenum target, GLenum pname, GLint* params);
3678 	export GLboolean glIsFramebuffer(GLuint framebuffer);
3679 	export void glBindFramebuffer(GLenum target, GLuint framebuffer);
3680 	export void glDeleteFramebuffers(GLsizei n, const(GLuint)* framebuffers);
3681 	export void glGenFramebuffers(GLsizei n, GLuint* framebuffers);
3682 	export GLenum glCheckFramebufferStatus(GLenum target);
3683 	export void glFramebufferTexture1D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
3684 	export void glFramebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
3685 	export void glFramebufferTexture3D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
3686 	export void glFramebufferRenderbuffer(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
3687 	export void glGetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, GLenum pname, GLint* params);
3688 	export void glGenerateMipmap(GLenum target);
3689 	export void glBlitFramebuffer(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
3690 	export void glRenderbufferStorageMultisample(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
3691 	export void glFramebufferTextureLayer(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
3692 
3693 	alias GLboolean function(GLuint renderbuffer) PFNGLISRENDERBUFFERPROC;
3694 	alias void function(GLenum target, GLuint renderbuffer) PFNGLBINDRENDERBUFFERPROC;
3695 	alias void function(GLsizei n, const(GLuint)* renderbuffers) PFNGLDELETERENDERBUFFERSPROC;
3696 	alias void function(GLsizei n, GLuint* renderbuffers) PFNGLGENRENDERBUFFERSPROC;
3697 	alias void function(GLenum target, GLenum internalformat, GLsizei width, GLsizei height) PFNGLRENDERBUFFERSTORAGEPROC;
3698 	alias void function(GLenum target, GLenum pname, GLint* params) PFNGLGETRENDERBUFFERPARAMETERIVPROC;
3699 	alias GLboolean function(GLuint framebuffer) PFNGLISFRAMEBUFFERPROC;
3700 	alias void function(GLenum target, GLuint framebuffer) PFNGLBINDFRAMEBUFFERPROC;
3701 	alias void function(GLsizei n, const(GLuint)* framebuffers) PFNGLDELETEFRAMEBUFFERSPROC;
3702 	alias void function(GLsizei n, GLuint* framebuffers) PFNGLGENFRAMEBUFFERSPROC;
3703 	alias GLenum function(GLenum target) PFNGLCHECKFRAMEBUFFERSTATUSPROC;
3704 	alias void function(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level) PFNGLFRAMEBUFFERTEXTURE1DPROC;
3705 	alias void function(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level) PFNGLFRAMEBUFFERTEXTURE2DPROC;
3706 	alias void function(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset) PFNGLFRAMEBUFFERTEXTURE3DPROC;
3707 	alias void function(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer) PFNGLFRAMEBUFFERRENDERBUFFERPROC;
3708 	alias void function(GLenum target, GLenum attachment, GLenum pname, GLint* params) PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC;
3709 	alias void function(GLenum target) PFNGLGENERATEMIPMAPPROC;
3710 	alias void function(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter) PFNGLBLITFRAMEBUFFERPROC;
3711 	alias void function(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height) PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC;
3712 	alias void function(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer) PFNGLFRAMEBUFFERTEXTURELAYERPROC;
3713 
3714 	// GL_ARB_framebuffer_sRGB
3715 
3716 	// GL_ARB_half_float_vertex
3717 
3718 	// GL_ARB_map_buffer_range
3719 	export GLvoid* glMapBufferRange(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access);
3720 	export void glFlushMappedBufferRange(GLenum target, GLintptr offset, GLsizeiptr length);
3721 
3722 	alias GLvoid* function(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access) PFNGLMAPBUFFERRANGEPROC;
3723 	alias void function(GLenum target, GLintptr offset, GLsizeiptr length) PFNGLFLUSHMAPPEDBUFFERRANGEPROC;
3724 
3725 	// GL_ARB_texture_compression_rgtc
3726 
3727 	// GL_ARB_texture_rg
3728 
3729 	// GL_ARB_vertex_array_object
3730 
3731 	export void glBindVertexArray(GLuint array);
3732 	export void glDeleteVertexArrays(GLsizei n, const(GLuint)* arrays);
3733 	export void glGenVertexArrays(GLsizei n, GLuint* arrays);
3734 	export GLboolean glIsVertexArray(GLuint array);
3735 
3736 	alias void function(GLuint array) PFNGLBINDVERTEXARRAYPROC;
3737 	alias void function(GLsizei n, const(GLuint)* arrays) PFNGLDELETEVERTEXARRAYSPROC;
3738 	alias void function(GLsizei n, GLuint* arrays) PFNGLGENVERTEXARRAYSPROC;
3739 	alias GLboolean function(GLuint array) PFNGLISVERTEXARRAYPROC;
3740 
3741 	// GL_ARB_uniform_buffer_object
3742 
3743 	export void glGetUniformIndices(GLuint program, GLsizei uniformCount, const(GLchar)** uniformNames, GLuint* uniformIndices);
3744 	export void glGetActiveUniformsiv(GLuint program, GLsizei uniformCount, const(GLuint)* uniformIndices, GLenum pname, GLint* params);
3745 	export void glGetActiveUniformName(GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformName);
3746 	export GLuint glGetUniformBlockIndex(GLuint program, const(GLchar)* uniformBlockName);
3747 	export void glGetActiveUniformBlockiv(GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint* params);
3748 	export void glGetActiveUniformBlockName(GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformBlockName);
3749 	export void glUniformBlockBinding(GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding);
3750 
3751 	alias void function(GLuint program, GLsizei uniformCount, const(GLchar)** uniformNames, GLuint* uniformIndices) PFNGLGETUNIFORMINDICESPROC;
3752 	alias void function(GLuint program, GLsizei uniformCount, const(GLuint)* uniformIndices, GLenum pname, GLint* params) PFNGLGETACTIVEUNIFORMSIVPROC;
3753 	alias void function(GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformName) PFNGLGETACTIVEUNIFORMNAMEPROC;
3754 	alias GLuint function(GLuint program, const(GLchar)* uniformBlockName) PFNGLGETUNIFORMBLOCKINDEXPROC;
3755 	alias void function(GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint* params) PFNGLGETACTIVEUNIFORMBLOCKIVPROC;
3756 	alias void function(GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformBlockName) PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC;
3757 	alias void function(GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding) PFNGLUNIFORMBLOCKBINDINGPROC;
3758 
3759 	// GL_ARB_copy_buffer
3760 
3761 	export void glCopyBufferSubData(GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
3762 
3763 	alias void function(GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size) PFNGLCOPYBUFFERSUBDATAPROC;
3764 
3765 	// GL_ARB_depth_clamp
3766 
3767 	// GL_ARB_draw_elements_base_vertex
3768 
3769 	export void glDrawElementsBaseVertex(GLenum mode, GLsizei count, GLenum type, const(GLvoid)* indices, GLint basevertex);
3770 	export void glDrawRangeElementsBaseVertex(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const(GLvoid)* indices, GLint basevertex);
3771 	export void glDrawElementsInstancedBaseVertex(GLenum mode, GLsizei count, GLenum type, const(GLvoid)* indices, GLsizei instancecount, GLint basevertex);
3772 	export void glMultiDrawElementsBaseVertex(GLenum mode, const(GLsizei)* count, GLenum type, const(GLvoid)** indices, GLsizei drawcount, const(GLint)* basevertex);
3773 
3774 	alias void function(GLenum mode, GLsizei count, GLenum type, const(GLvoid)* indices, GLint basevertex) PFNGLDRAWELEMENTSBASEVERTEXPROC;
3775 	alias void function(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const(GLvoid)* indices, GLint basevertex) PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC;
3776 	alias void function(GLenum mode, GLsizei count, GLenum type, const(GLvoid)* indices, GLsizei instancecount, GLint basevertex) PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC;
3777 	alias void function(GLenum mode, const(GLsizei)* count, GLenum type, const(GLvoid)** indices, GLsizei drawcount, const(GLint)* basevertex) PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC;
3778 
3779 	// GL_ARB_fragment_coord_conventions
3780 
3781 	// GL_ARB_provoking_vertex
3782 
3783 	export void glProvokingVertex(GLenum mode);
3784 
3785 	alias void function(GLenum mode) PFNGLPROVOKINGVERTEXPROC;
3786 
3787 	// GL_ARB_seamless_cube_map
3788 
3789 	// GL_ARB_sync
3790 
3791 	export GLsync glFenceSync(GLenum condition, GLbitfield flags);
3792 	export GLboolean glIsSync(GLsync sync);
3793 	export void glDeleteSync(GLsync sync);
3794 	export GLenum glClientWaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout);
3795 	export void glWaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout);
3796 	export void glGetInteger64v(GLenum pname, GLint64* params);
3797 	export void glGetSynciv(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei* length, GLint* values);
3798 
3799 	alias GLsync function(GLenum condition, GLbitfield flags) PFNGLFENCESYNCPROC;
3800 	alias GLboolean function(GLsync sync) PFNGLISSYNCPROC;
3801 	alias void function(GLsync sync) PFNGLDELETESYNCPROC;
3802 	alias GLenum function(GLsync sync, GLbitfield flags, GLuint64 timeout) PFNGLCLIENTWAITSYNCPROC;
3803 	alias void function(GLsync sync, GLbitfield flags, GLuint64 timeout) PFNGLWAITSYNCPROC;
3804 	alias void function(GLenum pname, GLint64* params) PFNGLGETINTEGER64VPROC;
3805 	alias void function(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei* length, GLint* values) PFNGLGETSYNCIVPROC;
3806 
3807 	// GL_ARB_texture_multisample
3808 
3809 	export void glTexImage2DMultisample(GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
3810 	export void glTexImage3DMultisample(GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
3811 	export void glGetMultisamplefv(GLenum pname, GLuint index, GLfloat* val);
3812 	export void glSampleMaski(GLuint index, GLbitfield mask);
3813 
3814 	alias void function(GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations) PFNGLTEXIMAGE2DMULTISAMPLEPROC;
3815 	alias void function(GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations) PFNGLTEXIMAGE3DMULTISAMPLEPROC;
3816 	alias void function(GLenum pname, GLuint index, GLfloat* val) PFNGLGETMULTISAMPLEFVPROC;
3817 	alias void function(GLuint index, GLbitfield mask) PFNGLSAMPLEMASKIPROC;
3818 
3819 	// GL_ARB_vertex_array_bgra
3820 
3821 	// GL_ARB_draw_buffers_blend
3822 
3823 	export void glBlendEquationiARB(GLuint buf, GLenum mode);
3824 	export void glBlendEquationSeparateiARB(GLuint buf, GLenum modeRGB, GLenum modeAlpha);
3825 	export void glBlendFunciARB(GLuint buf, GLenum src, GLenum dst);
3826 	export void glBlendFuncSeparateiARB(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
3827 
3828 	alias void function(GLuint buf, GLenum mode) PFNGLBLENDEQUATIONIARBPROC;
3829 	alias void function(GLuint buf, GLenum modeRGB, GLenum modeAlpha) PFNGLBLENDEQUATIONSEPARATEIARBPROC;
3830 	alias void function(GLuint buf, GLenum src, GLenum dst) PFNGLBLENDFUNCIARBPROC;
3831 	alias void function(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha) PFNGLBLENDFUNCSEPARATEIARBPROC;
3832 
3833 	// GL_ARB_sample_shading
3834 
3835 	export void glMinSampleShadingARB(GLfloat value);
3836 
3837 	alias void function(GLfloat value) PFNGLMINSAMPLESHADINGARBPROC;
3838 
3839 	// GL_ARB_texture_cube_map_array
3840 
3841 	// GL_ARB_texture_gather
3842 
3843 	// GL_ARB_texture_query_lod
3844 
3845 	// GL_ARB_shading_language_include
3846 
3847 	export void glNamedStringARB(GLenum type, GLint namelen, const(GLchar)* name, GLint stringlen, const(GLchar)* string);
3848 	export void glDeleteNamedStringARB(GLint namelen, const(GLchar)* name);
3849 	export void glCompileShaderIncludeARB(GLuint shader, GLsizei count, const(GLchar*)* path, const(GLint)* length);
3850 	export GLboolean glIsNamedStringARB(GLint namelen, const(GLchar)* name);
3851 	export void glGetNamedStringARB(GLint namelen, const(GLchar)* name, GLsizei bufSize, GLint* stringlen, GLchar* string);
3852 	export void glGetNamedStringivARB(GLint namelen, const(GLchar)* name, GLenum pname, GLint* params);
3853 
3854 	alias void function(GLenum type, GLint namelen, const(GLchar)* name, GLint stringlen, const(GLchar)* string) PFNGLNAMEDSTRINGARBPROC;
3855 	alias void function(GLint namelen, const(GLchar)* name) PFNGLDELETENAMEDSTRINGARBPROC;
3856 	alias void function(GLuint shader, GLsizei count, const(GLchar*)* path, const(GLint)* length) PFNGLCOMPILESHADERINCLUDEARBPROC;
3857 	alias GLboolean function(GLint namelen, const(GLchar)* name) PFNGLISNAMEDSTRINGARBPROC;
3858 	alias void function(GLint namelen, const(GLchar)* name, GLsizei bufSize, GLint* stringlen, GLchar* string) PFNGLGETNAMEDSTRINGARBPROC;
3859 	alias void function(GLint namelen, const(GLchar)* name, GLenum pname, GLint* params) PFNGLGETNAMEDSTRINGIVARBPROC;
3860 
3861 	// GL_ARB_texture_compression_bptc
3862 
3863 	// GL_ARB_blend_func_extended
3864 
3865 	export void glBindFragDataLocationIndexed(GLuint program, GLuint colorNumber, GLuint index, const(GLchar)* name);
3866 	export GLint glGetFragDataIndex(GLuint program, const(GLchar)* name);
3867 
3868 	alias void function(GLuint program, GLuint colorNumber, GLuint index, const(GLchar)* name) PFNGLBINDFRAGDATALOCATIONINDEXEDPROC;
3869 	alias GLint function(GLuint program, const(GLchar)* name) PFNGLGETFRAGDATAINDEXPROC;
3870 
3871 	// GL_ARB_explicit_attrib_location
3872 
3873 	// GL_ARB_occlusion_query2
3874 
3875 	// GL_ARB_sampler_objects
3876 
3877 	export void glGenSamplers(GLsizei count, GLuint* samplers);
3878 	export void glDeleteSamplers(GLsizei count, const(GLuint)* samplers);
3879 	export GLboolean glIsSampler(GLuint sampler);
3880 	export void glBindSampler(GLuint unit, GLuint sampler);
3881 	export void glSamplerParameteri(GLuint sampler, GLenum pname, GLint param);
3882 	export void glSamplerParameteriv(GLuint sampler, GLenum pname, const(GLint)* param);
3883 	export void glSamplerParameterf(GLuint sampler, GLenum pname, GLfloat param);
3884 	export void glSamplerParameterfv(GLuint sampler, GLenum pname, const(GLfloat)* param);
3885 	export void glSamplerParameterIiv(GLuint sampler, GLenum pname, const(GLint)* param);
3886 	export void glSamplerParameterIuiv(GLuint sampler, GLenum pname, const(GLuint)* param);
3887 	export void glGetSamplerParameteriv(GLuint sampler, GLenum pname, GLint* params);
3888 	export void glGetSamplerParameterIiv(GLuint sampler, GLenum pname, GLint* params);
3889 	export void glGetSamplerParameterfv(GLuint sampler, GLenum pname, GLfloat* params);
3890 	export void glGetSamplerParameterIuiv(GLuint sampler, GLenum pname, GLuint* params);
3891 
3892 	alias void function(GLsizei count, GLuint* samplers) PFNGLGENSAMPLERSPROC;
3893 	alias void function(GLsizei count, const(GLuint)* samplers) PFNGLDELETESAMPLERSPROC;
3894 	alias GLboolean function(GLuint sampler) PFNGLISSAMPLERPROC;
3895 	alias void function(GLuint unit, GLuint sampler) PFNGLBINDSAMPLERPROC;
3896 	alias void function(GLuint sampler, GLenum pname, GLint param) PFNGLSAMPLERPARAMETERIPROC;
3897 	alias void function(GLuint sampler, GLenum pname, const(GLint)* param) PFNGLSAMPLERPARAMETERIVPROC;
3898 	alias void function(GLuint sampler, GLenum pname, GLfloat param) PFNGLSAMPLERPARAMETERFPROC;
3899 	alias void function(GLuint sampler, GLenum pname, const(GLfloat)* param) PFNGLSAMPLERPARAMETERFVPROC;
3900 	alias void function(GLuint sampler, GLenum pname, const(GLint)* param) PFNGLSAMPLERPARAMETERIIVPROC;
3901 	alias void function(GLuint sampler, GLenum pname, const(GLuint)* param) PFNGLSAMPLERPARAMETERIUIVPROC;
3902 	alias void function(GLuint sampler, GLenum pname, GLint* params) PFNGLGETSAMPLERPARAMETERIVPROC;
3903 	alias void function(GLuint sampler, GLenum pname, GLint* params) PFNGLGETSAMPLERPARAMETERIIVPROC;
3904 	alias void function(GLuint sampler, GLenum pname, GLfloat* params) PFNGLGETSAMPLERPARAMETERFVPROC;
3905 	alias void function(GLuint sampler, GLenum pname, GLuint* params) PFNGLGETSAMPLERPARAMETERIUIVPROC;
3906 
3907 	// GL_ARB_shader_bit_encoding
3908 
3909 	// GL_ARB_texture_rgb10_a2ui
3910 
3911 	// GL_ARB_texture_swizzle
3912 
3913 	// GL_ARB_timer_query
3914 
3915 	export void glQueryCounter(GLuint id, GLenum target);
3916 	export void glGetQueryObjecti64v(GLuint id, GLenum pname, GLint64* params);
3917 	export void glGetQueryObjectui64v(GLuint id, GLenum pname, GLuint64* params);
3918 
3919 	alias void function(GLuint id, GLenum target) PFNGLQUERYCOUNTERPROC;
3920 	alias void function(GLuint id, GLenum pname, GLint64* params) PFNGLGETQUERYOBJECTI64VPROC;
3921 	alias void function(GLuint id, GLenum pname, GLuint64* params) PFNGLGETQUERYOBJECTUI64VPROC;
3922 
3923 	// GL_ARB_vertex_type_2_10_10_10_rev
3924 
3925 	export void glVertexP2ui(GLenum type, GLuint value);
3926 	export void glVertexP2uiv(GLenum type, const(GLuint)* value);
3927 	export void glVertexP3ui(GLenum type, GLuint value);
3928 	export void glVertexP3uiv(GLenum type, const(GLuint)* value);
3929 	export void glVertexP4ui(GLenum type, GLuint value);
3930 	export void glVertexP4uiv(GLenum type, const(GLuint)* value);
3931 	export void glTexCoordP1ui(GLenum type, GLuint coords);
3932 	export void glTexCoordP1uiv(GLenum type, const(GLuint)* coords);
3933 	export void glTexCoordP2ui(GLenum type, GLuint coords);
3934 	export void glTexCoordP2uiv(GLenum type, const(GLuint)* coords);
3935 	export void glTexCoordP3ui(GLenum type, GLuint coords);
3936 	export void glTexCoordP3uiv(GLenum type, const(GLuint)* coords);
3937 	export void glTexCoordP4ui(GLenum type, GLuint coords);
3938 	export void glTexCoordP4uiv(GLenum type, const(GLuint)* coords);
3939 	export void glMultiTexCoordP1ui(GLenum texture, GLenum type, GLuint coords);
3940 	export void glMultiTexCoordP1uiv(GLenum texture, GLenum type, const(GLuint)* coords);
3941 	export void glMultiTexCoordP2ui(GLenum texture, GLenum type, GLuint coords);
3942 	export void glMultiTexCoordP2uiv(GLenum texture, GLenum type, const(GLuint)* coords);
3943 	export void glMultiTexCoordP3ui(GLenum texture, GLenum type, GLuint coords);
3944 	export void glMultiTexCoordP3uiv(GLenum texture, GLenum type, const(GLuint)* coords);
3945 	export void glMultiTexCoordP4ui(GLenum texture, GLenum type, GLuint coords);
3946 	export void glMultiTexCoordP4uiv(GLenum texture, GLenum type, const(GLuint)* coords);
3947 	export void glNormalP3ui(GLenum type, GLuint coords);
3948 	export void glNormalP3uiv(GLenum type, const(GLuint)* coords);
3949 	export void glColorP3ui(GLenum type, GLuint color);
3950 	export void glColorP3uiv(GLenum type, const(GLuint)* color);
3951 	export void glColorP4ui(GLenum type, GLuint color);
3952 	export void glColorP4uiv(GLenum type, const(GLuint)* color);
3953 	export void glSecondaryColorP3ui(GLenum type, GLuint color);
3954 	export void glSecondaryColorP3uiv(GLenum type, const(GLuint)* color);
3955 	export void glVertexAttribP1ui(GLuint index, GLenum type, GLboolean normalized, GLuint value);
3956 	export void glVertexAttribP1uiv(GLuint index, GLenum type, GLboolean normalized, const(GLuint)* value);
3957 	export void glVertexAttribP2ui(GLuint index, GLenum type, GLboolean normalized, GLuint value);
3958 	export void glVertexAttribP2uiv(GLuint index, GLenum type, GLboolean normalized, const(GLuint)* value);
3959 	export void glVertexAttribP3ui(GLuint index, GLenum type, GLboolean normalized, GLuint value);
3960 	export void glVertexAttribP3uiv(GLuint index, GLenum type, GLboolean normalized, const(GLuint)* value);
3961 	export void glVertexAttribP4ui(GLuint index, GLenum type, GLboolean normalized, GLuint value);
3962 	export void glVertexAttribP4uiv(GLuint index, GLenum type, GLboolean normalized, const(GLuint)* value);
3963 
3964 	alias void function(GLenum type, GLuint value) PFNGLVERTEXP2UIPROC;
3965 	alias void function(GLenum type, const(GLuint)* value) PFNGLVERTEXP2UIVPROC;
3966 	alias void function(GLenum type, GLuint value) PFNGLVERTEXP3UIPROC;
3967 	alias void function(GLenum type, const(GLuint)* value) PFNGLVERTEXP3UIVPROC;
3968 	alias void function(GLenum type, GLuint value) PFNGLVERTEXP4UIPROC;
3969 	alias void function(GLenum type, const(GLuint)* value) PFNGLVERTEXP4UIVPROC;
3970 	alias void function(GLenum type, GLuint coords) PFNGLTEXCOORDP1UIPROC;
3971 	alias void function(GLenum type, const(GLuint)* coords) PFNGLTEXCOORDP1UIVPROC;
3972 	alias void function(GLenum type, GLuint coords) PFNGLTEXCOORDP2UIPROC;
3973 	alias void function(GLenum type, const(GLuint)* coords) PFNGLTEXCOORDP2UIVPROC;
3974 	alias void function(GLenum type, GLuint coords) PFNGLTEXCOORDP3UIPROC;
3975 	alias void function(GLenum type, const(GLuint)* coords) PFNGLTEXCOORDP3UIVPROC;
3976 	alias void function(GLenum type, GLuint coords) PFNGLTEXCOORDP4UIPROC;
3977 	alias void function(GLenum type, const(GLuint)* coords) PFNGLTEXCOORDP4UIVPROC;
3978 	alias void function(GLenum texture, GLenum type, GLuint coords) PFNGLMULTITEXCOORDP1UIPROC;
3979 	alias void function(GLenum texture, GLenum type, const(GLuint)* coords) PFNGLMULTITEXCOORDP1UIVPROC;
3980 	alias void function(GLenum texture, GLenum type, GLuint coords) PFNGLMULTITEXCOORDP2UIPROC;
3981 	alias void function(GLenum texture, GLenum type, const(GLuint)* coords) PFNGLMULTITEXCOORDP2UIVPROC;
3982 	alias void function(GLenum texture, GLenum type, GLuint coords) PFNGLMULTITEXCOORDP3UIPROC;
3983 	alias void function(GLenum texture, GLenum type, const(GLuint)* coords) PFNGLMULTITEXCOORDP3UIVPROC;
3984 	alias void function(GLenum texture, GLenum type, GLuint coords) PFNGLMULTITEXCOORDP4UIPROC;
3985 	alias void function(GLenum texture, GLenum type, const(GLuint)* coords) PFNGLMULTITEXCOORDP4UIVPROC;
3986 	alias void function(GLenum type, GLuint coords) PFNGLNORMALP3UIPROC;
3987 	alias void function(GLenum type, const(GLuint)* coords) PFNGLNORMALP3UIVPROC;
3988 	alias void function(GLenum type, GLuint color) PFNGLCOLORP3UIPROC;
3989 	alias void function(GLenum type, const(GLuint)* color) PFNGLCOLORP3UIVPROC;
3990 	alias void function(GLenum type, GLuint color) PFNGLCOLORP4UIPROC;
3991 	alias void function(GLenum type, const(GLuint)* color) PFNGLCOLORP4UIVPROC;
3992 	alias void function(GLenum type, GLuint color) PFNGLSECONDARYCOLORP3UIPROC;
3993 	alias void function(GLenum type, const(GLuint)* color) PFNGLSECONDARYCOLORP3UIVPROC;
3994 	alias void function(GLuint index, GLenum type, GLboolean normalized, GLuint value) PFNGLVERTEXATTRIBP1UIPROC;
3995 	alias void function(GLuint index, GLenum type, GLboolean normalized, const(GLuint)* value) PFNGLVERTEXATTRIBP1UIVPROC;
3996 	alias void function(GLuint index, GLenum type, GLboolean normalized, GLuint value) PFNGLVERTEXATTRIBP2UIPROC;
3997 	alias void function(GLuint index, GLenum type, GLboolean normalized, const(GLuint)* value) PFNGLVERTEXATTRIBP2UIVPROC;
3998 	alias void function(GLuint index, GLenum type, GLboolean normalized, GLuint value) PFNGLVERTEXATTRIBP3UIPROC;
3999 	alias void function(GLuint index, GLenum type, GLboolean normalized, const(GLuint)* value) PFNGLVERTEXATTRIBP3UIVPROC;
4000 	alias void function(GLuint index, GLenum type, GLboolean normalized, GLuint value) PFNGLVERTEXATTRIBP4UIPROC;
4001 	alias void function(GLuint index, GLenum type, GLboolean normalized, const(GLuint)* value) PFNGLVERTEXATTRIBP4UIVPROC;
4002 
4003 	// GL_ARB_draw_indirect
4004 
4005 	export void glDrawArraysIndirect(GLenum mode, const(GLvoid)* indirect);
4006 	export void glDrawElementsIndirect(GLenum mode, GLenum type, const(GLvoid)* indirect);
4007 
4008 	alias void function(GLenum mode, const(GLvoid)* indirect) PFNGLDRAWARRAYSINDIRECTPROC;
4009 	alias void function(GLenum mode, GLenum type, const(GLvoid)* indirect) PFNGLDRAWELEMENTSINDIRECTPROC;
4010 
4011 	// GL_ARB_gpu_shader5
4012 
4013 	// GL_ARB_gpu_shader_fp64
4014 
4015 	export void glUniform1d(GLint location, GLdouble x);
4016 	export void glUniform2d(GLint location, GLdouble x, GLdouble y);
4017 	export void glUniform3d(GLint location, GLdouble x, GLdouble y, GLdouble z);
4018 	export void glUniform4d(GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
4019 	export void glUniform1dv(GLint location, GLsizei count, const(GLdouble)* value);
4020 	export void glUniform2dv(GLint location, GLsizei count, const(GLdouble)* value);
4021 	export void glUniform3dv(GLint location, GLsizei count, const(GLdouble)* value);
4022 	export void glUniform4dv(GLint location, GLsizei count, const(GLdouble)* value);
4023 	export void glUniformMatrix2dv(GLint location, GLsizei count, GLboolean transpose, const(GLdouble)* value);
4024 	export void glUniformMatrix3dv(GLint location, GLsizei count, GLboolean transpose, const(GLdouble)* value);
4025 	export void glUniformMatrix4dv(GLint location, GLsizei count, GLboolean transpose, const(GLdouble)* value);
4026 	export void glUniformMatrix2x3dv(GLint location, GLsizei count, GLboolean transpose, const(GLdouble)* value);
4027 	export void glUniformMatrix2x4dv(GLint location, GLsizei count, GLboolean transpose, const(GLdouble)* value);
4028 	export void glUniformMatrix3x2dv(GLint location, GLsizei count, GLboolean transpose, const(GLdouble)* value);
4029 	export void glUniformMatrix3x4dv(GLint location, GLsizei count, GLboolean transpose, const(GLdouble)* value);
4030 	export void glUniformMatrix4x2dv(GLint location, GLsizei count, GLboolean transpose, const(GLdouble)* value);
4031 	export void glUniformMatrix4x3dv(GLint location, GLsizei count, GLboolean transpose, const(GLdouble)* value);
4032 	export void glGetUniformdv(GLuint program, GLint location, GLdouble* params);
4033 
4034 	alias void function(GLint location, GLdouble x) PFNGLUNIFORM1DPROC;
4035 	alias void function(GLint location, GLdouble x, GLdouble y) PFNGLUNIFORM2DPROC;
4036 	alias void function(GLint location, GLdouble x, GLdouble y, GLdouble z) PFNGLUNIFORM3DPROC;
4037 	alias void function(GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w) PFNGLUNIFORM4DPROC;
4038 	alias void function(GLint location, GLsizei count, const(GLdouble)* value) PFNGLUNIFORM1DVPROC;
4039 	alias void function(GLint location, GLsizei count, const(GLdouble)* value) PFNGLUNIFORM2DVPROC;
4040 	alias void function(GLint location, GLsizei count, const(GLdouble)* value) PFNGLUNIFORM3DVPROC;
4041 	alias void function(GLint location, GLsizei count, const(GLdouble)* value) PFNGLUNIFORM4DVPROC;
4042 	alias void function(GLint location, GLsizei count, GLboolean transpose, const(GLdouble)* value) PFNGLUNIFORMMATRIX2DVPROC;
4043 	alias void function(GLint location, GLsizei count, GLboolean transpose, const(GLdouble)* value) PFNGLUNIFORMMATRIX3DVPROC;
4044 	alias void function(GLint location, GLsizei count, GLboolean transpose, const(GLdouble)* value) PFNGLUNIFORMMATRIX4DVPROC;
4045 	alias void function(GLint location, GLsizei count, GLboolean transpose, const(GLdouble)* value) PFNGLUNIFORMMATRIX2X3DVPROC;
4046 	alias void function(GLint location, GLsizei count, GLboolean transpose, const(GLdouble)* value) PFNGLUNIFORMMATRIX2X4DVPROC;
4047 	alias void function(GLint location, GLsizei count, GLboolean transpose, const(GLdouble)* value) PFNGLUNIFORMMATRIX3X2DVPROC;
4048 	alias void function(GLint location, GLsizei count, GLboolean transpose, const(GLdouble)* value) PFNGLUNIFORMMATRIX3X4DVPROC;
4049 	alias void function(GLint location, GLsizei count, GLboolean transpose, const(GLdouble)* value) PFNGLUNIFORMMATRIX4X2DVPROC;
4050 	alias void function(GLint location, GLsizei count, GLboolean transpose, const(GLdouble)* value) PFNGLUNIFORMMATRIX4X3DVPROC;
4051 	alias void function(GLuint program, GLint location, GLdouble* params) PFNGLGETUNIFORMDVPROC;
4052 
4053 	// GL_ARB_shader_subroutine
4054 
4055 	export GLint glGetSubroutineUniformLocation(GLuint program, GLenum shadertype, const(GLchar)* name);
4056 	export GLuint glGetSubroutineIndex(GLuint program, GLenum shadertype, const(GLchar)* name);
4057 	export void glGetActiveSubroutineUniformiv(GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint* values);
4058 	export void glGetActiveSubroutineUniformName(GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei* length, GLchar* name);
4059 	export void glGetActiveSubroutineName(GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei* length, GLchar* name);
4060 	export void glUniformSubroutinesuiv(GLenum shadertype, GLsizei count, const(GLuint)* indices);
4061 	export void glGetUniformSubroutineuiv(GLenum shadertype, GLint location, GLuint* params);
4062 	export void glGetProgramStageiv(GLuint program, GLenum shadertype, GLenum pname, GLint* values);
4063 
4064 	alias GLint function(GLuint program, GLenum shadertype, const(GLchar)* name) PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC;
4065 	alias GLuint function(GLuint program, GLenum shadertype, const(GLchar)* name) PFNGLGETSUBROUTINEINDEXPROC;
4066 	alias void function(GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint* values) PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC;
4067 	alias void function(GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei* length, GLchar* name) PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC;
4068 	alias void function(GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei* length, GLchar* name) PFNGLGETACTIVESUBROUTINENAMEPROC;
4069 	alias void function(GLenum shadertype, GLsizei count, const(GLuint)* indices) PFNGLUNIFORMSUBROUTINESUIVPROC;
4070 	alias void function(GLenum shadertype, GLint location, GLuint* params) PFNGLGETUNIFORMSUBROUTINEUIVPROC;
4071 	alias void function(GLuint program, GLenum shadertype, GLenum pname, GLint* values) PFNGLGETPROGRAMSTAGEIVPROC;
4072 
4073 	// GL_ARB_tessellation_shader
4074 
4075 	export void glPatchParameteri(GLenum pname, GLint value);
4076 	export void glPatchParameterfv(GLenum pname, const(GLfloat)* values);
4077 
4078 	alias void function(GLenum pname, GLint value) PFNGLPATCHPARAMETERIPROC;
4079 	alias void function(GLenum pname, const(GLfloat)* values) PFNGLPATCHPARAMETERFVPROC;
4080 
4081 	// GL_ARB_texture_buffer_object_rgb32
4082 
4083 	// GL_ARB_transform_feedback2
4084 
4085 	export void glBindTransformFeedback(GLenum target, GLuint id);
4086 	export void glDeleteTransformFeedbacks(GLsizei n, const(GLuint)* ids);
4087 	export void glGenTransformFeedbacks(GLsizei n, GLuint* ids);
4088 	export GLboolean glIsTransformFeedback(GLuint id);
4089 	export void glPauseTransformFeedback();
4090 	export void glResumeTransformFeedback();
4091 	export void glDrawTransformFeedback(GLenum mode, GLuint id);
4092 
4093 	alias void function(GLenum target, GLuint id) PFNGLBINDTRANSFORMFEEDBACKPROC;
4094 	alias void function(GLsizei n, const(GLuint)* ids) PFNGLDELETETRANSFORMFEEDBACKSPROC;
4095 	alias void function(GLsizei n, GLuint* ids) PFNGLGENTRANSFORMFEEDBACKSPROC;
4096 	alias GLboolean function(GLuint id) PFNGLISTRANSFORMFEEDBACKPROC;
4097 	alias void function() PFNGLPAUSETRANSFORMFEEDBACKPROC;
4098 	alias void function() PFNGLRESUMETRANSFORMFEEDBACKPROC;
4099 	alias void function(GLenum mode, GLuint id) PFNGLDRAWTRANSFORMFEEDBACKPROC;
4100 
4101 	// GL_ARB_transform_feedback3
4102 
4103 	export void glDrawTransformFeedbackStream(GLenum mode, GLuint id, GLuint stream);
4104 	export void glBeginQueryIndexed(GLenum target, GLuint index, GLuint id);
4105 	export void glEndQueryIndexed(GLenum target, GLuint index);
4106 	export void glGetQueryIndexediv(GLenum target, GLuint index, GLenum pname, GLint* params);
4107 
4108 	alias void function(GLenum mode, GLuint id, GLuint stream) PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC;
4109 	alias void function(GLenum target, GLuint index, GLuint id) PFNGLBEGINQUERYINDEXEDPROC;
4110 	alias void function(GLenum target, GLuint index) PFNGLENDQUERYINDEXEDPROC;
4111 	alias void function(GLenum target, GLuint index, GLenum pname, GLint* params) PFNGLGETQUERYINDEXEDIVPROC;
4112 
4113 	// GL_ARB_ES2_compatibility
4114 
4115 	export void glReleaseShaderCompiler();
4116 	export void glShaderBinary(GLsizei count, const(GLuint)* shaders, GLenum binaryformat, const(GLvoid)* binary, GLsizei length);
4117 	export void glGetShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision);
4118 	export void glDepthRangef(GLfloat n, GLfloat f);
4119 	export void glClearDepthf(GLfloat d);
4120 
4121 	alias void function() PFNGLRELEASESHADERCOMPILERPROC;
4122 	alias void function(GLsizei count, const(GLuint)* shaders, GLenum binaryformat, const(GLvoid)* binary, GLsizei length) PFNGLSHADERBINARYPROC;
4123 	alias void function(GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision) PFNGLGETSHADERPRECISIONFORMATPROC;
4124 	alias void function(GLfloat n, GLfloat f) PFNGLDEPTHRANGEFPROC;
4125 	alias void function(GLfloat d) PFNGLCLEARDEPTHFPROC;
4126 
4127 	// GL_ARB_get_program_binary
4128 
4129 	export void glGetProgramBinary(GLuint program, GLsizei bufSize, GLsizei* length, GLenum* binaryFormat, GLvoid* binary);
4130 	export void glProgramBinary(GLuint program, GLenum binaryFormat, const(GLvoid)* binary, GLsizei length);
4131 	export void glProgramParameteri(GLuint program, GLenum pname, GLint value);
4132 
4133 	alias void function(GLuint program, GLsizei bufSize, GLsizei* length, GLenum* binaryFormat, GLvoid* binary) PFNGLGETPROGRAMBINARYPROC;
4134 	alias void function(GLuint program, GLenum binaryFormat, const(GLvoid)* binary, GLsizei length) PFNGLPROGRAMBINARYPROC;
4135 	alias void function(GLuint program, GLenum pname, GLint value) PFNGLPROGRAMPARAMETERIPROC;
4136 
4137 	// GL_ARB_separate_shader_objects
4138 
4139 	export void glUseProgramStages(GLuint pipeline, GLbitfield stages, GLuint program);
4140 	export void glActiveShaderProgram(GLuint pipeline, GLuint program);
4141 	export GLuint glCreateShaderProgramv(GLenum type, GLsizei count, const(GLchar)** strings);
4142 	export void glBindProgramPipeline(GLuint pipeline);
4143 	export void glDeleteProgramPipelines(GLsizei n, const(GLuint)* pipelines);
4144 	export void glGenProgramPipelines(GLsizei n, GLuint* pipelines);
4145 	export GLboolean glIsProgramPipeline(GLuint pipeline);
4146 	export void glGetProgramPipelineiv(GLuint pipeline, GLenum pname, GLint* params);
4147 	export void glProgramUniform1i(GLuint program, GLint location, GLint v0);
4148 	export void glProgramUniform1iv(GLuint program, GLint location, GLsizei count, const(GLint)* value);
4149 	export void glProgramUniform1f(GLuint program, GLint location, GLfloat v0);
4150 	export void glProgramUniform1fv(GLuint program, GLint location, GLsizei count, const(GLfloat)* value);
4151 	export void glProgramUniform1d(GLuint program, GLint location, GLdouble v0);
4152 	export void glProgramUniform1dv(GLuint program, GLint location, GLsizei count, const(GLdouble)* value);
4153 	export void glProgramUniform1ui(GLuint program, GLint location, GLuint v0);
4154 	export void glProgramUniform1uiv(GLuint program, GLint location, GLsizei count, const(GLuint)* value);
4155 	export void glProgramUniform2i(GLuint program, GLint location, GLint v0, GLint v1);
4156 	export void glProgramUniform2iv(GLuint program, GLint location, GLsizei count, const(GLint)* value);
4157 	export void glProgramUniform2f(GLuint program, GLint location, GLfloat v0, GLfloat v1);
4158 	export void glProgramUniform2fv(GLuint program, GLint location, GLsizei count, const(GLfloat)* value);
4159 	export void glProgramUniform2d(GLuint program, GLint location, GLdouble v0, GLdouble v1);
4160 	export void glProgramUniform2dv(GLuint program, GLint location, GLsizei count, const(GLdouble)* value);
4161 	export void glProgramUniform2ui(GLuint program, GLint location, GLuint v0, GLuint v1);
4162 	export void glProgramUniform2uiv(GLuint program, GLint location, GLsizei count, const(GLuint)* value);
4163 	export void glProgramUniform3i(GLuint program, GLint location, GLint v0, GLint v1, GLint v2);
4164 	export void glProgramUniform3iv(GLuint program, GLint location, GLsizei count, const(GLint)* value);
4165 	export void glProgramUniform3f(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
4166 	export void glProgramUniform3fv(GLuint program, GLint location, GLsizei count, const(GLfloat)* value);
4167 	export void glProgramUniform3d(GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2);
4168 	export void glProgramUniform3dv(GLuint program, GLint location, GLsizei count, const(GLdouble)* value);
4169 	export void glProgramUniform3ui(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2);
4170 	export void glProgramUniform3uiv(GLuint program, GLint location, GLsizei count, const(GLuint)* value);
4171 	export void glProgramUniform4i(GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
4172 	export void glProgramUniform4iv(GLuint program, GLint location, GLsizei count, const(GLint)* value);
4173 	export void glProgramUniform4f(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
4174 	export void glProgramUniform4fv(GLuint program, GLint location, GLsizei count, const(GLfloat)* value);
4175 	export void glProgramUniform4d(GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3);
4176 	export void glProgramUniform4dv(GLuint program, GLint location, GLsizei count, const(GLdouble)* value);
4177 	export void glProgramUniform4ui(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
4178 	export void glProgramUniform4uiv(GLuint program, GLint location, GLsizei count, const(GLuint)* value);
4179 	export void glProgramUniformMatrix2fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const(GLfloat)* value);
4180 	export void glProgramUniformMatrix3fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const(GLfloat)* value);
4181 	export void glProgramUniformMatrix4fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const(GLfloat)* value);
4182 	export void glProgramUniformMatrix2dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const(GLdouble)* value);
4183 	export void glProgramUniformMatrix3dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const(GLdouble)* value);
4184 	export void glProgramUniformMatrix4dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const(GLdouble)* value);
4185 	export void glProgramUniformMatrix2x3fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const(GLfloat)* value);
4186 	export void glProgramUniformMatrix3x2fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const(GLfloat)* value);
4187 	export void glProgramUniformMatrix2x4fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const(GLfloat)* value);
4188 	export void glProgramUniformMatrix4x2fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const(GLfloat)* value);
4189 	export void glProgramUniformMatrix3x4fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const(GLfloat)* value);
4190 	export void glProgramUniformMatrix4x3fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const(GLfloat)* value);
4191 	export void glProgramUniformMatrix2x3dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const(GLdouble)* value);
4192 	export void glProgramUniformMatrix3x2dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const(GLdouble)* value);
4193 	export void glProgramUniformMatrix2x4dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const(GLdouble)* value);
4194 	export void glProgramUniformMatrix4x2dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const(GLdouble)* value);
4195 	export void glProgramUniformMatrix3x4dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const(GLdouble)* value);
4196 	export void glProgramUniformMatrix4x3dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const(GLdouble)* value);
4197 	export void glValidateProgramPipeline(GLuint pipeline);
4198 	export void glGetProgramPipelineInfoLog(GLuint pipeline, GLsizei bufSize, GLsizei* length, GLchar* infoLog);
4199 
4200 	alias void function(GLuint pipeline, GLbitfield stages, GLuint program) PFNGLUSEPROGRAMSTAGESPROC;
4201 	alias void function(GLuint pipeline, GLuint program) PFNGLACTIVESHADERPROGRAMPROC;
4202 	alias GLuint function(GLenum type, GLsizei count, const(GLchar)** strings) PFNGLCREATESHADERPROGRAMVPROC;
4203 	alias void function(GLuint pipeline) PFNGLBINDPROGRAMPIPELINEPROC;
4204 	alias void function(GLsizei n, const(GLuint)* pipelines) PFNGLDELETEPROGRAMPIPELINESPROC;
4205 	alias void function(GLsizei n, GLuint* pipelines) PFNGLGENPROGRAMPIPELINESPROC;
4206 	alias GLboolean function(GLuint pipeline) PFNGLISPROGRAMPIPELINEPROC;
4207 	alias void function(GLuint pipeline, GLenum pname, GLint* params) PFNGLGETPROGRAMPIPELINEIVPROC;
4208 	alias void function(GLuint program, GLint location, GLint v0) PFNGLPROGRAMUNIFORM1IPROC;
4209 	alias void function(GLuint program, GLint location, GLsizei count, const(GLint)* value) PFNGLPROGRAMUNIFORM1IVPROC;
4210 	alias void function(GLuint program, GLint location, GLfloat v0) PFNGLPROGRAMUNIFORM1FPROC;
4211 	alias void function(GLuint program, GLint location, GLsizei count, const(GLfloat)* value) PFNGLPROGRAMUNIFORM1FVPROC;
4212 	alias void function(GLuint program, GLint location, GLdouble v0) PFNGLPROGRAMUNIFORM1DPROC;
4213 	alias void function(GLuint program, GLint location, GLsizei count, const(GLdouble)* value) PFNGLPROGRAMUNIFORM1DVPROC;
4214 	alias void function(GLuint program, GLint location, GLuint v0) PFNGLPROGRAMUNIFORM1UIPROC;
4215 	alias void function(GLuint program, GLint location, GLsizei count, const(GLuint)* value) PFNGLPROGRAMUNIFORM1UIVPROC;
4216 	alias void function(GLuint program, GLint location, GLint v0, GLint v1) PFNGLPROGRAMUNIFORM2IPROC;
4217 	alias void function(GLuint program, GLint location, GLsizei count, const(GLint)* value) PFNGLPROGRAMUNIFORM2IVPROC;
4218 	alias void function(GLuint program, GLint location, GLfloat v0, GLfloat v1) PFNGLPROGRAMUNIFORM2FPROC;
4219 	alias void function(GLuint program, GLint location, GLsizei count, const(GLfloat)* value) PFNGLPROGRAMUNIFORM2FVPROC;
4220 	alias void function(GLuint program, GLint location, GLdouble v0, GLdouble v1) PFNGLPROGRAMUNIFORM2DPROC;
4221 	alias void function(GLuint program, GLint location, GLsizei count, const(GLdouble)* value) PFNGLPROGRAMUNIFORM2DVPROC;
4222 	alias void function(GLuint program, GLint location, GLuint v0, GLuint v1) PFNGLPROGRAMUNIFORM2UIPROC;
4223 	alias void function(GLuint program, GLint location, GLsizei count, const(GLuint)* value) PFNGLPROGRAMUNIFORM2UIVPROC;
4224 	alias void function(GLuint program, GLint location, GLint v0, GLint v1, GLint v2) PFNGLPROGRAMUNIFORM3IPROC;
4225 	alias void function(GLuint program, GLint location, GLsizei count, const(GLint)* value) PFNGLPROGRAMUNIFORM3IVPROC;
4226 	alias void function(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2) PFNGLPROGRAMUNIFORM3FPROC;
4227 	alias void function(GLuint program, GLint location, GLsizei count, const(GLfloat)* value) PFNGLPROGRAMUNIFORM3FVPROC;
4228 	alias void function(GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2) PFNGLPROGRAMUNIFORM3DPROC;
4229 	alias void function(GLuint program, GLint location, GLsizei count, const(GLdouble)* value) PFNGLPROGRAMUNIFORM3DVPROC;
4230 	alias void function(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2) PFNGLPROGRAMUNIFORM3UIPROC;
4231 	alias void function(GLuint program, GLint location, GLsizei count, const(GLuint)* value) PFNGLPROGRAMUNIFORM3UIVPROC;
4232 	alias void function(GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3) PFNGLPROGRAMUNIFORM4IPROC;
4233 	alias void function(GLuint program, GLint location, GLsizei count, const(GLint)* value) PFNGLPROGRAMUNIFORM4IVPROC;
4234 	alias void function(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3) PFNGLPROGRAMUNIFORM4FPROC;
4235 	alias void function(GLuint program, GLint location, GLsizei count, const(GLfloat)* value) PFNGLPROGRAMUNIFORM4FVPROC;
4236 	alias void function(GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3) PFNGLPROGRAMUNIFORM4DPROC;
4237 	alias void function(GLuint program, GLint location, GLsizei count, const(GLdouble)* value) PFNGLPROGRAMUNIFORM4DVPROC;
4238 	alias void function(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3) PFNGLPROGRAMUNIFORM4UIPROC;
4239 	alias void function(GLuint program, GLint location, GLsizei count, const(GLuint)* value) PFNGLPROGRAMUNIFORM4UIVPROC;
4240 	alias void function(GLuint program, GLint location, GLsizei count, GLboolean transpose, const(GLfloat)* value) PFNGLPROGRAMUNIFORMMATRIX2FVPROC;
4241 	alias void function(GLuint program, GLint location, GLsizei count, GLboolean transpose, const(GLfloat)* value) PFNGLPROGRAMUNIFORMMATRIX3FVPROC;
4242 	alias void function(GLuint program, GLint location, GLsizei count, GLboolean transpose, const(GLfloat)* value) PFNGLPROGRAMUNIFORMMATRIX4FVPROC;
4243 	alias void function(GLuint program, GLint location, GLsizei count, GLboolean transpose, const(GLdouble)* value) PFNGLPROGRAMUNIFORMMATRIX2DVPROC;
4244 	alias void function(GLuint program, GLint location, GLsizei count, GLboolean transpose, const(GLdouble)* value) PFNGLPROGRAMUNIFORMMATRIX3DVPROC;
4245 	alias void function(GLuint program, GLint location, GLsizei count, GLboolean transpose, const(GLdouble)* value) PFNGLPROGRAMUNIFORMMATRIX4DVPROC;
4246 	alias void function(GLuint program, GLint location, GLsizei count, GLboolean transpose, const(GLfloat)* value) PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC;
4247 	alias void function(GLuint program, GLint location, GLsizei count, GLboolean transpose, const(GLfloat)* value) PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC;
4248 	alias void function(GLuint program, GLint location, GLsizei count, GLboolean transpose, const(GLfloat)* value) PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC;
4249 	alias void function(GLuint program, GLint location, GLsizei count, GLboolean transpose, const(GLfloat)* value) PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC;
4250 	alias void function(GLuint program, GLint location, GLsizei count, GLboolean transpose, const(GLfloat)* value) PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC;
4251 	alias void function(GLuint program, GLint location, GLsizei count, GLboolean transpose, const(GLfloat)* value) PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC;
4252 	alias void function(GLuint program, GLint location, GLsizei count, GLboolean transpose, const(GLdouble)* value) PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC;
4253 	alias void function(GLuint program, GLint location, GLsizei count, GLboolean transpose, const(GLdouble)* value) PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC;
4254 	alias void function(GLuint program, GLint location, GLsizei count, GLboolean transpose, const(GLdouble)* value) PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC;
4255 	alias void function(GLuint program, GLint location, GLsizei count, GLboolean transpose, const(GLdouble)* value) PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC;
4256 	alias void function(GLuint program, GLint location, GLsizei count, GLboolean transpose, const(GLdouble)* value) PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC;
4257 	alias void function(GLuint program, GLint location, GLsizei count, GLboolean transpose, const(GLdouble)* value) PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC;
4258 	alias void function(GLuint pipeline) PFNGLVALIDATEPROGRAMPIPELINEPROC;
4259 	alias void function(GLuint pipeline, GLsizei bufSize, GLsizei* length, GLchar* infoLog) PFNGLGETPROGRAMPIPELINEINFOLOGPROC;
4260 
4261 	// GL_ARB_vertex_attrib_64bit
4262 
4263 	export void glVertexAttribL1d(GLuint index, GLdouble x);
4264 	export void glVertexAttribL2d(GLuint index, GLdouble x, GLdouble y);
4265 	export void glVertexAttribL3d(GLuint index, GLdouble x, GLdouble y, GLdouble z);
4266 	export void glVertexAttribL4d(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
4267 	export void glVertexAttribL1dv(GLuint index, const(GLdouble)* v);
4268 	export void glVertexAttribL2dv(GLuint index, const(GLdouble)* v);
4269 	export void glVertexAttribL3dv(GLuint index, const(GLdouble)* v);
4270 	export void glVertexAttribL4dv(GLuint index, const(GLdouble)* v);
4271 	export void glVertexAttribLPointer(GLuint index, GLint size, GLenum type, GLsizei stride, const(GLvoid)* pointer);
4272 	export void glGetVertexAttribLdv(GLuint index, GLenum pname, GLdouble* params);
4273 
4274 	alias void function(GLuint index, GLdouble x) PFNGLVERTEXATTRIBL1DPROC;
4275 	alias void function(GLuint index, GLdouble x, GLdouble y) PFNGLVERTEXATTRIBL2DPROC;
4276 	alias void function(GLuint index, GLdouble x, GLdouble y, GLdouble z) PFNGLVERTEXATTRIBL3DPROC;
4277 	alias void function(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w) PFNGLVERTEXATTRIBL4DPROC;
4278 	alias void function(GLuint index, const(GLdouble)* v) PFNGLVERTEXATTRIBL1DVPROC;
4279 	alias void function(GLuint index, const(GLdouble)* v) PFNGLVERTEXATTRIBL2DVPROC;
4280 	alias void function(GLuint index, const(GLdouble)* v) PFNGLVERTEXATTRIBL3DVPROC;
4281 	alias void function(GLuint index, const(GLdouble)* v) PFNGLVERTEXATTRIBL4DVPROC;
4282 	alias void function(GLuint index, GLint size, GLenum type, GLsizei stride, const(GLvoid)* pointer) PFNGLVERTEXATTRIBLPOINTERPROC;
4283 	alias void function(GLuint index, GLenum pname, GLdouble* params) PFNGLGETVERTEXATTRIBLDVPROC;
4284 
4285 	// GL_ARB_viewport_array
4286 
4287 	export void glViewportArrayv(GLuint first, GLsizei count, const(GLfloat)* v);
4288 	export void glViewportIndexedf(GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h);
4289 	export void glViewportIndexedfv(GLuint index, const(GLfloat)* v);
4290 	export void glScissorArrayv(GLuint first, GLsizei count, const(GLint)* v);
4291 	export void glScissorIndexed(GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height);
4292 	export void glScissorIndexedv(GLuint index, const(GLint)* v);
4293 	export void glDepthRangeArrayv(GLuint first, GLsizei count, const(GLdouble)* v);
4294 	export void glDepthRangeIndexed(GLuint index, GLdouble n, GLdouble f);
4295 	export void glGetFloati_v(GLenum target, GLuint index, GLfloat* data);
4296 	export void glGetDoublei_v(GLenum target, GLuint index, GLdouble* data);
4297 
4298 	alias void function(GLuint first, GLsizei count, const(GLfloat)* v) PFNGLVIEWPORTARRAYVPROC;
4299 	alias void function(GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h) PFNGLVIEWPORTINDEXEDFPROC;
4300 	alias void function(GLuint index, const(GLfloat)* v) PFNGLVIEWPORTINDEXEDFVPROC;
4301 	alias void function(GLuint first, GLsizei count, const(GLint)* v) PFNGLSCISSORARRAYVPROC;
4302 	alias void function(GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height) PFNGLSCISSORINDEXEDPROC;
4303 	alias void function(GLuint index, const(GLint)* v) PFNGLSCISSORINDEXEDVPROC;
4304 	alias void function(GLuint first, GLsizei count, const(GLdouble)* v) PFNGLDEPTHRANGEARRAYVPROC;
4305 	alias void function(GLuint index, GLdouble n, GLdouble f) PFNGLDEPTHRANGEINDEXEDPROC;
4306 	alias void function(GLenum target, GLuint index, GLfloat* data) PFNGLGETFLOATI_VPROC;
4307 	alias void function(GLenum target, GLuint index, GLdouble* data) PFNGLGETDOUBLEI_VPROC;
4308 
4309 	// GL_ARB_cl_event
4310 
4311 	export GLsync glCreateSyncFromCLeventARB(_cl_context* context, _cl_event* event, GLbitfield flags);
4312 
4313 	alias GLsync function(_cl_context* context, _cl_event* event, GLbitfield flags) PFNGLCREATESYNCFROMCLEVENTARBPROC;
4314 
4315 	// GL_ARB_debug_output
4316 
4317 	export void glDebugMessageControlARB(GLenum source, GLenum type, GLenum severity, GLsizei count, const(GLuint)* ids, GLboolean enabled);
4318 	export void glDebugMessageInsertARB(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const(GLchar)* buf);
4319 	export void glDebugMessageCallbackARB(GLDEBUGPROCARB callback, const(GLvoid)* userParam);
4320 	export GLuint glGetDebugMessageLogARB(GLuint count, GLsizei bufsize, GLenum* sources, GLenum* types, GLuint* ids, GLenum* severities, GLsizei* lengths, GLchar* messageLog);
4321 
4322 	alias void function(GLenum source, GLenum type, GLenum severity, GLsizei count, const(GLuint)* ids, GLboolean enabled) PFNGLDEBUGMESSAGECONTROLARBPROC;
4323 	alias void function(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const(GLchar)* buf) PFNGLDEBUGMESSAGEINSERTARBPROC;
4324 	alias void function(GLDEBUGPROCARB callback, const(GLvoid)* userParam) PFNGLDEBUGMESSAGECALLBACKARBPROC;
4325 	alias GLuint function(GLuint count, GLsizei bufsize, GLenum* sources, GLenum* types, GLuint* ids, GLenum* severities, GLsizei* lengths, GLchar* messageLog) PFNGLGETDEBUGMESSAGELOGARBPROC;
4326 
4327 	// GL_ARB_robustness
4328 
4329 	export GLenum glGetGraphicsResetStatusARB();
4330 	export void glGetnTexImageARB(GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, GLvoid* img);
4331 	export void glReadnPixelsARB(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, GLvoid* data);
4332 	export void glGetnCompressedTexImageARB(GLenum target, GLint lod, GLsizei bufSize, GLvoid* img);
4333 	export void glGetnUniformfvARB(GLuint program, GLint location, GLsizei bufSize, GLfloat* params);
4334 	export void glGetnUniformivARB(GLuint program, GLint location, GLsizei bufSize, GLint* params);
4335 	export void glGetnUniformuivARB(GLuint program, GLint location, GLsizei bufSize, GLuint* params);
4336 	export void glGetnUniformdvARB(GLuint program, GLint location, GLsizei bufSize, GLdouble* params);
4337 
4338 	alias GLenum function() PFNGLGETGRAPHICSRESETSTATUSARBPROC;
4339 	alias void function(GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, GLvoid* img) PFNGLGETNTEXIMAGEARBPROC;
4340 	alias void function(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, GLvoid* data) PFNGLREADNPIXELSARBPROC;
4341 	alias void function(GLenum target, GLint lod, GLsizei bufSize, GLvoid* img) PFNGLGETNCOMPRESSEDTEXIMAGEARBPROC;
4342 	alias void function(GLuint program, GLint location, GLsizei bufSize, GLfloat* params) PFNGLGETNUNIFORMFVARBPROC;
4343 	alias void function(GLuint program, GLint location, GLsizei bufSize, GLint* params) PFNGLGETNUNIFORMIVARBPROC;
4344 	alias void function(GLuint program, GLint location, GLsizei bufSize, GLuint* params) PFNGLGETNUNIFORMUIVARBPROC;
4345 	alias void function(GLuint program, GLint location, GLsizei bufSize, GLdouble* params) PFNGLGETNUNIFORMDVARBPROC;
4346 
4347 	// GL_ARB_shader_stencil_export
4348 
4349 	// GL_ARB_base_instance
4350 
4351 	export void glDrawArraysInstancedBaseInstance(GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance);
4352 	export void glDrawElementsInstancedBaseInstance(GLenum mode, GLsizei count, GLenum type, const(void)* indices, GLsizei instancecount, GLuint baseinstance);
4353 	export void glDrawElementsInstancedBaseVertexBaseInstance(GLenum mode, GLsizei count, GLenum type, const(void)* indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance);
4354 
4355 	alias void function(GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance) PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC;
4356 	alias void function(GLenum mode, GLsizei count, GLenum type, const(void)* indices, GLsizei instancecount, GLuint baseinstance) PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC;
4357 	alias void function(GLenum mode, GLsizei count, GLenum type, const(void)* indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance) PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC;
4358 
4359 	// GL_ARB_shading_language_420pack
4360 
4361 	// GL_ARB_transform_feedback_instanced
4362 
4363 	export void glDrawTransformFeedbackInstanced(GLenum mode, GLuint id, GLsizei instancecount);
4364 	export void glDrawTransformFeedbackStreamInstanced(GLenum mode, GLuint id, GLuint stream, GLsizei instancecount);
4365 
4366 	alias void function(GLenum mode, GLuint id, GLsizei instancecount) PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC;
4367 	alias void function(GLenum mode, GLuint id, GLuint stream, GLsizei instancecount) PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC;
4368 
4369 	// GL_ARB_compressed_texture_pixel_storage
4370 
4371 	// GL_ARB_conservative_depth
4372 
4373 	// GL_ARB_internalformat_query
4374 
4375 	export void glGetInternalformativ(GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint* params);
4376 
4377 	alias void function(GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint* params) PFNGLGETINTERNALFORMATIVPROC;
4378 
4379 	// GL_ARB_map_buffer_alignment
4380 
4381 	// GL_ARB_shader_atomic_counters
4382 
4383 	export void glGetActiveAtomicCounterBufferiv(GLuint program, GLuint bufferIndex, GLenum pname, GLint* params);
4384 
4385 	alias void function(GLuint program, GLuint bufferIndex, GLenum pname, GLint* params) PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC;
4386 
4387 	// GL_ARB_shader_image_load_store
4388 
4389 	export void glBindImageTexture(GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format);
4390 	export void glMemoryBarrier(GLbitfield barriers);
4391 
4392 	alias void function(GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format) PFNGLBINDIMAGETEXTUREPROC;
4393 	alias void function(GLbitfield barriers) PFNGLMEMORYBARRIERPROC;
4394 
4395 	// GL_ARB_shading_language_packing
4396 
4397 	// GL_ARB_texture_storage
4398 
4399 	export void glTexStorage1D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
4400 	export void glTexStorage2D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
4401 	export void glTexStorage3D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
4402 	export void glTextureStorage1DEXT(GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
4403 	export void glTextureStorage2DEXT(GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
4404 	export void glTextureStorage3DEXT(GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
4405 
4406 	alias void function(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width) PFNGLTEXSTORAGE1DPROC;
4407 	alias void function(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height) PFNGLTEXSTORAGE2DPROC;
4408 	alias void function(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth) PFNGLTEXSTORAGE3DPROC;
4409 	alias void function(GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width) PFNGLTEXTURESTORAGE1DEXTPROC;
4410 	alias void function(GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height) PFNGLTEXTURESTORAGE2DEXTPROC;
4411 	alias void function(GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth) PFNGLTEXTURESTORAGE3DEXTPROC;
4412 
4413 	// GL_KHR_texture_compression_astc_ldr
4414 
4415 	// GL_KHR_debug
4416 
4417 	export void glDebugMessageControl(GLenum source, GLenum type, GLenum severity, GLsizei count, const(GLuint)* ids, GLboolean enabled);
4418 	export void glDebugMessageInsert(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const(GLchar)* buf);
4419 	export void glDebugMessageCallback(GLDEBUGPROC callback, const(void)* userParam);
4420 	export GLuint glGetDebugMessageLog(GLuint count, GLsizei bufsize, GLenum* sources, GLenum* types, GLuint* ids, GLenum* severities, GLsizei* lengths, GLchar* messageLog);
4421 	export void glPushDebugGroup(GLenum source, GLuint id, GLsizei length, const(GLchar)* message);
4422 	export void glPopDebugGroup();
4423 	export void glObjectLabel(GLenum identifier, GLuint name, GLsizei length, const(GLchar)* label);
4424 	export void glGetObjectLabel(GLenum identifier, GLuint name, GLsizei bufSize, GLsizei* length, GLchar* label);
4425 	export void glObjectPtrLabel(const(void)* ptr, GLsizei length, const(GLchar)* label);
4426 	export void glGetObjectPtrLabel(const(void)* ptr, GLsizei bufSize, GLsizei* length, GLchar* label);
4427 
4428 	alias void function(GLenum source, GLenum type, GLenum severity, GLsizei count, const(GLuint)* ids, GLboolean enabled) PFNGLDEBUGMESSAGECONTROLPROC;
4429 	alias void function(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const(GLchar)* buf) PFNGLDEBUGMESSAGEINSERTPROC;
4430 	alias void function(GLDEBUGPROC callback, const(void)* userParam) PFNGLDEBUGMESSAGECALLBACKPROC;
4431 	alias GLuint function(GLuint count, GLsizei bufsize, GLenum* sources, GLenum* types, GLuint* ids, GLenum* severities, GLsizei* lengths, GLchar* messageLog) PFNGLGETDEBUGMESSAGELOGPROC;
4432 	alias void function(GLenum source, GLuint id, GLsizei length, const(GLchar)* message) PFNGLPUSHDEBUGGROUPPROC;
4433 	alias void function() PFNGLPOPDEBUGGROUPPROC;
4434 	alias void function(GLenum identifier, GLuint name, GLsizei length, const(GLchar)* label) PFNGLOBJECTLABELPROC;
4435 	alias void function(GLenum identifier, GLuint name, GLsizei bufSize, GLsizei* length, GLchar* label) PFNGLGETOBJECTLABELPROC;
4436 	alias void function(const(void)* ptr, GLsizei length, const(GLchar)* label) PFNGLOBJECTPTRLABELPROC;
4437 	alias void function(const(void)* ptr, GLsizei bufSize, GLsizei* length, GLchar* label) PFNGLGETOBJECTPTRLABELPROC;
4438 
4439 	// GL_ARB_arrays_of_arrays
4440 
4441 	// GL_ARB_clear_buffer_object
4442 
4443 	export void glClearBufferData(GLenum target, GLenum internalformat, GLenum format, GLenum type, const(void)* data);
4444 	export void glClearBufferSubData(GLenum target, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const(void)* data);
4445 	export void glClearNamedBufferDataEXT(GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const(void)* data);
4446 	export void glClearNamedBufferSubDataEXT(GLuint buffer, GLenum internalformat, GLenum format, GLenum type, GLsizeiptr offset, GLsizeiptr size, const(void)* data);
4447 
4448 	alias void function(GLenum target, GLenum internalformat, GLenum format, GLenum type, const(void)* data) PFNGLCLEARBUFFERDATAPROC;
4449 	alias void function(GLenum target, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const(void)* data) PFNGLCLEARBUFFERSUBDATAPROC;
4450 	alias void function(GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const(void)* data) PFNGLCLEARNAMEDBUFFERDATAEXTPROC;
4451 	alias void function(GLuint buffer, GLenum internalformat, GLenum format, GLenum type, GLsizeiptr offset, GLsizeiptr size, const(void)* data) PFNGLCLEARNAMEDBUFFERSUBDATAEXTPROC;
4452 
4453 	// GL_ARB_compute_shader
4454 
4455 	export void glDispatchCompute(GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z);
4456 	export void glDispatchComputeIndirect(GLintptr indirect);
4457 
4458 	alias void function(GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z) PFNGLDISPATCHCOMPUTEPROC;
4459 	alias void function(GLintptr indirect) PFNGLDISPATCHCOMPUTEINDIRECTPROC;
4460 
4461 	// GL_ARB_copy_image
4462 
4463 	export void glCopyImageSubData(GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth);
4464 
4465 	alias void function(GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth) PFNGLCOPYIMAGESUBDATAPROC;
4466 
4467 	// GL_ARB_texture_view
4468 
4469 	export void glTextureView(GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers);
4470 
4471 	alias void function(GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers) PFNGLTEXTUREVIEWPROC;
4472 
4473 	// GL_ARB_vertex_attrib_binding
4474 
4475 	export void glBindVertexBuffer(GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride);
4476 	export void glVertexAttribFormat(GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset);
4477 	export void glVertexAttribIFormat(GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
4478 	export void glVertexAttribLFormat(GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
4479 	export void glVertexAttribBinding(GLuint attribindex, GLuint bindingindex);
4480 	export void glVertexBindingDivisor(GLuint bindingindex, GLuint divisor);
4481 	export void glVertexArrayBindVertexBufferEXT(GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride);
4482 	export void glVertexArrayVertexAttribFormatEXT(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset);
4483 	export void glVertexArrayVertexAttribIFormatEXT(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
4484 	export void glVertexArrayVertexAttribLFormatEXT(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
4485 	export void glVertexArrayVertexAttribBindingEXT(GLuint vaobj, GLuint attribindex, GLuint bindingindex);
4486 	export void glVertexArrayVertexBindingDivisorEXT(GLuint vaobj, GLuint bindingindex, GLuint divisor);
4487 
4488 	alias void function(GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride) PFNGLBINDVERTEXBUFFERPROC;
4489 	alias void function(GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset) PFNGLVERTEXATTRIBFORMATPROC;
4490 	alias void function(GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset) PFNGLVERTEXATTRIBIFORMATPROC;
4491 	alias void function(GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset) PFNGLVERTEXATTRIBLFORMATPROC;
4492 	alias void function(GLuint attribindex, GLuint bindingindex) PFNGLVERTEXATTRIBBINDINGPROC;
4493 	alias void function(GLuint bindingindex, GLuint divisor) PFNGLVERTEXBINDINGDIVISORPROC;
4494 	alias void function(GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride) PFNGLVERTEXARRAYBINDVERTEXBUFFEREXTPROC;
4495 	alias void function(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset) PFNGLVERTEXARRAYVERTEXATTRIBFORMATEXTPROC;
4496 	alias void function(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset) PFNGLVERTEXARRAYVERTEXATTRIBIFORMATEXTPROC;
4497 	alias void function(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset) PFNGLVERTEXARRAYVERTEXATTRIBLFORMATEXTPROC;
4498 	alias void function(GLuint vaobj, GLuint attribindex, GLuint bindingindex) PFNGLVERTEXARRAYVERTEXATTRIBBINDINGEXTPROC;
4499 	alias void function(GLuint vaobj, GLuint bindingindex, GLuint divisor) PFNGLVERTEXARRAYVERTEXBINDINGDIVISOREXTPROC;
4500 
4501 	// GL_ARB_robustness_isolation
4502 
4503 	// GL_ARB_ES3_compatibility
4504 
4505 	// GL_ARB_explicit_uniform_location
4506 
4507 	// GL_ARB_fragment_layer_viewport
4508 
4509 	// GL_ARB_framebuffer_no_attachments
4510 
4511 	export void glFramebufferParameteri(GLenum target, GLenum pname, GLint param);
4512 	export void glGetFramebufferParameteriv(GLenum target, GLenum pname, GLint* params);
4513 	export void glNamedFramebufferParameteriEXT(GLuint framebuffer, GLenum pname, GLint param);
4514 	export void glGetNamedFramebufferParameterivEXT(GLuint framebuffer, GLenum pname, GLint* params);
4515 
4516 	alias void function(GLenum target, GLenum pname, GLint param) PFNGLFRAMEBUFFERPARAMETERIPROC;
4517 	alias void function(GLenum target, GLenum pname, GLint* params) PFNGLGETFRAMEBUFFERPARAMETERIVPROC;
4518 	alias void function(GLuint framebuffer, GLenum pname, GLint param) PFNGLNAMEDFRAMEBUFFERPARAMETERIEXTPROC;
4519 	alias void function(GLuint framebuffer, GLenum pname, GLint* params) PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVEXTPROC;
4520 
4521 	// GL_ARB_internalformat_query2
4522 
4523 	export void glGetInternalformati64v(GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint64* params);
4524 
4525 	alias void function(GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint64* params) PFNGLGETINTERNALFORMATI64VPROC;
4526 
4527 	// GL_ARB_invalidate_subdata
4528 
4529 	export void glInvalidateTexSubImage(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth);
4530 	export void glInvalidateTexImage(GLuint texture, GLint level);
4531 	export void glInvalidateBufferSubData(GLuint buffer, GLintptr offset, GLsizeiptr length);
4532 	export void glInvalidateBufferData(GLuint buffer);
4533 	export void glInvalidateFramebuffer(GLenum target, GLsizei numAttachments, const(GLenum)* attachments);
4534 	export void glInvalidateSubFramebuffer(GLenum target, GLsizei numAttachments, const(GLenum)* attachments, GLint x, GLint y, GLsizei width, GLsizei height);
4535 
4536 	alias void function(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth) PFNGLINVALIDATETEXSUBIMAGEPROC;
4537 	alias void function(GLuint texture, GLint level) PFNGLINVALIDATETEXIMAGEPROC;
4538 	alias void function(GLuint buffer, GLintptr offset, GLsizeiptr length) PFNGLINVALIDATEBUFFERSUBDATAPROC;
4539 	alias void function(GLuint buffer) PFNGLINVALIDATEBUFFERDATAPROC;
4540 	alias void function(GLenum target, GLsizei numAttachments, const(GLenum)* attachments) PFNGLINVALIDATEFRAMEBUFFERPROC;
4541 	alias void function(GLenum target, GLsizei numAttachments, const(GLenum)* attachments, GLint x, GLint y, GLsizei width, GLsizei height) PFNGLINVALIDATESUBFRAMEBUFFERPROC;
4542 
4543 	// GL_ARB_multi_draw_indirect
4544 
4545 	export void glMultiDrawArraysIndirect(GLenum mode, const(void)* indirect, GLsizei drawcount, GLsizei stride);
4546 	export void glMultiDrawElementsIndirect(GLenum mode, GLenum type, const(void)* indirect, GLsizei drawcount, GLsizei stride);
4547 
4548 	alias void function(GLenum mode, const(void)* indirect, GLsizei drawcount, GLsizei stride) PFNGLMULTIDRAWARRAYSINDIRECTPROC;
4549 	alias void function(GLenum mode, GLenum type, const(void)* indirect, GLsizei drawcount, GLsizei stride) PFNGLMULTIDRAWELEMENTSINDIRECTPROC;
4550 
4551 	// GL_ARB_program_interface_query
4552 
4553 	export void glGetProgramInterfaceiv(GLuint program, GLenum programInterface, GLenum pname, GLint* params);
4554 	export GLuint glGetProgramResourceIndex(GLuint program, GLenum programInterface, const(GLchar)* name);
4555 	export void glGetProgramResourceName(GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei* length, GLchar* name);
4556 	export void glGetProgramResourceiv(GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const(GLenum)* props, GLsizei bufSize, GLsizei* length, GLint* params);
4557 	export GLint glGetProgramResourceLocation(GLuint program, GLenum programInterface, const(GLchar)* name);
4558 	export GLint glGetProgramResourceLocationIndex(GLuint program, GLenum programInterface, const(GLchar)* name);
4559 
4560 	alias void function(GLuint program, GLenum programInterface, GLenum pname, GLint* params) PFNGLGETPROGRAMINTERFACEIVPROC;
4561 	alias GLuint function(GLuint program, GLenum programInterface, const(GLchar)* name) PFNGLGETPROGRAMRESOURCEINDEXPROC;
4562 	alias void function(GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei* length, GLchar* name) PFNGLGETPROGRAMRESOURCENAMEPROC;
4563 	alias void function(GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const(GLenum)* props, GLsizei bufSize, GLsizei* length, GLint* params) PFNGLGETPROGRAMRESOURCEIVPROC;
4564 	alias GLint function(GLuint program, GLenum programInterface, const(GLchar)* name) PFNGLGETPROGRAMRESOURCELOCATIONPROC;
4565 	alias GLint function(GLuint program, GLenum programInterface, const(GLchar)* name) PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC;
4566 
4567 	// GL_ARB_robust_buffer_access_behavior
4568 
4569 	// GL_ARB_shader_image_size
4570 
4571 	// GL_ARB_shader_storage_buffer_object
4572 
4573 	export void glShaderStorageBlockBinding(GLuint program, GLuint storageBlockIndex, GLuint storageBlockBinding);
4574 
4575 	alias void function(GLuint program, GLuint storageBlockIndex, GLuint storageBlockBinding) PFNGLSHADERSTORAGEBLOCKBINDINGPROC;
4576 
4577 	// GL_ARB_stencil_texturing
4578 
4579 	// GL_ARB_texture_buffer_range
4580 
4581 	export void glTexBufferRange(GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size);
4582 	export void glTextureBufferRangeEXT(GLuint texture, GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size);
4583 
4584 	alias void function(GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size) PFNGLTEXBUFFERRANGEPROC;
4585 	alias void function(GLuint texture, GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size) PFNGLTEXTUREBUFFERRANGEEXTPROC;
4586 
4587 	// GL_ARB_texture_query_levels
4588 
4589 	// GL_ARB_texture_storage_multisample
4590 
4591 	export void glTexStorage2DMultisample(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
4592 	export void glTexStorage3DMultisample(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
4593 	export void glTextureStorage2DMultisampleEXT(GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
4594 	export void glTextureStorage3DMultisampleEXT(GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
4595 
4596 	alias void function(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations) PFNGLTEXSTORAGE2DMULTISAMPLEPROC;
4597 	alias void function(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations) PFNGLTEXSTORAGE3DMULTISAMPLEPROC;
4598 	alias void function(GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations) PFNGLTEXTURESTORAGE2DMULTISAMPLEEXTPROC;
4599 	alias void function(GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations) PFNGLTEXTURESTORAGE3DMULTISAMPLEEXTPROC;