1 /// OpenGL bindings for D. Generated automatically by gldgen.
2 /// See https://github.com/rtbo/gldgen
3 module gfx.bindings.opengl.gl;
4 
5 import core.stdc.stdint;
6 import gfx.bindings.opengl.khrplatform;
7 import gfx.bindings.opengl.loader : SymbolLoader;
8 
9 // Base Types
10 
11 // Types for GL_VERSION_1_0
12 alias GLvoid     = void;
13 alias GLenum     = uint;
14 alias GLfloat    = khronos_float_t;
15 alias GLint      = int;
16 alias GLsizei    = int;
17 alias GLbitfield = uint;
18 alias GLdouble   = double;
19 alias GLuint     = uint;
20 alias GLboolean  = ubyte;
21 alias GLubyte    = khronos_uint8_t;
22 
23 // Types for GL_VERSION_1_1
24 alias GLclampf = khronos_float_t;
25 alias GLclampd = double;
26 
27 // Types for GL_VERSION_1_5
28 alias GLsizeiptr = khronos_ssize_t;
29 alias GLintptr   = khronos_intptr_t;
30 
31 // Types for GL_VERSION_2_0
32 alias GLchar   = char;
33 alias GLshort  = khronos_int16_t;
34 alias GLbyte   = khronos_int8_t;
35 alias GLushort = khronos_uint16_t;
36 
37 // Types for GL_VERSION_3_0
38 alias GLhalf = khronos_uint16_t;
39 
40 // Types for GL_VERSION_3_2
41 alias GLsync   = __GLsync*;
42 alias GLuint64 = khronos_uint64_t;
43 alias GLint64  = khronos_int64_t;
44 
45 // Struct declarations
46 struct __GLsync;
47 
48 // Function pointers
49 
50 extern(C) nothrow @nogc {
51 
52     // for GL_VERSION_4_3
53     alias GLDEBUGPROC = void function(
54         GLenum         source,
55         GLenum         type,
56         GLuint         id,
57         GLenum         severity,
58         GLsizei        length,
59         const(GLchar)* message,
60         const(void)*   userParam
61     );
62 }
63 
64 
65 // Constants for GL_VERSION_1_0
66 enum GL_DEPTH_BUFFER_BIT        = 0x00000100;
67 enum GL_STENCIL_BUFFER_BIT      = 0x00000400;
68 enum GL_COLOR_BUFFER_BIT        = 0x00004000;
69 enum GL_FALSE                   = 0;
70 enum GL_TRUE                    = 1;
71 enum GL_POINTS                  = 0x0000;
72 enum GL_LINES                   = 0x0001;
73 enum GL_LINE_LOOP               = 0x0002;
74 enum GL_LINE_STRIP              = 0x0003;
75 enum GL_TRIANGLES               = 0x0004;
76 enum GL_TRIANGLE_STRIP          = 0x0005;
77 enum GL_TRIANGLE_FAN            = 0x0006;
78 enum GL_QUADS                   = 0x0007;
79 enum GL_NEVER                   = 0x0200;
80 enum GL_LESS                    = 0x0201;
81 enum GL_EQUAL                   = 0x0202;
82 enum GL_LEQUAL                  = 0x0203;
83 enum GL_GREATER                 = 0x0204;
84 enum GL_NOTEQUAL                = 0x0205;
85 enum GL_GEQUAL                  = 0x0206;
86 enum GL_ALWAYS                  = 0x0207;
87 enum GL_ZERO                    = 0;
88 enum GL_ONE                     = 1;
89 enum GL_SRC_COLOR               = 0x0300;
90 enum GL_ONE_MINUS_SRC_COLOR     = 0x0301;
91 enum GL_SRC_ALPHA               = 0x0302;
92 enum GL_ONE_MINUS_SRC_ALPHA     = 0x0303;
93 enum GL_DST_ALPHA               = 0x0304;
94 enum GL_ONE_MINUS_DST_ALPHA     = 0x0305;
95 enum GL_DST_COLOR               = 0x0306;
96 enum GL_ONE_MINUS_DST_COLOR     = 0x0307;
97 enum GL_SRC_ALPHA_SATURATE      = 0x0308;
98 enum GL_NONE                    = 0;
99 enum GL_FRONT_LEFT              = 0x0400;
100 enum GL_FRONT_RIGHT             = 0x0401;
101 enum GL_BACK_LEFT               = 0x0402;
102 enum GL_BACK_RIGHT              = 0x0403;
103 enum GL_FRONT                   = 0x0404;
104 enum GL_BACK                    = 0x0405;
105 enum GL_LEFT                    = 0x0406;
106 enum GL_RIGHT                   = 0x0407;
107 enum GL_FRONT_AND_BACK          = 0x0408;
108 enum GL_NO_ERROR                = 0;
109 enum GL_INVALID_ENUM            = 0x0500;
110 enum GL_INVALID_VALUE           = 0x0501;
111 enum GL_INVALID_OPERATION       = 0x0502;
112 enum GL_OUT_OF_MEMORY           = 0x0505;
113 enum GL_CW                      = 0x0900;
114 enum GL_CCW                     = 0x0901;
115 enum GL_POINT_SIZE              = 0x0B11;
116 enum GL_POINT_SIZE_RANGE        = 0x0B12;
117 enum GL_POINT_SIZE_GRANULARITY  = 0x0B13;
118 enum GL_LINE_SMOOTH             = 0x0B20;
119 enum GL_LINE_WIDTH              = 0x0B21;
120 enum GL_LINE_WIDTH_RANGE        = 0x0B22;
121 enum GL_LINE_WIDTH_GRANULARITY  = 0x0B23;
122 enum GL_POLYGON_MODE            = 0x0B40;
123 enum GL_POLYGON_SMOOTH          = 0x0B41;
124 enum GL_CULL_FACE               = 0x0B44;
125 enum GL_CULL_FACE_MODE          = 0x0B45;
126 enum GL_FRONT_FACE              = 0x0B46;
127 enum GL_DEPTH_RANGE             = 0x0B70;
128 enum GL_DEPTH_TEST              = 0x0B71;
129 enum GL_DEPTH_WRITEMASK         = 0x0B72;
130 enum GL_DEPTH_CLEAR_VALUE       = 0x0B73;
131 enum GL_DEPTH_FUNC              = 0x0B74;
132 enum GL_STENCIL_TEST            = 0x0B90;
133 enum GL_STENCIL_CLEAR_VALUE     = 0x0B91;
134 enum GL_STENCIL_FUNC            = 0x0B92;
135 enum GL_STENCIL_VALUE_MASK      = 0x0B93;
136 enum GL_STENCIL_FAIL            = 0x0B94;
137 enum GL_STENCIL_PASS_DEPTH_FAIL = 0x0B95;
138 enum GL_STENCIL_PASS_DEPTH_PASS = 0x0B96;
139 enum GL_STENCIL_REF             = 0x0B97;
140 enum GL_STENCIL_WRITEMASK       = 0x0B98;
141 enum GL_VIEWPORT                = 0x0BA2;
142 enum GL_DITHER                  = 0x0BD0;
143 enum GL_BLEND_DST               = 0x0BE0;
144 enum GL_BLEND_SRC               = 0x0BE1;
145 enum GL_BLEND                   = 0x0BE2;
146 enum GL_LOGIC_OP_MODE           = 0x0BF0;
147 enum GL_DRAW_BUFFER             = 0x0C01;
148 enum GL_READ_BUFFER             = 0x0C02;
149 enum GL_SCISSOR_BOX             = 0x0C10;
150 enum GL_SCISSOR_TEST            = 0x0C11;
151 enum GL_COLOR_CLEAR_VALUE       = 0x0C22;
152 enum GL_COLOR_WRITEMASK         = 0x0C23;
153 enum GL_DOUBLEBUFFER            = 0x0C32;
154 enum GL_STEREO                  = 0x0C33;
155 enum GL_LINE_SMOOTH_HINT        = 0x0C52;
156 enum GL_POLYGON_SMOOTH_HINT     = 0x0C53;
157 enum GL_UNPACK_SWAP_BYTES       = 0x0CF0;
158 enum GL_UNPACK_LSB_FIRST        = 0x0CF1;
159 enum GL_UNPACK_ROW_LENGTH       = 0x0CF2;
160 enum GL_UNPACK_SKIP_ROWS        = 0x0CF3;
161 enum GL_UNPACK_SKIP_PIXELS      = 0x0CF4;
162 enum GL_UNPACK_ALIGNMENT        = 0x0CF5;
163 enum GL_PACK_SWAP_BYTES         = 0x0D00;
164 enum GL_PACK_LSB_FIRST          = 0x0D01;
165 enum GL_PACK_ROW_LENGTH         = 0x0D02;
166 enum GL_PACK_SKIP_ROWS          = 0x0D03;
167 enum GL_PACK_SKIP_PIXELS        = 0x0D04;
168 enum GL_PACK_ALIGNMENT          = 0x0D05;
169 enum GL_MAX_TEXTURE_SIZE        = 0x0D33;
170 enum GL_MAX_VIEWPORT_DIMS       = 0x0D3A;
171 enum GL_SUBPIXEL_BITS           = 0x0D50;
172 enum GL_TEXTURE_1D              = 0x0DE0;
173 enum GL_TEXTURE_2D              = 0x0DE1;
174 enum GL_TEXTURE_WIDTH           = 0x1000;
175 enum GL_TEXTURE_HEIGHT          = 0x1001;
176 enum GL_TEXTURE_BORDER_COLOR    = 0x1004;
177 enum GL_DONT_CARE               = 0x1100;
178 enum GL_FASTEST                 = 0x1101;
179 enum GL_NICEST                  = 0x1102;
180 enum GL_BYTE                    = 0x1400;
181 enum GL_UNSIGNED_BYTE           = 0x1401;
182 enum GL_SHORT                   = 0x1402;
183 enum GL_UNSIGNED_SHORT          = 0x1403;
184 enum GL_INT                     = 0x1404;
185 enum GL_UNSIGNED_INT            = 0x1405;
186 enum GL_FLOAT                   = 0x1406;
187 enum GL_STACK_OVERFLOW          = 0x0503;
188 enum GL_STACK_UNDERFLOW         = 0x0504;
189 enum GL_CLEAR                   = 0x1500;
190 enum GL_AND                     = 0x1501;
191 enum GL_AND_REVERSE             = 0x1502;
192 enum GL_COPY                    = 0x1503;
193 enum GL_AND_INVERTED            = 0x1504;
194 enum GL_NOOP                    = 0x1505;
195 enum GL_XOR                     = 0x1506;
196 enum GL_OR                      = 0x1507;
197 enum GL_NOR                     = 0x1508;
198 enum GL_EQUIV                   = 0x1509;
199 enum GL_INVERT                  = 0x150A;
200 enum GL_OR_REVERSE              = 0x150B;
201 enum GL_COPY_INVERTED           = 0x150C;
202 enum GL_OR_INVERTED             = 0x150D;
203 enum GL_NAND                    = 0x150E;
204 enum GL_SET                     = 0x150F;
205 enum GL_TEXTURE                 = 0x1702;
206 enum GL_COLOR                   = 0x1800;
207 enum GL_DEPTH                   = 0x1801;
208 enum GL_STENCIL                 = 0x1802;
209 enum GL_STENCIL_INDEX           = 0x1901;
210 enum GL_DEPTH_COMPONENT         = 0x1902;
211 enum GL_RED                     = 0x1903;
212 enum GL_GREEN                   = 0x1904;
213 enum GL_BLUE                    = 0x1905;
214 enum GL_ALPHA                   = 0x1906;
215 enum GL_RGB                     = 0x1907;
216 enum GL_RGBA                    = 0x1908;
217 enum GL_POINT                   = 0x1B00;
218 enum GL_LINE                    = 0x1B01;
219 enum GL_FILL                    = 0x1B02;
220 enum GL_KEEP                    = 0x1E00;
221 enum GL_REPLACE                 = 0x1E01;
222 enum GL_INCR                    = 0x1E02;
223 enum GL_DECR                    = 0x1E03;
224 enum GL_VENDOR                  = 0x1F00;
225 enum GL_RENDERER                = 0x1F01;
226 enum GL_VERSION                 = 0x1F02;
227 enum GL_EXTENSIONS              = 0x1F03;
228 enum GL_NEAREST                 = 0x2600;
229 enum GL_LINEAR                  = 0x2601;
230 enum GL_NEAREST_MIPMAP_NEAREST  = 0x2700;
231 enum GL_LINEAR_MIPMAP_NEAREST   = 0x2701;
232 enum GL_NEAREST_MIPMAP_LINEAR   = 0x2702;
233 enum GL_LINEAR_MIPMAP_LINEAR    = 0x2703;
234 enum GL_TEXTURE_MAG_FILTER      = 0x2800;
235 enum GL_TEXTURE_MIN_FILTER      = 0x2801;
236 enum GL_TEXTURE_WRAP_S          = 0x2802;
237 enum GL_TEXTURE_WRAP_T          = 0x2803;
238 enum GL_REPEAT                  = 0x2901;
239 
240 // Constants for GL_VERSION_1_1
241 enum GL_COLOR_LOGIC_OP          = 0x0BF2;
242 enum GL_POLYGON_OFFSET_UNITS    = 0x2A00;
243 enum GL_POLYGON_OFFSET_POINT    = 0x2A01;
244 enum GL_POLYGON_OFFSET_LINE     = 0x2A02;
245 enum GL_POLYGON_OFFSET_FILL     = 0x8037;
246 enum GL_POLYGON_OFFSET_FACTOR   = 0x8038;
247 enum GL_TEXTURE_BINDING_1D      = 0x8068;
248 enum GL_TEXTURE_BINDING_2D      = 0x8069;
249 enum GL_TEXTURE_INTERNAL_FORMAT = 0x1003;
250 enum GL_TEXTURE_RED_SIZE        = 0x805C;
251 enum GL_TEXTURE_GREEN_SIZE      = 0x805D;
252 enum GL_TEXTURE_BLUE_SIZE       = 0x805E;
253 enum GL_TEXTURE_ALPHA_SIZE      = 0x805F;
254 enum GL_DOUBLE                  = 0x140A;
255 enum GL_PROXY_TEXTURE_1D        = 0x8063;
256 enum GL_PROXY_TEXTURE_2D        = 0x8064;
257 enum GL_R3_G3_B2                = 0x2A10;
258 enum GL_RGB4                    = 0x804F;
259 enum GL_RGB5                    = 0x8050;
260 enum GL_RGB8                    = 0x8051;
261 enum GL_RGB10                   = 0x8052;
262 enum GL_RGB12                   = 0x8053;
263 enum GL_RGB16                   = 0x8054;
264 enum GL_RGBA2                   = 0x8055;
265 enum GL_RGBA4                   = 0x8056;
266 enum GL_RGB5_A1                 = 0x8057;
267 enum GL_RGBA8                   = 0x8058;
268 enum GL_RGB10_A2                = 0x8059;
269 enum GL_RGBA12                  = 0x805A;
270 enum GL_RGBA16                  = 0x805B;
271 enum GL_VERTEX_ARRAY            = 0x8074;
272 
273 // Constants for GL_VERSION_1_2
274 enum GL_UNSIGNED_BYTE_3_3_2           = 0x8032;
275 enum GL_UNSIGNED_SHORT_4_4_4_4        = 0x8033;
276 enum GL_UNSIGNED_SHORT_5_5_5_1        = 0x8034;
277 enum GL_UNSIGNED_INT_8_8_8_8          = 0x8035;
278 enum GL_UNSIGNED_INT_10_10_10_2       = 0x8036;
279 enum GL_TEXTURE_BINDING_3D            = 0x806A;
280 enum GL_PACK_SKIP_IMAGES              = 0x806B;
281 enum GL_PACK_IMAGE_HEIGHT             = 0x806C;
282 enum GL_UNPACK_SKIP_IMAGES            = 0x806D;
283 enum GL_UNPACK_IMAGE_HEIGHT           = 0x806E;
284 enum GL_TEXTURE_3D                    = 0x806F;
285 enum GL_PROXY_TEXTURE_3D              = 0x8070;
286 enum GL_TEXTURE_DEPTH                 = 0x8071;
287 enum GL_TEXTURE_WRAP_R                = 0x8072;
288 enum GL_MAX_3D_TEXTURE_SIZE           = 0x8073;
289 enum GL_UNSIGNED_BYTE_2_3_3_REV       = 0x8362;
290 enum GL_UNSIGNED_SHORT_5_6_5          = 0x8363;
291 enum GL_UNSIGNED_SHORT_5_6_5_REV      = 0x8364;
292 enum GL_UNSIGNED_SHORT_4_4_4_4_REV    = 0x8365;
293 enum GL_UNSIGNED_SHORT_1_5_5_5_REV    = 0x8366;
294 enum GL_UNSIGNED_INT_8_8_8_8_REV      = 0x8367;
295 enum GL_UNSIGNED_INT_2_10_10_10_REV   = 0x8368;
296 enum GL_BGR                           = 0x80E0;
297 enum GL_BGRA                          = 0x80E1;
298 enum GL_MAX_ELEMENTS_VERTICES         = 0x80E8;
299 enum GL_MAX_ELEMENTS_INDICES          = 0x80E9;
300 enum GL_CLAMP_TO_EDGE                 = 0x812F;
301 enum GL_TEXTURE_MIN_LOD               = 0x813A;
302 enum GL_TEXTURE_MAX_LOD               = 0x813B;
303 enum GL_TEXTURE_BASE_LEVEL            = 0x813C;
304 enum GL_TEXTURE_MAX_LEVEL             = 0x813D;
305 enum GL_SMOOTH_POINT_SIZE_RANGE       = 0x0B12;
306 enum GL_SMOOTH_POINT_SIZE_GRANULARITY = 0x0B13;
307 enum GL_SMOOTH_LINE_WIDTH_RANGE       = 0x0B22;
308 enum GL_SMOOTH_LINE_WIDTH_GRANULARITY = 0x0B23;
309 enum GL_ALIASED_LINE_WIDTH_RANGE      = 0x846E;
310 
311 // Constants for GL_VERSION_1_3
312 enum GL_TEXTURE0                       = 0x84C0;
313 enum GL_TEXTURE1                       = 0x84C1;
314 enum GL_TEXTURE2                       = 0x84C2;
315 enum GL_TEXTURE3                       = 0x84C3;
316 enum GL_TEXTURE4                       = 0x84C4;
317 enum GL_TEXTURE5                       = 0x84C5;
318 enum GL_TEXTURE6                       = 0x84C6;
319 enum GL_TEXTURE7                       = 0x84C7;
320 enum GL_TEXTURE8                       = 0x84C8;
321 enum GL_TEXTURE9                       = 0x84C9;
322 enum GL_TEXTURE10                      = 0x84CA;
323 enum GL_TEXTURE11                      = 0x84CB;
324 enum GL_TEXTURE12                      = 0x84CC;
325 enum GL_TEXTURE13                      = 0x84CD;
326 enum GL_TEXTURE14                      = 0x84CE;
327 enum GL_TEXTURE15                      = 0x84CF;
328 enum GL_TEXTURE16                      = 0x84D0;
329 enum GL_TEXTURE17                      = 0x84D1;
330 enum GL_TEXTURE18                      = 0x84D2;
331 enum GL_TEXTURE19                      = 0x84D3;
332 enum GL_TEXTURE20                      = 0x84D4;
333 enum GL_TEXTURE21                      = 0x84D5;
334 enum GL_TEXTURE22                      = 0x84D6;
335 enum GL_TEXTURE23                      = 0x84D7;
336 enum GL_TEXTURE24                      = 0x84D8;
337 enum GL_TEXTURE25                      = 0x84D9;
338 enum GL_TEXTURE26                      = 0x84DA;
339 enum GL_TEXTURE27                      = 0x84DB;
340 enum GL_TEXTURE28                      = 0x84DC;
341 enum GL_TEXTURE29                      = 0x84DD;
342 enum GL_TEXTURE30                      = 0x84DE;
343 enum GL_TEXTURE31                      = 0x84DF;
344 enum GL_ACTIVE_TEXTURE                 = 0x84E0;
345 enum GL_MULTISAMPLE                    = 0x809D;
346 enum GL_SAMPLE_ALPHA_TO_COVERAGE       = 0x809E;
347 enum GL_SAMPLE_ALPHA_TO_ONE            = 0x809F;
348 enum GL_SAMPLE_COVERAGE                = 0x80A0;
349 enum GL_SAMPLE_BUFFERS                 = 0x80A8;
350 enum GL_SAMPLES                        = 0x80A9;
351 enum GL_SAMPLE_COVERAGE_VALUE          = 0x80AA;
352 enum GL_SAMPLE_COVERAGE_INVERT         = 0x80AB;
353 enum GL_TEXTURE_CUBE_MAP               = 0x8513;
354 enum GL_TEXTURE_BINDING_CUBE_MAP       = 0x8514;
355 enum GL_TEXTURE_CUBE_MAP_POSITIVE_X    = 0x8515;
356 enum GL_TEXTURE_CUBE_MAP_NEGATIVE_X    = 0x8516;
357 enum GL_TEXTURE_CUBE_MAP_POSITIVE_Y    = 0x8517;
358 enum GL_TEXTURE_CUBE_MAP_NEGATIVE_Y    = 0x8518;
359 enum GL_TEXTURE_CUBE_MAP_POSITIVE_Z    = 0x8519;
360 enum GL_TEXTURE_CUBE_MAP_NEGATIVE_Z    = 0x851A;
361 enum GL_PROXY_TEXTURE_CUBE_MAP         = 0x851B;
362 enum GL_MAX_CUBE_MAP_TEXTURE_SIZE      = 0x851C;
363 enum GL_COMPRESSED_RGB                 = 0x84ED;
364 enum GL_COMPRESSED_RGBA                = 0x84EE;
365 enum GL_TEXTURE_COMPRESSION_HINT       = 0x84EF;
366 enum GL_TEXTURE_COMPRESSED_IMAGE_SIZE  = 0x86A0;
367 enum GL_TEXTURE_COMPRESSED             = 0x86A1;
368 enum GL_NUM_COMPRESSED_TEXTURE_FORMATS = 0x86A2;
369 enum GL_COMPRESSED_TEXTURE_FORMATS     = 0x86A3;
370 enum GL_CLAMP_TO_BORDER                = 0x812D;
371 
372 // Constants for GL_VERSION_1_4
373 enum GL_BLEND_DST_RGB             = 0x80C8;
374 enum GL_BLEND_SRC_RGB             = 0x80C9;
375 enum GL_BLEND_DST_ALPHA           = 0x80CA;
376 enum GL_BLEND_SRC_ALPHA           = 0x80CB;
377 enum GL_POINT_FADE_THRESHOLD_SIZE = 0x8128;
378 enum GL_DEPTH_COMPONENT16         = 0x81A5;
379 enum GL_DEPTH_COMPONENT24         = 0x81A6;
380 enum GL_DEPTH_COMPONENT32         = 0x81A7;
381 enum GL_MIRRORED_REPEAT           = 0x8370;
382 enum GL_MAX_TEXTURE_LOD_BIAS      = 0x84FD;
383 enum GL_TEXTURE_LOD_BIAS          = 0x8501;
384 enum GL_INCR_WRAP                 = 0x8507;
385 enum GL_DECR_WRAP                 = 0x8508;
386 enum GL_TEXTURE_DEPTH_SIZE        = 0x884A;
387 enum GL_TEXTURE_COMPARE_MODE      = 0x884C;
388 enum GL_TEXTURE_COMPARE_FUNC      = 0x884D;
389 enum GL_BLEND_COLOR               = 0x8005;
390 enum GL_BLEND_EQUATION            = 0x8009;
391 enum GL_CONSTANT_COLOR            = 0x8001;
392 enum GL_ONE_MINUS_CONSTANT_COLOR  = 0x8002;
393 enum GL_CONSTANT_ALPHA            = 0x8003;
394 enum GL_ONE_MINUS_CONSTANT_ALPHA  = 0x8004;
395 enum GL_FUNC_ADD                  = 0x8006;
396 enum GL_FUNC_REVERSE_SUBTRACT     = 0x800B;
397 enum GL_FUNC_SUBTRACT             = 0x800A;
398 enum GL_MIN                       = 0x8007;
399 enum GL_MAX                       = 0x8008;
400 
401 // Constants for GL_VERSION_1_5
402 enum GL_BUFFER_SIZE                        = 0x8764;
403 enum GL_BUFFER_USAGE                       = 0x8765;
404 enum GL_QUERY_COUNTER_BITS                 = 0x8864;
405 enum GL_CURRENT_QUERY                      = 0x8865;
406 enum GL_QUERY_RESULT                       = 0x8866;
407 enum GL_QUERY_RESULT_AVAILABLE             = 0x8867;
408 enum GL_ARRAY_BUFFER                       = 0x8892;
409 enum GL_ELEMENT_ARRAY_BUFFER               = 0x8893;
410 enum GL_ARRAY_BUFFER_BINDING               = 0x8894;
411 enum GL_ELEMENT_ARRAY_BUFFER_BINDING       = 0x8895;
412 enum GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 0x889F;
413 enum GL_READ_ONLY                          = 0x88B8;
414 enum GL_WRITE_ONLY                         = 0x88B9;
415 enum GL_READ_WRITE                         = 0x88BA;
416 enum GL_BUFFER_ACCESS                      = 0x88BB;
417 enum GL_BUFFER_MAPPED                      = 0x88BC;
418 enum GL_BUFFER_MAP_POINTER                 = 0x88BD;
419 enum GL_STREAM_DRAW                        = 0x88E0;
420 enum GL_STREAM_READ                        = 0x88E1;
421 enum GL_STREAM_COPY                        = 0x88E2;
422 enum GL_STATIC_DRAW                        = 0x88E4;
423 enum GL_STATIC_READ                        = 0x88E5;
424 enum GL_STATIC_COPY                        = 0x88E6;
425 enum GL_DYNAMIC_DRAW                       = 0x88E8;
426 enum GL_DYNAMIC_READ                       = 0x88E9;
427 enum GL_DYNAMIC_COPY                       = 0x88EA;
428 enum GL_SAMPLES_PASSED                     = 0x8914;
429 enum GL_SRC1_ALPHA                         = 0x8589;
430 
431 // Constants for GL_VERSION_2_0
432 enum GL_BLEND_EQUATION_RGB               = 0x8009;
433 enum GL_VERTEX_ATTRIB_ARRAY_ENABLED      = 0x8622;
434 enum GL_VERTEX_ATTRIB_ARRAY_SIZE         = 0x8623;
435 enum GL_VERTEX_ATTRIB_ARRAY_STRIDE       = 0x8624;
436 enum GL_VERTEX_ATTRIB_ARRAY_TYPE         = 0x8625;
437 enum GL_CURRENT_VERTEX_ATTRIB            = 0x8626;
438 enum GL_VERTEX_PROGRAM_POINT_SIZE        = 0x8642;
439 enum GL_VERTEX_ATTRIB_ARRAY_POINTER      = 0x8645;
440 enum GL_STENCIL_BACK_FUNC                = 0x8800;
441 enum GL_STENCIL_BACK_FAIL                = 0x8801;
442 enum GL_STENCIL_BACK_PASS_DEPTH_FAIL     = 0x8802;
443 enum GL_STENCIL_BACK_PASS_DEPTH_PASS     = 0x8803;
444 enum GL_MAX_DRAW_BUFFERS                 = 0x8824;
445 enum GL_DRAW_BUFFER0                     = 0x8825;
446 enum GL_DRAW_BUFFER1                     = 0x8826;
447 enum GL_DRAW_BUFFER2                     = 0x8827;
448 enum GL_DRAW_BUFFER3                     = 0x8828;
449 enum GL_DRAW_BUFFER4                     = 0x8829;
450 enum GL_DRAW_BUFFER5                     = 0x882A;
451 enum GL_DRAW_BUFFER6                     = 0x882B;
452 enum GL_DRAW_BUFFER7                     = 0x882C;
453 enum GL_DRAW_BUFFER8                     = 0x882D;
454 enum GL_DRAW_BUFFER9                     = 0x882E;
455 enum GL_DRAW_BUFFER10                    = 0x882F;
456 enum GL_DRAW_BUFFER11                    = 0x8830;
457 enum GL_DRAW_BUFFER12                    = 0x8831;
458 enum GL_DRAW_BUFFER13                    = 0x8832;
459 enum GL_DRAW_BUFFER14                    = 0x8833;
460 enum GL_DRAW_BUFFER15                    = 0x8834;
461 enum GL_BLEND_EQUATION_ALPHA             = 0x883D;
462 enum GL_MAX_VERTEX_ATTRIBS               = 0x8869;
463 enum GL_VERTEX_ATTRIB_ARRAY_NORMALIZED   = 0x886A;
464 enum GL_MAX_TEXTURE_IMAGE_UNITS          = 0x8872;
465 enum GL_FRAGMENT_SHADER                  = 0x8B30;
466 enum GL_VERTEX_SHADER                    = 0x8B31;
467 enum GL_MAX_FRAGMENT_UNIFORM_COMPONENTS  = 0x8B49;
468 enum GL_MAX_VERTEX_UNIFORM_COMPONENTS    = 0x8B4A;
469 enum GL_MAX_VARYING_FLOATS               = 0x8B4B;
470 enum GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS   = 0x8B4C;
471 enum GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS = 0x8B4D;
472 enum GL_SHADER_TYPE                      = 0x8B4F;
473 enum GL_FLOAT_VEC2                       = 0x8B50;
474 enum GL_FLOAT_VEC3                       = 0x8B51;
475 enum GL_FLOAT_VEC4                       = 0x8B52;
476 enum GL_INT_VEC2                         = 0x8B53;
477 enum GL_INT_VEC3                         = 0x8B54;
478 enum GL_INT_VEC4                         = 0x8B55;
479 enum GL_BOOL                             = 0x8B56;
480 enum GL_BOOL_VEC2                        = 0x8B57;
481 enum GL_BOOL_VEC3                        = 0x8B58;
482 enum GL_BOOL_VEC4                        = 0x8B59;
483 enum GL_FLOAT_MAT2                       = 0x8B5A;
484 enum GL_FLOAT_MAT3                       = 0x8B5B;
485 enum GL_FLOAT_MAT4                       = 0x8B5C;
486 enum GL_SAMPLER_1D                       = 0x8B5D;
487 enum GL_SAMPLER_2D                       = 0x8B5E;
488 enum GL_SAMPLER_3D                       = 0x8B5F;
489 enum GL_SAMPLER_CUBE                     = 0x8B60;
490 enum GL_SAMPLER_1D_SHADOW                = 0x8B61;
491 enum GL_SAMPLER_2D_SHADOW                = 0x8B62;
492 enum GL_DELETE_STATUS                    = 0x8B80;
493 enum GL_COMPILE_STATUS                   = 0x8B81;
494 enum GL_LINK_STATUS                      = 0x8B82;
495 enum GL_VALIDATE_STATUS                  = 0x8B83;
496 enum GL_INFO_LOG_LENGTH                  = 0x8B84;
497 enum GL_ATTACHED_SHADERS                 = 0x8B85;
498 enum GL_ACTIVE_UNIFORMS                  = 0x8B86;
499 enum GL_ACTIVE_UNIFORM_MAX_LENGTH        = 0x8B87;
500 enum GL_SHADER_SOURCE_LENGTH             = 0x8B88;
501 enum GL_ACTIVE_ATTRIBUTES                = 0x8B89;
502 enum GL_ACTIVE_ATTRIBUTE_MAX_LENGTH      = 0x8B8A;
503 enum GL_FRAGMENT_SHADER_DERIVATIVE_HINT  = 0x8B8B;
504 enum GL_SHADING_LANGUAGE_VERSION         = 0x8B8C;
505 enum GL_CURRENT_PROGRAM                  = 0x8B8D;
506 enum GL_POINT_SPRITE_COORD_ORIGIN        = 0x8CA0;
507 enum GL_LOWER_LEFT                       = 0x8CA1;
508 enum GL_UPPER_LEFT                       = 0x8CA2;
509 enum GL_STENCIL_BACK_REF                 = 0x8CA3;
510 enum GL_STENCIL_BACK_VALUE_MASK          = 0x8CA4;
511 enum GL_STENCIL_BACK_WRITEMASK           = 0x8CA5;
512 
513 // Constants for GL_VERSION_2_1
514 enum GL_PIXEL_PACK_BUFFER           = 0x88EB;
515 enum GL_PIXEL_UNPACK_BUFFER         = 0x88EC;
516 enum GL_PIXEL_PACK_BUFFER_BINDING   = 0x88ED;
517 enum GL_PIXEL_UNPACK_BUFFER_BINDING = 0x88EF;
518 enum GL_FLOAT_MAT2x3                = 0x8B65;
519 enum GL_FLOAT_MAT2x4                = 0x8B66;
520 enum GL_FLOAT_MAT3x2                = 0x8B67;
521 enum GL_FLOAT_MAT3x4                = 0x8B68;
522 enum GL_FLOAT_MAT4x2                = 0x8B69;
523 enum GL_FLOAT_MAT4x3                = 0x8B6A;
524 enum GL_SRGB                        = 0x8C40;
525 enum GL_SRGB8                       = 0x8C41;
526 enum GL_SRGB_ALPHA                  = 0x8C42;
527 enum GL_SRGB8_ALPHA8                = 0x8C43;
528 enum GL_COMPRESSED_SRGB             = 0x8C48;
529 enum GL_COMPRESSED_SRGB_ALPHA       = 0x8C49;
530 
531 // Constants for GL_VERSION_3_0
532 enum GL_COMPARE_REF_TO_TEXTURE                        = 0x884E;
533 enum GL_CLIP_DISTANCE0                                = 0x3000;
534 enum GL_CLIP_DISTANCE1                                = 0x3001;
535 enum GL_CLIP_DISTANCE2                                = 0x3002;
536 enum GL_CLIP_DISTANCE3                                = 0x3003;
537 enum GL_CLIP_DISTANCE4                                = 0x3004;
538 enum GL_CLIP_DISTANCE5                                = 0x3005;
539 enum GL_CLIP_DISTANCE6                                = 0x3006;
540 enum GL_CLIP_DISTANCE7                                = 0x3007;
541 enum GL_MAX_CLIP_DISTANCES                            = 0x0D32;
542 enum GL_MAJOR_VERSION                                 = 0x821B;
543 enum GL_MINOR_VERSION                                 = 0x821C;
544 enum GL_NUM_EXTENSIONS                                = 0x821D;
545 enum GL_CONTEXT_FLAGS                                 = 0x821E;
546 enum GL_COMPRESSED_RED                                = 0x8225;
547 enum GL_COMPRESSED_RG                                 = 0x8226;
548 enum GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT           = 0x00000001;
549 enum GL_RGBA32F                                       = 0x8814;
550 enum GL_RGB32F                                        = 0x8815;
551 enum GL_RGBA16F                                       = 0x881A;
552 enum GL_RGB16F                                        = 0x881B;
553 enum GL_VERTEX_ATTRIB_ARRAY_INTEGER                   = 0x88FD;
554 enum GL_MAX_ARRAY_TEXTURE_LAYERS                      = 0x88FF;
555 enum GL_MIN_PROGRAM_TEXEL_OFFSET                      = 0x8904;
556 enum GL_MAX_PROGRAM_TEXEL_OFFSET                      = 0x8905;
557 enum GL_CLAMP_READ_COLOR                              = 0x891C;
558 enum GL_FIXED_ONLY                                    = 0x891D;
559 enum GL_MAX_VARYING_COMPONENTS                        = 0x8B4B;
560 enum GL_TEXTURE_1D_ARRAY                              = 0x8C18;
561 enum GL_PROXY_TEXTURE_1D_ARRAY                        = 0x8C19;
562 enum GL_TEXTURE_2D_ARRAY                              = 0x8C1A;
563 enum GL_PROXY_TEXTURE_2D_ARRAY                        = 0x8C1B;
564 enum GL_TEXTURE_BINDING_1D_ARRAY                      = 0x8C1C;
565 enum GL_TEXTURE_BINDING_2D_ARRAY                      = 0x8C1D;
566 enum GL_R11F_G11F_B10F                                = 0x8C3A;
567 enum GL_UNSIGNED_INT_10F_11F_11F_REV                  = 0x8C3B;
568 enum GL_RGB9_E5                                       = 0x8C3D;
569 enum GL_UNSIGNED_INT_5_9_9_9_REV                      = 0x8C3E;
570 enum GL_TEXTURE_SHARED_SIZE                           = 0x8C3F;
571 enum GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH         = 0x8C76;
572 enum GL_TRANSFORM_FEEDBACK_BUFFER_MODE                = 0x8C7F;
573 enum GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS    = 0x8C80;
574 enum GL_TRANSFORM_FEEDBACK_VARYINGS                   = 0x8C83;
575 enum GL_TRANSFORM_FEEDBACK_BUFFER_START               = 0x8C84;
576 enum GL_TRANSFORM_FEEDBACK_BUFFER_SIZE                = 0x8C85;
577 enum GL_PRIMITIVES_GENERATED                          = 0x8C87;
578 enum GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN         = 0x8C88;
579 enum GL_RASTERIZER_DISCARD                            = 0x8C89;
580 enum GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS = 0x8C8A;
581 enum GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS       = 0x8C8B;
582 enum GL_INTERLEAVED_ATTRIBS                           = 0x8C8C;
583 enum GL_SEPARATE_ATTRIBS                              = 0x8C8D;
584 enum GL_TRANSFORM_FEEDBACK_BUFFER                     = 0x8C8E;
585 enum GL_TRANSFORM_FEEDBACK_BUFFER_BINDING             = 0x8C8F;
586 enum GL_RGBA32UI                                      = 0x8D70;
587 enum GL_RGB32UI                                       = 0x8D71;
588 enum GL_RGBA16UI                                      = 0x8D76;
589 enum GL_RGB16UI                                       = 0x8D77;
590 enum GL_RGBA8UI                                       = 0x8D7C;
591 enum GL_RGB8UI                                        = 0x8D7D;
592 enum GL_RGBA32I                                       = 0x8D82;
593 enum GL_RGB32I                                        = 0x8D83;
594 enum GL_RGBA16I                                       = 0x8D88;
595 enum GL_RGB16I                                        = 0x8D89;
596 enum GL_RGBA8I                                        = 0x8D8E;
597 enum GL_RGB8I                                         = 0x8D8F;
598 enum GL_RED_INTEGER                                   = 0x8D94;
599 enum GL_GREEN_INTEGER                                 = 0x8D95;
600 enum GL_BLUE_INTEGER                                  = 0x8D96;
601 enum GL_RGB_INTEGER                                   = 0x8D98;
602 enum GL_RGBA_INTEGER                                  = 0x8D99;
603 enum GL_BGR_INTEGER                                   = 0x8D9A;
604 enum GL_BGRA_INTEGER                                  = 0x8D9B;
605 enum GL_SAMPLER_1D_ARRAY                              = 0x8DC0;
606 enum GL_SAMPLER_2D_ARRAY                              = 0x8DC1;
607 enum GL_SAMPLER_1D_ARRAY_SHADOW                       = 0x8DC3;
608 enum GL_SAMPLER_2D_ARRAY_SHADOW                       = 0x8DC4;
609 enum GL_SAMPLER_CUBE_SHADOW                           = 0x8DC5;
610 enum GL_UNSIGNED_INT_VEC2                             = 0x8DC6;
611 enum GL_UNSIGNED_INT_VEC3                             = 0x8DC7;
612 enum GL_UNSIGNED_INT_VEC4                             = 0x8DC8;
613 enum GL_INT_SAMPLER_1D                                = 0x8DC9;
614 enum GL_INT_SAMPLER_2D                                = 0x8DCA;
615 enum GL_INT_SAMPLER_3D                                = 0x8DCB;
616 enum GL_INT_SAMPLER_CUBE                              = 0x8DCC;
617 enum GL_INT_SAMPLER_1D_ARRAY                          = 0x8DCE;
618 enum GL_INT_SAMPLER_2D_ARRAY                          = 0x8DCF;
619 enum GL_UNSIGNED_INT_SAMPLER_1D                       = 0x8DD1;
620 enum GL_UNSIGNED_INT_SAMPLER_2D                       = 0x8DD2;
621 enum GL_UNSIGNED_INT_SAMPLER_3D                       = 0x8DD3;
622 enum GL_UNSIGNED_INT_SAMPLER_CUBE                     = 0x8DD4;
623 enum GL_UNSIGNED_INT_SAMPLER_1D_ARRAY                 = 0x8DD6;
624 enum GL_UNSIGNED_INT_SAMPLER_2D_ARRAY                 = 0x8DD7;
625 enum GL_QUERY_WAIT                                    = 0x8E13;
626 enum GL_QUERY_NO_WAIT                                 = 0x8E14;
627 enum GL_QUERY_BY_REGION_WAIT                          = 0x8E15;
628 enum GL_QUERY_BY_REGION_NO_WAIT                       = 0x8E16;
629 enum GL_BUFFER_ACCESS_FLAGS                           = 0x911F;
630 enum GL_BUFFER_MAP_LENGTH                             = 0x9120;
631 enum GL_BUFFER_MAP_OFFSET                             = 0x9121;
632 enum GL_DEPTH_COMPONENT32F                            = 0x8CAC;
633 enum GL_DEPTH32F_STENCIL8                             = 0x8CAD;
634 enum GL_FLOAT_32_UNSIGNED_INT_24_8_REV                = 0x8DAD;
635 enum GL_INVALID_FRAMEBUFFER_OPERATION                 = 0x0506;
636 enum GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING         = 0x8210;
637 enum GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE         = 0x8211;
638 enum GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE               = 0x8212;
639 enum GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE             = 0x8213;
640 enum GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE              = 0x8214;
641 enum GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE             = 0x8215;
642 enum GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE             = 0x8216;
643 enum GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE           = 0x8217;
644 enum GL_FRAMEBUFFER_DEFAULT                           = 0x8218;
645 enum GL_FRAMEBUFFER_UNDEFINED                         = 0x8219;
646 enum GL_DEPTH_STENCIL_ATTACHMENT                      = 0x821A;
647 enum GL_MAX_RENDERBUFFER_SIZE                         = 0x84E8;
648 enum GL_DEPTH_STENCIL                                 = 0x84F9;
649 enum GL_UNSIGNED_INT_24_8                             = 0x84FA;
650 enum GL_DEPTH24_STENCIL8                              = 0x88F0;
651 enum GL_TEXTURE_STENCIL_SIZE                          = 0x88F1;
652 enum GL_TEXTURE_RED_TYPE                              = 0x8C10;
653 enum GL_TEXTURE_GREEN_TYPE                            = 0x8C11;
654 enum GL_TEXTURE_BLUE_TYPE                             = 0x8C12;
655 enum GL_TEXTURE_ALPHA_TYPE                            = 0x8C13;
656 enum GL_TEXTURE_DEPTH_TYPE                            = 0x8C16;
657 enum GL_UNSIGNED_NORMALIZED                           = 0x8C17;
658 enum GL_FRAMEBUFFER_BINDING                           = 0x8CA6;
659 enum GL_DRAW_FRAMEBUFFER_BINDING                      = 0x8CA6;
660 enum GL_RENDERBUFFER_BINDING                          = 0x8CA7;
661 enum GL_READ_FRAMEBUFFER                              = 0x8CA8;
662 enum GL_DRAW_FRAMEBUFFER                              = 0x8CA9;
663 enum GL_READ_FRAMEBUFFER_BINDING                      = 0x8CAA;
664 enum GL_RENDERBUFFER_SAMPLES                          = 0x8CAB;
665 enum GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE            = 0x8CD0;
666 enum GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME            = 0x8CD1;
667 enum GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL          = 0x8CD2;
668 enum GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE  = 0x8CD3;
669 enum GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER          = 0x8CD4;
670 enum GL_FRAMEBUFFER_COMPLETE                          = 0x8CD5;
671 enum GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT             = 0x8CD6;
672 enum GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT     = 0x8CD7;
673 enum GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER            = 0x8CDB;
674 enum GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER            = 0x8CDC;
675 enum GL_FRAMEBUFFER_UNSUPPORTED                       = 0x8CDD;
676 enum GL_MAX_COLOR_ATTACHMENTS                         = 0x8CDF;
677 enum GL_COLOR_ATTACHMENT0                             = 0x8CE0;
678 enum GL_COLOR_ATTACHMENT1                             = 0x8CE1;
679 enum GL_COLOR_ATTACHMENT2                             = 0x8CE2;
680 enum GL_COLOR_ATTACHMENT3                             = 0x8CE3;
681 enum GL_COLOR_ATTACHMENT4                             = 0x8CE4;
682 enum GL_COLOR_ATTACHMENT5                             = 0x8CE5;
683 enum GL_COLOR_ATTACHMENT6                             = 0x8CE6;
684 enum GL_COLOR_ATTACHMENT7                             = 0x8CE7;
685 enum GL_COLOR_ATTACHMENT8                             = 0x8CE8;
686 enum GL_COLOR_ATTACHMENT9                             = 0x8CE9;
687 enum GL_COLOR_ATTACHMENT10                            = 0x8CEA;
688 enum GL_COLOR_ATTACHMENT11                            = 0x8CEB;
689 enum GL_COLOR_ATTACHMENT12                            = 0x8CEC;
690 enum GL_COLOR_ATTACHMENT13                            = 0x8CED;
691 enum GL_COLOR_ATTACHMENT14                            = 0x8CEE;
692 enum GL_COLOR_ATTACHMENT15                            = 0x8CEF;
693 enum GL_COLOR_ATTACHMENT16                            = 0x8CF0;
694 enum GL_COLOR_ATTACHMENT17                            = 0x8CF1;
695 enum GL_COLOR_ATTACHMENT18                            = 0x8CF2;
696 enum GL_COLOR_ATTACHMENT19                            = 0x8CF3;
697 enum GL_COLOR_ATTACHMENT20                            = 0x8CF4;
698 enum GL_COLOR_ATTACHMENT21                            = 0x8CF5;
699 enum GL_COLOR_ATTACHMENT22                            = 0x8CF6;
700 enum GL_COLOR_ATTACHMENT23                            = 0x8CF7;
701 enum GL_COLOR_ATTACHMENT24                            = 0x8CF8;
702 enum GL_COLOR_ATTACHMENT25                            = 0x8CF9;
703 enum GL_COLOR_ATTACHMENT26                            = 0x8CFA;
704 enum GL_COLOR_ATTACHMENT27                            = 0x8CFB;
705 enum GL_COLOR_ATTACHMENT28                            = 0x8CFC;
706 enum GL_COLOR_ATTACHMENT29                            = 0x8CFD;
707 enum GL_COLOR_ATTACHMENT30                            = 0x8CFE;
708 enum GL_COLOR_ATTACHMENT31                            = 0x8CFF;
709 enum GL_DEPTH_ATTACHMENT                              = 0x8D00;
710 enum GL_STENCIL_ATTACHMENT                            = 0x8D20;
711 enum GL_FRAMEBUFFER                                   = 0x8D40;
712 enum GL_RENDERBUFFER                                  = 0x8D41;
713 enum GL_RENDERBUFFER_WIDTH                            = 0x8D42;
714 enum GL_RENDERBUFFER_HEIGHT                           = 0x8D43;
715 enum GL_RENDERBUFFER_INTERNAL_FORMAT                  = 0x8D44;
716 enum GL_STENCIL_INDEX1                                = 0x8D46;
717 enum GL_STENCIL_INDEX4                                = 0x8D47;
718 enum GL_STENCIL_INDEX8                                = 0x8D48;
719 enum GL_STENCIL_INDEX16                               = 0x8D49;
720 enum GL_RENDERBUFFER_RED_SIZE                         = 0x8D50;
721 enum GL_RENDERBUFFER_GREEN_SIZE                       = 0x8D51;
722 enum GL_RENDERBUFFER_BLUE_SIZE                        = 0x8D52;
723 enum GL_RENDERBUFFER_ALPHA_SIZE                       = 0x8D53;
724 enum GL_RENDERBUFFER_DEPTH_SIZE                       = 0x8D54;
725 enum GL_RENDERBUFFER_STENCIL_SIZE                     = 0x8D55;
726 enum GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE            = 0x8D56;
727 enum GL_MAX_SAMPLES                                   = 0x8D57;
728 enum GL_FRAMEBUFFER_SRGB                              = 0x8DB9;
729 enum GL_HALF_FLOAT                                    = 0x140B;
730 enum GL_MAP_READ_BIT                                  = 0x0001;
731 enum GL_MAP_WRITE_BIT                                 = 0x0002;
732 enum GL_MAP_INVALIDATE_RANGE_BIT                      = 0x0004;
733 enum GL_MAP_INVALIDATE_BUFFER_BIT                     = 0x0008;
734 enum GL_MAP_FLUSH_EXPLICIT_BIT                        = 0x0010;
735 enum GL_MAP_UNSYNCHRONIZED_BIT                        = 0x0020;
736 enum GL_COMPRESSED_RED_RGTC1                          = 0x8DBB;
737 enum GL_COMPRESSED_SIGNED_RED_RGTC1                   = 0x8DBC;
738 enum GL_COMPRESSED_RG_RGTC2                           = 0x8DBD;
739 enum GL_COMPRESSED_SIGNED_RG_RGTC2                    = 0x8DBE;
740 enum GL_RG                                            = 0x8227;
741 enum GL_RG_INTEGER                                    = 0x8228;
742 enum GL_R8                                            = 0x8229;
743 enum GL_R16                                           = 0x822A;
744 enum GL_RG8                                           = 0x822B;
745 enum GL_RG16                                          = 0x822C;
746 enum GL_R16F                                          = 0x822D;
747 enum GL_R32F                                          = 0x822E;
748 enum GL_RG16F                                         = 0x822F;
749 enum GL_RG32F                                         = 0x8230;
750 enum GL_R8I                                           = 0x8231;
751 enum GL_R8UI                                          = 0x8232;
752 enum GL_R16I                                          = 0x8233;
753 enum GL_R16UI                                         = 0x8234;
754 enum GL_R32I                                          = 0x8235;
755 enum GL_R32UI                                         = 0x8236;
756 enum GL_RG8I                                          = 0x8237;
757 enum GL_RG8UI                                         = 0x8238;
758 enum GL_RG16I                                         = 0x8239;
759 enum GL_RG16UI                                        = 0x823A;
760 enum GL_RG32I                                         = 0x823B;
761 enum GL_RG32UI                                        = 0x823C;
762 enum GL_VERTEX_ARRAY_BINDING                          = 0x85B5;
763 
764 // Constants for GL_VERSION_3_1
765 enum GL_SAMPLER_2D_RECT                             = 0x8B63;
766 enum GL_SAMPLER_2D_RECT_SHADOW                      = 0x8B64;
767 enum GL_SAMPLER_BUFFER                              = 0x8DC2;
768 enum GL_INT_SAMPLER_2D_RECT                         = 0x8DCD;
769 enum GL_INT_SAMPLER_BUFFER                          = 0x8DD0;
770 enum GL_UNSIGNED_INT_SAMPLER_2D_RECT                = 0x8DD5;
771 enum GL_UNSIGNED_INT_SAMPLER_BUFFER                 = 0x8DD8;
772 enum GL_TEXTURE_BUFFER                              = 0x8C2A;
773 enum GL_MAX_TEXTURE_BUFFER_SIZE                     = 0x8C2B;
774 enum GL_TEXTURE_BINDING_BUFFER                      = 0x8C2C;
775 enum GL_TEXTURE_BUFFER_DATA_STORE_BINDING           = 0x8C2D;
776 enum GL_TEXTURE_RECTANGLE                           = 0x84F5;
777 enum GL_TEXTURE_BINDING_RECTANGLE                   = 0x84F6;
778 enum GL_PROXY_TEXTURE_RECTANGLE                     = 0x84F7;
779 enum GL_MAX_RECTANGLE_TEXTURE_SIZE                  = 0x84F8;
780 enum GL_R8_SNORM                                    = 0x8F94;
781 enum GL_RG8_SNORM                                   = 0x8F95;
782 enum GL_RGB8_SNORM                                  = 0x8F96;
783 enum GL_RGBA8_SNORM                                 = 0x8F97;
784 enum GL_R16_SNORM                                   = 0x8F98;
785 enum GL_RG16_SNORM                                  = 0x8F99;
786 enum GL_RGB16_SNORM                                 = 0x8F9A;
787 enum GL_RGBA16_SNORM                                = 0x8F9B;
788 enum GL_SIGNED_NORMALIZED                           = 0x8F9C;
789 enum GL_PRIMITIVE_RESTART                           = 0x8F9D;
790 enum GL_PRIMITIVE_RESTART_INDEX                     = 0x8F9E;
791 enum GL_COPY_READ_BUFFER                            = 0x8F36;
792 enum GL_COPY_WRITE_BUFFER                           = 0x8F37;
793 enum GL_UNIFORM_BUFFER                              = 0x8A11;
794 enum GL_UNIFORM_BUFFER_BINDING                      = 0x8A28;
795 enum GL_UNIFORM_BUFFER_START                        = 0x8A29;
796 enum GL_UNIFORM_BUFFER_SIZE                         = 0x8A2A;
797 enum GL_MAX_VERTEX_UNIFORM_BLOCKS                   = 0x8A2B;
798 enum GL_MAX_GEOMETRY_UNIFORM_BLOCKS                 = 0x8A2C;
799 enum GL_MAX_FRAGMENT_UNIFORM_BLOCKS                 = 0x8A2D;
800 enum GL_MAX_COMBINED_UNIFORM_BLOCKS                 = 0x8A2E;
801 enum GL_MAX_UNIFORM_BUFFER_BINDINGS                 = 0x8A2F;
802 enum GL_MAX_UNIFORM_BLOCK_SIZE                      = 0x8A30;
803 enum GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS      = 0x8A31;
804 enum GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS    = 0x8A32;
805 enum GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS    = 0x8A33;
806 enum GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT             = 0x8A34;
807 enum GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH        = 0x8A35;
808 enum GL_ACTIVE_UNIFORM_BLOCKS                       = 0x8A36;
809 enum GL_UNIFORM_TYPE                                = 0x8A37;
810 enum GL_UNIFORM_SIZE                                = 0x8A38;
811 enum GL_UNIFORM_NAME_LENGTH                         = 0x8A39;
812 enum GL_UNIFORM_BLOCK_INDEX                         = 0x8A3A;
813 enum GL_UNIFORM_OFFSET                              = 0x8A3B;
814 enum GL_UNIFORM_ARRAY_STRIDE                        = 0x8A3C;
815 enum GL_UNIFORM_MATRIX_STRIDE                       = 0x8A3D;
816 enum GL_UNIFORM_IS_ROW_MAJOR                        = 0x8A3E;
817 enum GL_UNIFORM_BLOCK_BINDING                       = 0x8A3F;
818 enum GL_UNIFORM_BLOCK_DATA_SIZE                     = 0x8A40;
819 enum GL_UNIFORM_BLOCK_NAME_LENGTH                   = 0x8A41;
820 enum GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS               = 0x8A42;
821 enum GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES        = 0x8A43;
822 enum GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER   = 0x8A44;
823 enum GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER = 0x8A45;
824 enum GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 0x8A46;
825 enum GL_INVALID_INDEX                               = 0xFFFFFFFF;
826 
827 // Constants for GL_VERSION_3_2
828 enum GL_CONTEXT_CORE_PROFILE_BIT                  = 0x00000001;
829 enum GL_CONTEXT_COMPATIBILITY_PROFILE_BIT         = 0x00000002;
830 enum GL_LINES_ADJACENCY                           = 0x000A;
831 enum GL_LINE_STRIP_ADJACENCY                      = 0x000B;
832 enum GL_TRIANGLES_ADJACENCY                       = 0x000C;
833 enum GL_TRIANGLE_STRIP_ADJACENCY                  = 0x000D;
834 enum GL_PROGRAM_POINT_SIZE                        = 0x8642;
835 enum GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS          = 0x8C29;
836 enum GL_FRAMEBUFFER_ATTACHMENT_LAYERED            = 0x8DA7;
837 enum GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS      = 0x8DA8;
838 enum GL_GEOMETRY_SHADER                           = 0x8DD9;
839 enum GL_GEOMETRY_VERTICES_OUT                     = 0x8916;
840 enum GL_GEOMETRY_INPUT_TYPE                       = 0x8917;
841 enum GL_GEOMETRY_OUTPUT_TYPE                      = 0x8918;
842 enum GL_MAX_GEOMETRY_UNIFORM_COMPONENTS           = 0x8DDF;
843 enum GL_MAX_GEOMETRY_OUTPUT_VERTICES              = 0x8DE0;
844 enum GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS      = 0x8DE1;
845 enum GL_MAX_VERTEX_OUTPUT_COMPONENTS              = 0x9122;
846 enum GL_MAX_GEOMETRY_INPUT_COMPONENTS             = 0x9123;
847 enum GL_MAX_GEOMETRY_OUTPUT_COMPONENTS            = 0x9124;
848 enum GL_MAX_FRAGMENT_INPUT_COMPONENTS             = 0x9125;
849 enum GL_CONTEXT_PROFILE_MASK                      = 0x9126;
850 enum GL_DEPTH_CLAMP                               = 0x864F;
851 enum GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION  = 0x8E4C;
852 enum GL_FIRST_VERTEX_CONVENTION                   = 0x8E4D;
853 enum GL_LAST_VERTEX_CONVENTION                    = 0x8E4E;
854 enum GL_PROVOKING_VERTEX                          = 0x8E4F;
855 enum GL_TEXTURE_CUBE_MAP_SEAMLESS                 = 0x884F;
856 enum GL_MAX_SERVER_WAIT_TIMEOUT                   = 0x9111;
857 enum GL_OBJECT_TYPE                               = 0x9112;
858 enum GL_SYNC_CONDITION                            = 0x9113;
859 enum GL_SYNC_STATUS                               = 0x9114;
860 enum GL_SYNC_FLAGS                                = 0x9115;
861 enum GL_SYNC_FENCE                                = 0x9116;
862 enum GL_SYNC_GPU_COMMANDS_COMPLETE                = 0x9117;
863 enum GL_UNSIGNALED                                = 0x9118;
864 enum GL_SIGNALED                                  = 0x9119;
865 enum GL_ALREADY_SIGNALED                          = 0x911A;
866 enum GL_TIMEOUT_EXPIRED                           = 0x911B;
867 enum GL_CONDITION_SATISFIED                       = 0x911C;
868 enum GL_WAIT_FAILED                               = 0x911D;
869 enum GL_TIMEOUT_IGNORED                           = 0xFFFFFFFFFFFFFFFF;
870 enum GL_SYNC_FLUSH_COMMANDS_BIT                   = 0x00000001;
871 enum GL_SAMPLE_POSITION                           = 0x8E50;
872 enum GL_SAMPLE_MASK                               = 0x8E51;
873 enum GL_SAMPLE_MASK_VALUE                         = 0x8E52;
874 enum GL_MAX_SAMPLE_MASK_WORDS                     = 0x8E59;
875 enum GL_TEXTURE_2D_MULTISAMPLE                    = 0x9100;
876 enum GL_PROXY_TEXTURE_2D_MULTISAMPLE              = 0x9101;
877 enum GL_TEXTURE_2D_MULTISAMPLE_ARRAY              = 0x9102;
878 enum GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY        = 0x9103;
879 enum GL_TEXTURE_BINDING_2D_MULTISAMPLE            = 0x9104;
880 enum GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY      = 0x9105;
881 enum GL_TEXTURE_SAMPLES                           = 0x9106;
882 enum GL_TEXTURE_FIXED_SAMPLE_LOCATIONS            = 0x9107;
883 enum GL_SAMPLER_2D_MULTISAMPLE                    = 0x9108;
884 enum GL_INT_SAMPLER_2D_MULTISAMPLE                = 0x9109;
885 enum GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE       = 0x910A;
886 enum GL_SAMPLER_2D_MULTISAMPLE_ARRAY              = 0x910B;
887 enum GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY          = 0x910C;
888 enum GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910D;
889 enum GL_MAX_COLOR_TEXTURE_SAMPLES                 = 0x910E;
890 enum GL_MAX_DEPTH_TEXTURE_SAMPLES                 = 0x910F;
891 enum GL_MAX_INTEGER_SAMPLES                       = 0x9110;
892 
893 // Constants for GL_VERSION_3_3
894 enum GL_VERTEX_ATTRIB_ARRAY_DIVISOR  = 0x88FE;
895 enum GL_SRC1_COLOR                   = 0x88F9;
896 enum GL_ONE_MINUS_SRC1_COLOR         = 0x88FA;
897 enum GL_ONE_MINUS_SRC1_ALPHA         = 0x88FB;
898 enum GL_MAX_DUAL_SOURCE_DRAW_BUFFERS = 0x88FC;
899 enum GL_ANY_SAMPLES_PASSED           = 0x8C2F;
900 enum GL_SAMPLER_BINDING              = 0x8919;
901 enum GL_RGB10_A2UI                   = 0x906F;
902 enum GL_TEXTURE_SWIZZLE_R            = 0x8E42;
903 enum GL_TEXTURE_SWIZZLE_G            = 0x8E43;
904 enum GL_TEXTURE_SWIZZLE_B            = 0x8E44;
905 enum GL_TEXTURE_SWIZZLE_A            = 0x8E45;
906 enum GL_TEXTURE_SWIZZLE_RGBA         = 0x8E46;
907 enum GL_TIME_ELAPSED                 = 0x88BF;
908 enum GL_TIMESTAMP                    = 0x8E28;
909 enum GL_INT_2_10_10_10_REV           = 0x8D9F;
910 
911 // Constants for GL_VERSION_4_0
912 enum GL_SAMPLE_SHADING                                     = 0x8C36;
913 enum GL_MIN_SAMPLE_SHADING_VALUE                           = 0x8C37;
914 enum GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET                  = 0x8E5E;
915 enum GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET                  = 0x8E5F;
916 enum GL_TEXTURE_CUBE_MAP_ARRAY                             = 0x9009;
917 enum GL_TEXTURE_BINDING_CUBE_MAP_ARRAY                     = 0x900A;
918 enum GL_PROXY_TEXTURE_CUBE_MAP_ARRAY                       = 0x900B;
919 enum GL_SAMPLER_CUBE_MAP_ARRAY                             = 0x900C;
920 enum GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW                      = 0x900D;
921 enum GL_INT_SAMPLER_CUBE_MAP_ARRAY                         = 0x900E;
922 enum GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY                = 0x900F;
923 enum GL_DRAW_INDIRECT_BUFFER                               = 0x8F3F;
924 enum GL_DRAW_INDIRECT_BUFFER_BINDING                       = 0x8F43;
925 enum GL_GEOMETRY_SHADER_INVOCATIONS                        = 0x887F;
926 enum GL_MAX_GEOMETRY_SHADER_INVOCATIONS                    = 0x8E5A;
927 enum GL_MIN_FRAGMENT_INTERPOLATION_OFFSET                  = 0x8E5B;
928 enum GL_MAX_FRAGMENT_INTERPOLATION_OFFSET                  = 0x8E5C;
929 enum GL_FRAGMENT_INTERPOLATION_OFFSET_BITS                 = 0x8E5D;
930 enum GL_MAX_VERTEX_STREAMS                                 = 0x8E71;
931 enum GL_DOUBLE_VEC2                                        = 0x8FFC;
932 enum GL_DOUBLE_VEC3                                        = 0x8FFD;
933 enum GL_DOUBLE_VEC4                                        = 0x8FFE;
934 enum GL_DOUBLE_MAT2                                        = 0x8F46;
935 enum GL_DOUBLE_MAT3                                        = 0x8F47;
936 enum GL_DOUBLE_MAT4                                        = 0x8F48;
937 enum GL_DOUBLE_MAT2x3                                      = 0x8F49;
938 enum GL_DOUBLE_MAT2x4                                      = 0x8F4A;
939 enum GL_DOUBLE_MAT3x2                                      = 0x8F4B;
940 enum GL_DOUBLE_MAT3x4                                      = 0x8F4C;
941 enum GL_DOUBLE_MAT4x2                                      = 0x8F4D;
942 enum GL_DOUBLE_MAT4x3                                      = 0x8F4E;
943 enum GL_ACTIVE_SUBROUTINES                                 = 0x8DE5;
944 enum GL_ACTIVE_SUBROUTINE_UNIFORMS                         = 0x8DE6;
945 enum GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS                = 0x8E47;
946 enum GL_ACTIVE_SUBROUTINE_MAX_LENGTH                       = 0x8E48;
947 enum GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH               = 0x8E49;
948 enum GL_MAX_SUBROUTINES                                    = 0x8DE7;
949 enum GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS                   = 0x8DE8;
950 enum GL_NUM_COMPATIBLE_SUBROUTINES                         = 0x8E4A;
951 enum GL_COMPATIBLE_SUBROUTINES                             = 0x8E4B;
952 enum GL_PATCHES                                            = 0x000E;
953 enum GL_PATCH_VERTICES                                     = 0x8E72;
954 enum GL_PATCH_DEFAULT_INNER_LEVEL                          = 0x8E73;
955 enum GL_PATCH_DEFAULT_OUTER_LEVEL                          = 0x8E74;
956 enum GL_TESS_CONTROL_OUTPUT_VERTICES                       = 0x8E75;
957 enum GL_TESS_GEN_MODE                                      = 0x8E76;
958 enum GL_TESS_GEN_SPACING                                   = 0x8E77;
959 enum GL_TESS_GEN_VERTEX_ORDER                              = 0x8E78;
960 enum GL_TESS_GEN_POINT_MODE                                = 0x8E79;
961 enum GL_ISOLINES                                           = 0x8E7A;
962 enum GL_FRACTIONAL_ODD                                     = 0x8E7B;
963 enum GL_FRACTIONAL_EVEN                                    = 0x8E7C;
964 enum GL_MAX_PATCH_VERTICES                                 = 0x8E7D;
965 enum GL_MAX_TESS_GEN_LEVEL                                 = 0x8E7E;
966 enum GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS                = 0x8E7F;
967 enum GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS             = 0x8E80;
968 enum GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS               = 0x8E81;
969 enum GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS            = 0x8E82;
970 enum GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS                 = 0x8E83;
971 enum GL_MAX_TESS_PATCH_COMPONENTS                          = 0x8E84;
972 enum GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS           = 0x8E85;
973 enum GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS              = 0x8E86;
974 enum GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS                    = 0x8E89;
975 enum GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS                 = 0x8E8A;
976 enum GL_MAX_TESS_CONTROL_INPUT_COMPONENTS                  = 0x886C;
977 enum GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS               = 0x886D;
978 enum GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS       = 0x8E1E;
979 enum GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS    = 0x8E1F;
980 enum GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER    = 0x84F0;
981 enum GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER = 0x84F1;
982 enum GL_TESS_EVALUATION_SHADER                             = 0x8E87;
983 enum GL_TESS_CONTROL_SHADER                                = 0x8E88;
984 enum GL_TRANSFORM_FEEDBACK                                 = 0x8E22;
985 enum GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED                   = 0x8E23;
986 enum GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE                   = 0x8E24;
987 enum GL_TRANSFORM_FEEDBACK_BINDING                         = 0x8E25;
988 enum GL_MAX_TRANSFORM_FEEDBACK_BUFFERS                     = 0x8E70;
989 
990 // Constants for GL_VERSION_4_1
991 enum GL_FIXED                            = 0x140C;
992 enum GL_IMPLEMENTATION_COLOR_READ_TYPE   = 0x8B9A;
993 enum GL_IMPLEMENTATION_COLOR_READ_FORMAT = 0x8B9B;
994 enum GL_LOW_FLOAT                        = 0x8DF0;
995 enum GL_MEDIUM_FLOAT                     = 0x8DF1;
996 enum GL_HIGH_FLOAT                       = 0x8DF2;
997 enum GL_LOW_INT                          = 0x8DF3;
998 enum GL_MEDIUM_INT                       = 0x8DF4;
999 enum GL_HIGH_INT                         = 0x8DF5;
1000 enum GL_SHADER_COMPILER                  = 0x8DFA;
1001 enum GL_SHADER_BINARY_FORMATS            = 0x8DF8;
1002 enum GL_NUM_SHADER_BINARY_FORMATS        = 0x8DF9;
1003 enum GL_MAX_VERTEX_UNIFORM_VECTORS       = 0x8DFB;
1004 enum GL_MAX_VARYING_VECTORS              = 0x8DFC;
1005 enum GL_MAX_FRAGMENT_UNIFORM_VECTORS     = 0x8DFD;
1006 enum GL_RGB565                           = 0x8D62;
1007 enum GL_PROGRAM_BINARY_RETRIEVABLE_HINT  = 0x8257;
1008 enum GL_PROGRAM_BINARY_LENGTH            = 0x8741;
1009 enum GL_NUM_PROGRAM_BINARY_FORMATS       = 0x87FE;
1010 enum GL_PROGRAM_BINARY_FORMATS           = 0x87FF;
1011 enum GL_VERTEX_SHADER_BIT                = 0x00000001;
1012 enum GL_FRAGMENT_SHADER_BIT              = 0x00000002;
1013 enum GL_GEOMETRY_SHADER_BIT              = 0x00000004;
1014 enum GL_TESS_CONTROL_SHADER_BIT          = 0x00000008;
1015 enum GL_TESS_EVALUATION_SHADER_BIT       = 0x00000010;
1016 enum GL_ALL_SHADER_BITS                  = 0xFFFFFFFF;
1017 enum GL_PROGRAM_SEPARABLE                = 0x8258;
1018 enum GL_ACTIVE_PROGRAM                   = 0x8259;
1019 enum GL_PROGRAM_PIPELINE_BINDING         = 0x825A;
1020 enum GL_MAX_VIEWPORTS                    = 0x825B;
1021 enum GL_VIEWPORT_SUBPIXEL_BITS           = 0x825C;
1022 enum GL_VIEWPORT_BOUNDS_RANGE            = 0x825D;
1023 enum GL_LAYER_PROVOKING_VERTEX           = 0x825E;
1024 enum GL_VIEWPORT_INDEX_PROVOKING_VERTEX  = 0x825F;
1025 enum GL_UNDEFINED_VERTEX                 = 0x8260;
1026 
1027 // Constants for GL_VERSION_4_2
1028 enum GL_COPY_READ_BUFFER_BINDING                                   = 0x8F36;
1029 enum GL_COPY_WRITE_BUFFER_BINDING                                  = 0x8F37;
1030 enum GL_TRANSFORM_FEEDBACK_ACTIVE                                  = 0x8E24;
1031 enum GL_TRANSFORM_FEEDBACK_PAUSED                                  = 0x8E23;
1032 enum GL_UNPACK_COMPRESSED_BLOCK_WIDTH                              = 0x9127;
1033 enum GL_UNPACK_COMPRESSED_BLOCK_HEIGHT                             = 0x9128;
1034 enum GL_UNPACK_COMPRESSED_BLOCK_DEPTH                              = 0x9129;
1035 enum GL_UNPACK_COMPRESSED_BLOCK_SIZE                               = 0x912A;
1036 enum GL_PACK_COMPRESSED_BLOCK_WIDTH                                = 0x912B;
1037 enum GL_PACK_COMPRESSED_BLOCK_HEIGHT                               = 0x912C;
1038 enum GL_PACK_COMPRESSED_BLOCK_DEPTH                                = 0x912D;
1039 enum GL_PACK_COMPRESSED_BLOCK_SIZE                                 = 0x912E;
1040 enum GL_NUM_SAMPLE_COUNTS                                          = 0x9380;
1041 enum GL_MIN_MAP_BUFFER_ALIGNMENT                                   = 0x90BC;
1042 enum GL_ATOMIC_COUNTER_BUFFER                                      = 0x92C0;
1043 enum GL_ATOMIC_COUNTER_BUFFER_BINDING                              = 0x92C1;
1044 enum GL_ATOMIC_COUNTER_BUFFER_START                                = 0x92C2;
1045 enum GL_ATOMIC_COUNTER_BUFFER_SIZE                                 = 0x92C3;
1046 enum GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE                            = 0x92C4;
1047 enum GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS               = 0x92C5;
1048 enum GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES        = 0x92C6;
1049 enum GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER          = 0x92C7;
1050 enum GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER    = 0x92C8;
1051 enum GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER = 0x92C9;
1052 enum GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER        = 0x92CA;
1053 enum GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER        = 0x92CB;
1054 enum GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS                          = 0x92CC;
1055 enum GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS                    = 0x92CD;
1056 enum GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS                 = 0x92CE;
1057 enum GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS                        = 0x92CF;
1058 enum GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS                        = 0x92D0;
1059 enum GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS                        = 0x92D1;
1060 enum GL_MAX_VERTEX_ATOMIC_COUNTERS                                 = 0x92D2;
1061 enum GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS                           = 0x92D3;
1062 enum GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS                        = 0x92D4;
1063 enum GL_MAX_GEOMETRY_ATOMIC_COUNTERS                               = 0x92D5;
1064 enum GL_MAX_FRAGMENT_ATOMIC_COUNTERS                               = 0x92D6;
1065 enum GL_MAX_COMBINED_ATOMIC_COUNTERS                               = 0x92D7;
1066 enum GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE                             = 0x92D8;
1067 enum GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS                         = 0x92DC;
1068 enum GL_ACTIVE_ATOMIC_COUNTER_BUFFERS                              = 0x92D9;
1069 enum GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX                        = 0x92DA;
1070 enum GL_UNSIGNED_INT_ATOMIC_COUNTER                                = 0x92DB;
1071 enum GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT                            = 0x00000001;
1072 enum GL_ELEMENT_ARRAY_BARRIER_BIT                                  = 0x00000002;
1073 enum GL_UNIFORM_BARRIER_BIT                                        = 0x00000004;
1074 enum GL_TEXTURE_FETCH_BARRIER_BIT                                  = 0x00000008;
1075 enum GL_SHADER_IMAGE_ACCESS_BARRIER_BIT                            = 0x00000020;
1076 enum GL_COMMAND_BARRIER_BIT                                        = 0x00000040;
1077 enum GL_PIXEL_BUFFER_BARRIER_BIT                                   = 0x00000080;
1078 enum GL_TEXTURE_UPDATE_BARRIER_BIT                                 = 0x00000100;
1079 enum GL_BUFFER_UPDATE_BARRIER_BIT                                  = 0x00000200;
1080 enum GL_FRAMEBUFFER_BARRIER_BIT                                    = 0x00000400;
1081 enum GL_TRANSFORM_FEEDBACK_BARRIER_BIT                             = 0x00000800;
1082 enum GL_ATOMIC_COUNTER_BARRIER_BIT                                 = 0x00001000;
1083 enum GL_ALL_BARRIER_BITS                                           = 0xFFFFFFFF;
1084 enum GL_MAX_IMAGE_UNITS                                            = 0x8F38;
1085 enum GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS              = 0x8F39;
1086 enum GL_IMAGE_BINDING_NAME                                         = 0x8F3A;
1087 enum GL_IMAGE_BINDING_LEVEL                                        = 0x8F3B;
1088 enum GL_IMAGE_BINDING_LAYERED                                      = 0x8F3C;
1089 enum GL_IMAGE_BINDING_LAYER                                        = 0x8F3D;
1090 enum GL_IMAGE_BINDING_ACCESS                                       = 0x8F3E;
1091 enum GL_IMAGE_1D                                                   = 0x904C;
1092 enum GL_IMAGE_2D                                                   = 0x904D;
1093 enum GL_IMAGE_3D                                                   = 0x904E;
1094 enum GL_IMAGE_2D_RECT                                              = 0x904F;
1095 enum GL_IMAGE_CUBE                                                 = 0x9050;
1096 enum GL_IMAGE_BUFFER                                               = 0x9051;
1097 enum GL_IMAGE_1D_ARRAY                                             = 0x9052;
1098 enum GL_IMAGE_2D_ARRAY                                             = 0x9053;
1099 enum GL_IMAGE_CUBE_MAP_ARRAY                                       = 0x9054;
1100 enum GL_IMAGE_2D_MULTISAMPLE                                       = 0x9055;
1101 enum GL_IMAGE_2D_MULTISAMPLE_ARRAY                                 = 0x9056;
1102 enum GL_INT_IMAGE_1D                                               = 0x9057;
1103 enum GL_INT_IMAGE_2D                                               = 0x9058;
1104 enum GL_INT_IMAGE_3D                                               = 0x9059;
1105 enum GL_INT_IMAGE_2D_RECT                                          = 0x905A;
1106 enum GL_INT_IMAGE_CUBE                                             = 0x905B;
1107 enum GL_INT_IMAGE_BUFFER                                           = 0x905C;
1108 enum GL_INT_IMAGE_1D_ARRAY                                         = 0x905D;
1109 enum GL_INT_IMAGE_2D_ARRAY                                         = 0x905E;
1110 enum GL_INT_IMAGE_CUBE_MAP_ARRAY                                   = 0x905F;
1111 enum GL_INT_IMAGE_2D_MULTISAMPLE                                   = 0x9060;
1112 enum GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY                             = 0x9061;
1113 enum GL_UNSIGNED_INT_IMAGE_1D                                      = 0x9062;
1114 enum GL_UNSIGNED_INT_IMAGE_2D                                      = 0x9063;
1115 enum GL_UNSIGNED_INT_IMAGE_3D                                      = 0x9064;
1116 enum GL_UNSIGNED_INT_IMAGE_2D_RECT                                 = 0x9065;
1117 enum GL_UNSIGNED_INT_IMAGE_CUBE                                    = 0x9066;
1118 enum GL_UNSIGNED_INT_IMAGE_BUFFER                                  = 0x9067;
1119 enum GL_UNSIGNED_INT_IMAGE_1D_ARRAY                                = 0x9068;
1120 enum GL_UNSIGNED_INT_IMAGE_2D_ARRAY                                = 0x9069;
1121 enum GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY                          = 0x906A;
1122 enum GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE                          = 0x906B;
1123 enum GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY                    = 0x906C;
1124 enum GL_MAX_IMAGE_SAMPLES                                          = 0x906D;
1125 enum GL_IMAGE_BINDING_FORMAT                                       = 0x906E;
1126 enum GL_IMAGE_FORMAT_COMPATIBILITY_TYPE                            = 0x90C7;
1127 enum GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE                         = 0x90C8;
1128 enum GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS                        = 0x90C9;
1129 enum GL_MAX_VERTEX_IMAGE_UNIFORMS                                  = 0x90CA;
1130 enum GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS                            = 0x90CB;
1131 enum GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS                         = 0x90CC;
1132 enum GL_MAX_GEOMETRY_IMAGE_UNIFORMS                                = 0x90CD;
1133 enum GL_MAX_FRAGMENT_IMAGE_UNIFORMS                                = 0x90CE;
1134 enum GL_MAX_COMBINED_IMAGE_UNIFORMS                                = 0x90CF;
1135 enum GL_COMPRESSED_RGBA_BPTC_UNORM                                 = 0x8E8C;
1136 enum GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM                           = 0x8E8D;
1137 enum GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT                           = 0x8E8E;
1138 enum GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT                         = 0x8E8F;
1139 enum GL_TEXTURE_IMMUTABLE_FORMAT                                   = 0x912F;
1140 
1141 // Constants for GL_VERSION_4_3
1142 enum GL_NUM_SHADING_LANGUAGE_VERSIONS                      = 0x82E9;
1143 enum GL_VERTEX_ATTRIB_ARRAY_LONG                           = 0x874E;
1144 enum GL_COMPRESSED_RGB8_ETC2                               = 0x9274;
1145 enum GL_COMPRESSED_SRGB8_ETC2                              = 0x9275;
1146 enum GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2           = 0x9276;
1147 enum GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2          = 0x9277;
1148 enum GL_COMPRESSED_RGBA8_ETC2_EAC                          = 0x9278;
1149 enum GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC                   = 0x9279;
1150 enum GL_COMPRESSED_R11_EAC                                 = 0x9270;
1151 enum GL_COMPRESSED_SIGNED_R11_EAC                          = 0x9271;
1152 enum GL_COMPRESSED_RG11_EAC                                = 0x9272;
1153 enum GL_COMPRESSED_SIGNED_RG11_EAC                         = 0x9273;
1154 enum GL_PRIMITIVE_RESTART_FIXED_INDEX                      = 0x8D69;
1155 enum GL_ANY_SAMPLES_PASSED_CONSERVATIVE                    = 0x8D6A;
1156 enum GL_MAX_ELEMENT_INDEX                                  = 0x8D6B;
1157 enum GL_COMPUTE_SHADER                                     = 0x91B9;
1158 enum GL_MAX_COMPUTE_UNIFORM_BLOCKS                         = 0x91BB;
1159 enum GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS                    = 0x91BC;
1160 enum GL_MAX_COMPUTE_IMAGE_UNIFORMS                         = 0x91BD;
1161 enum GL_MAX_COMPUTE_SHARED_MEMORY_SIZE                     = 0x8262;
1162 enum GL_MAX_COMPUTE_UNIFORM_COMPONENTS                     = 0x8263;
1163 enum GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS                 = 0x8264;
1164 enum GL_MAX_COMPUTE_ATOMIC_COUNTERS                        = 0x8265;
1165 enum GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS            = 0x8266;
1166 enum GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS                 = 0x90EB;
1167 enum GL_MAX_COMPUTE_WORK_GROUP_COUNT                       = 0x91BE;
1168 enum GL_MAX_COMPUTE_WORK_GROUP_SIZE                        = 0x91BF;
1169 enum GL_COMPUTE_WORK_GROUP_SIZE                            = 0x8267;
1170 enum GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER         = 0x90EC;
1171 enum GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER = 0x90ED;
1172 enum GL_DISPATCH_INDIRECT_BUFFER                           = 0x90EE;
1173 enum GL_DISPATCH_INDIRECT_BUFFER_BINDING                   = 0x90EF;
1174 enum GL_COMPUTE_SHADER_BIT                                 = 0x00000020;
1175 enum GL_DEBUG_OUTPUT_SYNCHRONOUS                           = 0x8242;
1176 enum GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH                   = 0x8243;
1177 enum GL_DEBUG_CALLBACK_FUNCTION                            = 0x8244;
1178 enum GL_DEBUG_CALLBACK_USER_PARAM                          = 0x8245;
1179 enum GL_DEBUG_SOURCE_API                                   = 0x8246;
1180 enum GL_DEBUG_SOURCE_WINDOW_SYSTEM                         = 0x8247;
1181 enum GL_DEBUG_SOURCE_SHADER_COMPILER                       = 0x8248;
1182 enum GL_DEBUG_SOURCE_THIRD_PARTY                           = 0x8249;
1183 enum GL_DEBUG_SOURCE_APPLICATION                           = 0x824A;
1184 enum GL_DEBUG_SOURCE_OTHER                                 = 0x824B;
1185 enum GL_DEBUG_TYPE_ERROR                                   = 0x824C;
1186 enum GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR                     = 0x824D;
1187 enum GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR                      = 0x824E;
1188 enum GL_DEBUG_TYPE_PORTABILITY                             = 0x824F;
1189 enum GL_DEBUG_TYPE_PERFORMANCE                             = 0x8250;
1190 enum GL_DEBUG_TYPE_OTHER                                   = 0x8251;
1191 enum GL_MAX_DEBUG_MESSAGE_LENGTH                           = 0x9143;
1192 enum GL_MAX_DEBUG_LOGGED_MESSAGES                          = 0x9144;
1193 enum GL_DEBUG_LOGGED_MESSAGES                              = 0x9145;
1194 enum GL_DEBUG_SEVERITY_HIGH                                = 0x9146;
1195 enum GL_DEBUG_SEVERITY_MEDIUM                              = 0x9147;
1196 enum GL_DEBUG_SEVERITY_LOW                                 = 0x9148;
1197 enum GL_DEBUG_TYPE_MARKER                                  = 0x8268;
1198 enum GL_DEBUG_TYPE_PUSH_GROUP                              = 0x8269;
1199 enum GL_DEBUG_TYPE_POP_GROUP                               = 0x826A;
1200 enum GL_DEBUG_SEVERITY_NOTIFICATION                        = 0x826B;
1201 enum GL_MAX_DEBUG_GROUP_STACK_DEPTH                        = 0x826C;
1202 enum GL_DEBUG_GROUP_STACK_DEPTH                            = 0x826D;
1203 enum GL_BUFFER                                             = 0x82E0;
1204 enum GL_SHADER                                             = 0x82E1;
1205 enum GL_PROGRAM                                            = 0x82E2;
1206 enum GL_QUERY                                              = 0x82E3;
1207 enum GL_PROGRAM_PIPELINE                                   = 0x82E4;
1208 enum GL_SAMPLER                                            = 0x82E6;
1209 enum GL_MAX_LABEL_LENGTH                                   = 0x82E8;
1210 enum GL_DEBUG_OUTPUT                                       = 0x92E0;
1211 enum GL_CONTEXT_FLAG_DEBUG_BIT                             = 0x00000002;
1212 enum GL_MAX_UNIFORM_LOCATIONS                              = 0x826E;
1213 enum GL_FRAMEBUFFER_DEFAULT_WIDTH                          = 0x9310;
1214 enum GL_FRAMEBUFFER_DEFAULT_HEIGHT                         = 0x9311;
1215 enum GL_FRAMEBUFFER_DEFAULT_LAYERS                         = 0x9312;
1216 enum GL_FRAMEBUFFER_DEFAULT_SAMPLES                        = 0x9313;
1217 enum GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS         = 0x9314;
1218 enum GL_MAX_FRAMEBUFFER_WIDTH                              = 0x9315;
1219 enum GL_MAX_FRAMEBUFFER_HEIGHT                             = 0x9316;
1220 enum GL_MAX_FRAMEBUFFER_LAYERS                             = 0x9317;
1221 enum GL_MAX_FRAMEBUFFER_SAMPLES                            = 0x9318;
1222 enum GL_INTERNALFORMAT_SUPPORTED                           = 0x826F;
1223 enum GL_INTERNALFORMAT_PREFERRED                           = 0x8270;
1224 enum GL_INTERNALFORMAT_RED_SIZE                            = 0x8271;
1225 enum GL_INTERNALFORMAT_GREEN_SIZE                          = 0x8272;
1226 enum GL_INTERNALFORMAT_BLUE_SIZE                           = 0x8273;
1227 enum GL_INTERNALFORMAT_ALPHA_SIZE                          = 0x8274;
1228 enum GL_INTERNALFORMAT_DEPTH_SIZE                          = 0x8275;
1229 enum GL_INTERNALFORMAT_STENCIL_SIZE                        = 0x8276;
1230 enum GL_INTERNALFORMAT_SHARED_SIZE                         = 0x8277;
1231 enum GL_INTERNALFORMAT_RED_TYPE                            = 0x8278;
1232 enum GL_INTERNALFORMAT_GREEN_TYPE                          = 0x8279;
1233 enum GL_INTERNALFORMAT_BLUE_TYPE                           = 0x827A;
1234 enum GL_INTERNALFORMAT_ALPHA_TYPE                          = 0x827B;
1235 enum GL_INTERNALFORMAT_DEPTH_TYPE                          = 0x827C;
1236 enum GL_INTERNALFORMAT_STENCIL_TYPE                        = 0x827D;
1237 enum GL_MAX_WIDTH                                          = 0x827E;
1238 enum GL_MAX_HEIGHT                                         = 0x827F;
1239 enum GL_MAX_DEPTH                                          = 0x8280;
1240 enum GL_MAX_LAYERS                                         = 0x8281;
1241 enum GL_MAX_COMBINED_DIMENSIONS                            = 0x8282;
1242 enum GL_COLOR_COMPONENTS                                   = 0x8283;
1243 enum GL_DEPTH_COMPONENTS                                   = 0x8284;
1244 enum GL_STENCIL_COMPONENTS                                 = 0x8285;
1245 enum GL_COLOR_RENDERABLE                                   = 0x8286;
1246 enum GL_DEPTH_RENDERABLE                                   = 0x8287;
1247 enum GL_STENCIL_RENDERABLE                                 = 0x8288;
1248 enum GL_FRAMEBUFFER_RENDERABLE                             = 0x8289;
1249 enum GL_FRAMEBUFFER_RENDERABLE_LAYERED                     = 0x828A;
1250 enum GL_FRAMEBUFFER_BLEND                                  = 0x828B;
1251 enum GL_READ_PIXELS                                        = 0x828C;
1252 enum GL_READ_PIXELS_FORMAT                                 = 0x828D;
1253 enum GL_READ_PIXELS_TYPE                                   = 0x828E;
1254 enum GL_TEXTURE_IMAGE_FORMAT                               = 0x828F;
1255 enum GL_TEXTURE_IMAGE_TYPE                                 = 0x8290;
1256 enum GL_GET_TEXTURE_IMAGE_FORMAT                           = 0x8291;
1257 enum GL_GET_TEXTURE_IMAGE_TYPE                             = 0x8292;
1258 enum GL_MIPMAP                                             = 0x8293;
1259 enum GL_MANUAL_GENERATE_MIPMAP                             = 0x8294;
1260 enum GL_AUTO_GENERATE_MIPMAP                               = 0x8295;
1261 enum GL_COLOR_ENCODING                                     = 0x8296;
1262 enum GL_SRGB_READ                                          = 0x8297;
1263 enum GL_SRGB_WRITE                                         = 0x8298;
1264 enum GL_FILTER                                             = 0x829A;
1265 enum GL_VERTEX_TEXTURE                                     = 0x829B;
1266 enum GL_TESS_CONTROL_TEXTURE                               = 0x829C;
1267 enum GL_TESS_EVALUATION_TEXTURE                            = 0x829D;
1268 enum GL_GEOMETRY_TEXTURE                                   = 0x829E;
1269 enum GL_FRAGMENT_TEXTURE                                   = 0x829F;
1270 enum GL_COMPUTE_TEXTURE                                    = 0x82A0;
1271 enum GL_TEXTURE_SHADOW                                     = 0x82A1;
1272 enum GL_TEXTURE_GATHER                                     = 0x82A2;
1273 enum GL_TEXTURE_GATHER_SHADOW                              = 0x82A3;
1274 enum GL_SHADER_IMAGE_LOAD                                  = 0x82A4;
1275 enum GL_SHADER_IMAGE_STORE                                 = 0x82A5;
1276 enum GL_SHADER_IMAGE_ATOMIC                                = 0x82A6;
1277 enum GL_IMAGE_TEXEL_SIZE                                   = 0x82A7;
1278 enum GL_IMAGE_COMPATIBILITY_CLASS                          = 0x82A8;
1279 enum GL_IMAGE_PIXEL_FORMAT                                 = 0x82A9;
1280 enum GL_IMAGE_PIXEL_TYPE                                   = 0x82AA;
1281 enum GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST                = 0x82AC;
1282 enum GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST              = 0x82AD;
1283 enum GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE               = 0x82AE;
1284 enum GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE             = 0x82AF;
1285 enum GL_TEXTURE_COMPRESSED_BLOCK_WIDTH                     = 0x82B1;
1286 enum GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT                    = 0x82B2;
1287 enum GL_TEXTURE_COMPRESSED_BLOCK_SIZE                      = 0x82B3;
1288 enum GL_CLEAR_BUFFER                                       = 0x82B4;
1289 enum GL_TEXTURE_VIEW                                       = 0x82B5;
1290 enum GL_VIEW_COMPATIBILITY_CLASS                           = 0x82B6;
1291 enum GL_FULL_SUPPORT                                       = 0x82B7;
1292 enum GL_CAVEAT_SUPPORT                                     = 0x82B8;
1293 enum GL_IMAGE_CLASS_4_X_32                                 = 0x82B9;
1294 enum GL_IMAGE_CLASS_2_X_32                                 = 0x82BA;
1295 enum GL_IMAGE_CLASS_1_X_32                                 = 0x82BB;
1296 enum GL_IMAGE_CLASS_4_X_16                                 = 0x82BC;
1297 enum GL_IMAGE_CLASS_2_X_16                                 = 0x82BD;
1298 enum GL_IMAGE_CLASS_1_X_16                                 = 0x82BE;
1299 enum GL_IMAGE_CLASS_4_X_8                                  = 0x82BF;
1300 enum GL_IMAGE_CLASS_2_X_8                                  = 0x82C0;
1301 enum GL_IMAGE_CLASS_1_X_8                                  = 0x82C1;
1302 enum GL_IMAGE_CLASS_11_11_10                               = 0x82C2;
1303 enum GL_IMAGE_CLASS_10_10_10_2                             = 0x82C3;
1304 enum GL_VIEW_CLASS_128_BITS                                = 0x82C4;
1305 enum GL_VIEW_CLASS_96_BITS                                 = 0x82C5;
1306 enum GL_VIEW_CLASS_64_BITS                                 = 0x82C6;
1307 enum GL_VIEW_CLASS_48_BITS                                 = 0x82C7;
1308 enum GL_VIEW_CLASS_32_BITS                                 = 0x82C8;
1309 enum GL_VIEW_CLASS_24_BITS                                 = 0x82C9;
1310 enum GL_VIEW_CLASS_16_BITS                                 = 0x82CA;
1311 enum GL_VIEW_CLASS_8_BITS                                  = 0x82CB;
1312 enum GL_VIEW_CLASS_S3TC_DXT1_RGB                           = 0x82CC;
1313 enum GL_VIEW_CLASS_S3TC_DXT1_RGBA                          = 0x82CD;
1314 enum GL_VIEW_CLASS_S3TC_DXT3_RGBA                          = 0x82CE;
1315 enum GL_VIEW_CLASS_S3TC_DXT5_RGBA                          = 0x82CF;
1316 enum GL_VIEW_CLASS_RGTC1_RED                               = 0x82D0;
1317 enum GL_VIEW_CLASS_RGTC2_RG                                = 0x82D1;
1318 enum GL_VIEW_CLASS_BPTC_UNORM                              = 0x82D2;
1319 enum GL_VIEW_CLASS_BPTC_FLOAT                              = 0x82D3;
1320 enum GL_UNIFORM                                            = 0x92E1;
1321 enum GL_UNIFORM_BLOCK                                      = 0x92E2;
1322 enum GL_PROGRAM_INPUT                                      = 0x92E3;
1323 enum GL_PROGRAM_OUTPUT                                     = 0x92E4;
1324 enum GL_BUFFER_VARIABLE                                    = 0x92E5;
1325 enum GL_SHADER_STORAGE_BLOCK                               = 0x92E6;
1326 enum GL_VERTEX_SUBROUTINE                                  = 0x92E8;
1327 enum GL_TESS_CONTROL_SUBROUTINE                            = 0x92E9;
1328 enum GL_TESS_EVALUATION_SUBROUTINE                         = 0x92EA;
1329 enum GL_GEOMETRY_SUBROUTINE                                = 0x92EB;
1330 enum GL_FRAGMENT_SUBROUTINE                                = 0x92EC;
1331 enum GL_COMPUTE_SUBROUTINE                                 = 0x92ED;
1332 enum GL_VERTEX_SUBROUTINE_UNIFORM                          = 0x92EE;
1333 enum GL_TESS_CONTROL_SUBROUTINE_UNIFORM                    = 0x92EF;
1334 enum GL_TESS_EVALUATION_SUBROUTINE_UNIFORM                 = 0x92F0;
1335 enum GL_GEOMETRY_SUBROUTINE_UNIFORM                        = 0x92F1;
1336 enum GL_FRAGMENT_SUBROUTINE_UNIFORM                        = 0x92F2;
1337 enum GL_COMPUTE_SUBROUTINE_UNIFORM                         = 0x92F3;
1338 enum GL_TRANSFORM_FEEDBACK_VARYING                         = 0x92F4;
1339 enum GL_ACTIVE_RESOURCES                                   = 0x92F5;
1340 enum GL_MAX_NAME_LENGTH                                    = 0x92F6;
1341 enum GL_MAX_NUM_ACTIVE_VARIABLES                           = 0x92F7;
1342 enum GL_MAX_NUM_COMPATIBLE_SUBROUTINES                     = 0x92F8;
1343 enum GL_NAME_LENGTH                                        = 0x92F9;
1344 enum GL_TYPE                                               = 0x92FA;
1345 enum GL_ARRAY_SIZE                                         = 0x92FB;
1346 enum GL_OFFSET                                             = 0x92FC;
1347 enum GL_BLOCK_INDEX                                        = 0x92FD;
1348 enum GL_ARRAY_STRIDE                                       = 0x92FE;
1349 enum GL_MATRIX_STRIDE                                      = 0x92FF;
1350 enum GL_IS_ROW_MAJOR                                       = 0x9300;
1351 enum GL_ATOMIC_COUNTER_BUFFER_INDEX                        = 0x9301;
1352 enum GL_BUFFER_BINDING                                     = 0x9302;
1353 enum GL_BUFFER_DATA_SIZE                                   = 0x9303;
1354 enum GL_NUM_ACTIVE_VARIABLES                               = 0x9304;
1355 enum GL_ACTIVE_VARIABLES                                   = 0x9305;
1356 enum GL_REFERENCED_BY_VERTEX_SHADER                        = 0x9306;
1357 enum GL_REFERENCED_BY_TESS_CONTROL_SHADER                  = 0x9307;
1358 enum GL_REFERENCED_BY_TESS_EVALUATION_SHADER               = 0x9308;
1359 enum GL_REFERENCED_BY_GEOMETRY_SHADER                      = 0x9309;
1360 enum GL_REFERENCED_BY_FRAGMENT_SHADER                      = 0x930A;
1361 enum GL_REFERENCED_BY_COMPUTE_SHADER                       = 0x930B;
1362 enum GL_TOP_LEVEL_ARRAY_SIZE                               = 0x930C;
1363 enum GL_TOP_LEVEL_ARRAY_STRIDE                             = 0x930D;
1364 enum GL_LOCATION                                           = 0x930E;
1365 enum GL_LOCATION_INDEX                                     = 0x930F;
1366 enum GL_IS_PER_PATCH                                       = 0x92E7;
1367 enum GL_SHADER_STORAGE_BUFFER                              = 0x90D2;
1368 enum GL_SHADER_STORAGE_BUFFER_BINDING                      = 0x90D3;
1369 enum GL_SHADER_STORAGE_BUFFER_START                        = 0x90D4;
1370 enum GL_SHADER_STORAGE_BUFFER_SIZE                         = 0x90D5;
1371 enum GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS                   = 0x90D6;
1372 enum GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS                 = 0x90D7;
1373 enum GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS             = 0x90D8;
1374 enum GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS          = 0x90D9;
1375 enum GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS                 = 0x90DA;
1376 enum GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS                  = 0x90DB;
1377 enum GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS                 = 0x90DC;
1378 enum GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS                 = 0x90DD;
1379 enum GL_MAX_SHADER_STORAGE_BLOCK_SIZE                      = 0x90DE;
1380 enum GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT             = 0x90DF;
1381 enum GL_SHADER_STORAGE_BARRIER_BIT                         = 0x00002000;
1382 enum GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES               = 0x8F39;
1383 enum GL_DEPTH_STENCIL_TEXTURE_MODE                         = 0x90EA;
1384 enum GL_TEXTURE_BUFFER_OFFSET                              = 0x919D;
1385 enum GL_TEXTURE_BUFFER_SIZE                                = 0x919E;
1386 enum GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT                    = 0x919F;
1387 enum GL_TEXTURE_VIEW_MIN_LEVEL                             = 0x82DB;
1388 enum GL_TEXTURE_VIEW_NUM_LEVELS                            = 0x82DC;
1389 enum GL_TEXTURE_VIEW_MIN_LAYER                             = 0x82DD;
1390 enum GL_TEXTURE_VIEW_NUM_LAYERS                            = 0x82DE;
1391 enum GL_TEXTURE_IMMUTABLE_LEVELS                           = 0x82DF;
1392 enum GL_VERTEX_ATTRIB_BINDING                              = 0x82D4;
1393 enum GL_VERTEX_ATTRIB_RELATIVE_OFFSET                      = 0x82D5;
1394 enum GL_VERTEX_BINDING_DIVISOR                             = 0x82D6;
1395 enum GL_VERTEX_BINDING_OFFSET                              = 0x82D7;
1396 enum GL_VERTEX_BINDING_STRIDE                              = 0x82D8;
1397 enum GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET                  = 0x82D9;
1398 enum GL_MAX_VERTEX_ATTRIB_BINDINGS                         = 0x82DA;
1399 enum GL_VERTEX_BINDING_BUFFER                              = 0x8F4F;
1400 
1401 // Constants for GL_VERSION_4_4
1402 enum GL_MAX_VERTEX_ATTRIB_STRIDE                = 0x82E5;
1403 enum GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED = 0x8221;
1404 enum GL_TEXTURE_BUFFER_BINDING                  = 0x8C2A;
1405 enum GL_MAP_PERSISTENT_BIT                      = 0x0040;
1406 enum GL_MAP_COHERENT_BIT                        = 0x0080;
1407 enum GL_DYNAMIC_STORAGE_BIT                     = 0x0100;
1408 enum GL_CLIENT_STORAGE_BIT                      = 0x0200;
1409 enum GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT        = 0x00004000;
1410 enum GL_BUFFER_IMMUTABLE_STORAGE                = 0x821F;
1411 enum GL_BUFFER_STORAGE_FLAGS                    = 0x8220;
1412 enum GL_CLEAR_TEXTURE                           = 0x9365;
1413 enum GL_LOCATION_COMPONENT                      = 0x934A;
1414 enum GL_TRANSFORM_FEEDBACK_BUFFER_INDEX         = 0x934B;
1415 enum GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE        = 0x934C;
1416 enum GL_QUERY_BUFFER                            = 0x9192;
1417 enum GL_QUERY_BUFFER_BARRIER_BIT                = 0x00008000;
1418 enum GL_QUERY_BUFFER_BINDING                    = 0x9193;
1419 enum GL_QUERY_RESULT_NO_WAIT                    = 0x9194;
1420 enum GL_MIRROR_CLAMP_TO_EDGE                    = 0x8743;
1421 
1422 // Constants for GL_VERSION_4_5
1423 enum GL_CONTEXT_LOST                         = 0x0507;
1424 enum GL_NEGATIVE_ONE_TO_ONE                  = 0x935E;
1425 enum GL_ZERO_TO_ONE                          = 0x935F;
1426 enum GL_CLIP_ORIGIN                          = 0x935C;
1427 enum GL_CLIP_DEPTH_MODE                      = 0x935D;
1428 enum GL_QUERY_WAIT_INVERTED                  = 0x8E17;
1429 enum GL_QUERY_NO_WAIT_INVERTED               = 0x8E18;
1430 enum GL_QUERY_BY_REGION_WAIT_INVERTED        = 0x8E19;
1431 enum GL_QUERY_BY_REGION_NO_WAIT_INVERTED     = 0x8E1A;
1432 enum GL_MAX_CULL_DISTANCES                   = 0x82F9;
1433 enum GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES = 0x82FA;
1434 enum GL_TEXTURE_TARGET                       = 0x1006;
1435 enum GL_QUERY_TARGET                         = 0x82EA;
1436 enum GL_GUILTY_CONTEXT_RESET                 = 0x8253;
1437 enum GL_INNOCENT_CONTEXT_RESET               = 0x8254;
1438 enum GL_UNKNOWN_CONTEXT_RESET                = 0x8255;
1439 enum GL_RESET_NOTIFICATION_STRATEGY          = 0x8256;
1440 enum GL_LOSE_CONTEXT_ON_RESET                = 0x8252;
1441 enum GL_NO_RESET_NOTIFICATION                = 0x8261;
1442 enum GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT       = 0x00000004;
1443 enum GL_CONTEXT_RELEASE_BEHAVIOR             = 0x82FB;
1444 enum GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH       = 0x82FC;
1445 
1446 // Constants for GL_VERSION_4_6
1447 enum GL_SHADER_BINARY_FORMAT_SPIR_V        = 0x9551;
1448 enum GL_SPIR_V_BINARY                      = 0x9552;
1449 enum GL_PARAMETER_BUFFER                   = 0x80EE;
1450 enum GL_PARAMETER_BUFFER_BINDING           = 0x80EF;
1451 enum GL_CONTEXT_FLAG_NO_ERROR_BIT          = 0x00000008;
1452 enum GL_VERTICES_SUBMITTED                 = 0x82EE;
1453 enum GL_PRIMITIVES_SUBMITTED               = 0x82EF;
1454 enum GL_VERTEX_SHADER_INVOCATIONS          = 0x82F0;
1455 enum GL_TESS_CONTROL_SHADER_PATCHES        = 0x82F1;
1456 enum GL_TESS_EVALUATION_SHADER_INVOCATIONS = 0x82F2;
1457 enum GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED = 0x82F3;
1458 enum GL_FRAGMENT_SHADER_INVOCATIONS        = 0x82F4;
1459 enum GL_COMPUTE_SHADER_INVOCATIONS         = 0x82F5;
1460 enum GL_CLIPPING_INPUT_PRIMITIVES          = 0x82F6;
1461 enum GL_CLIPPING_OUTPUT_PRIMITIVES         = 0x82F7;
1462 enum GL_POLYGON_OFFSET_CLAMP               = 0x8E1B;
1463 enum GL_SPIR_V_EXTENSIONS                  = 0x9553;
1464 enum GL_NUM_SPIR_V_EXTENSIONS              = 0x9554;
1465 enum GL_TEXTURE_MAX_ANISOTROPY             = 0x84FE;
1466 enum GL_MAX_TEXTURE_MAX_ANISOTROPY         = 0x84FF;
1467 enum GL_TRANSFORM_FEEDBACK_OVERFLOW        = 0x82EC;
1468 enum GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW = 0x82ED;
1469 
1470 // Constants for GL_EXT_polygon_offset_clamp
1471 enum GL_POLYGON_OFFSET_CLAMP_EXT = 0x8E1B;
1472 
1473 // Command pointer aliases
1474 
1475 extern(C) nothrow @nogc {
1476 
1477     // Command pointers for GL_VERSION_1_0
1478     alias PFN_glCullFace = void function (
1479         GLenum mode,
1480     );
1481     alias PFN_glFrontFace = void function (
1482         GLenum mode,
1483     );
1484     alias PFN_glHint = void function (
1485         GLenum target,
1486         GLenum mode,
1487     );
1488     alias PFN_glLineWidth = void function (
1489         GLfloat width,
1490     );
1491     alias PFN_glPointSize = void function (
1492         GLfloat size,
1493     );
1494     alias PFN_glPolygonMode = void function (
1495         GLenum face,
1496         GLenum mode,
1497     );
1498     alias PFN_glScissor = void function (
1499         GLint   x,
1500         GLint   y,
1501         GLsizei width,
1502         GLsizei height,
1503     );
1504     alias PFN_glTexParameterf = void function (
1505         GLenum  target,
1506         GLenum  pname,
1507         GLfloat param,
1508     );
1509     alias PFN_glTexParameterfv = void function (
1510         GLenum          target,
1511         GLenum          pname,
1512         const(GLfloat)* params,
1513     );
1514     alias PFN_glTexParameteri = void function (
1515         GLenum target,
1516         GLenum pname,
1517         GLint  param,
1518     );
1519     alias PFN_glTexParameteriv = void function (
1520         GLenum        target,
1521         GLenum        pname,
1522         const(GLint)* params,
1523     );
1524     alias PFN_glTexImage1D = void function (
1525         GLenum       target,
1526         GLint        level,
1527         GLint        internalformat,
1528         GLsizei      width,
1529         GLint        border,
1530         GLenum       format,
1531         GLenum       type,
1532         const(void)* pixels,
1533     );
1534     alias PFN_glTexImage2D = void function (
1535         GLenum       target,
1536         GLint        level,
1537         GLint        internalformat,
1538         GLsizei      width,
1539         GLsizei      height,
1540         GLint        border,
1541         GLenum       format,
1542         GLenum       type,
1543         const(void)* pixels,
1544     );
1545     alias PFN_glDrawBuffer = void function (
1546         GLenum buf,
1547     );
1548     alias PFN_glClear = void function (
1549         GLbitfield mask,
1550     );
1551     alias PFN_glClearColor = void function (
1552         GLfloat red,
1553         GLfloat green,
1554         GLfloat blue,
1555         GLfloat alpha,
1556     );
1557     alias PFN_glClearStencil = void function (
1558         GLint s,
1559     );
1560     alias PFN_glClearDepth = void function (
1561         GLdouble depth,
1562     );
1563     alias PFN_glStencilMask = void function (
1564         GLuint mask,
1565     );
1566     alias PFN_glColorMask = void function (
1567         GLboolean red,
1568         GLboolean green,
1569         GLboolean blue,
1570         GLboolean alpha,
1571     );
1572     alias PFN_glDepthMask = void function (
1573         GLboolean flag,
1574     );
1575     alias PFN_glDisable = void function (
1576         GLenum cap,
1577     );
1578     alias PFN_glEnable = void function (
1579         GLenum cap,
1580     );
1581     alias PFN_glFinish = void function ();
1582     alias PFN_glFlush = void function ();
1583     alias PFN_glBlendFunc = void function (
1584         GLenum sfactor,
1585         GLenum dfactor,
1586     );
1587     alias PFN_glLogicOp = void function (
1588         GLenum opcode,
1589     );
1590     alias PFN_glStencilFunc = void function (
1591         GLenum func,
1592         GLint  ref_,
1593         GLuint mask,
1594     );
1595     alias PFN_glStencilOp = void function (
1596         GLenum fail,
1597         GLenum zfail,
1598         GLenum zpass,
1599     );
1600     alias PFN_glDepthFunc = void function (
1601         GLenum func,
1602     );
1603     alias PFN_glPixelStoref = void function (
1604         GLenum  pname,
1605         GLfloat param,
1606     );
1607     alias PFN_glPixelStorei = void function (
1608         GLenum pname,
1609         GLint  param,
1610     );
1611     alias PFN_glReadBuffer = void function (
1612         GLenum src,
1613     );
1614     alias PFN_glReadPixels = void function (
1615         GLint   x,
1616         GLint   y,
1617         GLsizei width,
1618         GLsizei height,
1619         GLenum  format,
1620         GLenum  type,
1621         void*   pixels,
1622     );
1623     alias PFN_glGetBooleanv = void function (
1624         GLenum     pname,
1625         GLboolean* data,
1626     );
1627     alias PFN_glGetDoublev = void function (
1628         GLenum    pname,
1629         GLdouble* data,
1630     );
1631     alias PFN_glGetError = GLenum function ();
1632     alias PFN_glGetFloatv = void function (
1633         GLenum   pname,
1634         GLfloat* data,
1635     );
1636     alias PFN_glGetIntegerv = void function (
1637         GLenum pname,
1638         GLint* data,
1639     );
1640     alias PFN_glGetString = const(GLubyte)* function (
1641         GLenum name,
1642     );
1643     alias PFN_glGetTexImage = void function (
1644         GLenum target,
1645         GLint  level,
1646         GLenum format,
1647         GLenum type,
1648         void*  pixels,
1649     );
1650     alias PFN_glGetTexParameterfv = void function (
1651         GLenum   target,
1652         GLenum   pname,
1653         GLfloat* params,
1654     );
1655     alias PFN_glGetTexParameteriv = void function (
1656         GLenum target,
1657         GLenum pname,
1658         GLint* params,
1659     );
1660     alias PFN_glGetTexLevelParameterfv = void function (
1661         GLenum   target,
1662         GLint    level,
1663         GLenum   pname,
1664         GLfloat* params,
1665     );
1666     alias PFN_glGetTexLevelParameteriv = void function (
1667         GLenum target,
1668         GLint  level,
1669         GLenum pname,
1670         GLint* params,
1671     );
1672     alias PFN_glIsEnabled = GLboolean function (
1673         GLenum cap,
1674     );
1675     alias PFN_glDepthRange = void function (
1676         GLdouble n,
1677         GLdouble f,
1678     );
1679     alias PFN_glViewport = void function (
1680         GLint   x,
1681         GLint   y,
1682         GLsizei width,
1683         GLsizei height,
1684     );
1685 
1686     // Command pointers for GL_VERSION_1_1
1687     alias PFN_glDrawArrays = void function (
1688         GLenum  mode,
1689         GLint   first,
1690         GLsizei count,
1691     );
1692     alias PFN_glDrawElements = void function (
1693         GLenum       mode,
1694         GLsizei      count,
1695         GLenum       type,
1696         const(void)* indices,
1697     );
1698     alias PFN_glGetPointerv = void function (
1699         GLenum pname,
1700         void** params,
1701     );
1702     alias PFN_glPolygonOffset = void function (
1703         GLfloat factor,
1704         GLfloat units,
1705     );
1706     alias PFN_glCopyTexImage1D = void function (
1707         GLenum  target,
1708         GLint   level,
1709         GLenum  internalformat,
1710         GLint   x,
1711         GLint   y,
1712         GLsizei width,
1713         GLint   border,
1714     );
1715     alias PFN_glCopyTexImage2D = void function (
1716         GLenum  target,
1717         GLint   level,
1718         GLenum  internalformat,
1719         GLint   x,
1720         GLint   y,
1721         GLsizei width,
1722         GLsizei height,
1723         GLint   border,
1724     );
1725     alias PFN_glCopyTexSubImage1D = void function (
1726         GLenum  target,
1727         GLint   level,
1728         GLint   xoffset,
1729         GLint   x,
1730         GLint   y,
1731         GLsizei width,
1732     );
1733     alias PFN_glCopyTexSubImage2D = void function (
1734         GLenum  target,
1735         GLint   level,
1736         GLint   xoffset,
1737         GLint   yoffset,
1738         GLint   x,
1739         GLint   y,
1740         GLsizei width,
1741         GLsizei height,
1742     );
1743     alias PFN_glTexSubImage1D = void function (
1744         GLenum       target,
1745         GLint        level,
1746         GLint        xoffset,
1747         GLsizei      width,
1748         GLenum       format,
1749         GLenum       type,
1750         const(void)* pixels,
1751     );
1752     alias PFN_glTexSubImage2D = void function (
1753         GLenum       target,
1754         GLint        level,
1755         GLint        xoffset,
1756         GLint        yoffset,
1757         GLsizei      width,
1758         GLsizei      height,
1759         GLenum       format,
1760         GLenum       type,
1761         const(void)* pixels,
1762     );
1763     alias PFN_glBindTexture = void function (
1764         GLenum target,
1765         GLuint texture,
1766     );
1767     alias PFN_glDeleteTextures = void function (
1768         GLsizei        n,
1769         const(GLuint)* textures,
1770     );
1771     alias PFN_glGenTextures = void function (
1772         GLsizei n,
1773         GLuint* textures,
1774     );
1775     alias PFN_glIsTexture = GLboolean function (
1776         GLuint texture,
1777     );
1778 
1779     // Command pointers for GL_VERSION_1_2
1780     alias PFN_glDrawRangeElements = void function (
1781         GLenum       mode,
1782         GLuint       start,
1783         GLuint       end,
1784         GLsizei      count,
1785         GLenum       type,
1786         const(void)* indices,
1787     );
1788     alias PFN_glTexImage3D = void function (
1789         GLenum       target,
1790         GLint        level,
1791         GLint        internalformat,
1792         GLsizei      width,
1793         GLsizei      height,
1794         GLsizei      depth,
1795         GLint        border,
1796         GLenum       format,
1797         GLenum       type,
1798         const(void)* pixels,
1799     );
1800     alias PFN_glTexSubImage3D = void function (
1801         GLenum       target,
1802         GLint        level,
1803         GLint        xoffset,
1804         GLint        yoffset,
1805         GLint        zoffset,
1806         GLsizei      width,
1807         GLsizei      height,
1808         GLsizei      depth,
1809         GLenum       format,
1810         GLenum       type,
1811         const(void)* pixels,
1812     );
1813     alias PFN_glCopyTexSubImage3D = void function (
1814         GLenum  target,
1815         GLint   level,
1816         GLint   xoffset,
1817         GLint   yoffset,
1818         GLint   zoffset,
1819         GLint   x,
1820         GLint   y,
1821         GLsizei width,
1822         GLsizei height,
1823     );
1824 
1825     // Command pointers for GL_VERSION_1_3
1826     alias PFN_glActiveTexture = void function (
1827         GLenum texture,
1828     );
1829     alias PFN_glSampleCoverage = void function (
1830         GLfloat   value,
1831         GLboolean invert,
1832     );
1833     alias PFN_glCompressedTexImage3D = void function (
1834         GLenum       target,
1835         GLint        level,
1836         GLenum       internalformat,
1837         GLsizei      width,
1838         GLsizei      height,
1839         GLsizei      depth,
1840         GLint        border,
1841         GLsizei      imageSize,
1842         const(void)* data,
1843     );
1844     alias PFN_glCompressedTexImage2D = void function (
1845         GLenum       target,
1846         GLint        level,
1847         GLenum       internalformat,
1848         GLsizei      width,
1849         GLsizei      height,
1850         GLint        border,
1851         GLsizei      imageSize,
1852         const(void)* data,
1853     );
1854     alias PFN_glCompressedTexImage1D = void function (
1855         GLenum       target,
1856         GLint        level,
1857         GLenum       internalformat,
1858         GLsizei      width,
1859         GLint        border,
1860         GLsizei      imageSize,
1861         const(void)* data,
1862     );
1863     alias PFN_glCompressedTexSubImage3D = void function (
1864         GLenum       target,
1865         GLint        level,
1866         GLint        xoffset,
1867         GLint        yoffset,
1868         GLint        zoffset,
1869         GLsizei      width,
1870         GLsizei      height,
1871         GLsizei      depth,
1872         GLenum       format,
1873         GLsizei      imageSize,
1874         const(void)* data,
1875     );
1876     alias PFN_glCompressedTexSubImage2D = void function (
1877         GLenum       target,
1878         GLint        level,
1879         GLint        xoffset,
1880         GLint        yoffset,
1881         GLsizei      width,
1882         GLsizei      height,
1883         GLenum       format,
1884         GLsizei      imageSize,
1885         const(void)* data,
1886     );
1887     alias PFN_glCompressedTexSubImage1D = void function (
1888         GLenum       target,
1889         GLint        level,
1890         GLint        xoffset,
1891         GLsizei      width,
1892         GLenum       format,
1893         GLsizei      imageSize,
1894         const(void)* data,
1895     );
1896     alias PFN_glGetCompressedTexImage = void function (
1897         GLenum target,
1898         GLint  level,
1899         void*  img,
1900     );
1901 
1902     // Command pointers for GL_VERSION_1_4
1903     alias PFN_glBlendFuncSeparate = void function (
1904         GLenum sfactorRGB,
1905         GLenum dfactorRGB,
1906         GLenum sfactorAlpha,
1907         GLenum dfactorAlpha,
1908     );
1909     alias PFN_glMultiDrawArrays = void function (
1910         GLenum          mode,
1911         const(GLint)*   first,
1912         const(GLsizei)* count,
1913         GLsizei         drawcount,
1914     );
1915     alias PFN_glMultiDrawElements = void function (
1916         GLenum          mode,
1917         const(GLsizei)* count,
1918         GLenum          type,
1919         const(void*)*   indices,
1920         GLsizei         drawcount,
1921     );
1922     alias PFN_glPointParameterf = void function (
1923         GLenum  pname,
1924         GLfloat param,
1925     );
1926     alias PFN_glPointParameterfv = void function (
1927         GLenum          pname,
1928         const(GLfloat)* params,
1929     );
1930     alias PFN_glPointParameteri = void function (
1931         GLenum pname,
1932         GLint  param,
1933     );
1934     alias PFN_glPointParameteriv = void function (
1935         GLenum        pname,
1936         const(GLint)* params,
1937     );
1938     alias PFN_glBlendColor = void function (
1939         GLfloat red,
1940         GLfloat green,
1941         GLfloat blue,
1942         GLfloat alpha,
1943     );
1944     alias PFN_glBlendEquation = void function (
1945         GLenum mode,
1946     );
1947 
1948     // Command pointers for GL_VERSION_1_5
1949     alias PFN_glGenQueries = void function (
1950         GLsizei n,
1951         GLuint* ids,
1952     );
1953     alias PFN_glDeleteQueries = void function (
1954         GLsizei        n,
1955         const(GLuint)* ids,
1956     );
1957     alias PFN_glIsQuery = GLboolean function (
1958         GLuint id,
1959     );
1960     alias PFN_glBeginQuery = void function (
1961         GLenum target,
1962         GLuint id,
1963     );
1964     alias PFN_glEndQuery = void function (
1965         GLenum target,
1966     );
1967     alias PFN_glGetQueryiv = void function (
1968         GLenum target,
1969         GLenum pname,
1970         GLint* params,
1971     );
1972     alias PFN_glGetQueryObjectiv = void function (
1973         GLuint id,
1974         GLenum pname,
1975         GLint* params,
1976     );
1977     alias PFN_glGetQueryObjectuiv = void function (
1978         GLuint  id,
1979         GLenum  pname,
1980         GLuint* params,
1981     );
1982     alias PFN_glBindBuffer = void function (
1983         GLenum target,
1984         GLuint buffer,
1985     );
1986     alias PFN_glDeleteBuffers = void function (
1987         GLsizei        n,
1988         const(GLuint)* buffers,
1989     );
1990     alias PFN_glGenBuffers = void function (
1991         GLsizei n,
1992         GLuint* buffers,
1993     );
1994     alias PFN_glIsBuffer = GLboolean function (
1995         GLuint buffer,
1996     );
1997     alias PFN_glBufferData = void function (
1998         GLenum       target,
1999         GLsizeiptr   size,
2000         const(void)* data,
2001         GLenum       usage,
2002     );
2003     alias PFN_glBufferSubData = void function (
2004         GLenum       target,
2005         GLintptr     offset,
2006         GLsizeiptr   size,
2007         const(void)* data,
2008     );
2009     alias PFN_glGetBufferSubData = void function (
2010         GLenum     target,
2011         GLintptr   offset,
2012         GLsizeiptr size,
2013         void*      data,
2014     );
2015     alias PFN_glMapBuffer = void * function (
2016         GLenum target,
2017         GLenum access,
2018     );
2019     alias PFN_glUnmapBuffer = GLboolean function (
2020         GLenum target,
2021     );
2022     alias PFN_glGetBufferParameteriv = void function (
2023         GLenum target,
2024         GLenum pname,
2025         GLint* params,
2026     );
2027     alias PFN_glGetBufferPointerv = void function (
2028         GLenum target,
2029         GLenum pname,
2030         void** params,
2031     );
2032 
2033     // Command pointers for GL_VERSION_2_0
2034     alias PFN_glBlendEquationSeparate = void function (
2035         GLenum modeRGB,
2036         GLenum modeAlpha,
2037     );
2038     alias PFN_glDrawBuffers = void function (
2039         GLsizei        n,
2040         const(GLenum)* bufs,
2041     );
2042     alias PFN_glStencilOpSeparate = void function (
2043         GLenum face,
2044         GLenum sfail,
2045         GLenum dpfail,
2046         GLenum dppass,
2047     );
2048     alias PFN_glStencilFuncSeparate = void function (
2049         GLenum face,
2050         GLenum func,
2051         GLint  ref_,
2052         GLuint mask,
2053     );
2054     alias PFN_glStencilMaskSeparate = void function (
2055         GLenum face,
2056         GLuint mask,
2057     );
2058     alias PFN_glAttachShader = void function (
2059         GLuint program,
2060         GLuint shader,
2061     );
2062     alias PFN_glBindAttribLocation = void function (
2063         GLuint         program,
2064         GLuint         index,
2065         const(GLchar)* name,
2066     );
2067     alias PFN_glCompileShader = void function (
2068         GLuint shader,
2069     );
2070     alias PFN_glCreateProgram = GLuint function ();
2071     alias PFN_glCreateShader = GLuint function (
2072         GLenum type,
2073     );
2074     alias PFN_glDeleteProgram = void function (
2075         GLuint program,
2076     );
2077     alias PFN_glDeleteShader = void function (
2078         GLuint shader,
2079     );
2080     alias PFN_glDetachShader = void function (
2081         GLuint program,
2082         GLuint shader,
2083     );
2084     alias PFN_glDisableVertexAttribArray = void function (
2085         GLuint index,
2086     );
2087     alias PFN_glEnableVertexAttribArray = void function (
2088         GLuint index,
2089     );
2090     alias PFN_glGetActiveAttrib = void function (
2091         GLuint   program,
2092         GLuint   index,
2093         GLsizei  bufSize,
2094         GLsizei* length,
2095         GLint*   size,
2096         GLenum*  type,
2097         GLchar*  name,
2098     );
2099     alias PFN_glGetActiveUniform = void function (
2100         GLuint   program,
2101         GLuint   index,
2102         GLsizei  bufSize,
2103         GLsizei* length,
2104         GLint*   size,
2105         GLenum*  type,
2106         GLchar*  name,
2107     );
2108     alias PFN_glGetAttachedShaders = void function (
2109         GLuint   program,
2110         GLsizei  maxCount,
2111         GLsizei* count,
2112         GLuint*  shaders,
2113     );
2114     alias PFN_glGetAttribLocation = GLint function (
2115         GLuint         program,
2116         const(GLchar)* name,
2117     );
2118     alias PFN_glGetProgramiv = void function (
2119         GLuint program,
2120         GLenum pname,
2121         GLint* params,
2122     );
2123     alias PFN_glGetProgramInfoLog = void function (
2124         GLuint   program,
2125         GLsizei  bufSize,
2126         GLsizei* length,
2127         GLchar*  infoLog,
2128     );
2129     alias PFN_glGetShaderiv = void function (
2130         GLuint shader,
2131         GLenum pname,
2132         GLint* params,
2133     );
2134     alias PFN_glGetShaderInfoLog = void function (
2135         GLuint   shader,
2136         GLsizei  bufSize,
2137         GLsizei* length,
2138         GLchar*  infoLog,
2139     );
2140     alias PFN_glGetShaderSource = void function (
2141         GLuint   shader,
2142         GLsizei  bufSize,
2143         GLsizei* length,
2144         GLchar*  source,
2145     );
2146     alias PFN_glGetUniformLocation = GLint function (
2147         GLuint         program,
2148         const(GLchar)* name,
2149     );
2150     alias PFN_glGetUniformfv = void function (
2151         GLuint   program,
2152         GLint    location,
2153         GLfloat* params,
2154     );
2155     alias PFN_glGetUniformiv = void function (
2156         GLuint program,
2157         GLint  location,
2158         GLint* params,
2159     );
2160     alias PFN_glGetVertexAttribdv = void function (
2161         GLuint    index,
2162         GLenum    pname,
2163         GLdouble* params,
2164     );
2165     alias PFN_glGetVertexAttribfv = void function (
2166         GLuint   index,
2167         GLenum   pname,
2168         GLfloat* params,
2169     );
2170     alias PFN_glGetVertexAttribiv = void function (
2171         GLuint index,
2172         GLenum pname,
2173         GLint* params,
2174     );
2175     alias PFN_glGetVertexAttribPointerv = void function (
2176         GLuint index,
2177         GLenum pname,
2178         void** pointer,
2179     );
2180     alias PFN_glIsProgram = GLboolean function (
2181         GLuint program,
2182     );
2183     alias PFN_glIsShader = GLboolean function (
2184         GLuint shader,
2185     );
2186     alias PFN_glLinkProgram = void function (
2187         GLuint program,
2188     );
2189     alias PFN_glShaderSource = void function (
2190         GLuint          shader,
2191         GLsizei         count,
2192         const(GLchar*)* string,
2193         const(GLint)*   length,
2194     );
2195     alias PFN_glUseProgram = void function (
2196         GLuint program,
2197     );
2198     alias PFN_glUniform1f = void function (
2199         GLint   location,
2200         GLfloat v0,
2201     );
2202     alias PFN_glUniform2f = void function (
2203         GLint   location,
2204         GLfloat v0,
2205         GLfloat v1,
2206     );
2207     alias PFN_glUniform3f = void function (
2208         GLint   location,
2209         GLfloat v0,
2210         GLfloat v1,
2211         GLfloat v2,
2212     );
2213     alias PFN_glUniform4f = void function (
2214         GLint   location,
2215         GLfloat v0,
2216         GLfloat v1,
2217         GLfloat v2,
2218         GLfloat v3,
2219     );
2220     alias PFN_glUniform1i = void function (
2221         GLint location,
2222         GLint v0,
2223     );
2224     alias PFN_glUniform2i = void function (
2225         GLint location,
2226         GLint v0,
2227         GLint v1,
2228     );
2229     alias PFN_glUniform3i = void function (
2230         GLint location,
2231         GLint v0,
2232         GLint v1,
2233         GLint v2,
2234     );
2235     alias PFN_glUniform4i = void function (
2236         GLint location,
2237         GLint v0,
2238         GLint v1,
2239         GLint v2,
2240         GLint v3,
2241     );
2242     alias PFN_glUniform1fv = void function (
2243         GLint           location,
2244         GLsizei         count,
2245         const(GLfloat)* value,
2246     );
2247     alias PFN_glUniform2fv = void function (
2248         GLint           location,
2249         GLsizei         count,
2250         const(GLfloat)* value,
2251     );
2252     alias PFN_glUniform3fv = void function (
2253         GLint           location,
2254         GLsizei         count,
2255         const(GLfloat)* value,
2256     );
2257     alias PFN_glUniform4fv = void function (
2258         GLint           location,
2259         GLsizei         count,
2260         const(GLfloat)* value,
2261     );
2262     alias PFN_glUniform1iv = void function (
2263         GLint         location,
2264         GLsizei       count,
2265         const(GLint)* value,
2266     );
2267     alias PFN_glUniform2iv = void function (
2268         GLint         location,
2269         GLsizei       count,
2270         const(GLint)* value,
2271     );
2272     alias PFN_glUniform3iv = void function (
2273         GLint         location,
2274         GLsizei       count,
2275         const(GLint)* value,
2276     );
2277     alias PFN_glUniform4iv = void function (
2278         GLint         location,
2279         GLsizei       count,
2280         const(GLint)* value,
2281     );
2282     alias PFN_glUniformMatrix2fv = void function (
2283         GLint           location,
2284         GLsizei         count,
2285         GLboolean       transpose,
2286         const(GLfloat)* value,
2287     );
2288     alias PFN_glUniformMatrix3fv = void function (
2289         GLint           location,
2290         GLsizei         count,
2291         GLboolean       transpose,
2292         const(GLfloat)* value,
2293     );
2294     alias PFN_glUniformMatrix4fv = void function (
2295         GLint           location,
2296         GLsizei         count,
2297         GLboolean       transpose,
2298         const(GLfloat)* value,
2299     );
2300     alias PFN_glValidateProgram = void function (
2301         GLuint program,
2302     );
2303     alias PFN_glVertexAttrib1d = void function (
2304         GLuint   index,
2305         GLdouble x,
2306     );
2307     alias PFN_glVertexAttrib1dv = void function (
2308         GLuint           index,
2309         const(GLdouble)* v,
2310     );
2311     alias PFN_glVertexAttrib1f = void function (
2312         GLuint  index,
2313         GLfloat x,
2314     );
2315     alias PFN_glVertexAttrib1fv = void function (
2316         GLuint          index,
2317         const(GLfloat)* v,
2318     );
2319     alias PFN_glVertexAttrib1s = void function (
2320         GLuint  index,
2321         GLshort x,
2322     );
2323     alias PFN_glVertexAttrib1sv = void function (
2324         GLuint          index,
2325         const(GLshort)* v,
2326     );
2327     alias PFN_glVertexAttrib2d = void function (
2328         GLuint   index,
2329         GLdouble x,
2330         GLdouble y,
2331     );
2332     alias PFN_glVertexAttrib2dv = void function (
2333         GLuint           index,
2334         const(GLdouble)* v,
2335     );
2336     alias PFN_glVertexAttrib2f = void function (
2337         GLuint  index,
2338         GLfloat x,
2339         GLfloat y,
2340     );
2341     alias PFN_glVertexAttrib2fv = void function (
2342         GLuint          index,
2343         const(GLfloat)* v,
2344     );
2345     alias PFN_glVertexAttrib2s = void function (
2346         GLuint  index,
2347         GLshort x,
2348         GLshort y,
2349     );
2350     alias PFN_glVertexAttrib2sv = void function (
2351         GLuint          index,
2352         const(GLshort)* v,
2353     );
2354     alias PFN_glVertexAttrib3d = void function (
2355         GLuint   index,
2356         GLdouble x,
2357         GLdouble y,
2358         GLdouble z,
2359     );
2360     alias PFN_glVertexAttrib3dv = void function (
2361         GLuint           index,
2362         const(GLdouble)* v,
2363     );
2364     alias PFN_glVertexAttrib3f = void function (
2365         GLuint  index,
2366         GLfloat x,
2367         GLfloat y,
2368         GLfloat z,
2369     );
2370     alias PFN_glVertexAttrib3fv = void function (
2371         GLuint          index,
2372         const(GLfloat)* v,
2373     );
2374     alias PFN_glVertexAttrib3s = void function (
2375         GLuint  index,
2376         GLshort x,
2377         GLshort y,
2378         GLshort z,
2379     );
2380     alias PFN_glVertexAttrib3sv = void function (
2381         GLuint          index,
2382         const(GLshort)* v,
2383     );
2384     alias PFN_glVertexAttrib4Nbv = void function (
2385         GLuint         index,
2386         const(GLbyte)* v,
2387     );
2388     alias PFN_glVertexAttrib4Niv = void function (
2389         GLuint        index,
2390         const(GLint)* v,
2391     );
2392     alias PFN_glVertexAttrib4Nsv = void function (
2393         GLuint          index,
2394         const(GLshort)* v,
2395     );
2396     alias PFN_glVertexAttrib4Nub = void function (
2397         GLuint  index,
2398         GLubyte x,
2399         GLubyte y,
2400         GLubyte z,
2401         GLubyte w,
2402     );
2403     alias PFN_glVertexAttrib4Nubv = void function (
2404         GLuint          index,
2405         const(GLubyte)* v,
2406     );
2407     alias PFN_glVertexAttrib4Nuiv = void function (
2408         GLuint         index,
2409         const(GLuint)* v,
2410     );
2411     alias PFN_glVertexAttrib4Nusv = void function (
2412         GLuint           index,
2413         const(GLushort)* v,
2414     );
2415     alias PFN_glVertexAttrib4bv = void function (
2416         GLuint         index,
2417         const(GLbyte)* v,
2418     );
2419     alias PFN_glVertexAttrib4d = void function (
2420         GLuint   index,
2421         GLdouble x,
2422         GLdouble y,
2423         GLdouble z,
2424         GLdouble w,
2425     );
2426     alias PFN_glVertexAttrib4dv = void function (
2427         GLuint           index,
2428         const(GLdouble)* v,
2429     );
2430     alias PFN_glVertexAttrib4f = void function (
2431         GLuint  index,
2432         GLfloat x,
2433         GLfloat y,
2434         GLfloat z,
2435         GLfloat w,
2436     );
2437     alias PFN_glVertexAttrib4fv = void function (
2438         GLuint          index,
2439         const(GLfloat)* v,
2440     );
2441     alias PFN_glVertexAttrib4iv = void function (
2442         GLuint        index,
2443         const(GLint)* v,
2444     );
2445     alias PFN_glVertexAttrib4s = void function (
2446         GLuint  index,
2447         GLshort x,
2448         GLshort y,
2449         GLshort z,
2450         GLshort w,
2451     );
2452     alias PFN_glVertexAttrib4sv = void function (
2453         GLuint          index,
2454         const(GLshort)* v,
2455     );
2456     alias PFN_glVertexAttrib4ubv = void function (
2457         GLuint          index,
2458         const(GLubyte)* v,
2459     );
2460     alias PFN_glVertexAttrib4uiv = void function (
2461         GLuint         index,
2462         const(GLuint)* v,
2463     );
2464     alias PFN_glVertexAttrib4usv = void function (
2465         GLuint           index,
2466         const(GLushort)* v,
2467     );
2468     alias PFN_glVertexAttribPointer = void function (
2469         GLuint       index,
2470         GLint        size,
2471         GLenum       type,
2472         GLboolean    normalized,
2473         GLsizei      stride,
2474         const(void)* pointer,
2475     );
2476 
2477     // Command pointers for GL_VERSION_2_1
2478     alias PFN_glUniformMatrix2x3fv = void function (
2479         GLint           location,
2480         GLsizei         count,
2481         GLboolean       transpose,
2482         const(GLfloat)* value,
2483     );
2484     alias PFN_glUniformMatrix3x2fv = void function (
2485         GLint           location,
2486         GLsizei         count,
2487         GLboolean       transpose,
2488         const(GLfloat)* value,
2489     );
2490     alias PFN_glUniformMatrix2x4fv = void function (
2491         GLint           location,
2492         GLsizei         count,
2493         GLboolean       transpose,
2494         const(GLfloat)* value,
2495     );
2496     alias PFN_glUniformMatrix4x2fv = void function (
2497         GLint           location,
2498         GLsizei         count,
2499         GLboolean       transpose,
2500         const(GLfloat)* value,
2501     );
2502     alias PFN_glUniformMatrix3x4fv = void function (
2503         GLint           location,
2504         GLsizei         count,
2505         GLboolean       transpose,
2506         const(GLfloat)* value,
2507     );
2508     alias PFN_glUniformMatrix4x3fv = void function (
2509         GLint           location,
2510         GLsizei         count,
2511         GLboolean       transpose,
2512         const(GLfloat)* value,
2513     );
2514 
2515     // Command pointers for GL_VERSION_3_0
2516     alias PFN_glColorMaski = void function (
2517         GLuint    index,
2518         GLboolean r,
2519         GLboolean g,
2520         GLboolean b,
2521         GLboolean a,
2522     );
2523     alias PFN_glGetBooleani_v = void function (
2524         GLenum     target,
2525         GLuint     index,
2526         GLboolean* data,
2527     );
2528     alias PFN_glGetIntegeri_v = void function (
2529         GLenum target,
2530         GLuint index,
2531         GLint* data,
2532     );
2533     alias PFN_glEnablei = void function (
2534         GLenum target,
2535         GLuint index,
2536     );
2537     alias PFN_glDisablei = void function (
2538         GLenum target,
2539         GLuint index,
2540     );
2541     alias PFN_glIsEnabledi = GLboolean function (
2542         GLenum target,
2543         GLuint index,
2544     );
2545     alias PFN_glBeginTransformFeedback = void function (
2546         GLenum primitiveMode,
2547     );
2548     alias PFN_glEndTransformFeedback = void function ();
2549     alias PFN_glBindBufferRange = void function (
2550         GLenum     target,
2551         GLuint     index,
2552         GLuint     buffer,
2553         GLintptr   offset,
2554         GLsizeiptr size,
2555     );
2556     alias PFN_glBindBufferBase = void function (
2557         GLenum target,
2558         GLuint index,
2559         GLuint buffer,
2560     );
2561     alias PFN_glTransformFeedbackVaryings = void function (
2562         GLuint          program,
2563         GLsizei         count,
2564         const(GLchar*)* varyings,
2565         GLenum          bufferMode,
2566     );
2567     alias PFN_glGetTransformFeedbackVarying = void function (
2568         GLuint   program,
2569         GLuint   index,
2570         GLsizei  bufSize,
2571         GLsizei* length,
2572         GLsizei* size,
2573         GLenum*  type,
2574         GLchar*  name,
2575     );
2576     alias PFN_glClampColor = void function (
2577         GLenum target,
2578         GLenum clamp,
2579     );
2580     alias PFN_glBeginConditionalRender = void function (
2581         GLuint id,
2582         GLenum mode,
2583     );
2584     alias PFN_glEndConditionalRender = void function ();
2585     alias PFN_glVertexAttribIPointer = void function (
2586         GLuint       index,
2587         GLint        size,
2588         GLenum       type,
2589         GLsizei      stride,
2590         const(void)* pointer,
2591     );
2592     alias PFN_glGetVertexAttribIiv = void function (
2593         GLuint index,
2594         GLenum pname,
2595         GLint* params,
2596     );
2597     alias PFN_glGetVertexAttribIuiv = void function (
2598         GLuint  index,
2599         GLenum  pname,
2600         GLuint* params,
2601     );
2602     alias PFN_glVertexAttribI1i = void function (
2603         GLuint index,
2604         GLint  x,
2605     );
2606     alias PFN_glVertexAttribI2i = void function (
2607         GLuint index,
2608         GLint  x,
2609         GLint  y,
2610     );
2611     alias PFN_glVertexAttribI3i = void function (
2612         GLuint index,
2613         GLint  x,
2614         GLint  y,
2615         GLint  z,
2616     );
2617     alias PFN_glVertexAttribI4i = void function (
2618         GLuint index,
2619         GLint  x,
2620         GLint  y,
2621         GLint  z,
2622         GLint  w,
2623     );
2624     alias PFN_glVertexAttribI1ui = void function (
2625         GLuint index,
2626         GLuint x,
2627     );
2628     alias PFN_glVertexAttribI2ui = void function (
2629         GLuint index,
2630         GLuint x,
2631         GLuint y,
2632     );
2633     alias PFN_glVertexAttribI3ui = void function (
2634         GLuint index,
2635         GLuint x,
2636         GLuint y,
2637         GLuint z,
2638     );
2639     alias PFN_glVertexAttribI4ui = void function (
2640         GLuint index,
2641         GLuint x,
2642         GLuint y,
2643         GLuint z,
2644         GLuint w,
2645     );
2646     alias PFN_glVertexAttribI1iv = void function (
2647         GLuint        index,
2648         const(GLint)* v,
2649     );
2650     alias PFN_glVertexAttribI2iv = void function (
2651         GLuint        index,
2652         const(GLint)* v,
2653     );
2654     alias PFN_glVertexAttribI3iv = void function (
2655         GLuint        index,
2656         const(GLint)* v,
2657     );
2658     alias PFN_glVertexAttribI4iv = void function (
2659         GLuint        index,
2660         const(GLint)* v,
2661     );
2662     alias PFN_glVertexAttribI1uiv = void function (
2663         GLuint         index,
2664         const(GLuint)* v,
2665     );
2666     alias PFN_glVertexAttribI2uiv = void function (
2667         GLuint         index,
2668         const(GLuint)* v,
2669     );
2670     alias PFN_glVertexAttribI3uiv = void function (
2671         GLuint         index,
2672         const(GLuint)* v,
2673     );
2674     alias PFN_glVertexAttribI4uiv = void function (
2675         GLuint         index,
2676         const(GLuint)* v,
2677     );
2678     alias PFN_glVertexAttribI4bv = void function (
2679         GLuint         index,
2680         const(GLbyte)* v,
2681     );
2682     alias PFN_glVertexAttribI4sv = void function (
2683         GLuint          index,
2684         const(GLshort)* v,
2685     );
2686     alias PFN_glVertexAttribI4ubv = void function (
2687         GLuint          index,
2688         const(GLubyte)* v,
2689     );
2690     alias PFN_glVertexAttribI4usv = void function (
2691         GLuint           index,
2692         const(GLushort)* v,
2693     );
2694     alias PFN_glGetUniformuiv = void function (
2695         GLuint  program,
2696         GLint   location,
2697         GLuint* params,
2698     );
2699     alias PFN_glBindFragDataLocation = void function (
2700         GLuint         program,
2701         GLuint         color,
2702         const(GLchar)* name,
2703     );
2704     alias PFN_glGetFragDataLocation = GLint function (
2705         GLuint         program,
2706         const(GLchar)* name,
2707     );
2708     alias PFN_glUniform1ui = void function (
2709         GLint  location,
2710         GLuint v0,
2711     );
2712     alias PFN_glUniform2ui = void function (
2713         GLint  location,
2714         GLuint v0,
2715         GLuint v1,
2716     );
2717     alias PFN_glUniform3ui = void function (
2718         GLint  location,
2719         GLuint v0,
2720         GLuint v1,
2721         GLuint v2,
2722     );
2723     alias PFN_glUniform4ui = void function (
2724         GLint  location,
2725         GLuint v0,
2726         GLuint v1,
2727         GLuint v2,
2728         GLuint v3,
2729     );
2730     alias PFN_glUniform1uiv = void function (
2731         GLint          location,
2732         GLsizei        count,
2733         const(GLuint)* value,
2734     );
2735     alias PFN_glUniform2uiv = void function (
2736         GLint          location,
2737         GLsizei        count,
2738         const(GLuint)* value,
2739     );
2740     alias PFN_glUniform3uiv = void function (
2741         GLint          location,
2742         GLsizei        count,
2743         const(GLuint)* value,
2744     );
2745     alias PFN_glUniform4uiv = void function (
2746         GLint          location,
2747         GLsizei        count,
2748         const(GLuint)* value,
2749     );
2750     alias PFN_glTexParameterIiv = void function (
2751         GLenum        target,
2752         GLenum        pname,
2753         const(GLint)* params,
2754     );
2755     alias PFN_glTexParameterIuiv = void function (
2756         GLenum         target,
2757         GLenum         pname,
2758         const(GLuint)* params,
2759     );
2760     alias PFN_glGetTexParameterIiv = void function (
2761         GLenum target,
2762         GLenum pname,
2763         GLint* params,
2764     );
2765     alias PFN_glGetTexParameterIuiv = void function (
2766         GLenum  target,
2767         GLenum  pname,
2768         GLuint* params,
2769     );
2770     alias PFN_glClearBufferiv = void function (
2771         GLenum        buffer,
2772         GLint         drawbuffer,
2773         const(GLint)* value,
2774     );
2775     alias PFN_glClearBufferuiv = void function (
2776         GLenum         buffer,
2777         GLint          drawbuffer,
2778         const(GLuint)* value,
2779     );
2780     alias PFN_glClearBufferfv = void function (
2781         GLenum          buffer,
2782         GLint           drawbuffer,
2783         const(GLfloat)* value,
2784     );
2785     alias PFN_glClearBufferfi = void function (
2786         GLenum  buffer,
2787         GLint   drawbuffer,
2788         GLfloat depth,
2789         GLint   stencil,
2790     );
2791     alias PFN_glGetStringi = const(GLubyte)* function (
2792         GLenum name,
2793         GLuint index,
2794     );
2795     alias PFN_glIsRenderbuffer = GLboolean function (
2796         GLuint renderbuffer,
2797     );
2798     alias PFN_glBindRenderbuffer = void function (
2799         GLenum target,
2800         GLuint renderbuffer,
2801     );
2802     alias PFN_glDeleteRenderbuffers = void function (
2803         GLsizei        n,
2804         const(GLuint)* renderbuffers,
2805     );
2806     alias PFN_glGenRenderbuffers = void function (
2807         GLsizei n,
2808         GLuint* renderbuffers,
2809     );
2810     alias PFN_glRenderbufferStorage = void function (
2811         GLenum  target,
2812         GLenum  internalformat,
2813         GLsizei width,
2814         GLsizei height,
2815     );
2816     alias PFN_glGetRenderbufferParameteriv = void function (
2817         GLenum target,
2818         GLenum pname,
2819         GLint* params,
2820     );
2821     alias PFN_glIsFramebuffer = GLboolean function (
2822         GLuint framebuffer,
2823     );
2824     alias PFN_glBindFramebuffer = void function (
2825         GLenum target,
2826         GLuint framebuffer,
2827     );
2828     alias PFN_glDeleteFramebuffers = void function (
2829         GLsizei        n,
2830         const(GLuint)* framebuffers,
2831     );
2832     alias PFN_glGenFramebuffers = void function (
2833         GLsizei n,
2834         GLuint* framebuffers,
2835     );
2836     alias PFN_glCheckFramebufferStatus = GLenum function (
2837         GLenum target,
2838     );
2839     alias PFN_glFramebufferTexture1D = void function (
2840         GLenum target,
2841         GLenum attachment,
2842         GLenum textarget,
2843         GLuint texture,
2844         GLint  level,
2845     );
2846     alias PFN_glFramebufferTexture2D = void function (
2847         GLenum target,
2848         GLenum attachment,
2849         GLenum textarget,
2850         GLuint texture,
2851         GLint  level,
2852     );
2853     alias PFN_glFramebufferTexture3D = void function (
2854         GLenum target,
2855         GLenum attachment,
2856         GLenum textarget,
2857         GLuint texture,
2858         GLint  level,
2859         GLint  zoffset,
2860     );
2861     alias PFN_glFramebufferRenderbuffer = void function (
2862         GLenum target,
2863         GLenum attachment,
2864         GLenum renderbuffertarget,
2865         GLuint renderbuffer,
2866     );
2867     alias PFN_glGetFramebufferAttachmentParameteriv = void function (
2868         GLenum target,
2869         GLenum attachment,
2870         GLenum pname,
2871         GLint* params,
2872     );
2873     alias PFN_glGenerateMipmap = void function (
2874         GLenum target,
2875     );
2876     alias PFN_glBlitFramebuffer = void function (
2877         GLint      srcX0,
2878         GLint      srcY0,
2879         GLint      srcX1,
2880         GLint      srcY1,
2881         GLint      dstX0,
2882         GLint      dstY0,
2883         GLint      dstX1,
2884         GLint      dstY1,
2885         GLbitfield mask,
2886         GLenum     filter,
2887     );
2888     alias PFN_glRenderbufferStorageMultisample = void function (
2889         GLenum  target,
2890         GLsizei samples,
2891         GLenum  internalformat,
2892         GLsizei width,
2893         GLsizei height,
2894     );
2895     alias PFN_glFramebufferTextureLayer = void function (
2896         GLenum target,
2897         GLenum attachment,
2898         GLuint texture,
2899         GLint  level,
2900         GLint  layer,
2901     );
2902     alias PFN_glMapBufferRange = void * function (
2903         GLenum     target,
2904         GLintptr   offset,
2905         GLsizeiptr length,
2906         GLbitfield access,
2907     );
2908     alias PFN_glFlushMappedBufferRange = void function (
2909         GLenum     target,
2910         GLintptr   offset,
2911         GLsizeiptr length,
2912     );
2913     alias PFN_glBindVertexArray = void function (
2914         GLuint array,
2915     );
2916     alias PFN_glDeleteVertexArrays = void function (
2917         GLsizei        n,
2918         const(GLuint)* arrays,
2919     );
2920     alias PFN_glGenVertexArrays = void function (
2921         GLsizei n,
2922         GLuint* arrays,
2923     );
2924     alias PFN_glIsVertexArray = GLboolean function (
2925         GLuint array,
2926     );
2927 
2928     // Command pointers for GL_VERSION_3_1
2929     alias PFN_glDrawArraysInstanced = void function (
2930         GLenum  mode,
2931         GLint   first,
2932         GLsizei count,
2933         GLsizei instancecount,
2934     );
2935     alias PFN_glDrawElementsInstanced = void function (
2936         GLenum       mode,
2937         GLsizei      count,
2938         GLenum       type,
2939         const(void)* indices,
2940         GLsizei      instancecount,
2941     );
2942     alias PFN_glTexBuffer = void function (
2943         GLenum target,
2944         GLenum internalformat,
2945         GLuint buffer,
2946     );
2947     alias PFN_glPrimitiveRestartIndex = void function (
2948         GLuint index,
2949     );
2950     alias PFN_glCopyBufferSubData = void function (
2951         GLenum     readTarget,
2952         GLenum     writeTarget,
2953         GLintptr   readOffset,
2954         GLintptr   writeOffset,
2955         GLsizeiptr size,
2956     );
2957     alias PFN_glGetUniformIndices = void function (
2958         GLuint          program,
2959         GLsizei         uniformCount,
2960         const(GLchar*)* uniformNames,
2961         GLuint*         uniformIndices,
2962     );
2963     alias PFN_glGetActiveUniformsiv = void function (
2964         GLuint         program,
2965         GLsizei        uniformCount,
2966         const(GLuint)* uniformIndices,
2967         GLenum         pname,
2968         GLint*         params,
2969     );
2970     alias PFN_glGetActiveUniformName = void function (
2971         GLuint   program,
2972         GLuint   uniformIndex,
2973         GLsizei  bufSize,
2974         GLsizei* length,
2975         GLchar*  uniformName,
2976     );
2977     alias PFN_glGetUniformBlockIndex = GLuint function (
2978         GLuint         program,
2979         const(GLchar)* uniformBlockName,
2980     );
2981     alias PFN_glGetActiveUniformBlockiv = void function (
2982         GLuint program,
2983         GLuint uniformBlockIndex,
2984         GLenum pname,
2985         GLint* params,
2986     );
2987     alias PFN_glGetActiveUniformBlockName = void function (
2988         GLuint   program,
2989         GLuint   uniformBlockIndex,
2990         GLsizei  bufSize,
2991         GLsizei* length,
2992         GLchar*  uniformBlockName,
2993     );
2994     alias PFN_glUniformBlockBinding = void function (
2995         GLuint program,
2996         GLuint uniformBlockIndex,
2997         GLuint uniformBlockBinding,
2998     );
2999 
3000     // Command pointers for GL_VERSION_3_2
3001     alias PFN_glDrawElementsBaseVertex = void function (
3002         GLenum       mode,
3003         GLsizei      count,
3004         GLenum       type,
3005         const(void)* indices,
3006         GLint        basevertex,
3007     );
3008     alias PFN_glDrawRangeElementsBaseVertex = void function (
3009         GLenum       mode,
3010         GLuint       start,
3011         GLuint       end,
3012         GLsizei      count,
3013         GLenum       type,
3014         const(void)* indices,
3015         GLint        basevertex,
3016     );
3017     alias PFN_glDrawElementsInstancedBaseVertex = void function (
3018         GLenum       mode,
3019         GLsizei      count,
3020         GLenum       type,
3021         const(void)* indices,
3022         GLsizei      instancecount,
3023         GLint        basevertex,
3024     );
3025     alias PFN_glMultiDrawElementsBaseVertex = void function (
3026         GLenum          mode,
3027         const(GLsizei)* count,
3028         GLenum          type,
3029         const(void*)*   indices,
3030         GLsizei         drawcount,
3031         const(GLint)*   basevertex,
3032     );
3033     alias PFN_glProvokingVertex = void function (
3034         GLenum mode,
3035     );
3036     alias PFN_glFenceSync = GLsync function (
3037         GLenum     condition,
3038         GLbitfield flags,
3039     );
3040     alias PFN_glIsSync = GLboolean function (
3041         GLsync sync,
3042     );
3043     alias PFN_glDeleteSync = void function (
3044         GLsync sync,
3045     );
3046     alias PFN_glClientWaitSync = GLenum function (
3047         GLsync     sync,
3048         GLbitfield flags,
3049         GLuint64   timeout,
3050     );
3051     alias PFN_glWaitSync = void function (
3052         GLsync     sync,
3053         GLbitfield flags,
3054         GLuint64   timeout,
3055     );
3056     alias PFN_glGetInteger64v = void function (
3057         GLenum   pname,
3058         GLint64* data,
3059     );
3060     alias PFN_glGetSynciv = void function (
3061         GLsync   sync,
3062         GLenum   pname,
3063         GLsizei  bufSize,
3064         GLsizei* length,
3065         GLint*   values,
3066     );
3067     alias PFN_glGetInteger64i_v = void function (
3068         GLenum   target,
3069         GLuint   index,
3070         GLint64* data,
3071     );
3072     alias PFN_glGetBufferParameteri64v = void function (
3073         GLenum   target,
3074         GLenum   pname,
3075         GLint64* params,
3076     );
3077     alias PFN_glFramebufferTexture = void function (
3078         GLenum target,
3079         GLenum attachment,
3080         GLuint texture,
3081         GLint  level,
3082     );
3083     alias PFN_glTexImage2DMultisample = void function (
3084         GLenum    target,
3085         GLsizei   samples,
3086         GLenum    internalformat,
3087         GLsizei   width,
3088         GLsizei   height,
3089         GLboolean fixedsamplelocations,
3090     );
3091     alias PFN_glTexImage3DMultisample = void function (
3092         GLenum    target,
3093         GLsizei   samples,
3094         GLenum    internalformat,
3095         GLsizei   width,
3096         GLsizei   height,
3097         GLsizei   depth,
3098         GLboolean fixedsamplelocations,
3099     );
3100     alias PFN_glGetMultisamplefv = void function (
3101         GLenum   pname,
3102         GLuint   index,
3103         GLfloat* val,
3104     );
3105     alias PFN_glSampleMaski = void function (
3106         GLuint     maskNumber,
3107         GLbitfield mask,
3108     );
3109 
3110     // Command pointers for GL_VERSION_3_3
3111     alias PFN_glBindFragDataLocationIndexed = void function (
3112         GLuint         program,
3113         GLuint         colorNumber,
3114         GLuint         index,
3115         const(GLchar)* name,
3116     );
3117     alias PFN_glGetFragDataIndex = GLint function (
3118         GLuint         program,
3119         const(GLchar)* name,
3120     );
3121     alias PFN_glGenSamplers = void function (
3122         GLsizei count,
3123         GLuint* samplers,
3124     );
3125     alias PFN_glDeleteSamplers = void function (
3126         GLsizei        count,
3127         const(GLuint)* samplers,
3128     );
3129     alias PFN_glIsSampler = GLboolean function (
3130         GLuint sampler,
3131     );
3132     alias PFN_glBindSampler = void function (
3133         GLuint unit,
3134         GLuint sampler,
3135     );
3136     alias PFN_glSamplerParameteri = void function (
3137         GLuint sampler,
3138         GLenum pname,
3139         GLint  param,
3140     );
3141     alias PFN_glSamplerParameteriv = void function (
3142         GLuint        sampler,
3143         GLenum        pname,
3144         const(GLint)* param,
3145     );
3146     alias PFN_glSamplerParameterf = void function (
3147         GLuint  sampler,
3148         GLenum  pname,
3149         GLfloat param,
3150     );
3151     alias PFN_glSamplerParameterfv = void function (
3152         GLuint          sampler,
3153         GLenum          pname,
3154         const(GLfloat)* param,
3155     );
3156     alias PFN_glSamplerParameterIiv = void function (
3157         GLuint        sampler,
3158         GLenum        pname,
3159         const(GLint)* param,
3160     );
3161     alias PFN_glSamplerParameterIuiv = void function (
3162         GLuint         sampler,
3163         GLenum         pname,
3164         const(GLuint)* param,
3165     );
3166     alias PFN_glGetSamplerParameteriv = void function (
3167         GLuint sampler,
3168         GLenum pname,
3169         GLint* params,
3170     );
3171     alias PFN_glGetSamplerParameterIiv = void function (
3172         GLuint sampler,
3173         GLenum pname,
3174         GLint* params,
3175     );
3176     alias PFN_glGetSamplerParameterfv = void function (
3177         GLuint   sampler,
3178         GLenum   pname,
3179         GLfloat* params,
3180     );
3181     alias PFN_glGetSamplerParameterIuiv = void function (
3182         GLuint  sampler,
3183         GLenum  pname,
3184         GLuint* params,
3185     );
3186     alias PFN_glQueryCounter = void function (
3187         GLuint id,
3188         GLenum target,
3189     );
3190     alias PFN_glGetQueryObjecti64v = void function (
3191         GLuint   id,
3192         GLenum   pname,
3193         GLint64* params,
3194     );
3195     alias PFN_glGetQueryObjectui64v = void function (
3196         GLuint    id,
3197         GLenum    pname,
3198         GLuint64* params,
3199     );
3200     alias PFN_glVertexAttribDivisor = void function (
3201         GLuint index,
3202         GLuint divisor,
3203     );
3204     alias PFN_glVertexAttribP1ui = void function (
3205         GLuint    index,
3206         GLenum    type,
3207         GLboolean normalized,
3208         GLuint    value,
3209     );
3210     alias PFN_glVertexAttribP1uiv = void function (
3211         GLuint         index,
3212         GLenum         type,
3213         GLboolean      normalized,
3214         const(GLuint)* value,
3215     );
3216     alias PFN_glVertexAttribP2ui = void function (
3217         GLuint    index,
3218         GLenum    type,
3219         GLboolean normalized,
3220         GLuint    value,
3221     );
3222     alias PFN_glVertexAttribP2uiv = void function (
3223         GLuint         index,
3224         GLenum         type,
3225         GLboolean      normalized,
3226         const(GLuint)* value,
3227     );
3228     alias PFN_glVertexAttribP3ui = void function (
3229         GLuint    index,
3230         GLenum    type,
3231         GLboolean normalized,
3232         GLuint    value,
3233     );
3234     alias PFN_glVertexAttribP3uiv = void function (
3235         GLuint         index,
3236         GLenum         type,
3237         GLboolean      normalized,
3238         const(GLuint)* value,
3239     );
3240     alias PFN_glVertexAttribP4ui = void function (
3241         GLuint    index,
3242         GLenum    type,
3243         GLboolean normalized,
3244         GLuint    value,
3245     );
3246     alias PFN_glVertexAttribP4uiv = void function (
3247         GLuint         index,
3248         GLenum         type,
3249         GLboolean      normalized,
3250         const(GLuint)* value,
3251     );
3252 
3253     // Command pointers for GL_VERSION_4_0
3254     alias PFN_glMinSampleShading = void function (
3255         GLfloat value,
3256     );
3257     alias PFN_glBlendEquationi = void function (
3258         GLuint buf,
3259         GLenum mode,
3260     );
3261     alias PFN_glBlendEquationSeparatei = void function (
3262         GLuint buf,
3263         GLenum modeRGB,
3264         GLenum modeAlpha,
3265     );
3266     alias PFN_glBlendFunci = void function (
3267         GLuint buf,
3268         GLenum src,
3269         GLenum dst,
3270     );
3271     alias PFN_glBlendFuncSeparatei = void function (
3272         GLuint buf,
3273         GLenum srcRGB,
3274         GLenum dstRGB,
3275         GLenum srcAlpha,
3276         GLenum dstAlpha,
3277     );
3278     alias PFN_glDrawArraysIndirect = void function (
3279         GLenum       mode,
3280         const(void)* indirect,
3281     );
3282     alias PFN_glDrawElementsIndirect = void function (
3283         GLenum       mode,
3284         GLenum       type,
3285         const(void)* indirect,
3286     );
3287     alias PFN_glUniform1d = void function (
3288         GLint    location,
3289         GLdouble x,
3290     );
3291     alias PFN_glUniform2d = void function (
3292         GLint    location,
3293         GLdouble x,
3294         GLdouble y,
3295     );
3296     alias PFN_glUniform3d = void function (
3297         GLint    location,
3298         GLdouble x,
3299         GLdouble y,
3300         GLdouble z,
3301     );
3302     alias PFN_glUniform4d = void function (
3303         GLint    location,
3304         GLdouble x,
3305         GLdouble y,
3306         GLdouble z,
3307         GLdouble w,
3308     );
3309     alias PFN_glUniform1dv = void function (
3310         GLint            location,
3311         GLsizei          count,
3312         const(GLdouble)* value,
3313     );
3314     alias PFN_glUniform2dv = void function (
3315         GLint            location,
3316         GLsizei          count,
3317         const(GLdouble)* value,
3318     );
3319     alias PFN_glUniform3dv = void function (
3320         GLint            location,
3321         GLsizei          count,
3322         const(GLdouble)* value,
3323     );
3324     alias PFN_glUniform4dv = void function (
3325         GLint            location,
3326         GLsizei          count,
3327         const(GLdouble)* value,
3328     );
3329     alias PFN_glUniformMatrix2dv = void function (
3330         GLint            location,
3331         GLsizei          count,
3332         GLboolean        transpose,
3333         const(GLdouble)* value,
3334     );
3335     alias PFN_glUniformMatrix3dv = void function (
3336         GLint            location,
3337         GLsizei          count,
3338         GLboolean        transpose,
3339         const(GLdouble)* value,
3340     );
3341     alias PFN_glUniformMatrix4dv = void function (
3342         GLint            location,
3343         GLsizei          count,
3344         GLboolean        transpose,
3345         const(GLdouble)* value,
3346     );
3347     alias PFN_glUniformMatrix2x3dv = void function (
3348         GLint            location,
3349         GLsizei          count,
3350         GLboolean        transpose,
3351         const(GLdouble)* value,
3352     );
3353     alias PFN_glUniformMatrix2x4dv = void function (
3354         GLint            location,
3355         GLsizei          count,
3356         GLboolean        transpose,
3357         const(GLdouble)* value,
3358     );
3359     alias PFN_glUniformMatrix3x2dv = void function (
3360         GLint            location,
3361         GLsizei          count,
3362         GLboolean        transpose,
3363         const(GLdouble)* value,
3364     );
3365     alias PFN_glUniformMatrix3x4dv = void function (
3366         GLint            location,
3367         GLsizei          count,
3368         GLboolean        transpose,
3369         const(GLdouble)* value,
3370     );
3371     alias PFN_glUniformMatrix4x2dv = void function (
3372         GLint            location,
3373         GLsizei          count,
3374         GLboolean        transpose,
3375         const(GLdouble)* value,
3376     );
3377     alias PFN_glUniformMatrix4x3dv = void function (
3378         GLint            location,
3379         GLsizei          count,
3380         GLboolean        transpose,
3381         const(GLdouble)* value,
3382     );
3383     alias PFN_glGetUniformdv = void function (
3384         GLuint    program,
3385         GLint     location,
3386         GLdouble* params,
3387     );
3388     alias PFN_glGetSubroutineUniformLocation = GLint function (
3389         GLuint         program,
3390         GLenum         shadertype,
3391         const(GLchar)* name,
3392     );
3393     alias PFN_glGetSubroutineIndex = GLuint function (
3394         GLuint         program,
3395         GLenum         shadertype,
3396         const(GLchar)* name,
3397     );
3398     alias PFN_glGetActiveSubroutineUniformiv = void function (
3399         GLuint program,
3400         GLenum shadertype,
3401         GLuint index,
3402         GLenum pname,
3403         GLint* values,
3404     );
3405     alias PFN_glGetActiveSubroutineUniformName = void function (
3406         GLuint   program,
3407         GLenum   shadertype,
3408         GLuint   index,
3409         GLsizei  bufsize,
3410         GLsizei* length,
3411         GLchar*  name,
3412     );
3413     alias PFN_glGetActiveSubroutineName = void function (
3414         GLuint   program,
3415         GLenum   shadertype,
3416         GLuint   index,
3417         GLsizei  bufsize,
3418         GLsizei* length,
3419         GLchar*  name,
3420     );
3421     alias PFN_glUniformSubroutinesuiv = void function (
3422         GLenum         shadertype,
3423         GLsizei        count,
3424         const(GLuint)* indices,
3425     );
3426     alias PFN_glGetUniformSubroutineuiv = void function (
3427         GLenum  shadertype,
3428         GLint   location,
3429         GLuint* params,
3430     );
3431     alias PFN_glGetProgramStageiv = void function (
3432         GLuint program,
3433         GLenum shadertype,
3434         GLenum pname,
3435         GLint* values,
3436     );
3437     alias PFN_glPatchParameteri = void function (
3438         GLenum pname,
3439         GLint  value,
3440     );
3441     alias PFN_glPatchParameterfv = void function (
3442         GLenum          pname,
3443         const(GLfloat)* values,
3444     );
3445     alias PFN_glBindTransformFeedback = void function (
3446         GLenum target,
3447         GLuint id,
3448     );
3449     alias PFN_glDeleteTransformFeedbacks = void function (
3450         GLsizei        n,
3451         const(GLuint)* ids,
3452     );
3453     alias PFN_glGenTransformFeedbacks = void function (
3454         GLsizei n,
3455         GLuint* ids,
3456     );
3457     alias PFN_glIsTransformFeedback = GLboolean function (
3458         GLuint id,
3459     );
3460     alias PFN_glPauseTransformFeedback = void function ();
3461     alias PFN_glResumeTransformFeedback = void function ();
3462     alias PFN_glDrawTransformFeedback = void function (
3463         GLenum mode,
3464         GLuint id,
3465     );
3466     alias PFN_glDrawTransformFeedbackStream = void function (
3467         GLenum mode,
3468         GLuint id,
3469         GLuint stream,
3470     );
3471     alias PFN_glBeginQueryIndexed = void function (
3472         GLenum target,
3473         GLuint index,
3474         GLuint id,
3475     );
3476     alias PFN_glEndQueryIndexed = void function (
3477         GLenum target,
3478         GLuint index,
3479     );
3480     alias PFN_glGetQueryIndexediv = void function (
3481         GLenum target,
3482         GLuint index,
3483         GLenum pname,
3484         GLint* params,
3485     );
3486 
3487     // Command pointers for GL_VERSION_4_1
3488     alias PFN_glReleaseShaderCompiler = void function ();
3489     alias PFN_glShaderBinary = void function (
3490         GLsizei        count,
3491         const(GLuint)* shaders,
3492         GLenum         binaryformat,
3493         const(void)*   binary,
3494         GLsizei        length,
3495     );
3496     alias PFN_glGetShaderPrecisionFormat = void function (
3497         GLenum shadertype,
3498         GLenum precisiontype,
3499         GLint* range,
3500         GLint* precision,
3501     );
3502     alias PFN_glDepthRangef = void function (
3503         GLfloat n,
3504         GLfloat f,
3505     );
3506     alias PFN_glClearDepthf = void function (
3507         GLfloat d,
3508     );
3509     alias PFN_glGetProgramBinary = void function (
3510         GLuint   program,
3511         GLsizei  bufSize,
3512         GLsizei* length,
3513         GLenum*  binaryFormat,
3514         void*    binary,
3515     );
3516     alias PFN_glProgramBinary = void function (
3517         GLuint       program,
3518         GLenum       binaryFormat,
3519         const(void)* binary,
3520         GLsizei      length,
3521     );
3522     alias PFN_glProgramParameteri = void function (
3523         GLuint program,
3524         GLenum pname,
3525         GLint  value,
3526     );
3527     alias PFN_glUseProgramStages = void function (
3528         GLuint     pipeline,
3529         GLbitfield stages,
3530         GLuint     program,
3531     );
3532     alias PFN_glActiveShaderProgram = void function (
3533         GLuint pipeline,
3534         GLuint program,
3535     );
3536     alias PFN_glCreateShaderProgramv = GLuint function (
3537         GLenum          type,
3538         GLsizei         count,
3539         const(GLchar*)* strings,
3540     );
3541     alias PFN_glBindProgramPipeline = void function (
3542         GLuint pipeline,
3543     );
3544     alias PFN_glDeleteProgramPipelines = void function (
3545         GLsizei        n,
3546         const(GLuint)* pipelines,
3547     );
3548     alias PFN_glGenProgramPipelines = void function (
3549         GLsizei n,
3550         GLuint* pipelines,
3551     );
3552     alias PFN_glIsProgramPipeline = GLboolean function (
3553         GLuint pipeline,
3554     );
3555     alias PFN_glGetProgramPipelineiv = void function (
3556         GLuint pipeline,
3557         GLenum pname,
3558         GLint* params,
3559     );
3560     alias PFN_glProgramUniform1i = void function (
3561         GLuint program,
3562         GLint  location,
3563         GLint  v0,
3564     );
3565     alias PFN_glProgramUniform1iv = void function (
3566         GLuint        program,
3567         GLint         location,
3568         GLsizei       count,
3569         const(GLint)* value,
3570     );
3571     alias PFN_glProgramUniform1f = void function (
3572         GLuint  program,
3573         GLint   location,
3574         GLfloat v0,
3575     );
3576     alias PFN_glProgramUniform1fv = void function (
3577         GLuint          program,
3578         GLint           location,
3579         GLsizei         count,
3580         const(GLfloat)* value,
3581     );
3582     alias PFN_glProgramUniform1d = void function (
3583         GLuint   program,
3584         GLint    location,
3585         GLdouble v0,
3586     );
3587     alias PFN_glProgramUniform1dv = void function (
3588         GLuint           program,
3589         GLint            location,
3590         GLsizei          count,
3591         const(GLdouble)* value,
3592     );
3593     alias PFN_glProgramUniform1ui = void function (
3594         GLuint program,
3595         GLint  location,
3596         GLuint v0,
3597     );
3598     alias PFN_glProgramUniform1uiv = void function (
3599         GLuint         program,
3600         GLint          location,
3601         GLsizei        count,
3602         const(GLuint)* value,
3603     );
3604     alias PFN_glProgramUniform2i = void function (
3605         GLuint program,
3606         GLint  location,
3607         GLint  v0,
3608         GLint  v1,
3609     );
3610     alias PFN_glProgramUniform2iv = void function (
3611         GLuint        program,
3612         GLint         location,
3613         GLsizei       count,
3614         const(GLint)* value,
3615     );
3616     alias PFN_glProgramUniform2f = void function (
3617         GLuint  program,
3618         GLint   location,
3619         GLfloat v0,
3620         GLfloat v1,
3621     );
3622     alias PFN_glProgramUniform2fv = void function (
3623         GLuint          program,
3624         GLint           location,
3625         GLsizei         count,
3626         const(GLfloat)* value,
3627     );
3628     alias PFN_glProgramUniform2d = void function (
3629         GLuint   program,
3630         GLint    location,
3631         GLdouble v0,
3632         GLdouble v1,
3633     );
3634     alias PFN_glProgramUniform2dv = void function (
3635         GLuint           program,
3636         GLint            location,
3637         GLsizei          count,
3638         const(GLdouble)* value,
3639     );
3640     alias PFN_glProgramUniform2ui = void function (
3641         GLuint program,
3642         GLint  location,
3643         GLuint v0,
3644         GLuint v1,
3645     );
3646     alias PFN_glProgramUniform2uiv = void function (
3647         GLuint         program,
3648         GLint          location,
3649         GLsizei        count,
3650         const(GLuint)* value,
3651     );
3652     alias PFN_glProgramUniform3i = void function (
3653         GLuint program,
3654         GLint  location,
3655         GLint  v0,
3656         GLint  v1,
3657         GLint  v2,
3658     );
3659     alias PFN_glProgramUniform3iv = void function (
3660         GLuint        program,
3661         GLint         location,
3662         GLsizei       count,
3663         const(GLint)* value,
3664     );
3665     alias PFN_glProgramUniform3f = void function (
3666         GLuint  program,
3667         GLint   location,
3668         GLfloat v0,
3669         GLfloat v1,
3670         GLfloat v2,
3671     );
3672     alias PFN_glProgramUniform3fv = void function (
3673         GLuint          program,
3674         GLint           location,
3675         GLsizei         count,
3676         const(GLfloat)* value,
3677     );
3678     alias PFN_glProgramUniform3d = void function (
3679         GLuint   program,
3680         GLint    location,
3681         GLdouble v0,
3682         GLdouble v1,
3683         GLdouble v2,
3684     );
3685     alias PFN_glProgramUniform3dv = void function (
3686         GLuint           program,
3687         GLint            location,
3688         GLsizei          count,
3689         const(GLdouble)* value,
3690     );
3691     alias PFN_glProgramUniform3ui = void function (
3692         GLuint program,
3693         GLint  location,
3694         GLuint v0,
3695         GLuint v1,
3696         GLuint v2,
3697     );
3698     alias PFN_glProgramUniform3uiv = void function (
3699         GLuint         program,
3700         GLint          location,
3701         GLsizei        count,
3702         const(GLuint)* value,
3703     );
3704     alias PFN_glProgramUniform4i = void function (
3705         GLuint program,
3706         GLint  location,
3707         GLint  v0,
3708         GLint  v1,
3709         GLint  v2,
3710         GLint  v3,
3711     );
3712     alias PFN_glProgramUniform4iv = void function (
3713         GLuint        program,
3714         GLint         location,
3715         GLsizei       count,
3716         const(GLint)* value,
3717     );
3718     alias PFN_glProgramUniform4f = void function (
3719         GLuint  program,
3720         GLint   location,
3721         GLfloat v0,
3722         GLfloat v1,
3723         GLfloat v2,
3724         GLfloat v3,
3725     );
3726     alias PFN_glProgramUniform4fv = void function (
3727         GLuint          program,
3728         GLint           location,
3729         GLsizei         count,
3730         const(GLfloat)* value,
3731     );
3732     alias PFN_glProgramUniform4d = void function (
3733         GLuint   program,
3734         GLint    location,
3735         GLdouble v0,
3736         GLdouble v1,
3737         GLdouble v2,
3738         GLdouble v3,
3739     );
3740     alias PFN_glProgramUniform4dv = void function (
3741         GLuint           program,
3742         GLint            location,
3743         GLsizei          count,
3744         const(GLdouble)* value,
3745     );
3746     alias PFN_glProgramUniform4ui = void function (
3747         GLuint program,
3748         GLint  location,
3749         GLuint v0,
3750         GLuint v1,
3751         GLuint v2,
3752         GLuint v3,
3753     );
3754     alias PFN_glProgramUniform4uiv = void function (
3755         GLuint         program,
3756         GLint          location,
3757         GLsizei        count,
3758         const(GLuint)* value,
3759     );
3760     alias PFN_glProgramUniformMatrix2fv = void function (
3761         GLuint          program,
3762         GLint           location,
3763         GLsizei         count,
3764         GLboolean       transpose,
3765         const(GLfloat)* value,
3766     );
3767     alias PFN_glProgramUniformMatrix3fv = void function (
3768         GLuint          program,
3769         GLint           location,
3770         GLsizei         count,
3771         GLboolean       transpose,
3772         const(GLfloat)* value,
3773     );
3774     alias PFN_glProgramUniformMatrix4fv = void function (
3775         GLuint          program,
3776         GLint           location,
3777         GLsizei         count,
3778         GLboolean       transpose,
3779         const(GLfloat)* value,
3780     );
3781     alias PFN_glProgramUniformMatrix2dv = void function (
3782         GLuint           program,
3783         GLint            location,
3784         GLsizei          count,
3785         GLboolean        transpose,
3786         const(GLdouble)* value,
3787     );
3788     alias PFN_glProgramUniformMatrix3dv = void function (
3789         GLuint           program,
3790         GLint            location,
3791         GLsizei          count,
3792         GLboolean        transpose,
3793         const(GLdouble)* value,
3794     );
3795     alias PFN_glProgramUniformMatrix4dv = void function (
3796         GLuint           program,
3797         GLint            location,
3798         GLsizei          count,
3799         GLboolean        transpose,
3800         const(GLdouble)* value,
3801     );
3802     alias PFN_glProgramUniformMatrix2x3fv = void function (
3803         GLuint          program,
3804         GLint           location,
3805         GLsizei         count,
3806         GLboolean       transpose,
3807         const(GLfloat)* value,
3808     );
3809     alias PFN_glProgramUniformMatrix3x2fv = void function (
3810         GLuint          program,
3811         GLint           location,
3812         GLsizei         count,
3813         GLboolean       transpose,
3814         const(GLfloat)* value,
3815     );
3816     alias PFN_glProgramUniformMatrix2x4fv = void function (
3817         GLuint          program,
3818         GLint           location,
3819         GLsizei         count,
3820         GLboolean       transpose,
3821         const(GLfloat)* value,
3822     );
3823     alias PFN_glProgramUniformMatrix4x2fv = void function (
3824         GLuint          program,
3825         GLint           location,
3826         GLsizei         count,
3827         GLboolean       transpose,
3828         const(GLfloat)* value,
3829     );
3830     alias PFN_glProgramUniformMatrix3x4fv = void function (
3831         GLuint          program,
3832         GLint           location,
3833         GLsizei         count,
3834         GLboolean       transpose,
3835         const(GLfloat)* value,
3836     );
3837     alias PFN_glProgramUniformMatrix4x3fv = void function (
3838         GLuint          program,
3839         GLint           location,
3840         GLsizei         count,
3841         GLboolean       transpose,
3842         const(GLfloat)* value,
3843     );
3844     alias PFN_glProgramUniformMatrix2x3dv = void function (
3845         GLuint           program,
3846         GLint            location,
3847         GLsizei          count,
3848         GLboolean        transpose,
3849         const(GLdouble)* value,
3850     );
3851     alias PFN_glProgramUniformMatrix3x2dv = void function (
3852         GLuint           program,
3853         GLint            location,
3854         GLsizei          count,
3855         GLboolean        transpose,
3856         const(GLdouble)* value,
3857     );
3858     alias PFN_glProgramUniformMatrix2x4dv = void function (
3859         GLuint           program,
3860         GLint            location,
3861         GLsizei          count,
3862         GLboolean        transpose,
3863         const(GLdouble)* value,
3864     );
3865     alias PFN_glProgramUniformMatrix4x2dv = void function (
3866         GLuint           program,
3867         GLint            location,
3868         GLsizei          count,
3869         GLboolean        transpose,
3870         const(GLdouble)* value,
3871     );
3872     alias PFN_glProgramUniformMatrix3x4dv = void function (
3873         GLuint           program,
3874         GLint            location,
3875         GLsizei          count,
3876         GLboolean        transpose,
3877         const(GLdouble)* value,
3878     );
3879     alias PFN_glProgramUniformMatrix4x3dv = void function (
3880         GLuint           program,
3881         GLint            location,
3882         GLsizei          count,
3883         GLboolean        transpose,
3884         const(GLdouble)* value,
3885     );
3886     alias PFN_glValidateProgramPipeline = void function (
3887         GLuint pipeline,
3888     );
3889     alias PFN_glGetProgramPipelineInfoLog = void function (
3890         GLuint   pipeline,
3891         GLsizei  bufSize,
3892         GLsizei* length,
3893         GLchar*  infoLog,
3894     );
3895     alias PFN_glVertexAttribL1d = void function (
3896         GLuint   index,
3897         GLdouble x,
3898     );
3899     alias PFN_glVertexAttribL2d = void function (
3900         GLuint   index,
3901         GLdouble x,
3902         GLdouble y,
3903     );
3904     alias PFN_glVertexAttribL3d = void function (
3905         GLuint   index,
3906         GLdouble x,
3907         GLdouble y,
3908         GLdouble z,
3909     );
3910     alias PFN_glVertexAttribL4d = void function (
3911         GLuint   index,
3912         GLdouble x,
3913         GLdouble y,
3914         GLdouble z,
3915         GLdouble w,
3916     );
3917     alias PFN_glVertexAttribL1dv = void function (
3918         GLuint           index,
3919         const(GLdouble)* v,
3920     );
3921     alias PFN_glVertexAttribL2dv = void function (
3922         GLuint           index,
3923         const(GLdouble)* v,
3924     );
3925     alias PFN_glVertexAttribL3dv = void function (
3926         GLuint           index,
3927         const(GLdouble)* v,
3928     );
3929     alias PFN_glVertexAttribL4dv = void function (
3930         GLuint           index,
3931         const(GLdouble)* v,
3932     );
3933     alias PFN_glVertexAttribLPointer = void function (
3934         GLuint       index,
3935         GLint        size,
3936         GLenum       type,
3937         GLsizei      stride,
3938         const(void)* pointer,
3939     );
3940     alias PFN_glGetVertexAttribLdv = void function (
3941         GLuint    index,
3942         GLenum    pname,
3943         GLdouble* params,
3944     );
3945     alias PFN_glViewportArrayv = void function (
3946         GLuint          first,
3947         GLsizei         count,
3948         const(GLfloat)* v,
3949     );
3950     alias PFN_glViewportIndexedf = void function (
3951         GLuint  index,
3952         GLfloat x,
3953         GLfloat y,
3954         GLfloat w,
3955         GLfloat h,
3956     );
3957     alias PFN_glViewportIndexedfv = void function (
3958         GLuint          index,
3959         const(GLfloat)* v,
3960     );
3961     alias PFN_glScissorArrayv = void function (
3962         GLuint        first,
3963         GLsizei       count,
3964         const(GLint)* v,
3965     );
3966     alias PFN_glScissorIndexed = void function (
3967         GLuint  index,
3968         GLint   left,
3969         GLint   bottom,
3970         GLsizei width,
3971         GLsizei height,
3972     );
3973     alias PFN_glScissorIndexedv = void function (
3974         GLuint        index,
3975         const(GLint)* v,
3976     );
3977     alias PFN_glDepthRangeArrayv = void function (
3978         GLuint           first,
3979         GLsizei          count,
3980         const(GLdouble)* v,
3981     );
3982     alias PFN_glDepthRangeIndexed = void function (
3983         GLuint   index,
3984         GLdouble n,
3985         GLdouble f,
3986     );
3987     alias PFN_glGetFloati_v = void function (
3988         GLenum   target,
3989         GLuint   index,
3990         GLfloat* data,
3991     );
3992     alias PFN_glGetDoublei_v = void function (
3993         GLenum    target,
3994         GLuint    index,
3995         GLdouble* data,
3996     );
3997 
3998     // Command pointers for GL_VERSION_4_2
3999     alias PFN_glDrawArraysInstancedBaseInstance = void function (
4000         GLenum  mode,
4001         GLint   first,
4002         GLsizei count,
4003         GLsizei instancecount,
4004         GLuint  baseinstance,
4005     );
4006     alias PFN_glDrawElementsInstancedBaseInstance = void function (
4007         GLenum       mode,
4008         GLsizei      count,
4009         GLenum       type,
4010         const(void)* indices,
4011         GLsizei      instancecount,
4012         GLuint       baseinstance,
4013     );
4014     alias PFN_glDrawElementsInstancedBaseVertexBaseInstance = void function (
4015         GLenum       mode,
4016         GLsizei      count,
4017         GLenum       type,
4018         const(void)* indices,
4019         GLsizei      instancecount,
4020         GLint        basevertex,
4021         GLuint       baseinstance,
4022     );
4023     alias PFN_glGetInternalformativ = void function (
4024         GLenum  target,
4025         GLenum  internalformat,
4026         GLenum  pname,
4027         GLsizei bufSize,
4028         GLint*  params,
4029     );
4030     alias PFN_glGetActiveAtomicCounterBufferiv = void function (
4031         GLuint program,
4032         GLuint bufferIndex,
4033         GLenum pname,
4034         GLint* params,
4035     );
4036     alias PFN_glBindImageTexture = void function (
4037         GLuint    unit,
4038         GLuint    texture,
4039         GLint     level,
4040         GLboolean layered,
4041         GLint     layer,
4042         GLenum    access,
4043         GLenum    format,
4044     );
4045     alias PFN_glMemoryBarrier = void function (
4046         GLbitfield barriers,
4047     );
4048     alias PFN_glTexStorage1D = void function (
4049         GLenum  target,
4050         GLsizei levels,
4051         GLenum  internalformat,
4052         GLsizei width,
4053     );
4054     alias PFN_glTexStorage2D = void function (
4055         GLenum  target,
4056         GLsizei levels,
4057         GLenum  internalformat,
4058         GLsizei width,
4059         GLsizei height,
4060     );
4061     alias PFN_glTexStorage3D = void function (
4062         GLenum  target,
4063         GLsizei levels,
4064         GLenum  internalformat,
4065         GLsizei width,
4066         GLsizei height,
4067         GLsizei depth,
4068     );
4069     alias PFN_glDrawTransformFeedbackInstanced = void function (
4070         GLenum  mode,
4071         GLuint  id,
4072         GLsizei instancecount,
4073     );
4074     alias PFN_glDrawTransformFeedbackStreamInstanced = void function (
4075         GLenum  mode,
4076         GLuint  id,
4077         GLuint  stream,
4078         GLsizei instancecount,
4079     );
4080 
4081     // Command pointers for GL_VERSION_4_3
4082     alias PFN_glClearBufferData = void function (
4083         GLenum       target,
4084         GLenum       internalformat,
4085         GLenum       format,
4086         GLenum       type,
4087         const(void)* data,
4088     );
4089     alias PFN_glClearBufferSubData = void function (
4090         GLenum       target,
4091         GLenum       internalformat,
4092         GLintptr     offset,
4093         GLsizeiptr   size,
4094         GLenum       format,
4095         GLenum       type,
4096         const(void)* data,
4097     );
4098     alias PFN_glDispatchCompute = void function (
4099         GLuint num_groups_x,
4100         GLuint num_groups_y,
4101         GLuint num_groups_z,
4102     );
4103     alias PFN_glDispatchComputeIndirect = void function (
4104         GLintptr indirect,
4105     );
4106     alias PFN_glCopyImageSubData = void function (
4107         GLuint  srcName,
4108         GLenum  srcTarget,
4109         GLint   srcLevel,
4110         GLint   srcX,
4111         GLint   srcY,
4112         GLint   srcZ,
4113         GLuint  dstName,
4114         GLenum  dstTarget,
4115         GLint   dstLevel,
4116         GLint   dstX,
4117         GLint   dstY,
4118         GLint   dstZ,
4119         GLsizei srcWidth,
4120         GLsizei srcHeight,
4121         GLsizei srcDepth,
4122     );
4123     alias PFN_glFramebufferParameteri = void function (
4124         GLenum target,
4125         GLenum pname,
4126         GLint  param,
4127     );
4128     alias PFN_glGetFramebufferParameteriv = void function (
4129         GLenum target,
4130         GLenum pname,
4131         GLint* params,
4132     );
4133     alias PFN_glGetInternalformati64v = void function (
4134         GLenum   target,
4135         GLenum   internalformat,
4136         GLenum   pname,
4137         GLsizei  bufSize,
4138         GLint64* params,
4139     );
4140     alias PFN_glInvalidateTexSubImage = void function (
4141         GLuint  texture,
4142         GLint   level,
4143         GLint   xoffset,
4144         GLint   yoffset,
4145         GLint   zoffset,
4146         GLsizei width,
4147         GLsizei height,
4148         GLsizei depth,
4149     );
4150     alias PFN_glInvalidateTexImage = void function (
4151         GLuint texture,
4152         GLint  level,
4153     );
4154     alias PFN_glInvalidateBufferSubData = void function (
4155         GLuint     buffer,
4156         GLintptr   offset,
4157         GLsizeiptr length,
4158     );
4159     alias PFN_glInvalidateBufferData = void function (
4160         GLuint buffer,
4161     );
4162     alias PFN_glInvalidateFramebuffer = void function (
4163         GLenum         target,
4164         GLsizei        numAttachments,
4165         const(GLenum)* attachments,
4166     );
4167     alias PFN_glInvalidateSubFramebuffer = void function (
4168         GLenum         target,
4169         GLsizei        numAttachments,
4170         const(GLenum)* attachments,
4171         GLint          x,
4172         GLint          y,
4173         GLsizei        width,
4174         GLsizei        height,
4175     );
4176     alias PFN_glMultiDrawArraysIndirect = void function (
4177         GLenum       mode,
4178         const(void)* indirect,
4179         GLsizei      drawcount,
4180         GLsizei      stride,
4181     );
4182     alias PFN_glMultiDrawElementsIndirect = void function (
4183         GLenum       mode,
4184         GLenum       type,
4185         const(void)* indirect,
4186         GLsizei      drawcount,
4187         GLsizei      stride,
4188     );
4189     alias PFN_glGetProgramInterfaceiv = void function (
4190         GLuint program,
4191         GLenum programInterface,
4192         GLenum pname,
4193         GLint* params,
4194     );
4195     alias PFN_glGetProgramResourceIndex = GLuint function (
4196         GLuint         program,
4197         GLenum         programInterface,
4198         const(GLchar)* name,
4199     );
4200     alias PFN_glGetProgramResourceName = void function (
4201         GLuint   program,
4202         GLenum   programInterface,
4203         GLuint   index,
4204         GLsizei  bufSize,
4205         GLsizei* length,
4206         GLchar*  name,
4207     );
4208     alias PFN_glGetProgramResourceiv = void function (
4209         GLuint         program,
4210         GLenum         programInterface,
4211         GLuint         index,
4212         GLsizei        propCount,
4213         const(GLenum)* props,
4214         GLsizei        bufSize,
4215         GLsizei*       length,
4216         GLint*         params,
4217     );
4218     alias PFN_glGetProgramResourceLocation = GLint function (
4219         GLuint         program,
4220         GLenum         programInterface,
4221         const(GLchar)* name,
4222     );
4223     alias PFN_glGetProgramResourceLocationIndex = GLint function (
4224         GLuint         program,
4225         GLenum         programInterface,
4226         const(GLchar)* name,
4227     );
4228     alias PFN_glShaderStorageBlockBinding = void function (
4229         GLuint program,
4230         GLuint storageBlockIndex,
4231         GLuint storageBlockBinding,
4232     );
4233     alias PFN_glTexBufferRange = void function (
4234         GLenum     target,
4235         GLenum     internalformat,
4236         GLuint     buffer,
4237         GLintptr   offset,
4238         GLsizeiptr size,
4239     );
4240     alias PFN_glTexStorage2DMultisample = void function (
4241         GLenum    target,
4242         GLsizei   samples,
4243         GLenum    internalformat,
4244         GLsizei   width,
4245         GLsizei   height,
4246         GLboolean fixedsamplelocations,
4247     );
4248     alias PFN_glTexStorage3DMultisample = void function (
4249         GLenum    target,
4250         GLsizei   samples,
4251         GLenum    internalformat,
4252         GLsizei   width,
4253         GLsizei   height,
4254         GLsizei   depth,
4255         GLboolean fixedsamplelocations,
4256     );
4257     alias PFN_glTextureView = void function (
4258         GLuint texture,
4259         GLenum target,
4260         GLuint origtexture,
4261         GLenum internalformat,
4262         GLuint minlevel,
4263         GLuint numlevels,
4264         GLuint minlayer,
4265         GLuint numlayers,
4266     );
4267     alias PFN_glBindVertexBuffer = void function (
4268         GLuint   bindingindex,
4269         GLuint   buffer,
4270         GLintptr offset,
4271         GLsizei  stride,
4272     );
4273     alias PFN_glVertexAttribFormat = void function (
4274         GLuint    attribindex,
4275         GLint     size,
4276         GLenum    type,
4277         GLboolean normalized,
4278         GLuint    relativeoffset,
4279     );
4280     alias PFN_glVertexAttribIFormat = void function (
4281         GLuint attribindex,
4282         GLint  size,
4283         GLenum type,
4284         GLuint relativeoffset,
4285     );
4286     alias PFN_glVertexAttribLFormat = void function (
4287         GLuint attribindex,
4288         GLint  size,
4289         GLenum type,
4290         GLuint relativeoffset,
4291     );
4292     alias PFN_glVertexAttribBinding = void function (
4293         GLuint attribindex,
4294         GLuint bindingindex,
4295     );
4296     alias PFN_glVertexBindingDivisor = void function (
4297         GLuint bindingindex,
4298         GLuint divisor,
4299     );
4300     alias PFN_glDebugMessageControl = void function (
4301         GLenum         source,
4302         GLenum         type,
4303         GLenum         severity,
4304         GLsizei        count,
4305         const(GLuint)* ids,
4306         GLboolean      enabled,
4307     );
4308     alias PFN_glDebugMessageInsert = void function (
4309         GLenum         source,
4310         GLenum         type,
4311         GLuint         id,
4312         GLenum         severity,
4313         GLsizei        length,
4314         const(GLchar)* buf,
4315     );
4316     alias PFN_glDebugMessageCallback = void function (
4317         GLDEBUGPROC  callback,
4318         const(void)* userParam,
4319     );
4320     alias PFN_glGetDebugMessageLog = GLuint function (
4321         GLuint   count,
4322         GLsizei  bufSize,
4323         GLenum*  sources,
4324         GLenum*  types,
4325         GLuint*  ids,
4326         GLenum*  severities,
4327         GLsizei* lengths,
4328         GLchar*  messageLog,
4329     );
4330     alias PFN_glPushDebugGroup = void function (
4331         GLenum         source,
4332         GLuint         id,
4333         GLsizei        length,
4334         const(GLchar)* message,
4335     );
4336     alias PFN_glPopDebugGroup = void function ();
4337     alias PFN_glObjectLabel = void function (
4338         GLenum         identifier,
4339         GLuint         name,
4340         GLsizei        length,
4341         const(GLchar)* label,
4342     );
4343     alias PFN_glGetObjectLabel = void function (
4344         GLenum   identifier,
4345         GLuint   name,
4346         GLsizei  bufSize,
4347         GLsizei* length,
4348         GLchar*  label,
4349     );
4350     alias PFN_glObjectPtrLabel = void function (
4351         const(void)*   ptr,
4352         GLsizei        length,
4353         const(GLchar)* label,
4354     );
4355     alias PFN_glGetObjectPtrLabel = void function (
4356         const(void)* ptr,
4357         GLsizei      bufSize,
4358         GLsizei*     length,
4359         GLchar*      label,
4360     );
4361 
4362     // Command pointers for GL_VERSION_4_4
4363     alias PFN_glBufferStorage = void function (
4364         GLenum       target,
4365         GLsizeiptr   size,
4366         const(void)* data,
4367         GLbitfield   flags,
4368     );
4369     alias PFN_glClearTexImage = void function (
4370         GLuint       texture,
4371         GLint        level,
4372         GLenum       format,
4373         GLenum       type,
4374         const(void)* data,
4375     );
4376     alias PFN_glClearTexSubImage = void function (
4377         GLuint       texture,
4378         GLint        level,
4379         GLint        xoffset,
4380         GLint        yoffset,
4381         GLint        zoffset,
4382         GLsizei      width,
4383         GLsizei      height,
4384         GLsizei      depth,
4385         GLenum       format,
4386         GLenum       type,
4387         const(void)* data,
4388     );
4389     alias PFN_glBindBuffersBase = void function (
4390         GLenum         target,
4391         GLuint         first,
4392         GLsizei        count,
4393         const(GLuint)* buffers,
4394     );
4395     alias PFN_glBindBuffersRange = void function (
4396         GLenum             target,
4397         GLuint             first,
4398         GLsizei            count,
4399         const(GLuint)*     buffers,
4400         const(GLintptr)*   offsets,
4401         const(GLsizeiptr)* sizes,
4402     );
4403     alias PFN_glBindTextures = void function (
4404         GLuint         first,
4405         GLsizei        count,
4406         const(GLuint)* textures,
4407     );
4408     alias PFN_glBindSamplers = void function (
4409         GLuint         first,
4410         GLsizei        count,
4411         const(GLuint)* samplers,
4412     );
4413     alias PFN_glBindImageTextures = void function (
4414         GLuint         first,
4415         GLsizei        count,
4416         const(GLuint)* textures,
4417     );
4418     alias PFN_glBindVertexBuffers = void function (
4419         GLuint           first,
4420         GLsizei          count,
4421         const(GLuint)*   buffers,
4422         const(GLintptr)* offsets,
4423         const(GLsizei)*  strides,
4424     );
4425 
4426     // Command pointers for GL_VERSION_4_5
4427     alias PFN_glClipControl = void function (
4428         GLenum origin,
4429         GLenum depth,
4430     );
4431     alias PFN_glCreateTransformFeedbacks = void function (
4432         GLsizei n,
4433         GLuint* ids,
4434     );
4435     alias PFN_glTransformFeedbackBufferBase = void function (
4436         GLuint xfb,
4437         GLuint index,
4438         GLuint buffer,
4439     );
4440     alias PFN_glTransformFeedbackBufferRange = void function (
4441         GLuint     xfb,
4442         GLuint     index,
4443         GLuint     buffer,
4444         GLintptr   offset,
4445         GLsizeiptr size,
4446     );
4447     alias PFN_glGetTransformFeedbackiv = void function (
4448         GLuint xfb,
4449         GLenum pname,
4450         GLint* param,
4451     );
4452     alias PFN_glGetTransformFeedbacki_v = void function (
4453         GLuint xfb,
4454         GLenum pname,
4455         GLuint index,
4456         GLint* param,
4457     );
4458     alias PFN_glGetTransformFeedbacki64_v = void function (
4459         GLuint   xfb,
4460         GLenum   pname,
4461         GLuint   index,
4462         GLint64* param,
4463     );
4464     alias PFN_glCreateBuffers = void function (
4465         GLsizei n,
4466         GLuint* buffers,
4467     );
4468     alias PFN_glNamedBufferStorage = void function (
4469         GLuint       buffer,
4470         GLsizeiptr   size,
4471         const(void)* data,
4472         GLbitfield   flags,
4473     );
4474     alias PFN_glNamedBufferData = void function (
4475         GLuint       buffer,
4476         GLsizeiptr   size,
4477         const(void)* data,
4478         GLenum       usage,
4479     );
4480     alias PFN_glNamedBufferSubData = void function (
4481         GLuint       buffer,
4482         GLintptr     offset,
4483         GLsizeiptr   size,
4484         const(void)* data,
4485     );
4486     alias PFN_glCopyNamedBufferSubData = void function (
4487         GLuint     readBuffer,
4488         GLuint     writeBuffer,
4489         GLintptr   readOffset,
4490         GLintptr   writeOffset,
4491         GLsizeiptr size,
4492     );
4493     alias PFN_glClearNamedBufferData = void function (
4494         GLuint       buffer,
4495         GLenum       internalformat,
4496         GLenum       format,
4497         GLenum       type,
4498         const(void)* data,
4499     );
4500     alias PFN_glClearNamedBufferSubData = void function (
4501         GLuint       buffer,
4502         GLenum       internalformat,
4503         GLintptr     offset,
4504         GLsizeiptr   size,
4505         GLenum       format,
4506         GLenum       type,
4507         const(void)* data,
4508     );
4509     alias PFN_glMapNamedBuffer = void * function (
4510         GLuint buffer,
4511         GLenum access,
4512     );
4513     alias PFN_glMapNamedBufferRange = void * function (
4514         GLuint     buffer,
4515         GLintptr   offset,
4516         GLsizeiptr length,
4517         GLbitfield access,
4518     );
4519     alias PFN_glUnmapNamedBuffer = GLboolean function (
4520         GLuint buffer,
4521     );
4522     alias PFN_glFlushMappedNamedBufferRange = void function (
4523         GLuint     buffer,
4524         GLintptr   offset,
4525         GLsizeiptr length,
4526     );
4527     alias PFN_glGetNamedBufferParameteriv = void function (
4528         GLuint buffer,
4529         GLenum pname,
4530         GLint* params,
4531     );
4532     alias PFN_glGetNamedBufferParameteri64v = void function (
4533         GLuint   buffer,
4534         GLenum   pname,
4535         GLint64* params,
4536     );
4537     alias PFN_glGetNamedBufferPointerv = void function (
4538         GLuint buffer,
4539         GLenum pname,
4540         void** params,
4541     );
4542     alias PFN_glGetNamedBufferSubData = void function (
4543         GLuint     buffer,
4544         GLintptr   offset,
4545         GLsizeiptr size,
4546         void*      data,
4547     );
4548     alias PFN_glCreateFramebuffers = void function (
4549         GLsizei n,
4550         GLuint* framebuffers,
4551     );
4552     alias PFN_glNamedFramebufferRenderbuffer = void function (
4553         GLuint framebuffer,
4554         GLenum attachment,
4555         GLenum renderbuffertarget,
4556         GLuint renderbuffer,
4557     );
4558     alias PFN_glNamedFramebufferParameteri = void function (
4559         GLuint framebuffer,
4560         GLenum pname,
4561         GLint  param,
4562     );
4563     alias PFN_glNamedFramebufferTexture = void function (
4564         GLuint framebuffer,
4565         GLenum attachment,
4566         GLuint texture,
4567         GLint  level,
4568     );
4569     alias PFN_glNamedFramebufferTextureLayer = void function (
4570         GLuint framebuffer,
4571         GLenum attachment,
4572         GLuint texture,
4573         GLint  level,
4574         GLint  layer,
4575     );
4576     alias PFN_glNamedFramebufferDrawBuffer = void function (
4577         GLuint framebuffer,
4578         GLenum buf,
4579     );
4580     alias PFN_glNamedFramebufferDrawBuffers = void function (
4581         GLuint         framebuffer,
4582         GLsizei        n,
4583         const(GLenum)* bufs,
4584     );
4585     alias PFN_glNamedFramebufferReadBuffer = void function (
4586         GLuint framebuffer,
4587         GLenum src,
4588     );
4589     alias PFN_glInvalidateNamedFramebufferData = void function (
4590         GLuint         framebuffer,
4591         GLsizei        numAttachments,
4592         const(GLenum)* attachments,
4593     );
4594     alias PFN_glInvalidateNamedFramebufferSubData = void function (
4595         GLuint         framebuffer,
4596         GLsizei        numAttachments,
4597         const(GLenum)* attachments,
4598         GLint          x,
4599         GLint          y,
4600         GLsizei        width,
4601         GLsizei        height,
4602     );
4603     alias PFN_glClearNamedFramebufferiv = void function (
4604         GLuint        framebuffer,
4605         GLenum        buffer,
4606         GLint         drawbuffer,
4607         const(GLint)* value,
4608     );
4609     alias PFN_glClearNamedFramebufferuiv = void function (
4610         GLuint         framebuffer,
4611         GLenum         buffer,
4612         GLint          drawbuffer,
4613         const(GLuint)* value,
4614     );
4615     alias PFN_glClearNamedFramebufferfv = void function (
4616         GLuint          framebuffer,
4617         GLenum          buffer,
4618         GLint           drawbuffer,
4619         const(GLfloat)* value,
4620     );
4621     alias PFN_glClearNamedFramebufferfi = void function (
4622         GLuint  framebuffer,
4623         GLenum  buffer,
4624         GLint   drawbuffer,
4625         GLfloat depth,
4626         GLint   stencil,
4627     );
4628     alias PFN_glBlitNamedFramebuffer = void function (
4629         GLuint     readFramebuffer,
4630         GLuint     drawFramebuffer,
4631         GLint      srcX0,
4632         GLint      srcY0,
4633         GLint      srcX1,
4634         GLint      srcY1,
4635         GLint      dstX0,
4636         GLint      dstY0,
4637         GLint      dstX1,
4638         GLint      dstY1,
4639         GLbitfield mask,
4640         GLenum     filter,
4641     );
4642     alias PFN_glCheckNamedFramebufferStatus = GLenum function (
4643         GLuint framebuffer,
4644         GLenum target,
4645     );
4646     alias PFN_glGetNamedFramebufferParameteriv = void function (
4647         GLuint framebuffer,
4648         GLenum pname,
4649         GLint* param,
4650     );
4651     alias PFN_glGetNamedFramebufferAttachmentParameteriv = void function (
4652         GLuint framebuffer,
4653         GLenum attachment,
4654         GLenum pname,
4655         GLint* params,
4656     );
4657     alias PFN_glCreateRenderbuffers = void function (
4658         GLsizei n,
4659         GLuint* renderbuffers,
4660     );
4661     alias PFN_glNamedRenderbufferStorage = void function (
4662         GLuint  renderbuffer,
4663         GLenum  internalformat,
4664         GLsizei width,
4665         GLsizei height,
4666     );
4667     alias PFN_glNamedRenderbufferStorageMultisample = void function (
4668         GLuint  renderbuffer,
4669         GLsizei samples,
4670         GLenum  internalformat,
4671         GLsizei width,
4672         GLsizei height,
4673     );
4674     alias PFN_glGetNamedRenderbufferParameteriv = void function (
4675         GLuint renderbuffer,
4676         GLenum pname,
4677         GLint* params,
4678     );
4679     alias PFN_glCreateTextures = void function (
4680         GLenum  target,
4681         GLsizei n,
4682         GLuint* textures,
4683     );
4684     alias PFN_glTextureBuffer = void function (
4685         GLuint texture,
4686         GLenum internalformat,
4687         GLuint buffer,
4688     );
4689     alias PFN_glTextureBufferRange = void function (
4690         GLuint     texture,
4691         GLenum     internalformat,
4692         GLuint     buffer,
4693         GLintptr   offset,
4694         GLsizeiptr size,
4695     );
4696     alias PFN_glTextureStorage1D = void function (
4697         GLuint  texture,
4698         GLsizei levels,
4699         GLenum  internalformat,
4700         GLsizei width,
4701     );
4702     alias PFN_glTextureStorage2D = void function (
4703         GLuint  texture,
4704         GLsizei levels,
4705         GLenum  internalformat,
4706         GLsizei width,
4707         GLsizei height,
4708     );
4709     alias PFN_glTextureStorage3D = void function (
4710         GLuint  texture,
4711         GLsizei levels,
4712         GLenum  internalformat,
4713         GLsizei width,
4714         GLsizei height,
4715         GLsizei depth,
4716     );
4717     alias PFN_glTextureStorage2DMultisample = void function (
4718         GLuint    texture,
4719         GLsizei   samples,
4720         GLenum    internalformat,
4721         GLsizei   width,
4722         GLsizei   height,
4723         GLboolean fixedsamplelocations,
4724     );
4725     alias PFN_glTextureStorage3DMultisample = void function (
4726         GLuint    texture,
4727         GLsizei   samples,
4728         GLenum    internalformat,
4729         GLsizei   width,
4730         GLsizei   height,
4731         GLsizei   depth,
4732         GLboolean fixedsamplelocations,
4733     );
4734     alias PFN_glTextureSubImage1D = void function (
4735         GLuint       texture,
4736         GLint        level,
4737         GLint        xoffset,
4738         GLsizei      width,
4739         GLenum       format,
4740         GLenum       type,
4741         const(void)* pixels,
4742     );
4743     alias PFN_glTextureSubImage2D = void function (
4744         GLuint       texture,
4745         GLint        level,
4746         GLint        xoffset,
4747         GLint        yoffset,
4748         GLsizei      width,
4749         GLsizei      height,
4750         GLenum       format,
4751         GLenum       type,
4752         const(void)* pixels,
4753     );
4754     alias PFN_glTextureSubImage3D = void function (
4755         GLuint       texture,
4756         GLint        level,
4757         GLint        xoffset,
4758         GLint        yoffset,
4759         GLint        zoffset,
4760         GLsizei      width,
4761         GLsizei      height,
4762         GLsizei      depth,
4763         GLenum       format,
4764         GLenum       type,
4765         const(void)* pixels,
4766     );
4767     alias PFN_glCompressedTextureSubImage1D = void function (
4768         GLuint       texture,
4769         GLint        level,
4770         GLint        xoffset,
4771         GLsizei      width,
4772         GLenum       format,
4773         GLsizei      imageSize,
4774         const(void)* data,
4775     );
4776     alias PFN_glCompressedTextureSubImage2D = void function (
4777         GLuint       texture,
4778         GLint        level,
4779         GLint        xoffset,
4780         GLint        yoffset,
4781         GLsizei      width,
4782         GLsizei      height,
4783         GLenum       format,
4784         GLsizei      imageSize,
4785         const(void)* data,
4786     );
4787     alias PFN_glCompressedTextureSubImage3D = void function (
4788         GLuint       texture,
4789         GLint        level,
4790         GLint        xoffset,
4791         GLint        yoffset,
4792         GLint        zoffset,
4793         GLsizei      width,
4794         GLsizei      height,
4795         GLsizei      depth,
4796         GLenum       format,
4797         GLsizei      imageSize,
4798         const(void)* data,
4799     );
4800     alias PFN_glCopyTextureSubImage1D = void function (
4801         GLuint  texture,
4802         GLint   level,
4803         GLint   xoffset,
4804         GLint   x,
4805         GLint   y,
4806         GLsizei width,
4807     );
4808     alias PFN_glCopyTextureSubImage2D = void function (
4809         GLuint  texture,
4810         GLint   level,
4811         GLint   xoffset,
4812         GLint   yoffset,
4813         GLint   x,
4814         GLint   y,
4815         GLsizei width,
4816         GLsizei height,
4817     );
4818     alias PFN_glCopyTextureSubImage3D = void function (
4819         GLuint  texture,
4820         GLint   level,
4821         GLint   xoffset,
4822         GLint   yoffset,
4823         GLint   zoffset,
4824         GLint   x,
4825         GLint   y,
4826         GLsizei width,
4827         GLsizei height,
4828     );
4829     alias PFN_glTextureParameterf = void function (
4830         GLuint  texture,
4831         GLenum  pname,
4832         GLfloat param,
4833     );
4834     alias PFN_glTextureParameterfv = void function (
4835         GLuint          texture,
4836         GLenum          pname,
4837         const(GLfloat)* param,
4838     );
4839     alias PFN_glTextureParameteri = void function (
4840         GLuint texture,
4841         GLenum pname,
4842         GLint  param,
4843     );
4844     alias PFN_glTextureParameterIiv = void function (
4845         GLuint        texture,
4846         GLenum        pname,
4847         const(GLint)* params,
4848     );
4849     alias PFN_glTextureParameterIuiv = void function (
4850         GLuint         texture,
4851         GLenum         pname,
4852         const(GLuint)* params,
4853     );
4854     alias PFN_glTextureParameteriv = void function (
4855         GLuint        texture,
4856         GLenum        pname,
4857         const(GLint)* param,
4858     );
4859     alias PFN_glGenerateTextureMipmap = void function (
4860         GLuint texture,
4861     );
4862     alias PFN_glBindTextureUnit = void function (
4863         GLuint unit,
4864         GLuint texture,
4865     );
4866     alias PFN_glGetTextureImage = void function (
4867         GLuint  texture,
4868         GLint   level,
4869         GLenum  format,
4870         GLenum  type,
4871         GLsizei bufSize,
4872         void*   pixels,
4873     );
4874     alias PFN_glGetCompressedTextureImage = void function (
4875         GLuint  texture,
4876         GLint   level,
4877         GLsizei bufSize,
4878         void*   pixels,
4879     );
4880     alias PFN_glGetTextureLevelParameterfv = void function (
4881         GLuint   texture,
4882         GLint    level,
4883         GLenum   pname,
4884         GLfloat* params,
4885     );
4886     alias PFN_glGetTextureLevelParameteriv = void function (
4887         GLuint texture,
4888         GLint  level,
4889         GLenum pname,
4890         GLint* params,
4891     );
4892     alias PFN_glGetTextureParameterfv = void function (
4893         GLuint   texture,
4894         GLenum   pname,
4895         GLfloat* params,
4896     );
4897     alias PFN_glGetTextureParameterIiv = void function (
4898         GLuint texture,
4899         GLenum pname,
4900         GLint* params,
4901     );
4902     alias PFN_glGetTextureParameterIuiv = void function (
4903         GLuint  texture,
4904         GLenum  pname,
4905         GLuint* params,
4906     );
4907     alias PFN_glGetTextureParameteriv = void function (
4908         GLuint texture,
4909         GLenum pname,
4910         GLint* params,
4911     );
4912     alias PFN_glCreateVertexArrays = void function (
4913         GLsizei n,
4914         GLuint* arrays,
4915     );
4916     alias PFN_glDisableVertexArrayAttrib = void function (
4917         GLuint vaobj,
4918         GLuint index,
4919     );
4920     alias PFN_glEnableVertexArrayAttrib = void function (
4921         GLuint vaobj,
4922         GLuint index,
4923     );
4924     alias PFN_glVertexArrayElementBuffer = void function (
4925         GLuint vaobj,
4926         GLuint buffer,
4927     );
4928     alias PFN_glVertexArrayVertexBuffer = void function (
4929         GLuint   vaobj,
4930         GLuint   bindingindex,
4931         GLuint   buffer,
4932         GLintptr offset,
4933         GLsizei  stride,
4934     );
4935     alias PFN_glVertexArrayVertexBuffers = void function (
4936         GLuint           vaobj,
4937         GLuint           first,
4938         GLsizei          count,
4939         const(GLuint)*   buffers,
4940         const(GLintptr)* offsets,
4941         const(GLsizei)*  strides,
4942     );
4943     alias PFN_glVertexArrayAttribBinding = void function (
4944         GLuint vaobj,
4945         GLuint attribindex,
4946         GLuint bindingindex,
4947     );
4948     alias PFN_glVertexArrayAttribFormat = void function (
4949         GLuint    vaobj,
4950         GLuint    attribindex,
4951         GLint     size,
4952         GLenum    type,
4953         GLboolean normalized,
4954         GLuint    relativeoffset,
4955     );
4956     alias PFN_glVertexArrayAttribIFormat = void function (
4957         GLuint vaobj,
4958         GLuint attribindex,
4959         GLint  size,
4960         GLenum type,
4961         GLuint relativeoffset,
4962     );
4963     alias PFN_glVertexArrayAttribLFormat = void function (
4964         GLuint vaobj,
4965         GLuint attribindex,
4966         GLint  size,
4967         GLenum type,
4968         GLuint relativeoffset,
4969     );
4970     alias PFN_glVertexArrayBindingDivisor = void function (
4971         GLuint vaobj,
4972         GLuint bindingindex,
4973         GLuint divisor,
4974     );
4975     alias PFN_glGetVertexArrayiv = void function (
4976         GLuint vaobj,
4977         GLenum pname,
4978         GLint* param,
4979     );
4980     alias PFN_glGetVertexArrayIndexediv = void function (
4981         GLuint vaobj,
4982         GLuint index,
4983         GLenum pname,
4984         GLint* param,
4985     );
4986     alias PFN_glGetVertexArrayIndexed64iv = void function (
4987         GLuint   vaobj,
4988         GLuint   index,
4989         GLenum   pname,
4990         GLint64* param,
4991     );
4992     alias PFN_glCreateSamplers = void function (
4993         GLsizei n,
4994         GLuint* samplers,
4995     );
4996     alias PFN_glCreateProgramPipelines = void function (
4997         GLsizei n,
4998         GLuint* pipelines,
4999     );
5000     alias PFN_glCreateQueries = void function (
5001         GLenum  target,
5002         GLsizei n,
5003         GLuint* ids,
5004     );
5005     alias PFN_glGetQueryBufferObjecti64v = void function (
5006         GLuint   id,
5007         GLuint   buffer,
5008         GLenum   pname,
5009         GLintptr offset,
5010     );
5011     alias PFN_glGetQueryBufferObjectiv = void function (
5012         GLuint   id,
5013         GLuint   buffer,
5014         GLenum   pname,
5015         GLintptr offset,
5016     );
5017     alias PFN_glGetQueryBufferObjectui64v = void function (
5018         GLuint   id,
5019         GLuint   buffer,
5020         GLenum   pname,
5021         GLintptr offset,
5022     );
5023     alias PFN_glGetQueryBufferObjectuiv = void function (
5024         GLuint   id,
5025         GLuint   buffer,
5026         GLenum   pname,
5027         GLintptr offset,
5028     );
5029     alias PFN_glMemoryBarrierByRegion = void function (
5030         GLbitfield barriers,
5031     );
5032     alias PFN_glGetTextureSubImage = void function (
5033         GLuint  texture,
5034         GLint   level,
5035         GLint   xoffset,
5036         GLint   yoffset,
5037         GLint   zoffset,
5038         GLsizei width,
5039         GLsizei height,
5040         GLsizei depth,
5041         GLenum  format,
5042         GLenum  type,
5043         GLsizei bufSize,
5044         void*   pixels,
5045     );
5046     alias PFN_glGetCompressedTextureSubImage = void function (
5047         GLuint  texture,
5048         GLint   level,
5049         GLint   xoffset,
5050         GLint   yoffset,
5051         GLint   zoffset,
5052         GLsizei width,
5053         GLsizei height,
5054         GLsizei depth,
5055         GLsizei bufSize,
5056         void*   pixels,
5057     );
5058     alias PFN_glGetGraphicsResetStatus = GLenum function ();
5059     alias PFN_glGetnCompressedTexImage = void function (
5060         GLenum  target,
5061         GLint   lod,
5062         GLsizei bufSize,
5063         void*   pixels,
5064     );
5065     alias PFN_glGetnTexImage = void function (
5066         GLenum  target,
5067         GLint   level,
5068         GLenum  format,
5069         GLenum  type,
5070         GLsizei bufSize,
5071         void*   pixels,
5072     );
5073     alias PFN_glGetnUniformdv = void function (
5074         GLuint    program,
5075         GLint     location,
5076         GLsizei   bufSize,
5077         GLdouble* params,
5078     );
5079     alias PFN_glGetnUniformfv = void function (
5080         GLuint   program,
5081         GLint    location,
5082         GLsizei  bufSize,
5083         GLfloat* params,
5084     );
5085     alias PFN_glGetnUniformiv = void function (
5086         GLuint  program,
5087         GLint   location,
5088         GLsizei bufSize,
5089         GLint*  params,
5090     );
5091     alias PFN_glGetnUniformuiv = void function (
5092         GLuint  program,
5093         GLint   location,
5094         GLsizei bufSize,
5095         GLuint* params,
5096     );
5097     alias PFN_glReadnPixels = void function (
5098         GLint   x,
5099         GLint   y,
5100         GLsizei width,
5101         GLsizei height,
5102         GLenum  format,
5103         GLenum  type,
5104         GLsizei bufSize,
5105         void*   data,
5106     );
5107     alias PFN_glTextureBarrier = void function ();
5108 
5109     // Command pointers for GL_VERSION_4_6
5110     alias PFN_glSpecializeShader = void function (
5111         GLuint         shader,
5112         const(GLchar)* pEntryPoint,
5113         GLuint         numSpecializationConstants,
5114         const(GLuint)* pConstantIndex,
5115         const(GLuint)* pConstantValue,
5116     );
5117     alias PFN_glMultiDrawArraysIndirectCount = void function (
5118         GLenum       mode,
5119         const(void)* indirect,
5120         GLintptr     drawcount,
5121         GLsizei      maxdrawcount,
5122         GLsizei      stride,
5123     );
5124     alias PFN_glMultiDrawElementsIndirectCount = void function (
5125         GLenum       mode,
5126         GLenum       type,
5127         const(void)* indirect,
5128         GLintptr     drawcount,
5129         GLsizei      maxdrawcount,
5130         GLsizei      stride,
5131     );
5132     alias PFN_glPolygonOffsetClamp = void function (
5133         GLfloat factor,
5134         GLfloat units,
5135         GLfloat clamp,
5136     );
5137 }
5138 
5139 /// GlVersion describes the version of OpenGL
5140 enum GlVersion {
5141     gl10 = 10,
5142     gl11 = 11,
5143     gl12 = 12,
5144     gl13 = 13,
5145     gl14 = 14,
5146     gl15 = 15,
5147     gl20 = 20,
5148     gl21 = 21,
5149     gl30 = 30,
5150     gl31 = 31,
5151     gl32 = 32,
5152     gl33 = 33,
5153     gl40 = 40,
5154     gl41 = 41,
5155     gl42 = 42,
5156     gl43 = 43,
5157     gl44 = 44,
5158     gl45 = 45,
5159     gl46 = 46,
5160 }
5161 
5162 /// OpenGL loader base class
5163 final class Gl {
5164     this(SymbolLoader loader) {
5165 
5166         // GL_VERSION_1_0
5167         _CullFace = cast(PFN_glCullFace)loadSymbol(loader, "glCullFace", []);
5168         _FrontFace = cast(PFN_glFrontFace)loadSymbol(loader, "glFrontFace", []);
5169         _Hint = cast(PFN_glHint)loadSymbol(loader, "glHint", []);
5170         _LineWidth = cast(PFN_glLineWidth)loadSymbol(loader, "glLineWidth", []);
5171         _PointSize = cast(PFN_glPointSize)loadSymbol(loader, "glPointSize", []);
5172         _PolygonMode = cast(PFN_glPolygonMode)loadSymbol(loader, "glPolygonMode", []);
5173         _Scissor = cast(PFN_glScissor)loadSymbol(loader, "glScissor", []);
5174         _TexParameterf = cast(PFN_glTexParameterf)loadSymbol(loader, "glTexParameterf", []);
5175         _TexParameterfv = cast(PFN_glTexParameterfv)loadSymbol(loader, "glTexParameterfv", []);
5176         _TexParameteri = cast(PFN_glTexParameteri)loadSymbol(loader, "glTexParameteri", []);
5177         _TexParameteriv = cast(PFN_glTexParameteriv)loadSymbol(loader, "glTexParameteriv", []);
5178         _TexImage1D = cast(PFN_glTexImage1D)loadSymbol(loader, "glTexImage1D", []);
5179         _TexImage2D = cast(PFN_glTexImage2D)loadSymbol(loader, "glTexImage2D", []);
5180         _DrawBuffer = cast(PFN_glDrawBuffer)loadSymbol(loader, "glDrawBuffer", []);
5181         _Clear = cast(PFN_glClear)loadSymbol(loader, "glClear", []);
5182         _ClearColor = cast(PFN_glClearColor)loadSymbol(loader, "glClearColor", []);
5183         _ClearStencil = cast(PFN_glClearStencil)loadSymbol(loader, "glClearStencil", []);
5184         _ClearDepth = cast(PFN_glClearDepth)loadSymbol(loader, "glClearDepth", []);
5185         _StencilMask = cast(PFN_glStencilMask)loadSymbol(loader, "glStencilMask", []);
5186         _ColorMask = cast(PFN_glColorMask)loadSymbol(loader, "glColorMask", []);
5187         _DepthMask = cast(PFN_glDepthMask)loadSymbol(loader, "glDepthMask", []);
5188         _Disable = cast(PFN_glDisable)loadSymbol(loader, "glDisable", []);
5189         _Enable = cast(PFN_glEnable)loadSymbol(loader, "glEnable", []);
5190         _Finish = cast(PFN_glFinish)loadSymbol(loader, "glFinish", []);
5191         _Flush = cast(PFN_glFlush)loadSymbol(loader, "glFlush", []);
5192         _BlendFunc = cast(PFN_glBlendFunc)loadSymbol(loader, "glBlendFunc", []);
5193         _LogicOp = cast(PFN_glLogicOp)loadSymbol(loader, "glLogicOp", []);
5194         _StencilFunc = cast(PFN_glStencilFunc)loadSymbol(loader, "glStencilFunc", []);
5195         _StencilOp = cast(PFN_glStencilOp)loadSymbol(loader, "glStencilOp", []);
5196         _DepthFunc = cast(PFN_glDepthFunc)loadSymbol(loader, "glDepthFunc", []);
5197         _PixelStoref = cast(PFN_glPixelStoref)loadSymbol(loader, "glPixelStoref", []);
5198         _PixelStorei = cast(PFN_glPixelStorei)loadSymbol(loader, "glPixelStorei", []);
5199         _ReadBuffer = cast(PFN_glReadBuffer)loadSymbol(loader, "glReadBuffer", []);
5200         _ReadPixels = cast(PFN_glReadPixels)loadSymbol(loader, "glReadPixels", []);
5201         _GetBooleanv = cast(PFN_glGetBooleanv)loadSymbol(loader, "glGetBooleanv", []);
5202         _GetDoublev = cast(PFN_glGetDoublev)loadSymbol(loader, "glGetDoublev", []);
5203         _GetError = cast(PFN_glGetError)loadSymbol(loader, "glGetError", []);
5204         _GetFloatv = cast(PFN_glGetFloatv)loadSymbol(loader, "glGetFloatv", []);
5205         _GetIntegerv = cast(PFN_glGetIntegerv)loadSymbol(loader, "glGetIntegerv", []);
5206         _GetString = cast(PFN_glGetString)loadSymbol(loader, "glGetString", []);
5207         _GetTexImage = cast(PFN_glGetTexImage)loadSymbol(loader, "glGetTexImage", []);
5208         _GetTexParameterfv = cast(PFN_glGetTexParameterfv)loadSymbol(loader, "glGetTexParameterfv", []);
5209         _GetTexParameteriv = cast(PFN_glGetTexParameteriv)loadSymbol(loader, "glGetTexParameteriv", []);
5210         _GetTexLevelParameterfv = cast(PFN_glGetTexLevelParameterfv)loadSymbol(loader, "glGetTexLevelParameterfv", []);
5211         _GetTexLevelParameteriv = cast(PFN_glGetTexLevelParameteriv)loadSymbol(loader, "glGetTexLevelParameteriv", []);
5212         _IsEnabled = cast(PFN_glIsEnabled)loadSymbol(loader, "glIsEnabled", []);
5213         _DepthRange = cast(PFN_glDepthRange)loadSymbol(loader, "glDepthRange", []);
5214         _Viewport = cast(PFN_glViewport)loadSymbol(loader, "glViewport", []);
5215 
5216         // GL_VERSION_1_1
5217         _DrawArrays = cast(PFN_glDrawArrays)loadSymbol(loader, "glDrawArrays", []);
5218         _DrawElements = cast(PFN_glDrawElements)loadSymbol(loader, "glDrawElements", []);
5219         _GetPointerv = cast(PFN_glGetPointerv)loadSymbol(loader, "glGetPointerv", []);
5220         _PolygonOffset = cast(PFN_glPolygonOffset)loadSymbol(loader, "glPolygonOffset", []);
5221         _CopyTexImage1D = cast(PFN_glCopyTexImage1D)loadSymbol(loader, "glCopyTexImage1D", []);
5222         _CopyTexImage2D = cast(PFN_glCopyTexImage2D)loadSymbol(loader, "glCopyTexImage2D", []);
5223         _CopyTexSubImage1D = cast(PFN_glCopyTexSubImage1D)loadSymbol(loader, "glCopyTexSubImage1D", []);
5224         _CopyTexSubImage2D = cast(PFN_glCopyTexSubImage2D)loadSymbol(loader, "glCopyTexSubImage2D", []);
5225         _TexSubImage1D = cast(PFN_glTexSubImage1D)loadSymbol(loader, "glTexSubImage1D", []);
5226         _TexSubImage2D = cast(PFN_glTexSubImage2D)loadSymbol(loader, "glTexSubImage2D", []);
5227         _BindTexture = cast(PFN_glBindTexture)loadSymbol(loader, "glBindTexture", []);
5228         _DeleteTextures = cast(PFN_glDeleteTextures)loadSymbol(loader, "glDeleteTextures", []);
5229         _GenTextures = cast(PFN_glGenTextures)loadSymbol(loader, "glGenTextures", []);
5230         _IsTexture = cast(PFN_glIsTexture)loadSymbol(loader, "glIsTexture", []);
5231 
5232         // GL_VERSION_1_2
5233         _DrawRangeElements = cast(PFN_glDrawRangeElements)loadSymbol(loader, "glDrawRangeElements", []);
5234         _TexImage3D = cast(PFN_glTexImage3D)loadSymbol(loader, "glTexImage3D", []);
5235         _TexSubImage3D = cast(PFN_glTexSubImage3D)loadSymbol(loader, "glTexSubImage3D", []);
5236         _CopyTexSubImage3D = cast(PFN_glCopyTexSubImage3D)loadSymbol(loader, "glCopyTexSubImage3D", []);
5237 
5238         // GL_VERSION_1_3
5239         _ActiveTexture = cast(PFN_glActiveTexture)loadSymbol(loader, "glActiveTexture", []);
5240         _SampleCoverage = cast(PFN_glSampleCoverage)loadSymbol(loader, "glSampleCoverage", []);
5241         _CompressedTexImage3D = cast(PFN_glCompressedTexImage3D)loadSymbol(loader, "glCompressedTexImage3D", []);
5242         _CompressedTexImage2D = cast(PFN_glCompressedTexImage2D)loadSymbol(loader, "glCompressedTexImage2D", []);
5243         _CompressedTexImage1D = cast(PFN_glCompressedTexImage1D)loadSymbol(loader, "glCompressedTexImage1D", []);
5244         _CompressedTexSubImage3D = cast(PFN_glCompressedTexSubImage3D)loadSymbol(loader, "glCompressedTexSubImage3D", []);
5245         _CompressedTexSubImage2D = cast(PFN_glCompressedTexSubImage2D)loadSymbol(loader, "glCompressedTexSubImage2D", []);
5246         _CompressedTexSubImage1D = cast(PFN_glCompressedTexSubImage1D)loadSymbol(loader, "glCompressedTexSubImage1D", []);
5247         _GetCompressedTexImage = cast(PFN_glGetCompressedTexImage)loadSymbol(loader, "glGetCompressedTexImage", []);
5248 
5249         // GL_VERSION_1_4
5250         _BlendFuncSeparate = cast(PFN_glBlendFuncSeparate)loadSymbol(loader, "glBlendFuncSeparate", []);
5251         _MultiDrawArrays = cast(PFN_glMultiDrawArrays)loadSymbol(loader, "glMultiDrawArrays", []);
5252         _MultiDrawElements = cast(PFN_glMultiDrawElements)loadSymbol(loader, "glMultiDrawElements", []);
5253         _PointParameterf = cast(PFN_glPointParameterf)loadSymbol(loader, "glPointParameterf", []);
5254         _PointParameterfv = cast(PFN_glPointParameterfv)loadSymbol(loader, "glPointParameterfv", []);
5255         _PointParameteri = cast(PFN_glPointParameteri)loadSymbol(loader, "glPointParameteri", []);
5256         _PointParameteriv = cast(PFN_glPointParameteriv)loadSymbol(loader, "glPointParameteriv", []);
5257         _BlendColor = cast(PFN_glBlendColor)loadSymbol(loader, "glBlendColor", []);
5258         _BlendEquation = cast(PFN_glBlendEquation)loadSymbol(loader, "glBlendEquation", []);
5259 
5260         // GL_VERSION_1_5
5261         _GenQueries = cast(PFN_glGenQueries)loadSymbol(loader, "glGenQueries", []);
5262         _DeleteQueries = cast(PFN_glDeleteQueries)loadSymbol(loader, "glDeleteQueries", []);
5263         _IsQuery = cast(PFN_glIsQuery)loadSymbol(loader, "glIsQuery", []);
5264         _BeginQuery = cast(PFN_glBeginQuery)loadSymbol(loader, "glBeginQuery", []);
5265         _EndQuery = cast(PFN_glEndQuery)loadSymbol(loader, "glEndQuery", []);
5266         _GetQueryiv = cast(PFN_glGetQueryiv)loadSymbol(loader, "glGetQueryiv", []);
5267         _GetQueryObjectiv = cast(PFN_glGetQueryObjectiv)loadSymbol(loader, "glGetQueryObjectiv", []);
5268         _GetQueryObjectuiv = cast(PFN_glGetQueryObjectuiv)loadSymbol(loader, "glGetQueryObjectuiv", []);
5269         _BindBuffer = cast(PFN_glBindBuffer)loadSymbol(loader, "glBindBuffer", []);
5270         _DeleteBuffers = cast(PFN_glDeleteBuffers)loadSymbol(loader, "glDeleteBuffers", []);
5271         _GenBuffers = cast(PFN_glGenBuffers)loadSymbol(loader, "glGenBuffers", []);
5272         _IsBuffer = cast(PFN_glIsBuffer)loadSymbol(loader, "glIsBuffer", []);
5273         _BufferData = cast(PFN_glBufferData)loadSymbol(loader, "glBufferData", []);
5274         _BufferSubData = cast(PFN_glBufferSubData)loadSymbol(loader, "glBufferSubData", []);
5275         _GetBufferSubData = cast(PFN_glGetBufferSubData)loadSymbol(loader, "glGetBufferSubData", []);
5276         _MapBuffer = cast(PFN_glMapBuffer)loadSymbol(loader, "glMapBuffer", []);
5277         _UnmapBuffer = cast(PFN_glUnmapBuffer)loadSymbol(loader, "glUnmapBuffer", []);
5278         _GetBufferParameteriv = cast(PFN_glGetBufferParameteriv)loadSymbol(loader, "glGetBufferParameteriv", []);
5279         _GetBufferPointerv = cast(PFN_glGetBufferPointerv)loadSymbol(loader, "glGetBufferPointerv", []);
5280 
5281         // GL_VERSION_2_0
5282         _BlendEquationSeparate = cast(PFN_glBlendEquationSeparate)loadSymbol(loader, "glBlendEquationSeparate", []);
5283         _DrawBuffers = cast(PFN_glDrawBuffers)loadSymbol(loader, "glDrawBuffers", []);
5284         _StencilOpSeparate = cast(PFN_glStencilOpSeparate)loadSymbol(loader, "glStencilOpSeparate", []);
5285         _StencilFuncSeparate = cast(PFN_glStencilFuncSeparate)loadSymbol(loader, "glStencilFuncSeparate", []);
5286         _StencilMaskSeparate = cast(PFN_glStencilMaskSeparate)loadSymbol(loader, "glStencilMaskSeparate", []);
5287         _AttachShader = cast(PFN_glAttachShader)loadSymbol(loader, "glAttachShader", []);
5288         _BindAttribLocation = cast(PFN_glBindAttribLocation)loadSymbol(loader, "glBindAttribLocation", []);
5289         _CompileShader = cast(PFN_glCompileShader)loadSymbol(loader, "glCompileShader", []);
5290         _CreateProgram = cast(PFN_glCreateProgram)loadSymbol(loader, "glCreateProgram", []);
5291         _CreateShader = cast(PFN_glCreateShader)loadSymbol(loader, "glCreateShader", []);
5292         _DeleteProgram = cast(PFN_glDeleteProgram)loadSymbol(loader, "glDeleteProgram", []);
5293         _DeleteShader = cast(PFN_glDeleteShader)loadSymbol(loader, "glDeleteShader", []);
5294         _DetachShader = cast(PFN_glDetachShader)loadSymbol(loader, "glDetachShader", []);
5295         _DisableVertexAttribArray = cast(PFN_glDisableVertexAttribArray)loadSymbol(loader, "glDisableVertexAttribArray", []);
5296         _EnableVertexAttribArray = cast(PFN_glEnableVertexAttribArray)loadSymbol(loader, "glEnableVertexAttribArray", []);
5297         _GetActiveAttrib = cast(PFN_glGetActiveAttrib)loadSymbol(loader, "glGetActiveAttrib", []);
5298         _GetActiveUniform = cast(PFN_glGetActiveUniform)loadSymbol(loader, "glGetActiveUniform", []);
5299         _GetAttachedShaders = cast(PFN_glGetAttachedShaders)loadSymbol(loader, "glGetAttachedShaders", []);
5300         _GetAttribLocation = cast(PFN_glGetAttribLocation)loadSymbol(loader, "glGetAttribLocation", []);
5301         _GetProgramiv = cast(PFN_glGetProgramiv)loadSymbol(loader, "glGetProgramiv", []);
5302         _GetProgramInfoLog = cast(PFN_glGetProgramInfoLog)loadSymbol(loader, "glGetProgramInfoLog", []);
5303         _GetShaderiv = cast(PFN_glGetShaderiv)loadSymbol(loader, "glGetShaderiv", []);
5304         _GetShaderInfoLog = cast(PFN_glGetShaderInfoLog)loadSymbol(loader, "glGetShaderInfoLog", []);
5305         _GetShaderSource = cast(PFN_glGetShaderSource)loadSymbol(loader, "glGetShaderSource", []);
5306         _GetUniformLocation = cast(PFN_glGetUniformLocation)loadSymbol(loader, "glGetUniformLocation", []);
5307         _GetUniformfv = cast(PFN_glGetUniformfv)loadSymbol(loader, "glGetUniformfv", []);
5308         _GetUniformiv = cast(PFN_glGetUniformiv)loadSymbol(loader, "glGetUniformiv", []);
5309         _GetVertexAttribdv = cast(PFN_glGetVertexAttribdv)loadSymbol(loader, "glGetVertexAttribdv", []);
5310         _GetVertexAttribfv = cast(PFN_glGetVertexAttribfv)loadSymbol(loader, "glGetVertexAttribfv", []);
5311         _GetVertexAttribiv = cast(PFN_glGetVertexAttribiv)loadSymbol(loader, "glGetVertexAttribiv", []);
5312         _GetVertexAttribPointerv = cast(PFN_glGetVertexAttribPointerv)loadSymbol(loader, "glGetVertexAttribPointerv", []);
5313         _IsProgram = cast(PFN_glIsProgram)loadSymbol(loader, "glIsProgram", []);
5314         _IsShader = cast(PFN_glIsShader)loadSymbol(loader, "glIsShader", []);
5315         _LinkProgram = cast(PFN_glLinkProgram)loadSymbol(loader, "glLinkProgram", []);
5316         _ShaderSource = cast(PFN_glShaderSource)loadSymbol(loader, "glShaderSource", []);
5317         _UseProgram = cast(PFN_glUseProgram)loadSymbol(loader, "glUseProgram", []);
5318         _Uniform1f = cast(PFN_glUniform1f)loadSymbol(loader, "glUniform1f", []);
5319         _Uniform2f = cast(PFN_glUniform2f)loadSymbol(loader, "glUniform2f", []);
5320         _Uniform3f = cast(PFN_glUniform3f)loadSymbol(loader, "glUniform3f", []);
5321         _Uniform4f = cast(PFN_glUniform4f)loadSymbol(loader, "glUniform4f", []);
5322         _Uniform1i = cast(PFN_glUniform1i)loadSymbol(loader, "glUniform1i", []);
5323         _Uniform2i = cast(PFN_glUniform2i)loadSymbol(loader, "glUniform2i", []);
5324         _Uniform3i = cast(PFN_glUniform3i)loadSymbol(loader, "glUniform3i", []);
5325         _Uniform4i = cast(PFN_glUniform4i)loadSymbol(loader, "glUniform4i", []);
5326         _Uniform1fv = cast(PFN_glUniform1fv)loadSymbol(loader, "glUniform1fv", []);
5327         _Uniform2fv = cast(PFN_glUniform2fv)loadSymbol(loader, "glUniform2fv", []);
5328         _Uniform3fv = cast(PFN_glUniform3fv)loadSymbol(loader, "glUniform3fv", []);
5329         _Uniform4fv = cast(PFN_glUniform4fv)loadSymbol(loader, "glUniform4fv", []);
5330         _Uniform1iv = cast(PFN_glUniform1iv)loadSymbol(loader, "glUniform1iv", []);
5331         _Uniform2iv = cast(PFN_glUniform2iv)loadSymbol(loader, "glUniform2iv", []);
5332         _Uniform3iv = cast(PFN_glUniform3iv)loadSymbol(loader, "glUniform3iv", []);
5333         _Uniform4iv = cast(PFN_glUniform4iv)loadSymbol(loader, "glUniform4iv", []);
5334         _UniformMatrix2fv = cast(PFN_glUniformMatrix2fv)loadSymbol(loader, "glUniformMatrix2fv", []);
5335         _UniformMatrix3fv = cast(PFN_glUniformMatrix3fv)loadSymbol(loader, "glUniformMatrix3fv", []);
5336         _UniformMatrix4fv = cast(PFN_glUniformMatrix4fv)loadSymbol(loader, "glUniformMatrix4fv", []);
5337         _ValidateProgram = cast(PFN_glValidateProgram)loadSymbol(loader, "glValidateProgram", []);
5338         _VertexAttrib1d = cast(PFN_glVertexAttrib1d)loadSymbol(loader, "glVertexAttrib1d", []);
5339         _VertexAttrib1dv = cast(PFN_glVertexAttrib1dv)loadSymbol(loader, "glVertexAttrib1dv", []);
5340         _VertexAttrib1f = cast(PFN_glVertexAttrib1f)loadSymbol(loader, "glVertexAttrib1f", []);
5341         _VertexAttrib1fv = cast(PFN_glVertexAttrib1fv)loadSymbol(loader, "glVertexAttrib1fv", []);
5342         _VertexAttrib1s = cast(PFN_glVertexAttrib1s)loadSymbol(loader, "glVertexAttrib1s", []);
5343         _VertexAttrib1sv = cast(PFN_glVertexAttrib1sv)loadSymbol(loader, "glVertexAttrib1sv", []);
5344         _VertexAttrib2d = cast(PFN_glVertexAttrib2d)loadSymbol(loader, "glVertexAttrib2d", []);
5345         _VertexAttrib2dv = cast(PFN_glVertexAttrib2dv)loadSymbol(loader, "glVertexAttrib2dv", []);
5346         _VertexAttrib2f = cast(PFN_glVertexAttrib2f)loadSymbol(loader, "glVertexAttrib2f", []);
5347         _VertexAttrib2fv = cast(PFN_glVertexAttrib2fv)loadSymbol(loader, "glVertexAttrib2fv", []);
5348         _VertexAttrib2s = cast(PFN_glVertexAttrib2s)loadSymbol(loader, "glVertexAttrib2s", []);
5349         _VertexAttrib2sv = cast(PFN_glVertexAttrib2sv)loadSymbol(loader, "glVertexAttrib2sv", []);
5350         _VertexAttrib3d = cast(PFN_glVertexAttrib3d)loadSymbol(loader, "glVertexAttrib3d", []);
5351         _VertexAttrib3dv = cast(PFN_glVertexAttrib3dv)loadSymbol(loader, "glVertexAttrib3dv", []);
5352         _VertexAttrib3f = cast(PFN_glVertexAttrib3f)loadSymbol(loader, "glVertexAttrib3f", []);
5353         _VertexAttrib3fv = cast(PFN_glVertexAttrib3fv)loadSymbol(loader, "glVertexAttrib3fv", []);
5354         _VertexAttrib3s = cast(PFN_glVertexAttrib3s)loadSymbol(loader, "glVertexAttrib3s", []);
5355         _VertexAttrib3sv = cast(PFN_glVertexAttrib3sv)loadSymbol(loader, "glVertexAttrib3sv", []);
5356         _VertexAttrib4Nbv = cast(PFN_glVertexAttrib4Nbv)loadSymbol(loader, "glVertexAttrib4Nbv", []);
5357         _VertexAttrib4Niv = cast(PFN_glVertexAttrib4Niv)loadSymbol(loader, "glVertexAttrib4Niv", []);
5358         _VertexAttrib4Nsv = cast(PFN_glVertexAttrib4Nsv)loadSymbol(loader, "glVertexAttrib4Nsv", []);
5359         _VertexAttrib4Nub = cast(PFN_glVertexAttrib4Nub)loadSymbol(loader, "glVertexAttrib4Nub", []);
5360         _VertexAttrib4Nubv = cast(PFN_glVertexAttrib4Nubv)loadSymbol(loader, "glVertexAttrib4Nubv", []);
5361         _VertexAttrib4Nuiv = cast(PFN_glVertexAttrib4Nuiv)loadSymbol(loader, "glVertexAttrib4Nuiv", []);
5362         _VertexAttrib4Nusv = cast(PFN_glVertexAttrib4Nusv)loadSymbol(loader, "glVertexAttrib4Nusv", []);
5363         _VertexAttrib4bv = cast(PFN_glVertexAttrib4bv)loadSymbol(loader, "glVertexAttrib4bv", []);
5364         _VertexAttrib4d = cast(PFN_glVertexAttrib4d)loadSymbol(loader, "glVertexAttrib4d", []);
5365         _VertexAttrib4dv = cast(PFN_glVertexAttrib4dv)loadSymbol(loader, "glVertexAttrib4dv", []);
5366         _VertexAttrib4f = cast(PFN_glVertexAttrib4f)loadSymbol(loader, "glVertexAttrib4f", []);
5367         _VertexAttrib4fv = cast(PFN_glVertexAttrib4fv)loadSymbol(loader, "glVertexAttrib4fv", []);
5368         _VertexAttrib4iv = cast(PFN_glVertexAttrib4iv)loadSymbol(loader, "glVertexAttrib4iv", []);
5369         _VertexAttrib4s = cast(PFN_glVertexAttrib4s)loadSymbol(loader, "glVertexAttrib4s", []);
5370         _VertexAttrib4sv = cast(PFN_glVertexAttrib4sv)loadSymbol(loader, "glVertexAttrib4sv", []);
5371         _VertexAttrib4ubv = cast(PFN_glVertexAttrib4ubv)loadSymbol(loader, "glVertexAttrib4ubv", []);
5372         _VertexAttrib4uiv = cast(PFN_glVertexAttrib4uiv)loadSymbol(loader, "glVertexAttrib4uiv", []);
5373         _VertexAttrib4usv = cast(PFN_glVertexAttrib4usv)loadSymbol(loader, "glVertexAttrib4usv", []);
5374         _VertexAttribPointer = cast(PFN_glVertexAttribPointer)loadSymbol(loader, "glVertexAttribPointer", []);
5375 
5376         // GL_VERSION_2_1
5377         _UniformMatrix2x3fv = cast(PFN_glUniformMatrix2x3fv)loadSymbol(loader, "glUniformMatrix2x3fv", []);
5378         _UniformMatrix3x2fv = cast(PFN_glUniformMatrix3x2fv)loadSymbol(loader, "glUniformMatrix3x2fv", []);
5379         _UniformMatrix2x4fv = cast(PFN_glUniformMatrix2x4fv)loadSymbol(loader, "glUniformMatrix2x4fv", []);
5380         _UniformMatrix4x2fv = cast(PFN_glUniformMatrix4x2fv)loadSymbol(loader, "glUniformMatrix4x2fv", []);
5381         _UniformMatrix3x4fv = cast(PFN_glUniformMatrix3x4fv)loadSymbol(loader, "glUniformMatrix3x4fv", []);
5382         _UniformMatrix4x3fv = cast(PFN_glUniformMatrix4x3fv)loadSymbol(loader, "glUniformMatrix4x3fv", []);
5383 
5384         // GL_VERSION_3_0
5385         _ColorMaski = cast(PFN_glColorMaski)loadSymbol(loader, "glColorMaski", []);
5386         _GetBooleani_v = cast(PFN_glGetBooleani_v)loadSymbol(loader, "glGetBooleani_v", []);
5387         _GetIntegeri_v = cast(PFN_glGetIntegeri_v)loadSymbol(loader, "glGetIntegeri_v", []);
5388         _Enablei = cast(PFN_glEnablei)loadSymbol(loader, "glEnablei", []);
5389         _Disablei = cast(PFN_glDisablei)loadSymbol(loader, "glDisablei", []);
5390         _IsEnabledi = cast(PFN_glIsEnabledi)loadSymbol(loader, "glIsEnabledi", []);
5391         _BeginTransformFeedback = cast(PFN_glBeginTransformFeedback)loadSymbol(loader, "glBeginTransformFeedback", []);
5392         _EndTransformFeedback = cast(PFN_glEndTransformFeedback)loadSymbol(loader, "glEndTransformFeedback", []);
5393         _BindBufferRange = cast(PFN_glBindBufferRange)loadSymbol(loader, "glBindBufferRange", []);
5394         _BindBufferBase = cast(PFN_glBindBufferBase)loadSymbol(loader, "glBindBufferBase", []);
5395         _TransformFeedbackVaryings = cast(PFN_glTransformFeedbackVaryings)loadSymbol(loader, "glTransformFeedbackVaryings", []);
5396         _GetTransformFeedbackVarying = cast(PFN_glGetTransformFeedbackVarying)loadSymbol(loader, "glGetTransformFeedbackVarying", []);
5397         _ClampColor = cast(PFN_glClampColor)loadSymbol(loader, "glClampColor", []);
5398         _BeginConditionalRender = cast(PFN_glBeginConditionalRender)loadSymbol(loader, "glBeginConditionalRender", []);
5399         _EndConditionalRender = cast(PFN_glEndConditionalRender)loadSymbol(loader, "glEndConditionalRender", []);
5400         _VertexAttribIPointer = cast(PFN_glVertexAttribIPointer)loadSymbol(loader, "glVertexAttribIPointer", []);
5401         _GetVertexAttribIiv = cast(PFN_glGetVertexAttribIiv)loadSymbol(loader, "glGetVertexAttribIiv", []);
5402         _GetVertexAttribIuiv = cast(PFN_glGetVertexAttribIuiv)loadSymbol(loader, "glGetVertexAttribIuiv", []);
5403         _VertexAttribI1i = cast(PFN_glVertexAttribI1i)loadSymbol(loader, "glVertexAttribI1i", []);
5404         _VertexAttribI2i = cast(PFN_glVertexAttribI2i)loadSymbol(loader, "glVertexAttribI2i", []);
5405         _VertexAttribI3i = cast(PFN_glVertexAttribI3i)loadSymbol(loader, "glVertexAttribI3i", []);
5406         _VertexAttribI4i = cast(PFN_glVertexAttribI4i)loadSymbol(loader, "glVertexAttribI4i", []);
5407         _VertexAttribI1ui = cast(PFN_glVertexAttribI1ui)loadSymbol(loader, "glVertexAttribI1ui", []);
5408         _VertexAttribI2ui = cast(PFN_glVertexAttribI2ui)loadSymbol(loader, "glVertexAttribI2ui", []);
5409         _VertexAttribI3ui = cast(PFN_glVertexAttribI3ui)loadSymbol(loader, "glVertexAttribI3ui", []);
5410         _VertexAttribI4ui = cast(PFN_glVertexAttribI4ui)loadSymbol(loader, "glVertexAttribI4ui", []);
5411         _VertexAttribI1iv = cast(PFN_glVertexAttribI1iv)loadSymbol(loader, "glVertexAttribI1iv", []);
5412         _VertexAttribI2iv = cast(PFN_glVertexAttribI2iv)loadSymbol(loader, "glVertexAttribI2iv", []);
5413         _VertexAttribI3iv = cast(PFN_glVertexAttribI3iv)loadSymbol(loader, "glVertexAttribI3iv", []);
5414         _VertexAttribI4iv = cast(PFN_glVertexAttribI4iv)loadSymbol(loader, "glVertexAttribI4iv", []);
5415         _VertexAttribI1uiv = cast(PFN_glVertexAttribI1uiv)loadSymbol(loader, "glVertexAttribI1uiv", []);
5416         _VertexAttribI2uiv = cast(PFN_glVertexAttribI2uiv)loadSymbol(loader, "glVertexAttribI2uiv", []);
5417         _VertexAttribI3uiv = cast(PFN_glVertexAttribI3uiv)loadSymbol(loader, "glVertexAttribI3uiv", []);
5418         _VertexAttribI4uiv = cast(PFN_glVertexAttribI4uiv)loadSymbol(loader, "glVertexAttribI4uiv", []);
5419         _VertexAttribI4bv = cast(PFN_glVertexAttribI4bv)loadSymbol(loader, "glVertexAttribI4bv", []);
5420         _VertexAttribI4sv = cast(PFN_glVertexAttribI4sv)loadSymbol(loader, "glVertexAttribI4sv", []);
5421         _VertexAttribI4ubv = cast(PFN_glVertexAttribI4ubv)loadSymbol(loader, "glVertexAttribI4ubv", []);
5422         _VertexAttribI4usv = cast(PFN_glVertexAttribI4usv)loadSymbol(loader, "glVertexAttribI4usv", []);
5423         _GetUniformuiv = cast(PFN_glGetUniformuiv)loadSymbol(loader, "glGetUniformuiv", []);
5424         _BindFragDataLocation = cast(PFN_glBindFragDataLocation)loadSymbol(loader, "glBindFragDataLocation", []);
5425         _GetFragDataLocation = cast(PFN_glGetFragDataLocation)loadSymbol(loader, "glGetFragDataLocation", []);
5426         _Uniform1ui = cast(PFN_glUniform1ui)loadSymbol(loader, "glUniform1ui", []);
5427         _Uniform2ui = cast(PFN_glUniform2ui)loadSymbol(loader, "glUniform2ui", []);
5428         _Uniform3ui = cast(PFN_glUniform3ui)loadSymbol(loader, "glUniform3ui", []);
5429         _Uniform4ui = cast(PFN_glUniform4ui)loadSymbol(loader, "glUniform4ui", []);
5430         _Uniform1uiv = cast(PFN_glUniform1uiv)loadSymbol(loader, "glUniform1uiv", []);
5431         _Uniform2uiv = cast(PFN_glUniform2uiv)loadSymbol(loader, "glUniform2uiv", []);
5432         _Uniform3uiv = cast(PFN_glUniform3uiv)loadSymbol(loader, "glUniform3uiv", []);
5433         _Uniform4uiv = cast(PFN_glUniform4uiv)loadSymbol(loader, "glUniform4uiv", []);
5434         _TexParameterIiv = cast(PFN_glTexParameterIiv)loadSymbol(loader, "glTexParameterIiv", []);
5435         _TexParameterIuiv = cast(PFN_glTexParameterIuiv)loadSymbol(loader, "glTexParameterIuiv", []);
5436         _GetTexParameterIiv = cast(PFN_glGetTexParameterIiv)loadSymbol(loader, "glGetTexParameterIiv", []);
5437         _GetTexParameterIuiv = cast(PFN_glGetTexParameterIuiv)loadSymbol(loader, "glGetTexParameterIuiv", []);
5438         _ClearBufferiv = cast(PFN_glClearBufferiv)loadSymbol(loader, "glClearBufferiv", []);
5439         _ClearBufferuiv = cast(PFN_glClearBufferuiv)loadSymbol(loader, "glClearBufferuiv", []);
5440         _ClearBufferfv = cast(PFN_glClearBufferfv)loadSymbol(loader, "glClearBufferfv", []);
5441         _ClearBufferfi = cast(PFN_glClearBufferfi)loadSymbol(loader, "glClearBufferfi", []);
5442         _GetStringi = cast(PFN_glGetStringi)loadSymbol(loader, "glGetStringi", []);
5443         _IsRenderbuffer = cast(PFN_glIsRenderbuffer)loadSymbol(loader, "glIsRenderbuffer", []);
5444         _BindRenderbuffer = cast(PFN_glBindRenderbuffer)loadSymbol(loader, "glBindRenderbuffer", []);
5445         _DeleteRenderbuffers = cast(PFN_glDeleteRenderbuffers)loadSymbol(loader, "glDeleteRenderbuffers", []);
5446         _GenRenderbuffers = cast(PFN_glGenRenderbuffers)loadSymbol(loader, "glGenRenderbuffers", []);
5447         _RenderbufferStorage = cast(PFN_glRenderbufferStorage)loadSymbol(loader, "glRenderbufferStorage", []);
5448         _GetRenderbufferParameteriv = cast(PFN_glGetRenderbufferParameteriv)loadSymbol(loader, "glGetRenderbufferParameteriv", []);
5449         _IsFramebuffer = cast(PFN_glIsFramebuffer)loadSymbol(loader, "glIsFramebuffer", []);
5450         _BindFramebuffer = cast(PFN_glBindFramebuffer)loadSymbol(loader, "glBindFramebuffer", []);
5451         _DeleteFramebuffers = cast(PFN_glDeleteFramebuffers)loadSymbol(loader, "glDeleteFramebuffers", []);
5452         _GenFramebuffers = cast(PFN_glGenFramebuffers)loadSymbol(loader, "glGenFramebuffers", []);
5453         _CheckFramebufferStatus = cast(PFN_glCheckFramebufferStatus)loadSymbol(loader, "glCheckFramebufferStatus", []);
5454         _FramebufferTexture1D = cast(PFN_glFramebufferTexture1D)loadSymbol(loader, "glFramebufferTexture1D", []);
5455         _FramebufferTexture2D = cast(PFN_glFramebufferTexture2D)loadSymbol(loader, "glFramebufferTexture2D", []);
5456         _FramebufferTexture3D = cast(PFN_glFramebufferTexture3D)loadSymbol(loader, "glFramebufferTexture3D", []);
5457         _FramebufferRenderbuffer = cast(PFN_glFramebufferRenderbuffer)loadSymbol(loader, "glFramebufferRenderbuffer", []);
5458         _GetFramebufferAttachmentParameteriv = cast(PFN_glGetFramebufferAttachmentParameteriv)loadSymbol(loader, "glGetFramebufferAttachmentParameteriv", []);
5459         _GenerateMipmap = cast(PFN_glGenerateMipmap)loadSymbol(loader, "glGenerateMipmap", []);
5460         _BlitFramebuffer = cast(PFN_glBlitFramebuffer)loadSymbol(loader, "glBlitFramebuffer", []);
5461         _RenderbufferStorageMultisample = cast(PFN_glRenderbufferStorageMultisample)loadSymbol(loader, "glRenderbufferStorageMultisample", []);
5462         _FramebufferTextureLayer = cast(PFN_glFramebufferTextureLayer)loadSymbol(loader, "glFramebufferTextureLayer", []);
5463         _MapBufferRange = cast(PFN_glMapBufferRange)loadSymbol(loader, "glMapBufferRange", []);
5464         _FlushMappedBufferRange = cast(PFN_glFlushMappedBufferRange)loadSymbol(loader, "glFlushMappedBufferRange", []);
5465         _BindVertexArray = cast(PFN_glBindVertexArray)loadSymbol(loader, "glBindVertexArray", []);
5466         _DeleteVertexArrays = cast(PFN_glDeleteVertexArrays)loadSymbol(loader, "glDeleteVertexArrays", []);
5467         _GenVertexArrays = cast(PFN_glGenVertexArrays)loadSymbol(loader, "glGenVertexArrays", []);
5468         _IsVertexArray = cast(PFN_glIsVertexArray)loadSymbol(loader, "glIsVertexArray", []);
5469 
5470         // GL_VERSION_3_1
5471         _DrawArraysInstanced = cast(PFN_glDrawArraysInstanced)loadSymbol(loader, "glDrawArraysInstanced", []);
5472         _DrawElementsInstanced = cast(PFN_glDrawElementsInstanced)loadSymbol(loader, "glDrawElementsInstanced", []);
5473         _TexBuffer = cast(PFN_glTexBuffer)loadSymbol(loader, "glTexBuffer", []);
5474         _PrimitiveRestartIndex = cast(PFN_glPrimitiveRestartIndex)loadSymbol(loader, "glPrimitiveRestartIndex", []);
5475         _CopyBufferSubData = cast(PFN_glCopyBufferSubData)loadSymbol(loader, "glCopyBufferSubData", []);
5476         _GetUniformIndices = cast(PFN_glGetUniformIndices)loadSymbol(loader, "glGetUniformIndices", []);
5477         _GetActiveUniformsiv = cast(PFN_glGetActiveUniformsiv)loadSymbol(loader, "glGetActiveUniformsiv", []);
5478         _GetActiveUniformName = cast(PFN_glGetActiveUniformName)loadSymbol(loader, "glGetActiveUniformName", []);
5479         _GetUniformBlockIndex = cast(PFN_glGetUniformBlockIndex)loadSymbol(loader, "glGetUniformBlockIndex", []);
5480         _GetActiveUniformBlockiv = cast(PFN_glGetActiveUniformBlockiv)loadSymbol(loader, "glGetActiveUniformBlockiv", []);
5481         _GetActiveUniformBlockName = cast(PFN_glGetActiveUniformBlockName)loadSymbol(loader, "glGetActiveUniformBlockName", []);
5482         _UniformBlockBinding = cast(PFN_glUniformBlockBinding)loadSymbol(loader, "glUniformBlockBinding", []);
5483 
5484         // GL_VERSION_3_2
5485         _DrawElementsBaseVertex = cast(PFN_glDrawElementsBaseVertex)loadSymbol(loader, "glDrawElementsBaseVertex", []);
5486         _DrawRangeElementsBaseVertex = cast(PFN_glDrawRangeElementsBaseVertex)loadSymbol(loader, "glDrawRangeElementsBaseVertex", []);
5487         _DrawElementsInstancedBaseVertex = cast(PFN_glDrawElementsInstancedBaseVertex)loadSymbol(loader, "glDrawElementsInstancedBaseVertex", []);
5488         _MultiDrawElementsBaseVertex = cast(PFN_glMultiDrawElementsBaseVertex)loadSymbol(loader, "glMultiDrawElementsBaseVertex", []);
5489         _ProvokingVertex = cast(PFN_glProvokingVertex)loadSymbol(loader, "glProvokingVertex", []);
5490         _FenceSync = cast(PFN_glFenceSync)loadSymbol(loader, "glFenceSync", []);
5491         _IsSync = cast(PFN_glIsSync)loadSymbol(loader, "glIsSync", []);
5492         _DeleteSync = cast(PFN_glDeleteSync)loadSymbol(loader, "glDeleteSync", []);
5493         _ClientWaitSync = cast(PFN_glClientWaitSync)loadSymbol(loader, "glClientWaitSync", []);
5494         _WaitSync = cast(PFN_glWaitSync)loadSymbol(loader, "glWaitSync", []);
5495         _GetInteger64v = cast(PFN_glGetInteger64v)loadSymbol(loader, "glGetInteger64v", []);
5496         _GetSynciv = cast(PFN_glGetSynciv)loadSymbol(loader, "glGetSynciv", []);
5497         _GetInteger64i_v = cast(PFN_glGetInteger64i_v)loadSymbol(loader, "glGetInteger64i_v", []);
5498         _GetBufferParameteri64v = cast(PFN_glGetBufferParameteri64v)loadSymbol(loader, "glGetBufferParameteri64v", []);
5499         _FramebufferTexture = cast(PFN_glFramebufferTexture)loadSymbol(loader, "glFramebufferTexture", []);
5500         _TexImage2DMultisample = cast(PFN_glTexImage2DMultisample)loadSymbol(loader, "glTexImage2DMultisample", []);
5501         _TexImage3DMultisample = cast(PFN_glTexImage3DMultisample)loadSymbol(loader, "glTexImage3DMultisample", []);
5502         _GetMultisamplefv = cast(PFN_glGetMultisamplefv)loadSymbol(loader, "glGetMultisamplefv", []);
5503         _SampleMaski = cast(PFN_glSampleMaski)loadSymbol(loader, "glSampleMaski", []);
5504 
5505         // GL_VERSION_3_3
5506         _BindFragDataLocationIndexed = cast(PFN_glBindFragDataLocationIndexed)loadSymbol(loader, "glBindFragDataLocationIndexed", []);
5507         _GetFragDataIndex = cast(PFN_glGetFragDataIndex)loadSymbol(loader, "glGetFragDataIndex", []);
5508         _GenSamplers = cast(PFN_glGenSamplers)loadSymbol(loader, "glGenSamplers", []);
5509         _DeleteSamplers = cast(PFN_glDeleteSamplers)loadSymbol(loader, "glDeleteSamplers", []);
5510         _IsSampler = cast(PFN_glIsSampler)loadSymbol(loader, "glIsSampler", []);
5511         _BindSampler = cast(PFN_glBindSampler)loadSymbol(loader, "glBindSampler", []);
5512         _SamplerParameteri = cast(PFN_glSamplerParameteri)loadSymbol(loader, "glSamplerParameteri", []);
5513         _SamplerParameteriv = cast(PFN_glSamplerParameteriv)loadSymbol(loader, "glSamplerParameteriv", []);
5514         _SamplerParameterf = cast(PFN_glSamplerParameterf)loadSymbol(loader, "glSamplerParameterf", []);
5515         _SamplerParameterfv = cast(PFN_glSamplerParameterfv)loadSymbol(loader, "glSamplerParameterfv", []);
5516         _SamplerParameterIiv = cast(PFN_glSamplerParameterIiv)loadSymbol(loader, "glSamplerParameterIiv", []);
5517         _SamplerParameterIuiv = cast(PFN_glSamplerParameterIuiv)loadSymbol(loader, "glSamplerParameterIuiv", []);
5518         _GetSamplerParameteriv = cast(PFN_glGetSamplerParameteriv)loadSymbol(loader, "glGetSamplerParameteriv", []);
5519         _GetSamplerParameterIiv = cast(PFN_glGetSamplerParameterIiv)loadSymbol(loader, "glGetSamplerParameterIiv", []);
5520         _GetSamplerParameterfv = cast(PFN_glGetSamplerParameterfv)loadSymbol(loader, "glGetSamplerParameterfv", []);
5521         _GetSamplerParameterIuiv = cast(PFN_glGetSamplerParameterIuiv)loadSymbol(loader, "glGetSamplerParameterIuiv", []);
5522         _QueryCounter = cast(PFN_glQueryCounter)loadSymbol(loader, "glQueryCounter", []);
5523         _GetQueryObjecti64v = cast(PFN_glGetQueryObjecti64v)loadSymbol(loader, "glGetQueryObjecti64v", []);
5524         _GetQueryObjectui64v = cast(PFN_glGetQueryObjectui64v)loadSymbol(loader, "glGetQueryObjectui64v", []);
5525         _VertexAttribDivisor = cast(PFN_glVertexAttribDivisor)loadSymbol(loader, "glVertexAttribDivisor", []);
5526         _VertexAttribP1ui = cast(PFN_glVertexAttribP1ui)loadSymbol(loader, "glVertexAttribP1ui", []);
5527         _VertexAttribP1uiv = cast(PFN_glVertexAttribP1uiv)loadSymbol(loader, "glVertexAttribP1uiv", []);
5528         _VertexAttribP2ui = cast(PFN_glVertexAttribP2ui)loadSymbol(loader, "glVertexAttribP2ui", []);
5529         _VertexAttribP2uiv = cast(PFN_glVertexAttribP2uiv)loadSymbol(loader, "glVertexAttribP2uiv", []);
5530         _VertexAttribP3ui = cast(PFN_glVertexAttribP3ui)loadSymbol(loader, "glVertexAttribP3ui", []);
5531         _VertexAttribP3uiv = cast(PFN_glVertexAttribP3uiv)loadSymbol(loader, "glVertexAttribP3uiv", []);
5532         _VertexAttribP4ui = cast(PFN_glVertexAttribP4ui)loadSymbol(loader, "glVertexAttribP4ui", []);
5533         _VertexAttribP4uiv = cast(PFN_glVertexAttribP4uiv)loadSymbol(loader, "glVertexAttribP4uiv", []);
5534 
5535         // GL_VERSION_4_0
5536         _MinSampleShading = cast(PFN_glMinSampleShading)loadSymbol(loader, "glMinSampleShading", []);
5537         _BlendEquationi = cast(PFN_glBlendEquationi)loadSymbol(loader, "glBlendEquationi", []);
5538         _BlendEquationSeparatei = cast(PFN_glBlendEquationSeparatei)loadSymbol(loader, "glBlendEquationSeparatei", []);
5539         _BlendFunci = cast(PFN_glBlendFunci)loadSymbol(loader, "glBlendFunci", []);
5540         _BlendFuncSeparatei = cast(PFN_glBlendFuncSeparatei)loadSymbol(loader, "glBlendFuncSeparatei", []);
5541         _DrawArraysIndirect = cast(PFN_glDrawArraysIndirect)loadSymbol(loader, "glDrawArraysIndirect", []);
5542         _DrawElementsIndirect = cast(PFN_glDrawElementsIndirect)loadSymbol(loader, "glDrawElementsIndirect", []);
5543         _Uniform1d = cast(PFN_glUniform1d)loadSymbol(loader, "glUniform1d", []);
5544         _Uniform2d = cast(PFN_glUniform2d)loadSymbol(loader, "glUniform2d", []);
5545         _Uniform3d = cast(PFN_glUniform3d)loadSymbol(loader, "glUniform3d", []);
5546         _Uniform4d = cast(PFN_glUniform4d)loadSymbol(loader, "glUniform4d", []);
5547         _Uniform1dv = cast(PFN_glUniform1dv)loadSymbol(loader, "glUniform1dv", []);
5548         _Uniform2dv = cast(PFN_glUniform2dv)loadSymbol(loader, "glUniform2dv", []);
5549         _Uniform3dv = cast(PFN_glUniform3dv)loadSymbol(loader, "glUniform3dv", []);
5550         _Uniform4dv = cast(PFN_glUniform4dv)loadSymbol(loader, "glUniform4dv", []);
5551         _UniformMatrix2dv = cast(PFN_glUniformMatrix2dv)loadSymbol(loader, "glUniformMatrix2dv", []);
5552         _UniformMatrix3dv = cast(PFN_glUniformMatrix3dv)loadSymbol(loader, "glUniformMatrix3dv", []);
5553         _UniformMatrix4dv = cast(PFN_glUniformMatrix4dv)loadSymbol(loader, "glUniformMatrix4dv", []);
5554         _UniformMatrix2x3dv = cast(PFN_glUniformMatrix2x3dv)loadSymbol(loader, "glUniformMatrix2x3dv", []);
5555         _UniformMatrix2x4dv = cast(PFN_glUniformMatrix2x4dv)loadSymbol(loader, "glUniformMatrix2x4dv", []);
5556         _UniformMatrix3x2dv = cast(PFN_glUniformMatrix3x2dv)loadSymbol(loader, "glUniformMatrix3x2dv", []);
5557         _UniformMatrix3x4dv = cast(PFN_glUniformMatrix3x4dv)loadSymbol(loader, "glUniformMatrix3x4dv", []);
5558         _UniformMatrix4x2dv = cast(PFN_glUniformMatrix4x2dv)loadSymbol(loader, "glUniformMatrix4x2dv", []);
5559         _UniformMatrix4x3dv = cast(PFN_glUniformMatrix4x3dv)loadSymbol(loader, "glUniformMatrix4x3dv", []);
5560         _GetUniformdv = cast(PFN_glGetUniformdv)loadSymbol(loader, "glGetUniformdv", []);
5561         _GetSubroutineUniformLocation = cast(PFN_glGetSubroutineUniformLocation)loadSymbol(loader, "glGetSubroutineUniformLocation", []);
5562         _GetSubroutineIndex = cast(PFN_glGetSubroutineIndex)loadSymbol(loader, "glGetSubroutineIndex", []);
5563         _GetActiveSubroutineUniformiv = cast(PFN_glGetActiveSubroutineUniformiv)loadSymbol(loader, "glGetActiveSubroutineUniformiv", []);
5564         _GetActiveSubroutineUniformName = cast(PFN_glGetActiveSubroutineUniformName)loadSymbol(loader, "glGetActiveSubroutineUniformName", []);
5565         _GetActiveSubroutineName = cast(PFN_glGetActiveSubroutineName)loadSymbol(loader, "glGetActiveSubroutineName", []);
5566         _UniformSubroutinesuiv = cast(PFN_glUniformSubroutinesuiv)loadSymbol(loader, "glUniformSubroutinesuiv", []);
5567         _GetUniformSubroutineuiv = cast(PFN_glGetUniformSubroutineuiv)loadSymbol(loader, "glGetUniformSubroutineuiv", []);
5568         _GetProgramStageiv = cast(PFN_glGetProgramStageiv)loadSymbol(loader, "glGetProgramStageiv", []);
5569         _PatchParameteri = cast(PFN_glPatchParameteri)loadSymbol(loader, "glPatchParameteri", []);
5570         _PatchParameterfv = cast(PFN_glPatchParameterfv)loadSymbol(loader, "glPatchParameterfv", []);
5571         _BindTransformFeedback = cast(PFN_glBindTransformFeedback)loadSymbol(loader, "glBindTransformFeedback", []);
5572         _DeleteTransformFeedbacks = cast(PFN_glDeleteTransformFeedbacks)loadSymbol(loader, "glDeleteTransformFeedbacks", []);
5573         _GenTransformFeedbacks = cast(PFN_glGenTransformFeedbacks)loadSymbol(loader, "glGenTransformFeedbacks", []);
5574         _IsTransformFeedback = cast(PFN_glIsTransformFeedback)loadSymbol(loader, "glIsTransformFeedback", []);
5575         _PauseTransformFeedback = cast(PFN_glPauseTransformFeedback)loadSymbol(loader, "glPauseTransformFeedback", []);
5576         _ResumeTransformFeedback = cast(PFN_glResumeTransformFeedback)loadSymbol(loader, "glResumeTransformFeedback", []);
5577         _DrawTransformFeedback = cast(PFN_glDrawTransformFeedback)loadSymbol(loader, "glDrawTransformFeedback", []);
5578         _DrawTransformFeedbackStream = cast(PFN_glDrawTransformFeedbackStream)loadSymbol(loader, "glDrawTransformFeedbackStream", []);
5579         _BeginQueryIndexed = cast(PFN_glBeginQueryIndexed)loadSymbol(loader, "glBeginQueryIndexed", []);
5580         _EndQueryIndexed = cast(PFN_glEndQueryIndexed)loadSymbol(loader, "glEndQueryIndexed", []);
5581         _GetQueryIndexediv = cast(PFN_glGetQueryIndexediv)loadSymbol(loader, "glGetQueryIndexediv", []);
5582 
5583         // GL_VERSION_4_1
5584         _ReleaseShaderCompiler = cast(PFN_glReleaseShaderCompiler)loadSymbol(loader, "glReleaseShaderCompiler", []);
5585         _ShaderBinary = cast(PFN_glShaderBinary)loadSymbol(loader, "glShaderBinary", []);
5586         _GetShaderPrecisionFormat = cast(PFN_glGetShaderPrecisionFormat)loadSymbol(loader, "glGetShaderPrecisionFormat", []);
5587         _DepthRangef = cast(PFN_glDepthRangef)loadSymbol(loader, "glDepthRangef", []);
5588         _ClearDepthf = cast(PFN_glClearDepthf)loadSymbol(loader, "glClearDepthf", []);
5589         _GetProgramBinary = cast(PFN_glGetProgramBinary)loadSymbol(loader, "glGetProgramBinary", []);
5590         _ProgramBinary = cast(PFN_glProgramBinary)loadSymbol(loader, "glProgramBinary", []);
5591         _ProgramParameteri = cast(PFN_glProgramParameteri)loadSymbol(loader, "glProgramParameteri", []);
5592         _UseProgramStages = cast(PFN_glUseProgramStages)loadSymbol(loader, "glUseProgramStages", []);
5593         _ActiveShaderProgram = cast(PFN_glActiveShaderProgram)loadSymbol(loader, "glActiveShaderProgram", []);
5594         _CreateShaderProgramv = cast(PFN_glCreateShaderProgramv)loadSymbol(loader, "glCreateShaderProgramv", []);
5595         _BindProgramPipeline = cast(PFN_glBindProgramPipeline)loadSymbol(loader, "glBindProgramPipeline", []);
5596         _DeleteProgramPipelines = cast(PFN_glDeleteProgramPipelines)loadSymbol(loader, "glDeleteProgramPipelines", []);
5597         _GenProgramPipelines = cast(PFN_glGenProgramPipelines)loadSymbol(loader, "glGenProgramPipelines", []);
5598         _IsProgramPipeline = cast(PFN_glIsProgramPipeline)loadSymbol(loader, "glIsProgramPipeline", []);
5599         _GetProgramPipelineiv = cast(PFN_glGetProgramPipelineiv)loadSymbol(loader, "glGetProgramPipelineiv", []);
5600         _ProgramUniform1i = cast(PFN_glProgramUniform1i)loadSymbol(loader, "glProgramUniform1i", []);
5601         _ProgramUniform1iv = cast(PFN_glProgramUniform1iv)loadSymbol(loader, "glProgramUniform1iv", []);
5602         _ProgramUniform1f = cast(PFN_glProgramUniform1f)loadSymbol(loader, "glProgramUniform1f", []);
5603         _ProgramUniform1fv = cast(PFN_glProgramUniform1fv)loadSymbol(loader, "glProgramUniform1fv", []);
5604         _ProgramUniform1d = cast(PFN_glProgramUniform1d)loadSymbol(loader, "glProgramUniform1d", []);
5605         _ProgramUniform1dv = cast(PFN_glProgramUniform1dv)loadSymbol(loader, "glProgramUniform1dv", []);
5606         _ProgramUniform1ui = cast(PFN_glProgramUniform1ui)loadSymbol(loader, "glProgramUniform1ui", []);
5607         _ProgramUniform1uiv = cast(PFN_glProgramUniform1uiv)loadSymbol(loader, "glProgramUniform1uiv", []);
5608         _ProgramUniform2i = cast(PFN_glProgramUniform2i)loadSymbol(loader, "glProgramUniform2i", []);
5609         _ProgramUniform2iv = cast(PFN_glProgramUniform2iv)loadSymbol(loader, "glProgramUniform2iv", []);
5610         _ProgramUniform2f = cast(PFN_glProgramUniform2f)loadSymbol(loader, "glProgramUniform2f", []);
5611         _ProgramUniform2fv = cast(PFN_glProgramUniform2fv)loadSymbol(loader, "glProgramUniform2fv", []);
5612         _ProgramUniform2d = cast(PFN_glProgramUniform2d)loadSymbol(loader, "glProgramUniform2d", []);
5613         _ProgramUniform2dv = cast(PFN_glProgramUniform2dv)loadSymbol(loader, "glProgramUniform2dv", []);
5614         _ProgramUniform2ui = cast(PFN_glProgramUniform2ui)loadSymbol(loader, "glProgramUniform2ui", []);
5615         _ProgramUniform2uiv = cast(PFN_glProgramUniform2uiv)loadSymbol(loader, "glProgramUniform2uiv", []);
5616         _ProgramUniform3i = cast(PFN_glProgramUniform3i)loadSymbol(loader, "glProgramUniform3i", []);
5617         _ProgramUniform3iv = cast(PFN_glProgramUniform3iv)loadSymbol(loader, "glProgramUniform3iv", []);
5618         _ProgramUniform3f = cast(PFN_glProgramUniform3f)loadSymbol(loader, "glProgramUniform3f", []);
5619         _ProgramUniform3fv = cast(PFN_glProgramUniform3fv)loadSymbol(loader, "glProgramUniform3fv", []);
5620         _ProgramUniform3d = cast(PFN_glProgramUniform3d)loadSymbol(loader, "glProgramUniform3d", []);
5621         _ProgramUniform3dv = cast(PFN_glProgramUniform3dv)loadSymbol(loader, "glProgramUniform3dv", []);
5622         _ProgramUniform3ui = cast(PFN_glProgramUniform3ui)loadSymbol(loader, "glProgramUniform3ui", []);
5623         _ProgramUniform3uiv = cast(PFN_glProgramUniform3uiv)loadSymbol(loader, "glProgramUniform3uiv", []);
5624         _ProgramUniform4i = cast(PFN_glProgramUniform4i)loadSymbol(loader, "glProgramUniform4i", []);
5625         _ProgramUniform4iv = cast(PFN_glProgramUniform4iv)loadSymbol(loader, "glProgramUniform4iv", []);
5626         _ProgramUniform4f = cast(PFN_glProgramUniform4f)loadSymbol(loader, "glProgramUniform4f", []);
5627         _ProgramUniform4fv = cast(PFN_glProgramUniform4fv)loadSymbol(loader, "glProgramUniform4fv", []);
5628         _ProgramUniform4d = cast(PFN_glProgramUniform4d)loadSymbol(loader, "glProgramUniform4d", []);
5629         _ProgramUniform4dv = cast(PFN_glProgramUniform4dv)loadSymbol(loader, "glProgramUniform4dv", []);
5630         _ProgramUniform4ui = cast(PFN_glProgramUniform4ui)loadSymbol(loader, "glProgramUniform4ui", []);
5631         _ProgramUniform4uiv = cast(PFN_glProgramUniform4uiv)loadSymbol(loader, "glProgramUniform4uiv", []);
5632         _ProgramUniformMatrix2fv = cast(PFN_glProgramUniformMatrix2fv)loadSymbol(loader, "glProgramUniformMatrix2fv", []);
5633         _ProgramUniformMatrix3fv = cast(PFN_glProgramUniformMatrix3fv)loadSymbol(loader, "glProgramUniformMatrix3fv", []);
5634         _ProgramUniformMatrix4fv = cast(PFN_glProgramUniformMatrix4fv)loadSymbol(loader, "glProgramUniformMatrix4fv", []);
5635         _ProgramUniformMatrix2dv = cast(PFN_glProgramUniformMatrix2dv)loadSymbol(loader, "glProgramUniformMatrix2dv", []);
5636         _ProgramUniformMatrix3dv = cast(PFN_glProgramUniformMatrix3dv)loadSymbol(loader, "glProgramUniformMatrix3dv", []);
5637         _ProgramUniformMatrix4dv = cast(PFN_glProgramUniformMatrix4dv)loadSymbol(loader, "glProgramUniformMatrix4dv", []);
5638         _ProgramUniformMatrix2x3fv = cast(PFN_glProgramUniformMatrix2x3fv)loadSymbol(loader, "glProgramUniformMatrix2x3fv", []);
5639         _ProgramUniformMatrix3x2fv = cast(PFN_glProgramUniformMatrix3x2fv)loadSymbol(loader, "glProgramUniformMatrix3x2fv", []);
5640         _ProgramUniformMatrix2x4fv = cast(PFN_glProgramUniformMatrix2x4fv)loadSymbol(loader, "glProgramUniformMatrix2x4fv", []);
5641         _ProgramUniformMatrix4x2fv = cast(PFN_glProgramUniformMatrix4x2fv)loadSymbol(loader, "glProgramUniformMatrix4x2fv", []);
5642         _ProgramUniformMatrix3x4fv = cast(PFN_glProgramUniformMatrix3x4fv)loadSymbol(loader, "glProgramUniformMatrix3x4fv", []);
5643         _ProgramUniformMatrix4x3fv = cast(PFN_glProgramUniformMatrix4x3fv)loadSymbol(loader, "glProgramUniformMatrix4x3fv", []);
5644         _ProgramUniformMatrix2x3dv = cast(PFN_glProgramUniformMatrix2x3dv)loadSymbol(loader, "glProgramUniformMatrix2x3dv", []);
5645         _ProgramUniformMatrix3x2dv = cast(PFN_glProgramUniformMatrix3x2dv)loadSymbol(loader, "glProgramUniformMatrix3x2dv", []);
5646         _ProgramUniformMatrix2x4dv = cast(PFN_glProgramUniformMatrix2x4dv)loadSymbol(loader, "glProgramUniformMatrix2x4dv", []);
5647         _ProgramUniformMatrix4x2dv = cast(PFN_glProgramUniformMatrix4x2dv)loadSymbol(loader, "glProgramUniformMatrix4x2dv", []);
5648         _ProgramUniformMatrix3x4dv = cast(PFN_glProgramUniformMatrix3x4dv)loadSymbol(loader, "glProgramUniformMatrix3x4dv", []);
5649         _ProgramUniformMatrix4x3dv = cast(PFN_glProgramUniformMatrix4x3dv)loadSymbol(loader, "glProgramUniformMatrix4x3dv", []);
5650         _ValidateProgramPipeline = cast(PFN_glValidateProgramPipeline)loadSymbol(loader, "glValidateProgramPipeline", []);
5651         _GetProgramPipelineInfoLog = cast(PFN_glGetProgramPipelineInfoLog)loadSymbol(loader, "glGetProgramPipelineInfoLog", []);
5652         _VertexAttribL1d = cast(PFN_glVertexAttribL1d)loadSymbol(loader, "glVertexAttribL1d", []);
5653         _VertexAttribL2d = cast(PFN_glVertexAttribL2d)loadSymbol(loader, "glVertexAttribL2d", []);
5654         _VertexAttribL3d = cast(PFN_glVertexAttribL3d)loadSymbol(loader, "glVertexAttribL3d", []);
5655         _VertexAttribL4d = cast(PFN_glVertexAttribL4d)loadSymbol(loader, "glVertexAttribL4d", []);
5656         _VertexAttribL1dv = cast(PFN_glVertexAttribL1dv)loadSymbol(loader, "glVertexAttribL1dv", []);
5657         _VertexAttribL2dv = cast(PFN_glVertexAttribL2dv)loadSymbol(loader, "glVertexAttribL2dv", []);
5658         _VertexAttribL3dv = cast(PFN_glVertexAttribL3dv)loadSymbol(loader, "glVertexAttribL3dv", []);
5659         _VertexAttribL4dv = cast(PFN_glVertexAttribL4dv)loadSymbol(loader, "glVertexAttribL4dv", []);
5660         _VertexAttribLPointer = cast(PFN_glVertexAttribLPointer)loadSymbol(loader, "glVertexAttribLPointer", []);
5661         _GetVertexAttribLdv = cast(PFN_glGetVertexAttribLdv)loadSymbol(loader, "glGetVertexAttribLdv", []);
5662         _ViewportArrayv = cast(PFN_glViewportArrayv)loadSymbol(loader, "glViewportArrayv", []);
5663         _ViewportIndexedf = cast(PFN_glViewportIndexedf)loadSymbol(loader, "glViewportIndexedf", []);
5664         _ViewportIndexedfv = cast(PFN_glViewportIndexedfv)loadSymbol(loader, "glViewportIndexedfv", []);
5665         _ScissorArrayv = cast(PFN_glScissorArrayv)loadSymbol(loader, "glScissorArrayv", []);
5666         _ScissorIndexed = cast(PFN_glScissorIndexed)loadSymbol(loader, "glScissorIndexed", []);
5667         _ScissorIndexedv = cast(PFN_glScissorIndexedv)loadSymbol(loader, "glScissorIndexedv", []);
5668         _DepthRangeArrayv = cast(PFN_glDepthRangeArrayv)loadSymbol(loader, "glDepthRangeArrayv", []);
5669         _DepthRangeIndexed = cast(PFN_glDepthRangeIndexed)loadSymbol(loader, "glDepthRangeIndexed", []);
5670         _GetFloati_v = cast(PFN_glGetFloati_v)loadSymbol(loader, "glGetFloati_v", []);
5671         _GetDoublei_v = cast(PFN_glGetDoublei_v)loadSymbol(loader, "glGetDoublei_v", []);
5672 
5673         // GL_VERSION_4_2
5674         _DrawArraysInstancedBaseInstance = cast(PFN_glDrawArraysInstancedBaseInstance)loadSymbol(loader, "glDrawArraysInstancedBaseInstance", []);
5675         _DrawElementsInstancedBaseInstance = cast(PFN_glDrawElementsInstancedBaseInstance)loadSymbol(loader, "glDrawElementsInstancedBaseInstance", []);
5676         _DrawElementsInstancedBaseVertexBaseInstance = cast(PFN_glDrawElementsInstancedBaseVertexBaseInstance)loadSymbol(loader, "glDrawElementsInstancedBaseVertexBaseInstance", []);
5677         _GetInternalformativ = cast(PFN_glGetInternalformativ)loadSymbol(loader, "glGetInternalformativ", []);
5678         _GetActiveAtomicCounterBufferiv = cast(PFN_glGetActiveAtomicCounterBufferiv)loadSymbol(loader, "glGetActiveAtomicCounterBufferiv", []);
5679         _BindImageTexture = cast(PFN_glBindImageTexture)loadSymbol(loader, "glBindImageTexture", []);
5680         _MemoryBarrier = cast(PFN_glMemoryBarrier)loadSymbol(loader, "glMemoryBarrier", []);
5681         _TexStorage1D = cast(PFN_glTexStorage1D)loadSymbol(loader, "glTexStorage1D", []);
5682         _TexStorage2D = cast(PFN_glTexStorage2D)loadSymbol(loader, "glTexStorage2D", []);
5683         _TexStorage3D = cast(PFN_glTexStorage3D)loadSymbol(loader, "glTexStorage3D", []);
5684         _DrawTransformFeedbackInstanced = cast(PFN_glDrawTransformFeedbackInstanced)loadSymbol(loader, "glDrawTransformFeedbackInstanced", []);
5685         _DrawTransformFeedbackStreamInstanced = cast(PFN_glDrawTransformFeedbackStreamInstanced)loadSymbol(loader, "glDrawTransformFeedbackStreamInstanced", []);
5686 
5687         // GL_VERSION_4_3
5688         _ClearBufferData = cast(PFN_glClearBufferData)loadSymbol(loader, "glClearBufferData", []);
5689         _ClearBufferSubData = cast(PFN_glClearBufferSubData)loadSymbol(loader, "glClearBufferSubData", []);
5690         _DispatchCompute = cast(PFN_glDispatchCompute)loadSymbol(loader, "glDispatchCompute", []);
5691         _DispatchComputeIndirect = cast(PFN_glDispatchComputeIndirect)loadSymbol(loader, "glDispatchComputeIndirect", []);
5692         _CopyImageSubData = cast(PFN_glCopyImageSubData)loadSymbol(loader, "glCopyImageSubData", []);
5693         _FramebufferParameteri = cast(PFN_glFramebufferParameteri)loadSymbol(loader, "glFramebufferParameteri", []);
5694         _GetFramebufferParameteriv = cast(PFN_glGetFramebufferParameteriv)loadSymbol(loader, "glGetFramebufferParameteriv", []);
5695         _GetInternalformati64v = cast(PFN_glGetInternalformati64v)loadSymbol(loader, "glGetInternalformati64v", []);
5696         _InvalidateTexSubImage = cast(PFN_glInvalidateTexSubImage)loadSymbol(loader, "glInvalidateTexSubImage", []);
5697         _InvalidateTexImage = cast(PFN_glInvalidateTexImage)loadSymbol(loader, "glInvalidateTexImage", []);
5698         _InvalidateBufferSubData = cast(PFN_glInvalidateBufferSubData)loadSymbol(loader, "glInvalidateBufferSubData", []);
5699         _InvalidateBufferData = cast(PFN_glInvalidateBufferData)loadSymbol(loader, "glInvalidateBufferData", []);
5700         _InvalidateFramebuffer = cast(PFN_glInvalidateFramebuffer)loadSymbol(loader, "glInvalidateFramebuffer", []);
5701         _InvalidateSubFramebuffer = cast(PFN_glInvalidateSubFramebuffer)loadSymbol(loader, "glInvalidateSubFramebuffer", []);
5702         _MultiDrawArraysIndirect = cast(PFN_glMultiDrawArraysIndirect)loadSymbol(loader, "glMultiDrawArraysIndirect", []);
5703         _MultiDrawElementsIndirect = cast(PFN_glMultiDrawElementsIndirect)loadSymbol(loader, "glMultiDrawElementsIndirect", []);
5704         _GetProgramInterfaceiv = cast(PFN_glGetProgramInterfaceiv)loadSymbol(loader, "glGetProgramInterfaceiv", []);
5705         _GetProgramResourceIndex = cast(PFN_glGetProgramResourceIndex)loadSymbol(loader, "glGetProgramResourceIndex", []);
5706         _GetProgramResourceName = cast(PFN_glGetProgramResourceName)loadSymbol(loader, "glGetProgramResourceName", []);
5707         _GetProgramResourceiv = cast(PFN_glGetProgramResourceiv)loadSymbol(loader, "glGetProgramResourceiv", []);
5708         _GetProgramResourceLocation = cast(PFN_glGetProgramResourceLocation)loadSymbol(loader, "glGetProgramResourceLocation", []);
5709         _GetProgramResourceLocationIndex = cast(PFN_glGetProgramResourceLocationIndex)loadSymbol(loader, "glGetProgramResourceLocationIndex", []);
5710         _ShaderStorageBlockBinding = cast(PFN_glShaderStorageBlockBinding)loadSymbol(loader, "glShaderStorageBlockBinding", []);
5711         _TexBufferRange = cast(PFN_glTexBufferRange)loadSymbol(loader, "glTexBufferRange", []);
5712         _TexStorage2DMultisample = cast(PFN_glTexStorage2DMultisample)loadSymbol(loader, "glTexStorage2DMultisample", []);
5713         _TexStorage3DMultisample = cast(PFN_glTexStorage3DMultisample)loadSymbol(loader, "glTexStorage3DMultisample", []);
5714         _TextureView = cast(PFN_glTextureView)loadSymbol(loader, "glTextureView", []);
5715         _BindVertexBuffer = cast(PFN_glBindVertexBuffer)loadSymbol(loader, "glBindVertexBuffer", []);
5716         _VertexAttribFormat = cast(PFN_glVertexAttribFormat)loadSymbol(loader, "glVertexAttribFormat", []);
5717         _VertexAttribIFormat = cast(PFN_glVertexAttribIFormat)loadSymbol(loader, "glVertexAttribIFormat", []);
5718         _VertexAttribLFormat = cast(PFN_glVertexAttribLFormat)loadSymbol(loader, "glVertexAttribLFormat", []);
5719         _VertexAttribBinding = cast(PFN_glVertexAttribBinding)loadSymbol(loader, "glVertexAttribBinding", []);
5720         _VertexBindingDivisor = cast(PFN_glVertexBindingDivisor)loadSymbol(loader, "glVertexBindingDivisor", []);
5721         _DebugMessageControl = cast(PFN_glDebugMessageControl)loadSymbol(loader, "glDebugMessageControl", []);
5722         _DebugMessageInsert = cast(PFN_glDebugMessageInsert)loadSymbol(loader, "glDebugMessageInsert", []);
5723         _DebugMessageCallback = cast(PFN_glDebugMessageCallback)loadSymbol(loader, "glDebugMessageCallback", []);
5724         _GetDebugMessageLog = cast(PFN_glGetDebugMessageLog)loadSymbol(loader, "glGetDebugMessageLog", []);
5725         _PushDebugGroup = cast(PFN_glPushDebugGroup)loadSymbol(loader, "glPushDebugGroup", []);
5726         _PopDebugGroup = cast(PFN_glPopDebugGroup)loadSymbol(loader, "glPopDebugGroup", []);
5727         _ObjectLabel = cast(PFN_glObjectLabel)loadSymbol(loader, "glObjectLabel", []);
5728         _GetObjectLabel = cast(PFN_glGetObjectLabel)loadSymbol(loader, "glGetObjectLabel", []);
5729         _ObjectPtrLabel = cast(PFN_glObjectPtrLabel)loadSymbol(loader, "glObjectPtrLabel", []);
5730         _GetObjectPtrLabel = cast(PFN_glGetObjectPtrLabel)loadSymbol(loader, "glGetObjectPtrLabel", []);
5731 
5732         // GL_VERSION_4_4
5733         _BufferStorage = cast(PFN_glBufferStorage)loadSymbol(loader, "glBufferStorage", []);
5734         _ClearTexImage = cast(PFN_glClearTexImage)loadSymbol(loader, "glClearTexImage", []);
5735         _ClearTexSubImage = cast(PFN_glClearTexSubImage)loadSymbol(loader, "glClearTexSubImage", []);
5736         _BindBuffersBase = cast(PFN_glBindBuffersBase)loadSymbol(loader, "glBindBuffersBase", []);
5737         _BindBuffersRange = cast(PFN_glBindBuffersRange)loadSymbol(loader, "glBindBuffersRange", []);
5738         _BindTextures = cast(PFN_glBindTextures)loadSymbol(loader, "glBindTextures", []);
5739         _BindSamplers = cast(PFN_glBindSamplers)loadSymbol(loader, "glBindSamplers", []);
5740         _BindImageTextures = cast(PFN_glBindImageTextures)loadSymbol(loader, "glBindImageTextures", []);
5741         _BindVertexBuffers = cast(PFN_glBindVertexBuffers)loadSymbol(loader, "glBindVertexBuffers", []);
5742 
5743         // GL_VERSION_4_5
5744         _ClipControl = cast(PFN_glClipControl)loadSymbol(loader, "glClipControl", []);
5745         _CreateTransformFeedbacks = cast(PFN_glCreateTransformFeedbacks)loadSymbol(loader, "glCreateTransformFeedbacks", []);
5746         _TransformFeedbackBufferBase = cast(PFN_glTransformFeedbackBufferBase)loadSymbol(loader, "glTransformFeedbackBufferBase", []);
5747         _TransformFeedbackBufferRange = cast(PFN_glTransformFeedbackBufferRange)loadSymbol(loader, "glTransformFeedbackBufferRange", []);
5748         _GetTransformFeedbackiv = cast(PFN_glGetTransformFeedbackiv)loadSymbol(loader, "glGetTransformFeedbackiv", []);
5749         _GetTransformFeedbacki_v = cast(PFN_glGetTransformFeedbacki_v)loadSymbol(loader, "glGetTransformFeedbacki_v", []);
5750         _GetTransformFeedbacki64_v = cast(PFN_glGetTransformFeedbacki64_v)loadSymbol(loader, "glGetTransformFeedbacki64_v", []);
5751         _CreateBuffers = cast(PFN_glCreateBuffers)loadSymbol(loader, "glCreateBuffers", []);
5752         _NamedBufferStorage = cast(PFN_glNamedBufferStorage)loadSymbol(loader, "glNamedBufferStorage", []);
5753         _NamedBufferData = cast(PFN_glNamedBufferData)loadSymbol(loader, "glNamedBufferData", []);
5754         _NamedBufferSubData = cast(PFN_glNamedBufferSubData)loadSymbol(loader, "glNamedBufferSubData", []);
5755         _CopyNamedBufferSubData = cast(PFN_glCopyNamedBufferSubData)loadSymbol(loader, "glCopyNamedBufferSubData", []);
5756         _ClearNamedBufferData = cast(PFN_glClearNamedBufferData)loadSymbol(loader, "glClearNamedBufferData", []);
5757         _ClearNamedBufferSubData = cast(PFN_glClearNamedBufferSubData)loadSymbol(loader, "glClearNamedBufferSubData", []);
5758         _MapNamedBuffer = cast(PFN_glMapNamedBuffer)loadSymbol(loader, "glMapNamedBuffer", []);
5759         _MapNamedBufferRange = cast(PFN_glMapNamedBufferRange)loadSymbol(loader, "glMapNamedBufferRange", []);
5760         _UnmapNamedBuffer = cast(PFN_glUnmapNamedBuffer)loadSymbol(loader, "glUnmapNamedBuffer", []);
5761         _FlushMappedNamedBufferRange = cast(PFN_glFlushMappedNamedBufferRange)loadSymbol(loader, "glFlushMappedNamedBufferRange", []);
5762         _GetNamedBufferParameteriv = cast(PFN_glGetNamedBufferParameteriv)loadSymbol(loader, "glGetNamedBufferParameteriv", []);
5763         _GetNamedBufferParameteri64v = cast(PFN_glGetNamedBufferParameteri64v)loadSymbol(loader, "glGetNamedBufferParameteri64v", []);
5764         _GetNamedBufferPointerv = cast(PFN_glGetNamedBufferPointerv)loadSymbol(loader, "glGetNamedBufferPointerv", []);
5765         _GetNamedBufferSubData = cast(PFN_glGetNamedBufferSubData)loadSymbol(loader, "glGetNamedBufferSubData", []);
5766         _CreateFramebuffers = cast(PFN_glCreateFramebuffers)loadSymbol(loader, "glCreateFramebuffers", []);
5767         _NamedFramebufferRenderbuffer = cast(PFN_glNamedFramebufferRenderbuffer)loadSymbol(loader, "glNamedFramebufferRenderbuffer", []);
5768         _NamedFramebufferParameteri = cast(PFN_glNamedFramebufferParameteri)loadSymbol(loader, "glNamedFramebufferParameteri", []);
5769         _NamedFramebufferTexture = cast(PFN_glNamedFramebufferTexture)loadSymbol(loader, "glNamedFramebufferTexture", []);
5770         _NamedFramebufferTextureLayer = cast(PFN_glNamedFramebufferTextureLayer)loadSymbol(loader, "glNamedFramebufferTextureLayer", []);
5771         _NamedFramebufferDrawBuffer = cast(PFN_glNamedFramebufferDrawBuffer)loadSymbol(loader, "glNamedFramebufferDrawBuffer", []);
5772         _NamedFramebufferDrawBuffers = cast(PFN_glNamedFramebufferDrawBuffers)loadSymbol(loader, "glNamedFramebufferDrawBuffers", []);
5773         _NamedFramebufferReadBuffer = cast(PFN_glNamedFramebufferReadBuffer)loadSymbol(loader, "glNamedFramebufferReadBuffer", []);
5774         _InvalidateNamedFramebufferData = cast(PFN_glInvalidateNamedFramebufferData)loadSymbol(loader, "glInvalidateNamedFramebufferData", []);
5775         _InvalidateNamedFramebufferSubData = cast(PFN_glInvalidateNamedFramebufferSubData)loadSymbol(loader, "glInvalidateNamedFramebufferSubData", []);
5776         _ClearNamedFramebufferiv = cast(PFN_glClearNamedFramebufferiv)loadSymbol(loader, "glClearNamedFramebufferiv", []);
5777         _ClearNamedFramebufferuiv = cast(PFN_glClearNamedFramebufferuiv)loadSymbol(loader, "glClearNamedFramebufferuiv", []);
5778         _ClearNamedFramebufferfv = cast(PFN_glClearNamedFramebufferfv)loadSymbol(loader, "glClearNamedFramebufferfv", []);
5779         _ClearNamedFramebufferfi = cast(PFN_glClearNamedFramebufferfi)loadSymbol(loader, "glClearNamedFramebufferfi", []);
5780         _BlitNamedFramebuffer = cast(PFN_glBlitNamedFramebuffer)loadSymbol(loader, "glBlitNamedFramebuffer", []);
5781         _CheckNamedFramebufferStatus = cast(PFN_glCheckNamedFramebufferStatus)loadSymbol(loader, "glCheckNamedFramebufferStatus", []);
5782         _GetNamedFramebufferParameteriv = cast(PFN_glGetNamedFramebufferParameteriv)loadSymbol(loader, "glGetNamedFramebufferParameteriv", []);
5783         _GetNamedFramebufferAttachmentParameteriv = cast(PFN_glGetNamedFramebufferAttachmentParameteriv)loadSymbol(loader, "glGetNamedFramebufferAttachmentParameteriv", []);
5784         _CreateRenderbuffers = cast(PFN_glCreateRenderbuffers)loadSymbol(loader, "glCreateRenderbuffers", []);
5785         _NamedRenderbufferStorage = cast(PFN_glNamedRenderbufferStorage)loadSymbol(loader, "glNamedRenderbufferStorage", []);
5786         _NamedRenderbufferStorageMultisample = cast(PFN_glNamedRenderbufferStorageMultisample)loadSymbol(loader, "glNamedRenderbufferStorageMultisample", []);
5787         _GetNamedRenderbufferParameteriv = cast(PFN_glGetNamedRenderbufferParameteriv)loadSymbol(loader, "glGetNamedRenderbufferParameteriv", []);
5788         _CreateTextures = cast(PFN_glCreateTextures)loadSymbol(loader, "glCreateTextures", []);
5789         _TextureBuffer = cast(PFN_glTextureBuffer)loadSymbol(loader, "glTextureBuffer", []);
5790         _TextureBufferRange = cast(PFN_glTextureBufferRange)loadSymbol(loader, "glTextureBufferRange", []);
5791         _TextureStorage1D = cast(PFN_glTextureStorage1D)loadSymbol(loader, "glTextureStorage1D", []);
5792         _TextureStorage2D = cast(PFN_glTextureStorage2D)loadSymbol(loader, "glTextureStorage2D", []);
5793         _TextureStorage3D = cast(PFN_glTextureStorage3D)loadSymbol(loader, "glTextureStorage3D", []);
5794         _TextureStorage2DMultisample = cast(PFN_glTextureStorage2DMultisample)loadSymbol(loader, "glTextureStorage2DMultisample", []);
5795         _TextureStorage3DMultisample = cast(PFN_glTextureStorage3DMultisample)loadSymbol(loader, "glTextureStorage3DMultisample", []);
5796         _TextureSubImage1D = cast(PFN_glTextureSubImage1D)loadSymbol(loader, "glTextureSubImage1D", []);
5797         _TextureSubImage2D = cast(PFN_glTextureSubImage2D)loadSymbol(loader, "glTextureSubImage2D", []);
5798         _TextureSubImage3D = cast(PFN_glTextureSubImage3D)loadSymbol(loader, "glTextureSubImage3D", []);
5799         _CompressedTextureSubImage1D = cast(PFN_glCompressedTextureSubImage1D)loadSymbol(loader, "glCompressedTextureSubImage1D", []);
5800         _CompressedTextureSubImage2D = cast(PFN_glCompressedTextureSubImage2D)loadSymbol(loader, "glCompressedTextureSubImage2D", []);
5801         _CompressedTextureSubImage3D = cast(PFN_glCompressedTextureSubImage3D)loadSymbol(loader, "glCompressedTextureSubImage3D", []);
5802         _CopyTextureSubImage1D = cast(PFN_glCopyTextureSubImage1D)loadSymbol(loader, "glCopyTextureSubImage1D", []);
5803         _CopyTextureSubImage2D = cast(PFN_glCopyTextureSubImage2D)loadSymbol(loader, "glCopyTextureSubImage2D", []);
5804         _CopyTextureSubImage3D = cast(PFN_glCopyTextureSubImage3D)loadSymbol(loader, "glCopyTextureSubImage3D", []);
5805         _TextureParameterf = cast(PFN_glTextureParameterf)loadSymbol(loader, "glTextureParameterf", []);
5806         _TextureParameterfv = cast(PFN_glTextureParameterfv)loadSymbol(loader, "glTextureParameterfv", []);
5807         _TextureParameteri = cast(PFN_glTextureParameteri)loadSymbol(loader, "glTextureParameteri", []);
5808         _TextureParameterIiv = cast(PFN_glTextureParameterIiv)loadSymbol(loader, "glTextureParameterIiv", []);
5809         _TextureParameterIuiv = cast(PFN_glTextureParameterIuiv)loadSymbol(loader, "glTextureParameterIuiv", []);
5810         _TextureParameteriv = cast(PFN_glTextureParameteriv)loadSymbol(loader, "glTextureParameteriv", []);
5811         _GenerateTextureMipmap = cast(PFN_glGenerateTextureMipmap)loadSymbol(loader, "glGenerateTextureMipmap", []);
5812         _BindTextureUnit = cast(PFN_glBindTextureUnit)loadSymbol(loader, "glBindTextureUnit", []);
5813         _GetTextureImage = cast(PFN_glGetTextureImage)loadSymbol(loader, "glGetTextureImage", []);
5814         _GetCompressedTextureImage = cast(PFN_glGetCompressedTextureImage)loadSymbol(loader, "glGetCompressedTextureImage", []);
5815         _GetTextureLevelParameterfv = cast(PFN_glGetTextureLevelParameterfv)loadSymbol(loader, "glGetTextureLevelParameterfv", []);
5816         _GetTextureLevelParameteriv = cast(PFN_glGetTextureLevelParameteriv)loadSymbol(loader, "glGetTextureLevelParameteriv", []);
5817         _GetTextureParameterfv = cast(PFN_glGetTextureParameterfv)loadSymbol(loader, "glGetTextureParameterfv", []);
5818         _GetTextureParameterIiv = cast(PFN_glGetTextureParameterIiv)loadSymbol(loader, "glGetTextureParameterIiv", []);
5819         _GetTextureParameterIuiv = cast(PFN_glGetTextureParameterIuiv)loadSymbol(loader, "glGetTextureParameterIuiv", []);
5820         _GetTextureParameteriv = cast(PFN_glGetTextureParameteriv)loadSymbol(loader, "glGetTextureParameteriv", []);
5821         _CreateVertexArrays = cast(PFN_glCreateVertexArrays)loadSymbol(loader, "glCreateVertexArrays", []);
5822         _DisableVertexArrayAttrib = cast(PFN_glDisableVertexArrayAttrib)loadSymbol(loader, "glDisableVertexArrayAttrib", []);
5823         _EnableVertexArrayAttrib = cast(PFN_glEnableVertexArrayAttrib)loadSymbol(loader, "glEnableVertexArrayAttrib", []);
5824         _VertexArrayElementBuffer = cast(PFN_glVertexArrayElementBuffer)loadSymbol(loader, "glVertexArrayElementBuffer", []);
5825         _VertexArrayVertexBuffer = cast(PFN_glVertexArrayVertexBuffer)loadSymbol(loader, "glVertexArrayVertexBuffer", []);
5826         _VertexArrayVertexBuffers = cast(PFN_glVertexArrayVertexBuffers)loadSymbol(loader, "glVertexArrayVertexBuffers", []);
5827         _VertexArrayAttribBinding = cast(PFN_glVertexArrayAttribBinding)loadSymbol(loader, "glVertexArrayAttribBinding", []);
5828         _VertexArrayAttribFormat = cast(PFN_glVertexArrayAttribFormat)loadSymbol(loader, "glVertexArrayAttribFormat", []);
5829         _VertexArrayAttribIFormat = cast(PFN_glVertexArrayAttribIFormat)loadSymbol(loader, "glVertexArrayAttribIFormat", []);
5830         _VertexArrayAttribLFormat = cast(PFN_glVertexArrayAttribLFormat)loadSymbol(loader, "glVertexArrayAttribLFormat", []);
5831         _VertexArrayBindingDivisor = cast(PFN_glVertexArrayBindingDivisor)loadSymbol(loader, "glVertexArrayBindingDivisor", []);
5832         _GetVertexArrayiv = cast(PFN_glGetVertexArrayiv)loadSymbol(loader, "glGetVertexArrayiv", []);
5833         _GetVertexArrayIndexediv = cast(PFN_glGetVertexArrayIndexediv)loadSymbol(loader, "glGetVertexArrayIndexediv", []);
5834         _GetVertexArrayIndexed64iv = cast(PFN_glGetVertexArrayIndexed64iv)loadSymbol(loader, "glGetVertexArrayIndexed64iv", []);
5835         _CreateSamplers = cast(PFN_glCreateSamplers)loadSymbol(loader, "glCreateSamplers", []);
5836         _CreateProgramPipelines = cast(PFN_glCreateProgramPipelines)loadSymbol(loader, "glCreateProgramPipelines", []);
5837         _CreateQueries = cast(PFN_glCreateQueries)loadSymbol(loader, "glCreateQueries", []);
5838         _GetQueryBufferObjecti64v = cast(PFN_glGetQueryBufferObjecti64v)loadSymbol(loader, "glGetQueryBufferObjecti64v", []);
5839         _GetQueryBufferObjectiv = cast(PFN_glGetQueryBufferObjectiv)loadSymbol(loader, "glGetQueryBufferObjectiv", []);
5840         _GetQueryBufferObjectui64v = cast(PFN_glGetQueryBufferObjectui64v)loadSymbol(loader, "glGetQueryBufferObjectui64v", []);
5841         _GetQueryBufferObjectuiv = cast(PFN_glGetQueryBufferObjectuiv)loadSymbol(loader, "glGetQueryBufferObjectuiv", []);
5842         _MemoryBarrierByRegion = cast(PFN_glMemoryBarrierByRegion)loadSymbol(loader, "glMemoryBarrierByRegion", []);
5843         _GetTextureSubImage = cast(PFN_glGetTextureSubImage)loadSymbol(loader, "glGetTextureSubImage", []);
5844         _GetCompressedTextureSubImage = cast(PFN_glGetCompressedTextureSubImage)loadSymbol(loader, "glGetCompressedTextureSubImage", []);
5845         _GetGraphicsResetStatus = cast(PFN_glGetGraphicsResetStatus)loadSymbol(loader, "glGetGraphicsResetStatus", []);
5846         _GetnCompressedTexImage = cast(PFN_glGetnCompressedTexImage)loadSymbol(loader, "glGetnCompressedTexImage", []);
5847         _GetnTexImage = cast(PFN_glGetnTexImage)loadSymbol(loader, "glGetnTexImage", []);
5848         _GetnUniformdv = cast(PFN_glGetnUniformdv)loadSymbol(loader, "glGetnUniformdv", []);
5849         _GetnUniformfv = cast(PFN_glGetnUniformfv)loadSymbol(loader, "glGetnUniformfv", []);
5850         _GetnUniformiv = cast(PFN_glGetnUniformiv)loadSymbol(loader, "glGetnUniformiv", []);
5851         _GetnUniformuiv = cast(PFN_glGetnUniformuiv)loadSymbol(loader, "glGetnUniformuiv", []);
5852         _ReadnPixels = cast(PFN_glReadnPixels)loadSymbol(loader, "glReadnPixels", []);
5853         _TextureBarrier = cast(PFN_glTextureBarrier)loadSymbol(loader, "glTextureBarrier", []);
5854 
5855         // GL_VERSION_4_6
5856         _SpecializeShader = cast(PFN_glSpecializeShader)loadSymbol(loader, "glSpecializeShader", []);
5857         _MultiDrawArraysIndirectCount = cast(PFN_glMultiDrawArraysIndirectCount)loadSymbol(loader, "glMultiDrawArraysIndirectCount", []);
5858         _MultiDrawElementsIndirectCount = cast(PFN_glMultiDrawElementsIndirectCount)loadSymbol(loader, "glMultiDrawElementsIndirectCount", []);
5859         _PolygonOffsetClamp = cast(PFN_glPolygonOffsetClamp)loadSymbol(loader, "glPolygonOffsetClamp", ["glPolygonOffsetClampEXT"]);
5860     }
5861 
5862     private static void* loadSymbol(SymbolLoader loader, in string name, in string[] aliases) {
5863         void* sym = loader(name);
5864         if (sym) return sym;
5865         foreach (n; aliases) {
5866             sym = loader(n);
5867             if (sym) return sym;
5868         }
5869         return null;
5870     }
5871 
5872     /// Commands for GL_VERSION_1_0
5873     public void CullFace (GLenum mode) const {
5874         assert(_CullFace !is null, "OpenGL command glCullFace was not loaded");
5875         return _CullFace (mode);
5876     }
5877     /// ditto
5878     public void FrontFace (GLenum mode) const {
5879         assert(_FrontFace !is null, "OpenGL command glFrontFace was not loaded");
5880         return _FrontFace (mode);
5881     }
5882     /// ditto
5883     public void Hint (GLenum target, GLenum mode) const {
5884         assert(_Hint !is null, "OpenGL command glHint was not loaded");
5885         return _Hint (target, mode);
5886     }
5887     /// ditto
5888     public void LineWidth (GLfloat width) const {
5889         assert(_LineWidth !is null, "OpenGL command glLineWidth was not loaded");
5890         return _LineWidth (width);
5891     }
5892     /// ditto
5893     public void PointSize (GLfloat size) const {
5894         assert(_PointSize !is null, "OpenGL command glPointSize was not loaded");
5895         return _PointSize (size);
5896     }
5897     /// ditto
5898     public void PolygonMode (GLenum face, GLenum mode) const {
5899         assert(_PolygonMode !is null, "OpenGL command glPolygonMode was not loaded");
5900         return _PolygonMode (face, mode);
5901     }
5902     /// ditto
5903     public void Scissor (GLint x, GLint y, GLsizei width, GLsizei height) const {
5904         assert(_Scissor !is null, "OpenGL command glScissor was not loaded");
5905         return _Scissor (x, y, width, height);
5906     }
5907     /// ditto
5908     public void TexParameterf (GLenum target, GLenum pname, GLfloat param) const {
5909         assert(_TexParameterf !is null, "OpenGL command glTexParameterf was not loaded");
5910         return _TexParameterf (target, pname, param);
5911     }
5912     /// ditto
5913     public void TexParameterfv (GLenum target, GLenum pname, const(GLfloat)* params) const {
5914         assert(_TexParameterfv !is null, "OpenGL command glTexParameterfv was not loaded");
5915         return _TexParameterfv (target, pname, params);
5916     }
5917     /// ditto
5918     public void TexParameteri (GLenum target, GLenum pname, GLint param) const {
5919         assert(_TexParameteri !is null, "OpenGL command glTexParameteri was not loaded");
5920         return _TexParameteri (target, pname, param);
5921     }
5922     /// ditto
5923     public void TexParameteriv (GLenum target, GLenum pname, const(GLint)* params) const {
5924         assert(_TexParameteriv !is null, "OpenGL command glTexParameteriv was not loaded");
5925         return _TexParameteriv (target, pname, params);
5926     }
5927     /// ditto
5928     public void TexImage1D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const(void)* pixels) const {
5929         assert(_TexImage1D !is null, "OpenGL command glTexImage1D was not loaded");
5930         return _TexImage1D (target, level, internalformat, width, border, format, type, pixels);
5931     }
5932     /// ditto
5933     public void TexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const(void)* pixels) const {
5934         assert(_TexImage2D !is null, "OpenGL command glTexImage2D was not loaded");
5935         return _TexImage2D (target, level, internalformat, width, height, border, format, type, pixels);
5936     }
5937     /// ditto
5938     public void DrawBuffer (GLenum buf) const {
5939         assert(_DrawBuffer !is null, "OpenGL command glDrawBuffer was not loaded");
5940         return _DrawBuffer (buf);
5941     }
5942     /// ditto
5943     public void Clear (GLbitfield mask) const {
5944         assert(_Clear !is null, "OpenGL command glClear was not loaded");
5945         return _Clear (mask);
5946     }
5947     /// ditto
5948     public void ClearColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha) const {
5949         assert(_ClearColor !is null, "OpenGL command glClearColor was not loaded");
5950         return _ClearColor (red, green, blue, alpha);
5951     }
5952     /// ditto
5953     public void ClearStencil (GLint s) const {
5954         assert(_ClearStencil !is null, "OpenGL command glClearStencil was not loaded");
5955         return _ClearStencil (s);
5956     }
5957     /// ditto
5958     public void ClearDepth (GLdouble depth) const {
5959         assert(_ClearDepth !is null, "OpenGL command glClearDepth was not loaded");
5960         return _ClearDepth (depth);
5961     }
5962     /// ditto
5963     public void StencilMask (GLuint mask) const {
5964         assert(_StencilMask !is null, "OpenGL command glStencilMask was not loaded");
5965         return _StencilMask (mask);
5966     }
5967     /// ditto
5968     public void ColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha) const {
5969         assert(_ColorMask !is null, "OpenGL command glColorMask was not loaded");
5970         return _ColorMask (red, green, blue, alpha);
5971     }
5972     /// ditto
5973     public void DepthMask (GLboolean flag) const {
5974         assert(_DepthMask !is null, "OpenGL command glDepthMask was not loaded");
5975         return _DepthMask (flag);
5976     }
5977     /// ditto
5978     public void Disable (GLenum cap) const {
5979         assert(_Disable !is null, "OpenGL command glDisable was not loaded");
5980         return _Disable (cap);
5981     }
5982     /// ditto
5983     public void Enable (GLenum cap) const {
5984         assert(_Enable !is null, "OpenGL command glEnable was not loaded");
5985         return _Enable (cap);
5986     }
5987     /// ditto
5988     public void Finish () const {
5989         assert(_Finish !is null, "OpenGL command glFinish was not loaded");
5990         return _Finish ();
5991     }
5992     /// ditto
5993     public void Flush () const {
5994         assert(_Flush !is null, "OpenGL command glFlush was not loaded");
5995         return _Flush ();
5996     }
5997     /// ditto
5998     public void BlendFunc (GLenum sfactor, GLenum dfactor) const {
5999         assert(_BlendFunc !is null, "OpenGL command glBlendFunc was not loaded");
6000         return _BlendFunc (sfactor, dfactor);
6001     }
6002     /// ditto
6003     public void LogicOp (GLenum opcode) const {
6004         assert(_LogicOp !is null, "OpenGL command glLogicOp was not loaded");
6005         return _LogicOp (opcode);
6006     }
6007     /// ditto
6008     public void StencilFunc (GLenum func, GLint ref_, GLuint mask) const {
6009         assert(_StencilFunc !is null, "OpenGL command glStencilFunc was not loaded");
6010         return _StencilFunc (func, ref_, mask);
6011     }
6012     /// ditto
6013     public void StencilOp (GLenum fail, GLenum zfail, GLenum zpass) const {
6014         assert(_StencilOp !is null, "OpenGL command glStencilOp was not loaded");
6015         return _StencilOp (fail, zfail, zpass);
6016     }
6017     /// ditto
6018     public void DepthFunc (GLenum func) const {
6019         assert(_DepthFunc !is null, "OpenGL command glDepthFunc was not loaded");
6020         return _DepthFunc (func);
6021     }
6022     /// ditto
6023     public void PixelStoref (GLenum pname, GLfloat param) const {
6024         assert(_PixelStoref !is null, "OpenGL command glPixelStoref was not loaded");
6025         return _PixelStoref (pname, param);
6026     }
6027     /// ditto
6028     public void PixelStorei (GLenum pname, GLint param) const {
6029         assert(_PixelStorei !is null, "OpenGL command glPixelStorei was not loaded");
6030         return _PixelStorei (pname, param);
6031     }
6032     /// ditto
6033     public void ReadBuffer (GLenum src) const {
6034         assert(_ReadBuffer !is null, "OpenGL command glReadBuffer was not loaded");
6035         return _ReadBuffer (src);
6036     }
6037     /// ditto
6038     public void ReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void* pixels) const {
6039         assert(_ReadPixels !is null, "OpenGL command glReadPixels was not loaded");
6040         return _ReadPixels (x, y, width, height, format, type, pixels);
6041     }
6042     /// ditto
6043     public void GetBooleanv (GLenum pname, GLboolean* data) const {
6044         assert(_GetBooleanv !is null, "OpenGL command glGetBooleanv was not loaded");
6045         return _GetBooleanv (pname, data);
6046     }
6047     /// ditto
6048     public void GetDoublev (GLenum pname, GLdouble* data) const {
6049         assert(_GetDoublev !is null, "OpenGL command glGetDoublev was not loaded");
6050         return _GetDoublev (pname, data);
6051     }
6052     /// ditto
6053     public GLenum GetError () const {
6054         assert(_GetError !is null, "OpenGL command glGetError was not loaded");
6055         return _GetError ();
6056     }
6057     /// ditto
6058     public void GetFloatv (GLenum pname, GLfloat* data) const {
6059         assert(_GetFloatv !is null, "OpenGL command glGetFloatv was not loaded");
6060         return _GetFloatv (pname, data);
6061     }
6062     /// ditto
6063     public void GetIntegerv (GLenum pname, GLint* data) const {
6064         assert(_GetIntegerv !is null, "OpenGL command glGetIntegerv was not loaded");
6065         return _GetIntegerv (pname, data);
6066     }
6067     /// ditto
6068     public const(GLubyte)* GetString (GLenum name) const {
6069         assert(_GetString !is null, "OpenGL command glGetString was not loaded");
6070         return _GetString (name);
6071     }
6072     /// ditto
6073     public void GetTexImage (GLenum target, GLint level, GLenum format, GLenum type, void* pixels) const {
6074         assert(_GetTexImage !is null, "OpenGL command glGetTexImage was not loaded");
6075         return _GetTexImage (target, level, format, type, pixels);
6076     }
6077     /// ditto
6078     public void GetTexParameterfv (GLenum target, GLenum pname, GLfloat* params) const {
6079         assert(_GetTexParameterfv !is null, "OpenGL command glGetTexParameterfv was not loaded");
6080         return _GetTexParameterfv (target, pname, params);
6081     }
6082     /// ditto
6083     public void GetTexParameteriv (GLenum target, GLenum pname, GLint* params) const {
6084         assert(_GetTexParameteriv !is null, "OpenGL command glGetTexParameteriv was not loaded");
6085         return _GetTexParameteriv (target, pname, params);
6086     }
6087     /// ditto
6088     public void GetTexLevelParameterfv (GLenum target, GLint level, GLenum pname, GLfloat* params) const {
6089         assert(_GetTexLevelParameterfv !is null, "OpenGL command glGetTexLevelParameterfv was not loaded");
6090         return _GetTexLevelParameterfv (target, level, pname, params);
6091     }
6092     /// ditto
6093     public void GetTexLevelParameteriv (GLenum target, GLint level, GLenum pname, GLint* params) const {
6094         assert(_GetTexLevelParameteriv !is null, "OpenGL command glGetTexLevelParameteriv was not loaded");
6095         return _GetTexLevelParameteriv (target, level, pname, params);
6096     }
6097     /// ditto
6098     public GLboolean IsEnabled (GLenum cap) const {
6099         assert(_IsEnabled !is null, "OpenGL command glIsEnabled was not loaded");
6100         return _IsEnabled (cap);
6101     }
6102     /// ditto
6103     public void DepthRange (GLdouble n, GLdouble f) const {
6104         assert(_DepthRange !is null, "OpenGL command glDepthRange was not loaded");
6105         return _DepthRange (n, f);
6106     }
6107     /// ditto
6108     public void Viewport (GLint x, GLint y, GLsizei width, GLsizei height) const {
6109         assert(_Viewport !is null, "OpenGL command glViewport was not loaded");
6110         return _Viewport (x, y, width, height);
6111     }
6112 
6113     /// Commands for GL_VERSION_1_1
6114     public void DrawArrays (GLenum mode, GLint first, GLsizei count) const {
6115         assert(_DrawArrays !is null, "OpenGL command glDrawArrays was not loaded");
6116         return _DrawArrays (mode, first, count);
6117     }
6118     /// ditto
6119     public void DrawElements (GLenum mode, GLsizei count, GLenum type, const(void)* indices) const {
6120         assert(_DrawElements !is null, "OpenGL command glDrawElements was not loaded");
6121         return _DrawElements (mode, count, type, indices);
6122     }
6123     /// ditto
6124     public void GetPointerv (GLenum pname, void** params) const {
6125         assert(_GetPointerv !is null, "OpenGL command glGetPointerv was not loaded");
6126         return _GetPointerv (pname, params);
6127     }
6128     /// ditto
6129     public void PolygonOffset (GLfloat factor, GLfloat units) const {
6130         assert(_PolygonOffset !is null, "OpenGL command glPolygonOffset was not loaded");
6131         return _PolygonOffset (factor, units);
6132     }
6133     /// ditto
6134     public void CopyTexImage1D (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border) const {
6135         assert(_CopyTexImage1D !is null, "OpenGL command glCopyTexImage1D was not loaded");
6136         return _CopyTexImage1D (target, level, internalformat, x, y, width, border);
6137     }
6138     /// ditto
6139     public void CopyTexImage2D (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border) const {
6140         assert(_CopyTexImage2D !is null, "OpenGL command glCopyTexImage2D was not loaded");
6141         return _CopyTexImage2D (target, level, internalformat, x, y, width, height, border);
6142     }
6143     /// ditto
6144     public void CopyTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width) const {
6145         assert(_CopyTexSubImage1D !is null, "OpenGL command glCopyTexSubImage1D was not loaded");
6146         return _CopyTexSubImage1D (target, level, xoffset, x, y, width);
6147     }
6148     /// ditto
6149     public void CopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height) const {
6150         assert(_CopyTexSubImage2D !is null, "OpenGL command glCopyTexSubImage2D was not loaded");
6151         return _CopyTexSubImage2D (target, level, xoffset, yoffset, x, y, width, height);
6152     }
6153     /// ditto
6154     public void TexSubImage1D (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const(void)* pixels) const {
6155         assert(_TexSubImage1D !is null, "OpenGL command glTexSubImage1D was not loaded");
6156         return _TexSubImage1D (target, level, xoffset, width, format, type, pixels);
6157     }
6158     /// ditto
6159     public void TexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const(void)* pixels) const {
6160         assert(_TexSubImage2D !is null, "OpenGL command glTexSubImage2D was not loaded");
6161         return _TexSubImage2D (target, level, xoffset, yoffset, width, height, format, type, pixels);
6162     }
6163     /// ditto
6164     public void BindTexture (GLenum target, GLuint texture) const {
6165         assert(_BindTexture !is null, "OpenGL command glBindTexture was not loaded");
6166         return _BindTexture (target, texture);
6167     }
6168     /// ditto
6169     public void DeleteTextures (GLsizei n, const(GLuint)* textures) const {
6170         assert(_DeleteTextures !is null, "OpenGL command glDeleteTextures was not loaded");
6171         return _DeleteTextures (n, textures);
6172     }
6173     /// ditto
6174     public void GenTextures (GLsizei n, GLuint* textures) const {
6175         assert(_GenTextures !is null, "OpenGL command glGenTextures was not loaded");
6176         return _GenTextures (n, textures);
6177     }
6178     /// ditto
6179     public GLboolean IsTexture (GLuint texture) const {
6180         assert(_IsTexture !is null, "OpenGL command glIsTexture was not loaded");
6181         return _IsTexture (texture);
6182     }
6183 
6184     /// Commands for GL_VERSION_1_2
6185     public void DrawRangeElements (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const(void)* indices) const {
6186         assert(_DrawRangeElements !is null, "OpenGL command glDrawRangeElements was not loaded");
6187         return _DrawRangeElements (mode, start, end, count, type, indices);
6188     }
6189     /// ditto
6190     public void TexImage3D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const(void)* pixels) const {
6191         assert(_TexImage3D !is null, "OpenGL command glTexImage3D was not loaded");
6192         return _TexImage3D (target, level, internalformat, width, height, depth, border, format, type, pixels);
6193     }
6194     /// ditto
6195     public void TexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const(void)* pixels) const {
6196         assert(_TexSubImage3D !is null, "OpenGL command glTexSubImage3D was not loaded");
6197         return _TexSubImage3D (target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels);
6198     }
6199     /// ditto
6200     public void CopyTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height) const {
6201         assert(_CopyTexSubImage3D !is null, "OpenGL command glCopyTexSubImage3D was not loaded");
6202         return _CopyTexSubImage3D (target, level, xoffset, yoffset, zoffset, x, y, width, height);
6203     }
6204 
6205     /// Commands for GL_VERSION_1_3
6206     public void ActiveTexture (GLenum texture) const {
6207         assert(_ActiveTexture !is null, "OpenGL command glActiveTexture was not loaded");
6208         return _ActiveTexture (texture);
6209     }
6210     /// ditto
6211     public void SampleCoverage (GLfloat value, GLboolean invert) const {
6212         assert(_SampleCoverage !is null, "OpenGL command glSampleCoverage was not loaded");
6213         return _SampleCoverage (value, invert);
6214     }
6215     /// ditto
6216     public void CompressedTexImage3D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const(void)* data) const {
6217         assert(_CompressedTexImage3D !is null, "OpenGL command glCompressedTexImage3D was not loaded");
6218         return _CompressedTexImage3D (target, level, internalformat, width, height, depth, border, imageSize, data);
6219     }
6220     /// ditto
6221     public void CompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const(void)* data) const {
6222         assert(_CompressedTexImage2D !is null, "OpenGL command glCompressedTexImage2D was not loaded");
6223         return _CompressedTexImage2D (target, level, internalformat, width, height, border, imageSize, data);
6224     }
6225     /// ditto
6226     public void CompressedTexImage1D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const(void)* data) const {
6227         assert(_CompressedTexImage1D !is null, "OpenGL command glCompressedTexImage1D was not loaded");
6228         return _CompressedTexImage1D (target, level, internalformat, width, border, imageSize, data);
6229     }
6230     /// ditto
6231     public void CompressedTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const(void)* data) const {
6232         assert(_CompressedTexSubImage3D !is null, "OpenGL command glCompressedTexSubImage3D was not loaded");
6233         return _CompressedTexSubImage3D (target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data);
6234     }
6235     /// ditto
6236     public void CompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const(void)* data) const {
6237         assert(_CompressedTexSubImage2D !is null, "OpenGL command glCompressedTexSubImage2D was not loaded");
6238         return _CompressedTexSubImage2D (target, level, xoffset, yoffset, width, height, format, imageSize, data);
6239     }
6240     /// ditto
6241     public void CompressedTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const(void)* data) const {
6242         assert(_CompressedTexSubImage1D !is null, "OpenGL command glCompressedTexSubImage1D was not loaded");
6243         return _CompressedTexSubImage1D (target, level, xoffset, width, format, imageSize, data);
6244     }
6245     /// ditto
6246     public void GetCompressedTexImage (GLenum target, GLint level, void* img) const {
6247         assert(_GetCompressedTexImage !is null, "OpenGL command glGetCompressedTexImage was not loaded");
6248         return _GetCompressedTexImage (target, level, img);
6249     }
6250 
6251     /// Commands for GL_VERSION_1_4
6252     public void BlendFuncSeparate (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha) const {
6253         assert(_BlendFuncSeparate !is null, "OpenGL command glBlendFuncSeparate was not loaded");
6254         return _BlendFuncSeparate (sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha);
6255     }
6256     /// ditto
6257     public void MultiDrawArrays (GLenum mode, const(GLint)* first, const(GLsizei)* count, GLsizei drawcount) const {
6258         assert(_MultiDrawArrays !is null, "OpenGL command glMultiDrawArrays was not loaded");
6259         return _MultiDrawArrays (mode, first, count, drawcount);
6260     }
6261     /// ditto
6262     public void MultiDrawElements (GLenum mode, const(GLsizei)* count, GLenum type, const(void*)* indices, GLsizei drawcount) const {
6263         assert(_MultiDrawElements !is null, "OpenGL command glMultiDrawElements was not loaded");
6264         return _MultiDrawElements (mode, count, type, indices, drawcount);
6265     }
6266     /// ditto
6267     public void PointParameterf (GLenum pname, GLfloat param) const {
6268         assert(_PointParameterf !is null, "OpenGL command glPointParameterf was not loaded");
6269         return _PointParameterf (pname, param);
6270     }
6271     /// ditto
6272     public void PointParameterfv (GLenum pname, const(GLfloat)* params) const {
6273         assert(_PointParameterfv !is null, "OpenGL command glPointParameterfv was not loaded");
6274         return _PointParameterfv (pname, params);
6275     }
6276     /// ditto
6277     public void PointParameteri (GLenum pname, GLint param) const {
6278         assert(_PointParameteri !is null, "OpenGL command glPointParameteri was not loaded");
6279         return _PointParameteri (pname, param);
6280     }
6281     /// ditto
6282     public void PointParameteriv (GLenum pname, const(GLint)* params) const {
6283         assert(_PointParameteriv !is null, "OpenGL command glPointParameteriv was not loaded");
6284         return _PointParameteriv (pname, params);
6285     }
6286     /// ditto
6287     public void BlendColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha) const {
6288         assert(_BlendColor !is null, "OpenGL command glBlendColor was not loaded");
6289         return _BlendColor (red, green, blue, alpha);
6290     }
6291     /// ditto
6292     public void BlendEquation (GLenum mode) const {
6293         assert(_BlendEquation !is null, "OpenGL command glBlendEquation was not loaded");
6294         return _BlendEquation (mode);
6295     }
6296 
6297     /// Commands for GL_VERSION_1_5
6298     public void GenQueries (GLsizei n, GLuint* ids) const {
6299         assert(_GenQueries !is null, "OpenGL command glGenQueries was not loaded");
6300         return _GenQueries (n, ids);
6301     }
6302     /// ditto
6303     public void DeleteQueries (GLsizei n, const(GLuint)* ids) const {
6304         assert(_DeleteQueries !is null, "OpenGL command glDeleteQueries was not loaded");
6305         return _DeleteQueries (n, ids);
6306     }
6307     /// ditto
6308     public GLboolean IsQuery (GLuint id) const {
6309         assert(_IsQuery !is null, "OpenGL command glIsQuery was not loaded");
6310         return _IsQuery (id);
6311     }
6312     /// ditto
6313     public void BeginQuery (GLenum target, GLuint id) const {
6314         assert(_BeginQuery !is null, "OpenGL command glBeginQuery was not loaded");
6315         return _BeginQuery (target, id);
6316     }
6317     /// ditto
6318     public void EndQuery (GLenum target) const {
6319         assert(_EndQuery !is null, "OpenGL command glEndQuery was not loaded");
6320         return _EndQuery (target);
6321     }
6322     /// ditto
6323     public void GetQueryiv (GLenum target, GLenum pname, GLint* params) const {
6324         assert(_GetQueryiv !is null, "OpenGL command glGetQueryiv was not loaded");
6325         return _GetQueryiv (target, pname, params);
6326     }
6327     /// ditto
6328     public void GetQueryObjectiv (GLuint id, GLenum pname, GLint* params) const {
6329         assert(_GetQueryObjectiv !is null, "OpenGL command glGetQueryObjectiv was not loaded");
6330         return _GetQueryObjectiv (id, pname, params);
6331     }
6332     /// ditto
6333     public void GetQueryObjectuiv (GLuint id, GLenum pname, GLuint* params) const {
6334         assert(_GetQueryObjectuiv !is null, "OpenGL command glGetQueryObjectuiv was not loaded");
6335         return _GetQueryObjectuiv (id, pname, params);
6336     }
6337     /// ditto
6338     public void BindBuffer (GLenum target, GLuint buffer) const {
6339         assert(_BindBuffer !is null, "OpenGL command glBindBuffer was not loaded");
6340         return _BindBuffer (target, buffer);
6341     }
6342     /// ditto
6343     public void DeleteBuffers (GLsizei n, const(GLuint)* buffers) const {
6344         assert(_DeleteBuffers !is null, "OpenGL command glDeleteBuffers was not loaded");
6345         return _DeleteBuffers (n, buffers);
6346     }
6347     /// ditto
6348     public void GenBuffers (GLsizei n, GLuint* buffers) const {
6349         assert(_GenBuffers !is null, "OpenGL command glGenBuffers was not loaded");
6350         return _GenBuffers (n, buffers);
6351     }
6352     /// ditto
6353     public GLboolean IsBuffer (GLuint buffer) const {
6354         assert(_IsBuffer !is null, "OpenGL command glIsBuffer was not loaded");
6355         return _IsBuffer (buffer);
6356     }
6357     /// ditto
6358     public void BufferData (GLenum target, GLsizeiptr size, const(void)* data, GLenum usage) const {
6359         assert(_BufferData !is null, "OpenGL command glBufferData was not loaded");
6360         return _BufferData (target, size, data, usage);
6361     }
6362     /// ditto
6363     public void BufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const(void)* data) const {
6364         assert(_BufferSubData !is null, "OpenGL command glBufferSubData was not loaded");
6365         return _BufferSubData (target, offset, size, data);
6366     }
6367     /// ditto
6368     public void GetBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, void* data) const {
6369         assert(_GetBufferSubData !is null, "OpenGL command glGetBufferSubData was not loaded");
6370         return _GetBufferSubData (target, offset, size, data);
6371     }
6372     /// ditto
6373     public void * MapBuffer (GLenum target, GLenum access) const {
6374         assert(_MapBuffer !is null, "OpenGL command glMapBuffer was not loaded");
6375         return _MapBuffer (target, access);
6376     }
6377     /// ditto
6378     public GLboolean UnmapBuffer (GLenum target) const {
6379         assert(_UnmapBuffer !is null, "OpenGL command glUnmapBuffer was not loaded");
6380         return _UnmapBuffer (target);
6381     }
6382     /// ditto
6383     public void GetBufferParameteriv (GLenum target, GLenum pname, GLint* params) const {
6384         assert(_GetBufferParameteriv !is null, "OpenGL command glGetBufferParameteriv was not loaded");
6385         return _GetBufferParameteriv (target, pname, params);
6386     }
6387     /// ditto
6388     public void GetBufferPointerv (GLenum target, GLenum pname, void** params) const {
6389         assert(_GetBufferPointerv !is null, "OpenGL command glGetBufferPointerv was not loaded");
6390         return _GetBufferPointerv (target, pname, params);
6391     }
6392 
6393     /// Commands for GL_VERSION_2_0
6394     public void BlendEquationSeparate (GLenum modeRGB, GLenum modeAlpha) const {
6395         assert(_BlendEquationSeparate !is null, "OpenGL command glBlendEquationSeparate was not loaded");
6396         return _BlendEquationSeparate (modeRGB, modeAlpha);
6397     }
6398     /// ditto
6399     public void DrawBuffers (GLsizei n, const(GLenum)* bufs) const {
6400         assert(_DrawBuffers !is null, "OpenGL command glDrawBuffers was not loaded");
6401         return _DrawBuffers (n, bufs);
6402     }
6403     /// ditto
6404     public void StencilOpSeparate (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass) const {
6405         assert(_StencilOpSeparate !is null, "OpenGL command glStencilOpSeparate was not loaded");
6406         return _StencilOpSeparate (face, sfail, dpfail, dppass);
6407     }
6408     /// ditto
6409     public void StencilFuncSeparate (GLenum face, GLenum func, GLint ref_, GLuint mask) const {
6410         assert(_StencilFuncSeparate !is null, "OpenGL command glStencilFuncSeparate was not loaded");
6411         return _StencilFuncSeparate (face, func, ref_, mask);
6412     }
6413     /// ditto
6414     public void StencilMaskSeparate (GLenum face, GLuint mask) const {
6415         assert(_StencilMaskSeparate !is null, "OpenGL command glStencilMaskSeparate was not loaded");
6416         return _StencilMaskSeparate (face, mask);
6417     }
6418     /// ditto
6419     public void AttachShader (GLuint program, GLuint shader) const {
6420         assert(_AttachShader !is null, "OpenGL command glAttachShader was not loaded");
6421         return _AttachShader (program, shader);
6422     }
6423     /// ditto
6424     public void BindAttribLocation (GLuint program, GLuint index, const(GLchar)* name) const {
6425         assert(_BindAttribLocation !is null, "OpenGL command glBindAttribLocation was not loaded");
6426         return _BindAttribLocation (program, index, name);
6427     }
6428     /// ditto
6429     public void CompileShader (GLuint shader) const {
6430         assert(_CompileShader !is null, "OpenGL command glCompileShader was not loaded");
6431         return _CompileShader (shader);
6432     }
6433     /// ditto
6434     public GLuint CreateProgram () const {
6435         assert(_CreateProgram !is null, "OpenGL command glCreateProgram was not loaded");
6436         return _CreateProgram ();
6437     }
6438     /// ditto
6439     public GLuint CreateShader (GLenum type) const {
6440         assert(_CreateShader !is null, "OpenGL command glCreateShader was not loaded");
6441         return _CreateShader (type);
6442     }
6443     /// ditto
6444     public void DeleteProgram (GLuint program) const {
6445         assert(_DeleteProgram !is null, "OpenGL command glDeleteProgram was not loaded");
6446         return _DeleteProgram (program);
6447     }
6448     /// ditto
6449     public void DeleteShader (GLuint shader) const {
6450         assert(_DeleteShader !is null, "OpenGL command glDeleteShader was not loaded");
6451         return _DeleteShader (shader);
6452     }
6453     /// ditto
6454     public void DetachShader (GLuint program, GLuint shader) const {
6455         assert(_DetachShader !is null, "OpenGL command glDetachShader was not loaded");
6456         return _DetachShader (program, shader);
6457     }
6458     /// ditto
6459     public void DisableVertexAttribArray (GLuint index) const {
6460         assert(_DisableVertexAttribArray !is null, "OpenGL command glDisableVertexAttribArray was not loaded");
6461         return _DisableVertexAttribArray (index);
6462     }
6463     /// ditto
6464     public void EnableVertexAttribArray (GLuint index) const {
6465         assert(_EnableVertexAttribArray !is null, "OpenGL command glEnableVertexAttribArray was not loaded");
6466         return _EnableVertexAttribArray (index);
6467     }
6468     /// ditto
6469     public void GetActiveAttrib (GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* type, GLchar* name) const {
6470         assert(_GetActiveAttrib !is null, "OpenGL command glGetActiveAttrib was not loaded");
6471         return _GetActiveAttrib (program, index, bufSize, length, size, type, name);
6472     }
6473     /// ditto
6474     public void GetActiveUniform (GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* type, GLchar* name) const {
6475         assert(_GetActiveUniform !is null, "OpenGL command glGetActiveUniform was not loaded");
6476         return _GetActiveUniform (program, index, bufSize, length, size, type, name);
6477     }
6478     /// ditto
6479     public void GetAttachedShaders (GLuint program, GLsizei maxCount, GLsizei* count, GLuint* shaders) const {
6480         assert(_GetAttachedShaders !is null, "OpenGL command glGetAttachedShaders was not loaded");
6481         return _GetAttachedShaders (program, maxCount, count, shaders);
6482     }
6483     /// ditto
6484     public GLint GetAttribLocation (GLuint program, const(GLchar)* name) const {
6485         assert(_GetAttribLocation !is null, "OpenGL command glGetAttribLocation was not loaded");
6486         return _GetAttribLocation (program, name);
6487     }
6488     /// ditto
6489     public void GetProgramiv (GLuint program, GLenum pname, GLint* params) const {
6490         assert(_GetProgramiv !is null, "OpenGL command glGetProgramiv was not loaded");
6491         return _GetProgramiv (program, pname, params);
6492     }
6493     /// ditto
6494     public void GetProgramInfoLog (GLuint program, GLsizei bufSize, GLsizei* length, GLchar* infoLog) const {
6495         assert(_GetProgramInfoLog !is null, "OpenGL command glGetProgramInfoLog was not loaded");
6496         return _GetProgramInfoLog (program, bufSize, length, infoLog);
6497     }
6498     /// ditto
6499     public void GetShaderiv (GLuint shader, GLenum pname, GLint* params) const {
6500         assert(_GetShaderiv !is null, "OpenGL command glGetShaderiv was not loaded");
6501         return _GetShaderiv (shader, pname, params);
6502     }
6503     /// ditto
6504     public void GetShaderInfoLog (GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* infoLog) const {
6505         assert(_GetShaderInfoLog !is null, "OpenGL command glGetShaderInfoLog was not loaded");
6506         return _GetShaderInfoLog (shader, bufSize, length, infoLog);
6507     }
6508     /// ditto
6509     public void GetShaderSource (GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* source) const {
6510         assert(_GetShaderSource !is null, "OpenGL command glGetShaderSource was not loaded");
6511         return _GetShaderSource (shader, bufSize, length, source);
6512     }
6513     /// ditto
6514     public GLint GetUniformLocation (GLuint program, const(GLchar)* name) const {
6515         assert(_GetUniformLocation !is null, "OpenGL command glGetUniformLocation was not loaded");
6516         return _GetUniformLocation (program, name);
6517     }
6518     /// ditto
6519     public void GetUniformfv (GLuint program, GLint location, GLfloat* params) const {
6520         assert(_GetUniformfv !is null, "OpenGL command glGetUniformfv was not loaded");
6521         return _GetUniformfv (program, location, params);
6522     }
6523     /// ditto
6524     public void GetUniformiv (GLuint program, GLint location, GLint* params) const {
6525         assert(_GetUniformiv !is null, "OpenGL command glGetUniformiv was not loaded");
6526         return _GetUniformiv (program, location, params);
6527     }
6528     /// ditto
6529     public void GetVertexAttribdv (GLuint index, GLenum pname, GLdouble* params) const {
6530         assert(_GetVertexAttribdv !is null, "OpenGL command glGetVertexAttribdv was not loaded");
6531         return _GetVertexAttribdv (index, pname, params);
6532     }
6533     /// ditto
6534     public void GetVertexAttribfv (GLuint index, GLenum pname, GLfloat* params) const {
6535         assert(_GetVertexAttribfv !is null, "OpenGL command glGetVertexAttribfv was not loaded");
6536         return _GetVertexAttribfv (index, pname, params);
6537     }
6538     /// ditto
6539     public void GetVertexAttribiv (GLuint index, GLenum pname, GLint* params) const {
6540         assert(_GetVertexAttribiv !is null, "OpenGL command glGetVertexAttribiv was not loaded");
6541         return _GetVertexAttribiv (index, pname, params);
6542     }
6543     /// ditto
6544     public void GetVertexAttribPointerv (GLuint index, GLenum pname, void** pointer) const {
6545         assert(_GetVertexAttribPointerv !is null, "OpenGL command glGetVertexAttribPointerv was not loaded");
6546         return _GetVertexAttribPointerv (index, pname, pointer);
6547     }
6548     /// ditto
6549     public GLboolean IsProgram (GLuint program) const {
6550         assert(_IsProgram !is null, "OpenGL command glIsProgram was not loaded");
6551         return _IsProgram (program);
6552     }
6553     /// ditto
6554     public GLboolean IsShader (GLuint shader) const {
6555         assert(_IsShader !is null, "OpenGL command glIsShader was not loaded");
6556         return _IsShader (shader);
6557     }
6558     /// ditto
6559     public void LinkProgram (GLuint program) const {
6560         assert(_LinkProgram !is null, "OpenGL command glLinkProgram was not loaded");
6561         return _LinkProgram (program);
6562     }
6563     /// ditto
6564     public void ShaderSource (GLuint shader, GLsizei count, const(GLchar*)* string, const(GLint)* length) const {
6565         assert(_ShaderSource !is null, "OpenGL command glShaderSource was not loaded");
6566         return _ShaderSource (shader, count, string, length);
6567     }
6568     /// ditto
6569     public void UseProgram (GLuint program) const {
6570         assert(_UseProgram !is null, "OpenGL command glUseProgram was not loaded");
6571         return _UseProgram (program);
6572     }
6573     /// ditto
6574     public void Uniform1f (GLint location, GLfloat v0) const {
6575         assert(_Uniform1f !is null, "OpenGL command glUniform1f was not loaded");
6576         return _Uniform1f (location, v0);
6577     }
6578     /// ditto
6579     public void Uniform2f (GLint location, GLfloat v0, GLfloat v1) const {
6580         assert(_Uniform2f !is null, "OpenGL command glUniform2f was not loaded");
6581         return _Uniform2f (location, v0, v1);
6582     }
6583     /// ditto
6584     public void Uniform3f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2) const {
6585         assert(_Uniform3f !is null, "OpenGL command glUniform3f was not loaded");
6586         return _Uniform3f (location, v0, v1, v2);
6587     }
6588     /// ditto
6589     public void Uniform4f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3) const {
6590         assert(_Uniform4f !is null, "OpenGL command glUniform4f was not loaded");
6591         return _Uniform4f (location, v0, v1, v2, v3);
6592     }
6593     /// ditto
6594     public void Uniform1i (GLint location, GLint v0) const {
6595         assert(_Uniform1i !is null, "OpenGL command glUniform1i was not loaded");
6596         return _Uniform1i (location, v0);
6597     }
6598     /// ditto
6599     public void Uniform2i (GLint location, GLint v0, GLint v1) const {
6600         assert(_Uniform2i !is null, "OpenGL command glUniform2i was not loaded");
6601         return _Uniform2i (location, v0, v1);
6602     }
6603     /// ditto
6604     public void Uniform3i (GLint location, GLint v0, GLint v1, GLint v2) const {
6605         assert(_Uniform3i !is null, "OpenGL command glUniform3i was not loaded");
6606         return _Uniform3i (location, v0, v1, v2);
6607     }
6608     /// ditto
6609     public void Uniform4i (GLint location, GLint v0, GLint v1, GLint v2, GLint v3) const {
6610         assert(_Uniform4i !is null, "OpenGL command glUniform4i was not loaded");
6611         return _Uniform4i (location, v0, v1, v2, v3);
6612     }
6613     /// ditto
6614     public void Uniform1fv (GLint location, GLsizei count, const(GLfloat)* value) const {
6615         assert(_Uniform1fv !is null, "OpenGL command glUniform1fv was not loaded");
6616         return _Uniform1fv (location, count, value);
6617     }
6618     /// ditto
6619     public void Uniform2fv (GLint location, GLsizei count, const(GLfloat)* value) const {
6620         assert(_Uniform2fv !is null, "OpenGL command glUniform2fv was not loaded");
6621         return _Uniform2fv (location, count, value);
6622     }
6623     /// ditto
6624     public void Uniform3fv (GLint location, GLsizei count, const(GLfloat)* value) const {
6625         assert(_Uniform3fv !is null, "OpenGL command glUniform3fv was not loaded");
6626         return _Uniform3fv (location, count, value);
6627     }
6628     /// ditto
6629     public void Uniform4fv (GLint location, GLsizei count, const(GLfloat)* value) const {
6630         assert(_Uniform4fv !is null, "OpenGL command glUniform4fv was not loaded");
6631         return _Uniform4fv (location, count, value);
6632     }
6633     /// ditto
6634     public void Uniform1iv (GLint location, GLsizei count, const(GLint)* value) const {
6635         assert(_Uniform1iv !is null, "OpenGL command glUniform1iv was not loaded");
6636         return _Uniform1iv (location, count, value);
6637     }
6638     /// ditto
6639     public void Uniform2iv (GLint location, GLsizei count, const(GLint)* value) const {
6640         assert(_Uniform2iv !is null, "OpenGL command glUniform2iv was not loaded");
6641         return _Uniform2iv (location, count, value);
6642     }
6643     /// ditto
6644     public void Uniform3iv (GLint location, GLsizei count, const(GLint)* value) const {
6645         assert(_Uniform3iv !is null, "OpenGL command glUniform3iv was not loaded");
6646         return _Uniform3iv (location, count, value);
6647     }
6648     /// ditto
6649     public void Uniform4iv (GLint location, GLsizei count, const(GLint)* value) const {
6650         assert(_Uniform4iv !is null, "OpenGL command glUniform4iv was not loaded");
6651         return _Uniform4iv (location, count, value);
6652     }
6653     /// ditto
6654     public void UniformMatrix2fv (GLint location, GLsizei count, GLboolean transpose, const(GLfloat)* value) const {
6655         assert(_UniformMatrix2fv !is null, "OpenGL command glUniformMatrix2fv was not loaded");
6656         return _UniformMatrix2fv (location, count, transpose, value);
6657     }
6658     /// ditto
6659     public void UniformMatrix3fv (GLint location, GLsizei count, GLboolean transpose, const(GLfloat)* value) const {
6660         assert(_UniformMatrix3fv !is null, "OpenGL command glUniformMatrix3fv was not loaded");
6661         return _UniformMatrix3fv (location, count, transpose, value);
6662     }
6663     /// ditto
6664     public void UniformMatrix4fv (GLint location, GLsizei count, GLboolean transpose, const(GLfloat)* value) const {
6665         assert(_UniformMatrix4fv !is null, "OpenGL command glUniformMatrix4fv was not loaded");
6666         return _UniformMatrix4fv (location, count, transpose, value);
6667     }
6668     /// ditto
6669     public void ValidateProgram (GLuint program) const {
6670         assert(_ValidateProgram !is null, "OpenGL command glValidateProgram was not loaded");
6671         return _ValidateProgram (program);
6672     }
6673     /// ditto
6674     public void VertexAttrib1d (GLuint index, GLdouble x) const {
6675         assert(_VertexAttrib1d !is null, "OpenGL command glVertexAttrib1d was not loaded");
6676         return _VertexAttrib1d (index, x);
6677     }
6678     /// ditto
6679     public void VertexAttrib1dv (GLuint index, const(GLdouble)* v) const {
6680         assert(_VertexAttrib1dv !is null, "OpenGL command glVertexAttrib1dv was not loaded");
6681         return _VertexAttrib1dv (index, v);
6682     }
6683     /// ditto
6684     public void VertexAttrib1f (GLuint index, GLfloat x) const {
6685         assert(_VertexAttrib1f !is null, "OpenGL command glVertexAttrib1f was not loaded");
6686         return _VertexAttrib1f (index, x);
6687     }
6688     /// ditto
6689     public void VertexAttrib1fv (GLuint index, const(GLfloat)* v) const {
6690         assert(_VertexAttrib1fv !is null, "OpenGL command glVertexAttrib1fv was not loaded");
6691         return _VertexAttrib1fv (index, v);
6692     }
6693     /// ditto
6694     public void VertexAttrib1s (GLuint index, GLshort x) const {
6695         assert(_VertexAttrib1s !is null, "OpenGL command glVertexAttrib1s was not loaded");
6696         return _VertexAttrib1s (index, x);
6697     }
6698     /// ditto
6699     public void VertexAttrib1sv (GLuint index, const(GLshort)* v) const {
6700         assert(_VertexAttrib1sv !is null, "OpenGL command glVertexAttrib1sv was not loaded");
6701         return _VertexAttrib1sv (index, v);
6702     }
6703     /// ditto
6704     public void VertexAttrib2d (GLuint index, GLdouble x, GLdouble y) const {
6705         assert(_VertexAttrib2d !is null, "OpenGL command glVertexAttrib2d was not loaded");
6706         return _VertexAttrib2d (index, x, y);
6707     }
6708     /// ditto
6709     public void VertexAttrib2dv (GLuint index, const(GLdouble)* v) const {
6710         assert(_VertexAttrib2dv !is null, "OpenGL command glVertexAttrib2dv was not loaded");
6711         return _VertexAttrib2dv (index, v);
6712     }
6713     /// ditto
6714     public void VertexAttrib2f (GLuint index, GLfloat x, GLfloat y) const {
6715         assert(_VertexAttrib2f !is null, "OpenGL command glVertexAttrib2f was not loaded");
6716         return _VertexAttrib2f (index, x, y);
6717     }
6718     /// ditto
6719     public void VertexAttrib2fv (GLuint index, const(GLfloat)* v) const {
6720         assert(_VertexAttrib2fv !is null, "OpenGL command glVertexAttrib2fv was not loaded");
6721         return _VertexAttrib2fv (index, v);
6722     }
6723     /// ditto
6724     public void VertexAttrib2s (GLuint index, GLshort x, GLshort y) const {
6725         assert(_VertexAttrib2s !is null, "OpenGL command glVertexAttrib2s was not loaded");
6726         return _VertexAttrib2s (index, x, y);
6727     }
6728     /// ditto
6729     public void VertexAttrib2sv (GLuint index, const(GLshort)* v) const {
6730         assert(_VertexAttrib2sv !is null, "OpenGL command glVertexAttrib2sv was not loaded");
6731         return _VertexAttrib2sv (index, v);
6732     }
6733     /// ditto
6734     public void VertexAttrib3d (GLuint index, GLdouble x, GLdouble y, GLdouble z) const {
6735         assert(_VertexAttrib3d !is null, "OpenGL command glVertexAttrib3d was not loaded");
6736         return _VertexAttrib3d (index, x, y, z);
6737     }
6738     /// ditto
6739     public void VertexAttrib3dv (GLuint index, const(GLdouble)* v) const {
6740         assert(_VertexAttrib3dv !is null, "OpenGL command glVertexAttrib3dv was not loaded");
6741         return _VertexAttrib3dv (index, v);
6742     }
6743     /// ditto
6744     public void VertexAttrib3f (GLuint index, GLfloat x, GLfloat y, GLfloat z) const {
6745         assert(_VertexAttrib3f !is null, "OpenGL command glVertexAttrib3f was not loaded");
6746         return _VertexAttrib3f (index, x, y, z);
6747     }
6748     /// ditto
6749     public void VertexAttrib3fv (GLuint index, const(GLfloat)* v) const {
6750         assert(_VertexAttrib3fv !is null, "OpenGL command glVertexAttrib3fv was not loaded");
6751         return _VertexAttrib3fv (index, v);
6752     }
6753     /// ditto
6754     public void VertexAttrib3s (GLuint index, GLshort x, GLshort y, GLshort z) const {
6755         assert(_VertexAttrib3s !is null, "OpenGL command glVertexAttrib3s was not loaded");
6756         return _VertexAttrib3s (index, x, y, z);
6757     }
6758     /// ditto
6759     public void VertexAttrib3sv (GLuint index, const(GLshort)* v) const {
6760         assert(_VertexAttrib3sv !is null, "OpenGL command glVertexAttrib3sv was not loaded");
6761         return _VertexAttrib3sv (index, v);
6762     }
6763     /// ditto
6764     public void VertexAttrib4Nbv (GLuint index, const(GLbyte)* v) const {
6765         assert(_VertexAttrib4Nbv !is null, "OpenGL command glVertexAttrib4Nbv was not loaded");
6766         return _VertexAttrib4Nbv (index, v);
6767     }
6768     /// ditto
6769     public void VertexAttrib4Niv (GLuint index, const(GLint)* v) const {
6770         assert(_VertexAttrib4Niv !is null, "OpenGL command glVertexAttrib4Niv was not loaded");
6771         return _VertexAttrib4Niv (index, v);
6772     }
6773     /// ditto
6774     public void VertexAttrib4Nsv (GLuint index, const(GLshort)* v) const {
6775         assert(_VertexAttrib4Nsv !is null, "OpenGL command glVertexAttrib4Nsv was not loaded");
6776         return _VertexAttrib4Nsv (index, v);
6777     }
6778     /// ditto
6779     public void VertexAttrib4Nub (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w) const {
6780         assert(_VertexAttrib4Nub !is null, "OpenGL command glVertexAttrib4Nub was not loaded");
6781         return _VertexAttrib4Nub (index, x, y, z, w);
6782     }
6783     /// ditto
6784     public void VertexAttrib4Nubv (GLuint index, const(GLubyte)* v) const {
6785         assert(_VertexAttrib4Nubv !is null, "OpenGL command glVertexAttrib4Nubv was not loaded");
6786         return _VertexAttrib4Nubv (index, v);
6787     }
6788     /// ditto
6789     public void VertexAttrib4Nuiv (GLuint index, const(GLuint)* v) const {
6790         assert(_VertexAttrib4Nuiv !is null, "OpenGL command glVertexAttrib4Nuiv was not loaded");
6791         return _VertexAttrib4Nuiv (index, v);
6792     }
6793     /// ditto
6794     public void VertexAttrib4Nusv (GLuint index, const(GLushort)* v) const {
6795         assert(_VertexAttrib4Nusv !is null, "OpenGL command glVertexAttrib4Nusv was not loaded");
6796         return _VertexAttrib4Nusv (index, v);
6797     }
6798     /// ditto
6799     public void VertexAttrib4bv (GLuint index, const(GLbyte)* v) const {
6800         assert(_VertexAttrib4bv !is null, "OpenGL command glVertexAttrib4bv was not loaded");
6801         return _VertexAttrib4bv (index, v);
6802     }
6803     /// ditto
6804     public void VertexAttrib4d (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w) const {
6805         assert(_VertexAttrib4d !is null, "OpenGL command glVertexAttrib4d was not loaded");
6806         return _VertexAttrib4d (index, x, y, z, w);
6807     }
6808     /// ditto
6809     public void VertexAttrib4dv (GLuint index, const(GLdouble)* v) const {
6810         assert(_VertexAttrib4dv !is null, "OpenGL command glVertexAttrib4dv was not loaded");
6811         return _VertexAttrib4dv (index, v);
6812     }
6813     /// ditto
6814     public void VertexAttrib4f (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w) const {
6815         assert(_VertexAttrib4f !is null, "OpenGL command glVertexAttrib4f was not loaded");
6816         return _VertexAttrib4f (index, x, y, z, w);
6817     }
6818     /// ditto
6819     public void VertexAttrib4fv (GLuint index, const(GLfloat)* v) const {
6820         assert(_VertexAttrib4fv !is null, "OpenGL command glVertexAttrib4fv was not loaded");
6821         return _VertexAttrib4fv (index, v);
6822     }
6823     /// ditto
6824     public void VertexAttrib4iv (GLuint index, const(GLint)* v) const {
6825         assert(_VertexAttrib4iv !is null, "OpenGL command glVertexAttrib4iv was not loaded");
6826         return _VertexAttrib4iv (index, v);
6827     }
6828     /// ditto
6829     public void VertexAttrib4s (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w) const {
6830         assert(_VertexAttrib4s !is null, "OpenGL command glVertexAttrib4s was not loaded");
6831         return _VertexAttrib4s (index, x, y, z, w);
6832     }
6833     /// ditto
6834     public void VertexAttrib4sv (GLuint index, const(GLshort)* v) const {
6835         assert(_VertexAttrib4sv !is null, "OpenGL command glVertexAttrib4sv was not loaded");
6836         return _VertexAttrib4sv (index, v);
6837     }
6838     /// ditto
6839     public void VertexAttrib4ubv (GLuint index, const(GLubyte)* v) const {
6840         assert(_VertexAttrib4ubv !is null, "OpenGL command glVertexAttrib4ubv was not loaded");
6841         return _VertexAttrib4ubv (index, v);
6842     }
6843     /// ditto
6844     public void VertexAttrib4uiv (GLuint index, const(GLuint)* v) const {
6845         assert(_VertexAttrib4uiv !is null, "OpenGL command glVertexAttrib4uiv was not loaded");
6846         return _VertexAttrib4uiv (index, v);
6847     }
6848     /// ditto
6849     public void VertexAttrib4usv (GLuint index, const(GLushort)* v) const {
6850         assert(_VertexAttrib4usv !is null, "OpenGL command glVertexAttrib4usv was not loaded");
6851         return _VertexAttrib4usv (index, v);
6852     }
6853     /// ditto
6854     public void VertexAttribPointer (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const(void)* pointer) const {
6855         assert(_VertexAttribPointer !is null, "OpenGL command glVertexAttribPointer was not loaded");
6856         return _VertexAttribPointer (index, size, type, normalized, stride, pointer);
6857     }
6858 
6859     /// Commands for GL_VERSION_2_1
6860     public void UniformMatrix2x3fv (GLint location, GLsizei count, GLboolean transpose, const(GLfloat)* value) const {
6861         assert(_UniformMatrix2x3fv !is null, "OpenGL command glUniformMatrix2x3fv was not loaded");
6862         return _UniformMatrix2x3fv (location, count, transpose, value);
6863     }
6864     /// ditto
6865     public void UniformMatrix3x2fv (GLint location, GLsizei count, GLboolean transpose, const(GLfloat)* value) const {
6866         assert(_UniformMatrix3x2fv !is null, "OpenGL command glUniformMatrix3x2fv was not loaded");
6867         return _UniformMatrix3x2fv (location, count, transpose, value);
6868     }
6869     /// ditto
6870     public void UniformMatrix2x4fv (GLint location, GLsizei count, GLboolean transpose, const(GLfloat)* value) const {
6871         assert(_UniformMatrix2x4fv !is null, "OpenGL command glUniformMatrix2x4fv was not loaded");
6872         return _UniformMatrix2x4fv (location, count, transpose, value);
6873     }
6874     /// ditto
6875     public void UniformMatrix4x2fv (GLint location, GLsizei count, GLboolean transpose, const(GLfloat)* value) const {
6876         assert(_UniformMatrix4x2fv !is null, "OpenGL command glUniformMatrix4x2fv was not loaded");
6877         return _UniformMatrix4x2fv (location, count, transpose, value);
6878     }
6879     /// ditto
6880     public void UniformMatrix3x4fv (GLint location, GLsizei count, GLboolean transpose, const(GLfloat)* value) const {
6881         assert(_UniformMatrix3x4fv !is null, "OpenGL command glUniformMatrix3x4fv was not loaded");
6882         return _UniformMatrix3x4fv (location, count, transpose, value);
6883     }
6884     /// ditto
6885     public void UniformMatrix4x3fv (GLint location, GLsizei count, GLboolean transpose, const(GLfloat)* value) const {
6886         assert(_UniformMatrix4x3fv !is null, "OpenGL command glUniformMatrix4x3fv was not loaded");
6887         return _UniformMatrix4x3fv (location, count, transpose, value);
6888     }
6889 
6890     /// Commands for GL_VERSION_3_0
6891     public void ColorMaski (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a) const {
6892         assert(_ColorMaski !is null, "OpenGL command glColorMaski was not loaded");
6893         return _ColorMaski (index, r, g, b, a);
6894     }
6895     /// ditto
6896     public void GetBooleani_v (GLenum target, GLuint index, GLboolean* data) const {
6897         assert(_GetBooleani_v !is null, "OpenGL command glGetBooleani_v was not loaded");
6898         return _GetBooleani_v (target, index, data);
6899     }
6900     /// ditto
6901     public void GetIntegeri_v (GLenum target, GLuint index, GLint* data) const {
6902         assert(_GetIntegeri_v !is null, "OpenGL command glGetIntegeri_v was not loaded");
6903         return _GetIntegeri_v (target, index, data);
6904     }
6905     /// ditto
6906     public void Enablei (GLenum target, GLuint index) const {
6907         assert(_Enablei !is null, "OpenGL command glEnablei was not loaded");
6908         return _Enablei (target, index);
6909     }
6910     /// ditto
6911     public void Disablei (GLenum target, GLuint index) const {
6912         assert(_Disablei !is null, "OpenGL command glDisablei was not loaded");
6913         return _Disablei (target, index);
6914     }
6915     /// ditto
6916     public GLboolean IsEnabledi (GLenum target, GLuint index) const {
6917         assert(_IsEnabledi !is null, "OpenGL command glIsEnabledi was not loaded");
6918         return _IsEnabledi (target, index);
6919     }
6920     /// ditto
6921     public void BeginTransformFeedback (GLenum primitiveMode) const {
6922         assert(_BeginTransformFeedback !is null, "OpenGL command glBeginTransformFeedback was not loaded");
6923         return _BeginTransformFeedback (primitiveMode);
6924     }
6925     /// ditto
6926     public void EndTransformFeedback () const {
6927         assert(_EndTransformFeedback !is null, "OpenGL command glEndTransformFeedback was not loaded");
6928         return _EndTransformFeedback ();
6929     }
6930     /// ditto
6931     public void BindBufferRange (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size) const {
6932         assert(_BindBufferRange !is null, "OpenGL command glBindBufferRange was not loaded");
6933         return _BindBufferRange (target, index, buffer, offset, size);
6934     }
6935     /// ditto
6936     public void BindBufferBase (GLenum target, GLuint index, GLuint buffer) const {
6937         assert(_BindBufferBase !is null, "OpenGL command glBindBufferBase was not loaded");
6938         return _BindBufferBase (target, index, buffer);
6939     }
6940     /// ditto
6941     public void TransformFeedbackVaryings (GLuint program, GLsizei count, const(GLchar*)* varyings, GLenum bufferMode) const {
6942         assert(_TransformFeedbackVaryings !is null, "OpenGL command glTransformFeedbackVaryings was not loaded");
6943         return _TransformFeedbackVaryings (program, count, varyings, bufferMode);
6944     }
6945     /// ditto
6946     public void GetTransformFeedbackVarying (GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLsizei* size, GLenum* type, GLchar* name) const {
6947         assert(_GetTransformFeedbackVarying !is null, "OpenGL command glGetTransformFeedbackVarying was not loaded");
6948         return _GetTransformFeedbackVarying (program, index, bufSize, length, size, type, name);
6949     }
6950     /// ditto
6951     public void ClampColor (GLenum target, GLenum clamp) const {
6952         assert(_ClampColor !is null, "OpenGL command glClampColor was not loaded");
6953         return _ClampColor (target, clamp);
6954     }
6955     /// ditto
6956     public void BeginConditionalRender (GLuint id, GLenum mode) const {
6957         assert(_BeginConditionalRender !is null, "OpenGL command glBeginConditionalRender was not loaded");
6958         return _BeginConditionalRender (id, mode);
6959     }
6960     /// ditto
6961     public void EndConditionalRender () const {
6962         assert(_EndConditionalRender !is null, "OpenGL command glEndConditionalRender was not loaded");
6963         return _EndConditionalRender ();
6964     }
6965     /// ditto
6966     public void VertexAttribIPointer (GLuint index, GLint size, GLenum type, GLsizei stride, const(void)* pointer) const {
6967         assert(_VertexAttribIPointer !is null, "OpenGL command glVertexAttribIPointer was not loaded");
6968         return _VertexAttribIPointer (index, size, type, stride, pointer);
6969     }
6970     /// ditto
6971     public void GetVertexAttribIiv (GLuint index, GLenum pname, GLint* params) const {
6972         assert(_GetVertexAttribIiv !is null, "OpenGL command glGetVertexAttribIiv was not loaded");
6973         return _GetVertexAttribIiv (index, pname, params);
6974     }
6975     /// ditto
6976     public void GetVertexAttribIuiv (GLuint index, GLenum pname, GLuint* params) const {
6977         assert(_GetVertexAttribIuiv !is null, "OpenGL command glGetVertexAttribIuiv was not loaded");
6978         return _GetVertexAttribIuiv (index, pname, params);
6979     }
6980     /// ditto
6981     public void VertexAttribI1i (GLuint index, GLint x) const {
6982         assert(_VertexAttribI1i !is null, "OpenGL command glVertexAttribI1i was not loaded");
6983         return _VertexAttribI1i (index, x);
6984     }
6985     /// ditto
6986     public void VertexAttribI2i (GLuint index, GLint x, GLint y) const {
6987         assert(_VertexAttribI2i !is null, "OpenGL command glVertexAttribI2i was not loaded");
6988         return _VertexAttribI2i (index, x, y);
6989     }
6990     /// ditto
6991     public void VertexAttribI3i (GLuint index, GLint x, GLint y, GLint z) const {
6992         assert(_VertexAttribI3i !is null, "OpenGL command glVertexAttribI3i was not loaded");
6993         return _VertexAttribI3i (index, x, y, z);
6994     }
6995     /// ditto
6996     public void VertexAttribI4i (GLuint index, GLint x, GLint y, GLint z, GLint w) const {
6997         assert(_VertexAttribI4i !is null, "OpenGL command glVertexAttribI4i was not loaded");
6998         return _VertexAttribI4i (index, x, y, z, w);
6999     }
7000     /// ditto
7001     public void VertexAttribI1ui (GLuint index, GLuint x) const {
7002         assert(_VertexAttribI1ui !is null, "OpenGL command glVertexAttribI1ui was not loaded");
7003         return _VertexAttribI1ui (index, x);
7004     }
7005     /// ditto
7006     public void VertexAttribI2ui (GLuint index, GLuint x, GLuint y) const {
7007         assert(_VertexAttribI2ui !is null, "OpenGL command glVertexAttribI2ui was not loaded");
7008         return _VertexAttribI2ui (index, x, y);
7009     }
7010     /// ditto
7011     public void VertexAttribI3ui (GLuint index, GLuint x, GLuint y, GLuint z) const {
7012         assert(_VertexAttribI3ui !is null, "OpenGL command glVertexAttribI3ui was not loaded");
7013         return _VertexAttribI3ui (index, x, y, z);
7014     }
7015     /// ditto
7016     public void VertexAttribI4ui (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w) const {
7017         assert(_VertexAttribI4ui !is null, "OpenGL command glVertexAttribI4ui was not loaded");
7018         return _VertexAttribI4ui (index, x, y, z, w);
7019     }
7020     /// ditto
7021     public void VertexAttribI1iv (GLuint index, const(GLint)* v) const {
7022         assert(_VertexAttribI1iv !is null, "OpenGL command glVertexAttribI1iv was not loaded");
7023         return _VertexAttribI1iv (index, v);
7024     }
7025     /// ditto
7026     public void VertexAttribI2iv (GLuint index, const(GLint)* v) const {
7027         assert(_VertexAttribI2iv !is null, "OpenGL command glVertexAttribI2iv was not loaded");
7028         return _VertexAttribI2iv (index, v);
7029     }
7030     /// ditto
7031     public void VertexAttribI3iv (GLuint index, const(GLint)* v) const {
7032         assert(_VertexAttribI3iv !is null, "OpenGL command glVertexAttribI3iv was not loaded");
7033         return _VertexAttribI3iv (index, v);
7034     }
7035     /// ditto
7036     public void VertexAttribI4iv (GLuint index, const(GLint)* v) const {
7037         assert(_VertexAttribI4iv !is null, "OpenGL command glVertexAttribI4iv was not loaded");
7038         return _VertexAttribI4iv (index, v);
7039     }
7040     /// ditto
7041     public void VertexAttribI1uiv (GLuint index, const(GLuint)* v) const {
7042         assert(_VertexAttribI1uiv !is null, "OpenGL command glVertexAttribI1uiv was not loaded");
7043         return _VertexAttribI1uiv (index, v);
7044     }
7045     /// ditto
7046     public void VertexAttribI2uiv (GLuint index, const(GLuint)* v) const {
7047         assert(_VertexAttribI2uiv !is null, "OpenGL command glVertexAttribI2uiv was not loaded");
7048         return _VertexAttribI2uiv (index, v);
7049     }
7050     /// ditto
7051     public void VertexAttribI3uiv (GLuint index, const(GLuint)* v) const {
7052         assert(_VertexAttribI3uiv !is null, "OpenGL command glVertexAttribI3uiv was not loaded");
7053         return _VertexAttribI3uiv (index, v);
7054     }
7055     /// ditto
7056     public void VertexAttribI4uiv (GLuint index, const(GLuint)* v) const {
7057         assert(_VertexAttribI4uiv !is null, "OpenGL command glVertexAttribI4uiv was not loaded");
7058         return _VertexAttribI4uiv (index, v);
7059     }
7060     /// ditto
7061     public void VertexAttribI4bv (GLuint index, const(GLbyte)* v) const {
7062         assert(_VertexAttribI4bv !is null, "OpenGL command glVertexAttribI4bv was not loaded");
7063         return _VertexAttribI4bv (index, v);
7064     }
7065     /// ditto
7066     public void VertexAttribI4sv (GLuint index, const(GLshort)* v) const {
7067         assert(_VertexAttribI4sv !is null, "OpenGL command glVertexAttribI4sv was not loaded");
7068         return _VertexAttribI4sv (index, v);
7069     }
7070     /// ditto
7071     public void VertexAttribI4ubv (GLuint index, const(GLubyte)* v) const {
7072         assert(_VertexAttribI4ubv !is null, "OpenGL command glVertexAttribI4ubv was not loaded");
7073         return _VertexAttribI4ubv (index, v);
7074     }
7075     /// ditto
7076     public void VertexAttribI4usv (GLuint index, const(GLushort)* v) const {
7077         assert(_VertexAttribI4usv !is null, "OpenGL command glVertexAttribI4usv was not loaded");
7078         return _VertexAttribI4usv (index, v);
7079     }
7080     /// ditto
7081     public void GetUniformuiv (GLuint program, GLint location, GLuint* params) const {
7082         assert(_GetUniformuiv !is null, "OpenGL command glGetUniformuiv was not loaded");
7083         return _GetUniformuiv (program, location, params);
7084     }
7085     /// ditto
7086     public void BindFragDataLocation (GLuint program, GLuint color, const(GLchar)* name) const {
7087         assert(_BindFragDataLocation !is null, "OpenGL command glBindFragDataLocation was not loaded");
7088         return _BindFragDataLocation (program, color, name);
7089     }
7090     /// ditto
7091     public GLint GetFragDataLocation (GLuint program, const(GLchar)* name) const {
7092         assert(_GetFragDataLocation !is null, "OpenGL command glGetFragDataLocation was not loaded");
7093         return _GetFragDataLocation (program, name);
7094     }
7095     /// ditto
7096     public void Uniform1ui (GLint location, GLuint v0) const {
7097         assert(_Uniform1ui !is null, "OpenGL command glUniform1ui was not loaded");
7098         return _Uniform1ui (location, v0);
7099     }
7100     /// ditto
7101     public void Uniform2ui (GLint location, GLuint v0, GLuint v1) const {
7102         assert(_Uniform2ui !is null, "OpenGL command glUniform2ui was not loaded");
7103         return _Uniform2ui (location, v0, v1);
7104     }
7105     /// ditto
7106     public void Uniform3ui (GLint location, GLuint v0, GLuint v1, GLuint v2) const {
7107         assert(_Uniform3ui !is null, "OpenGL command glUniform3ui was not loaded");
7108         return _Uniform3ui (location, v0, v1, v2);
7109     }
7110     /// ditto
7111     public void Uniform4ui (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3) const {
7112         assert(_Uniform4ui !is null, "OpenGL command glUniform4ui was not loaded");
7113         return _Uniform4ui (location, v0, v1, v2, v3);
7114     }
7115     /// ditto
7116     public void Uniform1uiv (GLint location, GLsizei count, const(GLuint)* value) const {
7117         assert(_Uniform1uiv !is null, "OpenGL command glUniform1uiv was not loaded");
7118         return _Uniform1uiv (location, count, value);
7119     }
7120     /// ditto
7121     public void Uniform2uiv (GLint location, GLsizei count, const(GLuint)* value) const {
7122         assert(_Uniform2uiv !is null, "OpenGL command glUniform2uiv was not loaded");
7123         return _Uniform2uiv (location, count, value);
7124     }
7125     /// ditto
7126     public void Uniform3uiv (GLint location, GLsizei count, const(GLuint)* value) const {
7127         assert(_Uniform3uiv !is null, "OpenGL command glUniform3uiv was not loaded");
7128         return _Uniform3uiv (location, count, value);
7129     }
7130     /// ditto
7131     public void Uniform4uiv (GLint location, GLsizei count, const(GLuint)* value) const {
7132         assert(_Uniform4uiv !is null, "OpenGL command glUniform4uiv was not loaded");
7133         return _Uniform4uiv (location, count, value);
7134     }
7135     /// ditto
7136     public void TexParameterIiv (GLenum target, GLenum pname, const(GLint)* params) const {
7137         assert(_TexParameterIiv !is null, "OpenGL command glTexParameterIiv was not loaded");
7138         return _TexParameterIiv (target, pname, params);
7139     }
7140     /// ditto
7141     public void TexParameterIuiv (GLenum target, GLenum pname, const(GLuint)* params) const {
7142         assert(_TexParameterIuiv !is null, "OpenGL command glTexParameterIuiv was not loaded");
7143         return _TexParameterIuiv (target, pname, params);
7144     }
7145     /// ditto
7146     public void GetTexParameterIiv (GLenum target, GLenum pname, GLint* params) const {
7147         assert(_GetTexParameterIiv !is null, "OpenGL command glGetTexParameterIiv was not loaded");
7148         return _GetTexParameterIiv (target, pname, params);
7149     }
7150     /// ditto
7151     public void GetTexParameterIuiv (GLenum target, GLenum pname, GLuint* params) const {
7152         assert(_GetTexParameterIuiv !is null, "OpenGL command glGetTexParameterIuiv was not loaded");
7153         return _GetTexParameterIuiv (target, pname, params);
7154     }
7155     /// ditto
7156     public void ClearBufferiv (GLenum buffer, GLint drawbuffer, const(GLint)* value) const {
7157         assert(_ClearBufferiv !is null, "OpenGL command glClearBufferiv was not loaded");
7158         return _ClearBufferiv (buffer, drawbuffer, value);
7159     }
7160     /// ditto
7161     public void ClearBufferuiv (GLenum buffer, GLint drawbuffer, const(GLuint)* value) const {
7162         assert(_ClearBufferuiv !is null, "OpenGL command glClearBufferuiv was not loaded");
7163         return _ClearBufferuiv (buffer, drawbuffer, value);
7164     }
7165     /// ditto
7166     public void ClearBufferfv (GLenum buffer, GLint drawbuffer, const(GLfloat)* value) const {
7167         assert(_ClearBufferfv !is null, "OpenGL command glClearBufferfv was not loaded");
7168         return _ClearBufferfv (buffer, drawbuffer, value);
7169     }
7170     /// ditto
7171     public void ClearBufferfi (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil) const {
7172         assert(_ClearBufferfi !is null, "OpenGL command glClearBufferfi was not loaded");
7173         return _ClearBufferfi (buffer, drawbuffer, depth, stencil);
7174     }
7175     /// ditto
7176     public const(GLubyte)* GetStringi (GLenum name, GLuint index) const {
7177         assert(_GetStringi !is null, "OpenGL command glGetStringi was not loaded");
7178         return _GetStringi (name, index);
7179     }
7180     /// ditto
7181     public GLboolean IsRenderbuffer (GLuint renderbuffer) const {
7182         assert(_IsRenderbuffer !is null, "OpenGL command glIsRenderbuffer was not loaded");
7183         return _IsRenderbuffer (renderbuffer);
7184     }
7185     /// ditto
7186     public void BindRenderbuffer (GLenum target, GLuint renderbuffer) const {
7187         assert(_BindRenderbuffer !is null, "OpenGL command glBindRenderbuffer was not loaded");
7188         return _BindRenderbuffer (target, renderbuffer);
7189     }
7190     /// ditto
7191     public void DeleteRenderbuffers (GLsizei n, const(GLuint)* renderbuffers) const {
7192         assert(_DeleteRenderbuffers !is null, "OpenGL command glDeleteRenderbuffers was not loaded");
7193         return _DeleteRenderbuffers (n, renderbuffers);
7194     }
7195     /// ditto
7196     public void GenRenderbuffers (GLsizei n, GLuint* renderbuffers) const {
7197         assert(_GenRenderbuffers !is null, "OpenGL command glGenRenderbuffers was not loaded");
7198         return _GenRenderbuffers (n, renderbuffers);
7199     }
7200     /// ditto
7201     public void RenderbufferStorage (GLenum target, GLenum internalformat, GLsizei width, GLsizei height) const {
7202         assert(_RenderbufferStorage !is null, "OpenGL command glRenderbufferStorage was not loaded");
7203         return _RenderbufferStorage (target, internalformat, width, height);
7204     }
7205     /// ditto
7206     public void GetRenderbufferParameteriv (GLenum target, GLenum pname, GLint* params) const {
7207         assert(_GetRenderbufferParameteriv !is null, "OpenGL command glGetRenderbufferParameteriv was not loaded");
7208         return _GetRenderbufferParameteriv (target, pname, params);
7209     }
7210     /// ditto
7211     public GLboolean IsFramebuffer (GLuint framebuffer) const {
7212         assert(_IsFramebuffer !is null, "OpenGL command glIsFramebuffer was not loaded");
7213         return _IsFramebuffer (framebuffer);
7214     }
7215     /// ditto
7216     public void BindFramebuffer (GLenum target, GLuint framebuffer) const {
7217         assert(_BindFramebuffer !is null, "OpenGL command glBindFramebuffer was not loaded");
7218         return _BindFramebuffer (target, framebuffer);
7219     }
7220     /// ditto
7221     public void DeleteFramebuffers (GLsizei n, const(GLuint)* framebuffers) const {
7222         assert(_DeleteFramebuffers !is null, "OpenGL command glDeleteFramebuffers was not loaded");
7223         return _DeleteFramebuffers (n, framebuffers);
7224     }
7225     /// ditto
7226     public void GenFramebuffers (GLsizei n, GLuint* framebuffers) const {
7227         assert(_GenFramebuffers !is null, "OpenGL command glGenFramebuffers was not loaded");
7228         return _GenFramebuffers (n, framebuffers);
7229     }
7230     /// ditto
7231     public GLenum CheckFramebufferStatus (GLenum target) const {
7232         assert(_CheckFramebufferStatus !is null, "OpenGL command glCheckFramebufferStatus was not loaded");
7233         return _CheckFramebufferStatus (target);
7234     }
7235     /// ditto
7236     public void FramebufferTexture1D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level) const {
7237         assert(_FramebufferTexture1D !is null, "OpenGL command glFramebufferTexture1D was not loaded");
7238         return _FramebufferTexture1D (target, attachment, textarget, texture, level);
7239     }
7240     /// ditto
7241     public void FramebufferTexture2D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level) const {
7242         assert(_FramebufferTexture2D !is null, "OpenGL command glFramebufferTexture2D was not loaded");
7243         return _FramebufferTexture2D (target, attachment, textarget, texture, level);
7244     }
7245     /// ditto
7246     public void FramebufferTexture3D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset) const {
7247         assert(_FramebufferTexture3D !is null, "OpenGL command glFramebufferTexture3D was not loaded");
7248         return _FramebufferTexture3D (target, attachment, textarget, texture, level, zoffset);
7249     }
7250     /// ditto
7251     public void FramebufferRenderbuffer (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer) const {
7252         assert(_FramebufferRenderbuffer !is null, "OpenGL command glFramebufferRenderbuffer was not loaded");
7253         return _FramebufferRenderbuffer (target, attachment, renderbuffertarget, renderbuffer);
7254     }
7255     /// ditto
7256     public void GetFramebufferAttachmentParameteriv (GLenum target, GLenum attachment, GLenum pname, GLint* params) const {
7257         assert(_GetFramebufferAttachmentParameteriv !is null, "OpenGL command glGetFramebufferAttachmentParameteriv was not loaded");
7258         return _GetFramebufferAttachmentParameteriv (target, attachment, pname, params);
7259     }
7260     /// ditto
7261     public void GenerateMipmap (GLenum target) const {
7262         assert(_GenerateMipmap !is null, "OpenGL command glGenerateMipmap was not loaded");
7263         return _GenerateMipmap (target);
7264     }
7265     /// ditto
7266     public void BlitFramebuffer (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter) const {
7267         assert(_BlitFramebuffer !is null, "OpenGL command glBlitFramebuffer was not loaded");
7268         return _BlitFramebuffer (srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
7269     }
7270     /// ditto
7271     public void RenderbufferStorageMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height) const {
7272         assert(_RenderbufferStorageMultisample !is null, "OpenGL command glRenderbufferStorageMultisample was not loaded");
7273         return _RenderbufferStorageMultisample (target, samples, internalformat, width, height);
7274     }
7275     /// ditto
7276     public void FramebufferTextureLayer (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer) const {
7277         assert(_FramebufferTextureLayer !is null, "OpenGL command glFramebufferTextureLayer was not loaded");
7278         return _FramebufferTextureLayer (target, attachment, texture, level, layer);
7279     }
7280     /// ditto
7281     public void * MapBufferRange (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access) const {
7282         assert(_MapBufferRange !is null, "OpenGL command glMapBufferRange was not loaded");
7283         return _MapBufferRange (target, offset, length, access);
7284     }
7285     /// ditto
7286     public void FlushMappedBufferRange (GLenum target, GLintptr offset, GLsizeiptr length) const {
7287         assert(_FlushMappedBufferRange !is null, "OpenGL command glFlushMappedBufferRange was not loaded");
7288         return _FlushMappedBufferRange (target, offset, length);
7289     }
7290     /// ditto
7291     public void BindVertexArray (GLuint array) const {
7292         assert(_BindVertexArray !is null, "OpenGL command glBindVertexArray was not loaded");
7293         return _BindVertexArray (array);
7294     }
7295     /// ditto
7296     public void DeleteVertexArrays (GLsizei n, const(GLuint)* arrays) const {
7297         assert(_DeleteVertexArrays !is null, "OpenGL command glDeleteVertexArrays was not loaded");
7298         return _DeleteVertexArrays (n, arrays);
7299     }
7300     /// ditto
7301     public void GenVertexArrays (GLsizei n, GLuint* arrays) const {
7302         assert(_GenVertexArrays !is null, "OpenGL command glGenVertexArrays was not loaded");
7303         return _GenVertexArrays (n, arrays);
7304     }
7305     /// ditto
7306     public GLboolean IsVertexArray (GLuint array) const {
7307         assert(_IsVertexArray !is null, "OpenGL command glIsVertexArray was not loaded");
7308         return _IsVertexArray (array);
7309     }
7310 
7311     /// Commands for GL_VERSION_3_1
7312     public void DrawArraysInstanced (GLenum mode, GLint first, GLsizei count, GLsizei instancecount) const {
7313         assert(_DrawArraysInstanced !is null, "OpenGL command glDrawArraysInstanced was not loaded");
7314         return _DrawArraysInstanced (mode, first, count, instancecount);
7315     }
7316     /// ditto
7317     public void DrawElementsInstanced (GLenum mode, GLsizei count, GLenum type, const(void)* indices, GLsizei instancecount) const {
7318         assert(_DrawElementsInstanced !is null, "OpenGL command glDrawElementsInstanced was not loaded");
7319         return _DrawElementsInstanced (mode, count, type, indices, instancecount);
7320     }
7321     /// ditto
7322     public void TexBuffer (GLenum target, GLenum internalformat, GLuint buffer) const {
7323         assert(_TexBuffer !is null, "OpenGL command glTexBuffer was not loaded");
7324         return _TexBuffer (target, internalformat, buffer);
7325     }
7326     /// ditto
7327     public void PrimitiveRestartIndex (GLuint index) const {
7328         assert(_PrimitiveRestartIndex !is null, "OpenGL command glPrimitiveRestartIndex was not loaded");
7329         return _PrimitiveRestartIndex (index);
7330     }
7331     /// ditto
7332     public void CopyBufferSubData (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size) const {
7333         assert(_CopyBufferSubData !is null, "OpenGL command glCopyBufferSubData was not loaded");
7334         return _CopyBufferSubData (readTarget, writeTarget, readOffset, writeOffset, size);
7335     }
7336     /// ditto
7337     public void GetUniformIndices (GLuint program, GLsizei uniformCount, const(GLchar*)* uniformNames, GLuint* uniformIndices) const {
7338         assert(_GetUniformIndices !is null, "OpenGL command glGetUniformIndices was not loaded");
7339         return _GetUniformIndices (program, uniformCount, uniformNames, uniformIndices);
7340     }
7341     /// ditto
7342     public void GetActiveUniformsiv (GLuint program, GLsizei uniformCount, const(GLuint)* uniformIndices, GLenum pname, GLint* params) const {
7343         assert(_GetActiveUniformsiv !is null, "OpenGL command glGetActiveUniformsiv was not loaded");
7344         return _GetActiveUniformsiv (program, uniformCount, uniformIndices, pname, params);
7345     }
7346     /// ditto
7347     public void GetActiveUniformName (GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformName) const {
7348         assert(_GetActiveUniformName !is null, "OpenGL command glGetActiveUniformName was not loaded");
7349         return _GetActiveUniformName (program, uniformIndex, bufSize, length, uniformName);
7350     }
7351     /// ditto
7352     public GLuint GetUniformBlockIndex (GLuint program, const(GLchar)* uniformBlockName) const {
7353         assert(_GetUniformBlockIndex !is null, "OpenGL command glGetUniformBlockIndex was not loaded");
7354         return _GetUniformBlockIndex (program, uniformBlockName);
7355     }
7356     /// ditto
7357     public void GetActiveUniformBlockiv (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint* params) const {
7358         assert(_GetActiveUniformBlockiv !is null, "OpenGL command glGetActiveUniformBlockiv was not loaded");
7359         return _GetActiveUniformBlockiv (program, uniformBlockIndex, pname, params);
7360     }
7361     /// ditto
7362     public void GetActiveUniformBlockName (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformBlockName) const {
7363         assert(_GetActiveUniformBlockName !is null, "OpenGL command glGetActiveUniformBlockName was not loaded");
7364         return _GetActiveUniformBlockName (program, uniformBlockIndex, bufSize, length, uniformBlockName);
7365     }
7366     /// ditto
7367     public void UniformBlockBinding (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding) const {
7368         assert(_UniformBlockBinding !is null, "OpenGL command glUniformBlockBinding was not loaded");
7369         return _UniformBlockBinding (program, uniformBlockIndex, uniformBlockBinding);
7370     }
7371 
7372     /// Commands for GL_VERSION_3_2
7373     public void DrawElementsBaseVertex (GLenum mode, GLsizei count, GLenum type, const(void)* indices, GLint basevertex) const {
7374         assert(_DrawElementsBaseVertex !is null, "OpenGL command glDrawElementsBaseVertex was not loaded");
7375         return _DrawElementsBaseVertex (mode, count, type, indices, basevertex);
7376     }
7377     /// ditto
7378     public void DrawRangeElementsBaseVertex (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const(void)* indices, GLint basevertex) const {
7379         assert(_DrawRangeElementsBaseVertex !is null, "OpenGL command glDrawRangeElementsBaseVertex was not loaded");
7380         return _DrawRangeElementsBaseVertex (mode, start, end, count, type, indices, basevertex);
7381     }
7382     /// ditto
7383     public void DrawElementsInstancedBaseVertex (GLenum mode, GLsizei count, GLenum type, const(void)* indices, GLsizei instancecount, GLint basevertex) const {
7384         assert(_DrawElementsInstancedBaseVertex !is null, "OpenGL command glDrawElementsInstancedBaseVertex was not loaded");
7385         return _DrawElementsInstancedBaseVertex (mode, count, type, indices, instancecount, basevertex);
7386     }
7387     /// ditto
7388     public void MultiDrawElementsBaseVertex (GLenum mode, const(GLsizei)* count, GLenum type, const(void*)* indices, GLsizei drawcount, const(GLint)* basevertex) const {
7389         assert(_MultiDrawElementsBaseVertex !is null, "OpenGL command glMultiDrawElementsBaseVertex was not loaded");
7390         return _MultiDrawElementsBaseVertex (mode, count, type, indices, drawcount, basevertex);
7391     }
7392     /// ditto
7393     public void ProvokingVertex (GLenum mode) const {
7394         assert(_ProvokingVertex !is null, "OpenGL command glProvokingVertex was not loaded");
7395         return _ProvokingVertex (mode);
7396     }
7397     /// ditto
7398     public GLsync FenceSync (GLenum condition, GLbitfield flags) const {
7399         assert(_FenceSync !is null, "OpenGL command glFenceSync was not loaded");
7400         return _FenceSync (condition, flags);
7401     }
7402     /// ditto
7403     public GLboolean IsSync (GLsync sync) const {
7404         assert(_IsSync !is null, "OpenGL command glIsSync was not loaded");
7405         return _IsSync (sync);
7406     }
7407     /// ditto
7408     public void DeleteSync (GLsync sync) const {
7409         assert(_DeleteSync !is null, "OpenGL command glDeleteSync was not loaded");
7410         return _DeleteSync (sync);
7411     }
7412     /// ditto
7413     public GLenum ClientWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout) const {
7414         assert(_ClientWaitSync !is null, "OpenGL command glClientWaitSync was not loaded");
7415         return _ClientWaitSync (sync, flags, timeout);
7416     }
7417     /// ditto
7418     public void WaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout) const {
7419         assert(_WaitSync !is null, "OpenGL command glWaitSync was not loaded");
7420         return _WaitSync (sync, flags, timeout);
7421     }
7422     /// ditto
7423     public void GetInteger64v (GLenum pname, GLint64* data) const {
7424         assert(_GetInteger64v !is null, "OpenGL command glGetInteger64v was not loaded");
7425         return _GetInteger64v (pname, data);
7426     }
7427     /// ditto
7428     public void GetSynciv (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei* length, GLint* values) const {
7429         assert(_GetSynciv !is null, "OpenGL command glGetSynciv was not loaded");
7430         return _GetSynciv (sync, pname, bufSize, length, values);
7431     }
7432     /// ditto
7433     public void GetInteger64i_v (GLenum target, GLuint index, GLint64* data) const {
7434         assert(_GetInteger64i_v !is null, "OpenGL command glGetInteger64i_v was not loaded");
7435         return _GetInteger64i_v (target, index, data);
7436     }
7437     /// ditto
7438     public void GetBufferParameteri64v (GLenum target, GLenum pname, GLint64* params) const {
7439         assert(_GetBufferParameteri64v !is null, "OpenGL command glGetBufferParameteri64v was not loaded");
7440         return _GetBufferParameteri64v (target, pname, params);
7441     }
7442     /// ditto
7443     public void FramebufferTexture (GLenum target, GLenum attachment, GLuint texture, GLint level) const {
7444         assert(_FramebufferTexture !is null, "OpenGL command glFramebufferTexture was not loaded");
7445         return _FramebufferTexture (target, attachment, texture, level);
7446     }
7447     /// ditto
7448     public void TexImage2DMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations) const {
7449         assert(_TexImage2DMultisample !is null, "OpenGL command glTexImage2DMultisample was not loaded");
7450         return _TexImage2DMultisample (target, samples, internalformat, width, height, fixedsamplelocations);
7451     }
7452     /// ditto
7453     public void TexImage3DMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations) const {
7454         assert(_TexImage3DMultisample !is null, "OpenGL command glTexImage3DMultisample was not loaded");
7455         return _TexImage3DMultisample (target, samples, internalformat, width, height, depth, fixedsamplelocations);
7456     }
7457     /// ditto
7458     public void GetMultisamplefv (GLenum pname, GLuint index, GLfloat* val) const {
7459         assert(_GetMultisamplefv !is null, "OpenGL command glGetMultisamplefv was not loaded");
7460         return _GetMultisamplefv (pname, index, val);
7461     }
7462     /// ditto
7463     public void SampleMaski (GLuint maskNumber, GLbitfield mask) const {
7464         assert(_SampleMaski !is null, "OpenGL command glSampleMaski was not loaded");
7465         return _SampleMaski (maskNumber, mask);
7466     }
7467 
7468     /// Commands for GL_VERSION_3_3
7469     public void BindFragDataLocationIndexed (GLuint program, GLuint colorNumber, GLuint index, const(GLchar)* name) const {
7470         assert(_BindFragDataLocationIndexed !is null, "OpenGL command glBindFragDataLocationIndexed was not loaded");
7471         return _BindFragDataLocationIndexed (program, colorNumber, index, name);
7472     }
7473     /// ditto
7474     public GLint GetFragDataIndex (GLuint program, const(GLchar)* name) const {
7475         assert(_GetFragDataIndex !is null, "OpenGL command glGetFragDataIndex was not loaded");
7476         return _GetFragDataIndex (program, name);
7477     }
7478     /// ditto
7479     public void GenSamplers (GLsizei count, GLuint* samplers) const {
7480         assert(_GenSamplers !is null, "OpenGL command glGenSamplers was not loaded");
7481         return _GenSamplers (count, samplers);
7482     }
7483     /// ditto
7484     public void DeleteSamplers (GLsizei count, const(GLuint)* samplers) const {
7485         assert(_DeleteSamplers !is null, "OpenGL command glDeleteSamplers was not loaded");
7486         return _DeleteSamplers (count, samplers);
7487     }
7488     /// ditto
7489     public GLboolean IsSampler (GLuint sampler) const {
7490         assert(_IsSampler !is null, "OpenGL command glIsSampler was not loaded");
7491         return _IsSampler (sampler);
7492     }
7493     /// ditto
7494     public void BindSampler (GLuint unit, GLuint sampler) const {
7495         assert(_BindSampler !is null, "OpenGL command glBindSampler was not loaded");
7496         return _BindSampler (unit, sampler);
7497     }
7498     /// ditto
7499     public void SamplerParameteri (GLuint sampler, GLenum pname, GLint param) const {
7500         assert(_SamplerParameteri !is null, "OpenGL command glSamplerParameteri was not loaded");
7501         return _SamplerParameteri (sampler, pname, param);
7502     }
7503     /// ditto
7504     public void SamplerParameteriv (GLuint sampler, GLenum pname, const(GLint)* param) const {
7505         assert(_SamplerParameteriv !is null, "OpenGL command glSamplerParameteriv was not loaded");
7506         return _SamplerParameteriv (sampler, pname, param);
7507     }
7508     /// ditto
7509     public void SamplerParameterf (GLuint sampler, GLenum pname, GLfloat param) const {
7510         assert(_SamplerParameterf !is null, "OpenGL command glSamplerParameterf was not loaded");
7511         return _SamplerParameterf (sampler, pname, param);
7512     }
7513     /// ditto
7514     public void SamplerParameterfv (GLuint sampler, GLenum pname, const(GLfloat)* param) const {
7515         assert(_SamplerParameterfv !is null, "OpenGL command glSamplerParameterfv was not loaded");
7516         return _SamplerParameterfv (sampler, pname, param);
7517     }
7518     /// ditto
7519     public void SamplerParameterIiv (GLuint sampler, GLenum pname, const(GLint)* param) const {
7520         assert(_SamplerParameterIiv !is null, "OpenGL command glSamplerParameterIiv was not loaded");
7521         return _SamplerParameterIiv (sampler, pname, param);
7522     }
7523     /// ditto
7524     public void SamplerParameterIuiv (GLuint sampler, GLenum pname, const(GLuint)* param) const {
7525         assert(_SamplerParameterIuiv !is null, "OpenGL command glSamplerParameterIuiv was not loaded");
7526         return _SamplerParameterIuiv (sampler, pname, param);
7527     }
7528     /// ditto
7529     public void GetSamplerParameteriv (GLuint sampler, GLenum pname, GLint* params) const {
7530         assert(_GetSamplerParameteriv !is null, "OpenGL command glGetSamplerParameteriv was not loaded");
7531         return _GetSamplerParameteriv (sampler, pname, params);
7532     }
7533     /// ditto
7534     public void GetSamplerParameterIiv (GLuint sampler, GLenum pname, GLint* params) const {
7535         assert(_GetSamplerParameterIiv !is null, "OpenGL command glGetSamplerParameterIiv was not loaded");
7536         return _GetSamplerParameterIiv (sampler, pname, params);
7537     }
7538     /// ditto
7539     public void GetSamplerParameterfv (GLuint sampler, GLenum pname, GLfloat* params) const {
7540         assert(_GetSamplerParameterfv !is null, "OpenGL command glGetSamplerParameterfv was not loaded");
7541         return _GetSamplerParameterfv (sampler, pname, params);
7542     }
7543     /// ditto
7544     public void GetSamplerParameterIuiv (GLuint sampler, GLenum pname, GLuint* params) const {
7545         assert(_GetSamplerParameterIuiv !is null, "OpenGL command glGetSamplerParameterIuiv was not loaded");
7546         return _GetSamplerParameterIuiv (sampler, pname, params);
7547     }
7548     /// ditto
7549     public void QueryCounter (GLuint id, GLenum target) const {
7550         assert(_QueryCounter !is null, "OpenGL command glQueryCounter was not loaded");
7551         return _QueryCounter (id, target);
7552     }
7553     /// ditto
7554     public void GetQueryObjecti64v (GLuint id, GLenum pname, GLint64* params) const {
7555         assert(_GetQueryObjecti64v !is null, "OpenGL command glGetQueryObjecti64v was not loaded");
7556         return _GetQueryObjecti64v (id, pname, params);
7557     }
7558     /// ditto
7559     public void GetQueryObjectui64v (GLuint id, GLenum pname, GLuint64* params) const {
7560         assert(_GetQueryObjectui64v !is null, "OpenGL command glGetQueryObjectui64v was not loaded");
7561         return _GetQueryObjectui64v (id, pname, params);
7562     }
7563     /// ditto
7564     public void VertexAttribDivisor (GLuint index, GLuint divisor) const {
7565         assert(_VertexAttribDivisor !is null, "OpenGL command glVertexAttribDivisor was not loaded");
7566         return _VertexAttribDivisor (index, divisor);
7567     }
7568     /// ditto
7569     public void VertexAttribP1ui (GLuint index, GLenum type, GLboolean normalized, GLuint value) const {
7570         assert(_VertexAttribP1ui !is null, "OpenGL command glVertexAttribP1ui was not loaded");
7571         return _VertexAttribP1ui (index, type, normalized, value);
7572     }
7573     /// ditto
7574     public void VertexAttribP1uiv (GLuint index, GLenum type, GLboolean normalized, const(GLuint)* value) const {
7575         assert(_VertexAttribP1uiv !is null, "OpenGL command glVertexAttribP1uiv was not loaded");
7576         return _VertexAttribP1uiv (index, type, normalized, value);
7577     }
7578     /// ditto
7579     public void VertexAttribP2ui (GLuint index, GLenum type, GLboolean normalized, GLuint value) const {
7580         assert(_VertexAttribP2ui !is null, "OpenGL command glVertexAttribP2ui was not loaded");
7581         return _VertexAttribP2ui (index, type, normalized, value);
7582     }
7583     /// ditto
7584     public void VertexAttribP2uiv (GLuint index, GLenum type, GLboolean normalized, const(GLuint)* value) const {
7585         assert(_VertexAttribP2uiv !is null, "OpenGL command glVertexAttribP2uiv was not loaded");
7586         return _VertexAttribP2uiv (index, type, normalized, value);
7587     }
7588     /// ditto
7589     public void VertexAttribP3ui (GLuint index, GLenum type, GLboolean normalized, GLuint value) const {
7590         assert(_VertexAttribP3ui !is null, "OpenGL command glVertexAttribP3ui was not loaded");
7591         return _VertexAttribP3ui (index, type, normalized, value);
7592     }
7593     /// ditto
7594     public void VertexAttribP3uiv (GLuint index, GLenum type, GLboolean normalized, const(GLuint)* value) const {
7595         assert(_VertexAttribP3uiv !is null, "OpenGL command glVertexAttribP3uiv was not loaded");
7596         return _VertexAttribP3uiv (index, type, normalized, value);
7597     }
7598     /// ditto
7599     public void VertexAttribP4ui (GLuint index, GLenum type, GLboolean normalized, GLuint value) const {
7600         assert(_VertexAttribP4ui !is null, "OpenGL command glVertexAttribP4ui was not loaded");
7601         return _VertexAttribP4ui (index, type, normalized, value);
7602     }
7603     /// ditto
7604     public void VertexAttribP4uiv (GLuint index, GLenum type, GLboolean normalized, const(GLuint)* value) const {
7605         assert(_VertexAttribP4uiv !is null, "OpenGL command glVertexAttribP4uiv was not loaded");
7606         return _VertexAttribP4uiv (index, type, normalized, value);
7607     }
7608 
7609     /// Commands for GL_VERSION_4_0
7610     public void MinSampleShading (GLfloat value) const {
7611         assert(_MinSampleShading !is null, "OpenGL command glMinSampleShading was not loaded");
7612         return _MinSampleShading (value);
7613     }
7614     /// ditto
7615     public void BlendEquationi (GLuint buf, GLenum mode) const {
7616         assert(_BlendEquationi !is null, "OpenGL command glBlendEquationi was not loaded");
7617         return _BlendEquationi (buf, mode);
7618     }
7619     /// ditto
7620     public void BlendEquationSeparatei (GLuint buf, GLenum modeRGB, GLenum modeAlpha) const {
7621         assert(_BlendEquationSeparatei !is null, "OpenGL command glBlendEquationSeparatei was not loaded");
7622         return _BlendEquationSeparatei (buf, modeRGB, modeAlpha);
7623     }
7624     /// ditto
7625     public void BlendFunci (GLuint buf, GLenum src, GLenum dst) const {
7626         assert(_BlendFunci !is null, "OpenGL command glBlendFunci was not loaded");
7627         return _BlendFunci (buf, src, dst);
7628     }
7629     /// ditto
7630     public void BlendFuncSeparatei (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha) const {
7631         assert(_BlendFuncSeparatei !is null, "OpenGL command glBlendFuncSeparatei was not loaded");
7632         return _BlendFuncSeparatei (buf, srcRGB, dstRGB, srcAlpha, dstAlpha);
7633     }
7634     /// ditto
7635     public void DrawArraysIndirect (GLenum mode, const(void)* indirect) const {
7636         assert(_DrawArraysIndirect !is null, "OpenGL command glDrawArraysIndirect was not loaded");
7637         return _DrawArraysIndirect (mode, indirect);
7638     }
7639     /// ditto
7640     public void DrawElementsIndirect (GLenum mode, GLenum type, const(void)* indirect) const {
7641         assert(_DrawElementsIndirect !is null, "OpenGL command glDrawElementsIndirect was not loaded");
7642         return _DrawElementsIndirect (mode, type, indirect);
7643     }
7644     /// ditto
7645     public void Uniform1d (GLint location, GLdouble x) const {
7646         assert(_Uniform1d !is null, "OpenGL command glUniform1d was not loaded");
7647         return _Uniform1d (location, x);
7648     }
7649     /// ditto
7650     public void Uniform2d (GLint location, GLdouble x, GLdouble y) const {
7651         assert(_Uniform2d !is null, "OpenGL command glUniform2d was not loaded");
7652         return _Uniform2d (location, x, y);
7653     }
7654     /// ditto
7655     public void Uniform3d (GLint location, GLdouble x, GLdouble y, GLdouble z) const {
7656         assert(_Uniform3d !is null, "OpenGL command glUniform3d was not loaded");
7657         return _Uniform3d (location, x, y, z);
7658     }
7659     /// ditto
7660     public void Uniform4d (GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w) const {
7661         assert(_Uniform4d !is null, "OpenGL command glUniform4d was not loaded");
7662         return _Uniform4d (location, x, y, z, w);
7663     }
7664     /// ditto
7665     public void Uniform1dv (GLint location, GLsizei count, const(GLdouble)* value) const {
7666         assert(_Uniform1dv !is null, "OpenGL command glUniform1dv was not loaded");
7667         return _Uniform1dv (location, count, value);
7668     }
7669     /// ditto
7670     public void Uniform2dv (GLint location, GLsizei count, const(GLdouble)* value) const {
7671         assert(_Uniform2dv !is null, "OpenGL command glUniform2dv was not loaded");
7672         return _Uniform2dv (location, count, value);
7673     }
7674     /// ditto
7675     public void Uniform3dv (GLint location, GLsizei count, const(GLdouble)* value) const {
7676         assert(_Uniform3dv !is null, "OpenGL command glUniform3dv was not loaded");
7677         return _Uniform3dv (location, count, value);
7678     }
7679     /// ditto
7680     public void Uniform4dv (GLint location, GLsizei count, const(GLdouble)* value) const {
7681         assert(_Uniform4dv !is null, "OpenGL command glUniform4dv was not loaded");
7682         return _Uniform4dv (location, count, value);
7683     }
7684     /// ditto
7685     public void UniformMatrix2dv (GLint location, GLsizei count, GLboolean transpose, const(GLdouble)* value) const {
7686         assert(_UniformMatrix2dv !is null, "OpenGL command glUniformMatrix2dv was not loaded");
7687         return _UniformMatrix2dv (location, count, transpose, value);
7688     }
7689     /// ditto
7690     public void UniformMatrix3dv (GLint location, GLsizei count, GLboolean transpose, const(GLdouble)* value) const {
7691         assert(_UniformMatrix3dv !is null, "OpenGL command glUniformMatrix3dv was not loaded");
7692         return _UniformMatrix3dv (location, count, transpose, value);
7693     }
7694     /// ditto
7695     public void UniformMatrix4dv (GLint location, GLsizei count, GLboolean transpose, const(GLdouble)* value) const {
7696         assert(_UniformMatrix4dv !is null, "OpenGL command glUniformMatrix4dv was not loaded");
7697         return _UniformMatrix4dv (location, count, transpose, value);
7698     }
7699     /// ditto
7700     public void UniformMatrix2x3dv (GLint location, GLsizei count, GLboolean transpose, const(GLdouble)* value) const {
7701         assert(_UniformMatrix2x3dv !is null, "OpenGL command glUniformMatrix2x3dv was not loaded");
7702         return _UniformMatrix2x3dv (location, count, transpose, value);
7703     }
7704     /// ditto
7705     public void UniformMatrix2x4dv (GLint location, GLsizei count, GLboolean transpose, const(GLdouble)* value) const {
7706         assert(_UniformMatrix2x4dv !is null, "OpenGL command glUniformMatrix2x4dv was not loaded");
7707         return _UniformMatrix2x4dv (location, count, transpose, value);
7708     }
7709     /// ditto
7710     public void UniformMatrix3x2dv (GLint location, GLsizei count, GLboolean transpose, const(GLdouble)* value) const {
7711         assert(_UniformMatrix3x2dv !is null, "OpenGL command glUniformMatrix3x2dv was not loaded");
7712         return _UniformMatrix3x2dv (location, count, transpose, value);
7713     }
7714     /// ditto
7715     public void UniformMatrix3x4dv (GLint location, GLsizei count, GLboolean transpose, const(GLdouble)* value) const {
7716         assert(_UniformMatrix3x4dv !is null, "OpenGL command glUniformMatrix3x4dv was not loaded");
7717         return _UniformMatrix3x4dv (location, count, transpose, value);
7718     }
7719     /// ditto
7720     public void UniformMatrix4x2dv (GLint location, GLsizei count, GLboolean transpose, const(GLdouble)* value) const {
7721         assert(_UniformMatrix4x2dv !is null, "OpenGL command glUniformMatrix4x2dv was not loaded");
7722         return _UniformMatrix4x2dv (location, count, transpose, value);
7723     }
7724     /// ditto
7725     public void UniformMatrix4x3dv (GLint location, GLsizei count, GLboolean transpose, const(GLdouble)* value) const {
7726         assert(_UniformMatrix4x3dv !is null, "OpenGL command glUniformMatrix4x3dv was not loaded");
7727         return _UniformMatrix4x3dv (location, count, transpose, value);
7728     }
7729     /// ditto
7730     public void GetUniformdv (GLuint program, GLint location, GLdouble* params) const {
7731         assert(_GetUniformdv !is null, "OpenGL command glGetUniformdv was not loaded");
7732         return _GetUniformdv (program, location, params);
7733     }
7734     /// ditto
7735     public GLint GetSubroutineUniformLocation (GLuint program, GLenum shadertype, const(GLchar)* name) const {
7736         assert(_GetSubroutineUniformLocation !is null, "OpenGL command glGetSubroutineUniformLocation was not loaded");
7737         return _GetSubroutineUniformLocation (program, shadertype, name);
7738     }
7739     /// ditto
7740     public GLuint GetSubroutineIndex (GLuint program, GLenum shadertype, const(GLchar)* name) const {
7741         assert(_GetSubroutineIndex !is null, "OpenGL command glGetSubroutineIndex was not loaded");
7742         return _GetSubroutineIndex (program, shadertype, name);
7743     }
7744     /// ditto
7745     public void GetActiveSubroutineUniformiv (GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint* values) const {
7746         assert(_GetActiveSubroutineUniformiv !is null, "OpenGL command glGetActiveSubroutineUniformiv was not loaded");
7747         return _GetActiveSubroutineUniformiv (program, shadertype, index, pname, values);
7748     }
7749     /// ditto
7750     public void GetActiveSubroutineUniformName (GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei* length, GLchar* name) const {
7751         assert(_GetActiveSubroutineUniformName !is null, "OpenGL command glGetActiveSubroutineUniformName was not loaded");
7752         return _GetActiveSubroutineUniformName (program, shadertype, index, bufsize, length, name);
7753     }
7754     /// ditto
7755     public void GetActiveSubroutineName (GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei* length, GLchar* name) const {
7756         assert(_GetActiveSubroutineName !is null, "OpenGL command glGetActiveSubroutineName was not loaded");
7757         return _GetActiveSubroutineName (program, shadertype, index, bufsize, length, name);
7758     }
7759     /// ditto
7760     public void UniformSubroutinesuiv (GLenum shadertype, GLsizei count, const(GLuint)* indices) const {
7761         assert(_UniformSubroutinesuiv !is null, "OpenGL command glUniformSubroutinesuiv was not loaded");
7762         return _UniformSubroutinesuiv (shadertype, count, indices);
7763     }
7764     /// ditto
7765     public void GetUniformSubroutineuiv (GLenum shadertype, GLint location, GLuint* params) const {
7766         assert(_GetUniformSubroutineuiv !is null, "OpenGL command glGetUniformSubroutineuiv was not loaded");
7767         return _GetUniformSubroutineuiv (shadertype, location, params);
7768     }
7769     /// ditto
7770     public void GetProgramStageiv (GLuint program, GLenum shadertype, GLenum pname, GLint* values) const {
7771         assert(_GetProgramStageiv !is null, "OpenGL command glGetProgramStageiv was not loaded");
7772         return _GetProgramStageiv (program, shadertype, pname, values);
7773     }
7774     /// ditto
7775     public void PatchParameteri (GLenum pname, GLint value) const {
7776         assert(_PatchParameteri !is null, "OpenGL command glPatchParameteri was not loaded");
7777         return _PatchParameteri (pname, value);
7778     }
7779     /// ditto
7780     public void PatchParameterfv (GLenum pname, const(GLfloat)* values) const {
7781         assert(_PatchParameterfv !is null, "OpenGL command glPatchParameterfv was not loaded");
7782         return _PatchParameterfv (pname, values);
7783     }
7784     /// ditto
7785     public void BindTransformFeedback (GLenum target, GLuint id) const {
7786         assert(_BindTransformFeedback !is null, "OpenGL command glBindTransformFeedback was not loaded");
7787         return _BindTransformFeedback (target, id);
7788     }
7789     /// ditto
7790     public void DeleteTransformFeedbacks (GLsizei n, const(GLuint)* ids) const {
7791         assert(_DeleteTransformFeedbacks !is null, "OpenGL command glDeleteTransformFeedbacks was not loaded");
7792         return _DeleteTransformFeedbacks (n, ids);
7793     }
7794     /// ditto
7795     public void GenTransformFeedbacks (GLsizei n, GLuint* ids) const {
7796         assert(_GenTransformFeedbacks !is null, "OpenGL command glGenTransformFeedbacks was not loaded");
7797         return _GenTransformFeedbacks (n, ids);
7798     }
7799     /// ditto
7800     public GLboolean IsTransformFeedback (GLuint id) const {
7801         assert(_IsTransformFeedback !is null, "OpenGL command glIsTransformFeedback was not loaded");
7802         return _IsTransformFeedback (id);
7803     }
7804     /// ditto
7805     public void PauseTransformFeedback () const {
7806         assert(_PauseTransformFeedback !is null, "OpenGL command glPauseTransformFeedback was not loaded");
7807         return _PauseTransformFeedback ();
7808     }
7809     /// ditto
7810     public void ResumeTransformFeedback () const {
7811         assert(_ResumeTransformFeedback !is null, "OpenGL command glResumeTransformFeedback was not loaded");
7812         return _ResumeTransformFeedback ();
7813     }
7814     /// ditto
7815     public void DrawTransformFeedback (GLenum mode, GLuint id) const {
7816         assert(_DrawTransformFeedback !is null, "OpenGL command glDrawTransformFeedback was not loaded");
7817         return _DrawTransformFeedback (mode, id);
7818     }
7819     /// ditto
7820     public void DrawTransformFeedbackStream (GLenum mode, GLuint id, GLuint stream) const {
7821         assert(_DrawTransformFeedbackStream !is null, "OpenGL command glDrawTransformFeedbackStream was not loaded");
7822         return _DrawTransformFeedbackStream (mode, id, stream);
7823     }
7824     /// ditto
7825     public void BeginQueryIndexed (GLenum target, GLuint index, GLuint id) const {
7826         assert(_BeginQueryIndexed !is null, "OpenGL command glBeginQueryIndexed was not loaded");
7827         return _BeginQueryIndexed (target, index, id);
7828     }
7829     /// ditto
7830     public void EndQueryIndexed (GLenum target, GLuint index) const {
7831         assert(_EndQueryIndexed !is null, "OpenGL command glEndQueryIndexed was not loaded");
7832         return _EndQueryIndexed (target, index);
7833     }
7834     /// ditto
7835     public void GetQueryIndexediv (GLenum target, GLuint index, GLenum pname, GLint* params) const {
7836         assert(_GetQueryIndexediv !is null, "OpenGL command glGetQueryIndexediv was not loaded");
7837         return _GetQueryIndexediv (target, index, pname, params);
7838     }
7839 
7840     /// Commands for GL_VERSION_4_1
7841     public void ReleaseShaderCompiler () const {
7842         assert(_ReleaseShaderCompiler !is null, "OpenGL command glReleaseShaderCompiler was not loaded");
7843         return _ReleaseShaderCompiler ();
7844     }
7845     /// ditto
7846     public void ShaderBinary (GLsizei count, const(GLuint)* shaders, GLenum binaryformat, const(void)* binary, GLsizei length) const {
7847         assert(_ShaderBinary !is null, "OpenGL command glShaderBinary was not loaded");
7848         return _ShaderBinary (count, shaders, binaryformat, binary, length);
7849     }
7850     /// ditto
7851     public void GetShaderPrecisionFormat (GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision) const {
7852         assert(_GetShaderPrecisionFormat !is null, "OpenGL command glGetShaderPrecisionFormat was not loaded");
7853         return _GetShaderPrecisionFormat (shadertype, precisiontype, range, precision);
7854     }
7855     /// ditto
7856     public void DepthRangef (GLfloat n, GLfloat f) const {
7857         assert(_DepthRangef !is null, "OpenGL command glDepthRangef was not loaded");
7858         return _DepthRangef (n, f);
7859     }
7860     /// ditto
7861     public void ClearDepthf (GLfloat d) const {
7862         assert(_ClearDepthf !is null, "OpenGL command glClearDepthf was not loaded");
7863         return _ClearDepthf (d);
7864     }
7865     /// ditto
7866     public void GetProgramBinary (GLuint program, GLsizei bufSize, GLsizei* length, GLenum* binaryFormat, void* binary) const {
7867         assert(_GetProgramBinary !is null, "OpenGL command glGetProgramBinary was not loaded");
7868         return _GetProgramBinary (program, bufSize, length, binaryFormat, binary);
7869     }
7870     /// ditto
7871     public void ProgramBinary (GLuint program, GLenum binaryFormat, const(void)* binary, GLsizei length) const {
7872         assert(_ProgramBinary !is null, "OpenGL command glProgramBinary was not loaded");
7873         return _ProgramBinary (program, binaryFormat, binary, length);
7874     }
7875     /// ditto
7876     public void ProgramParameteri (GLuint program, GLenum pname, GLint value) const {
7877         assert(_ProgramParameteri !is null, "OpenGL command glProgramParameteri was not loaded");
7878         return _ProgramParameteri (program, pname, value);
7879     }
7880     /// ditto
7881     public void UseProgramStages (GLuint pipeline, GLbitfield stages, GLuint program) const {
7882         assert(_UseProgramStages !is null, "OpenGL command glUseProgramStages was not loaded");
7883         return _UseProgramStages (pipeline, stages, program);
7884     }
7885     /// ditto
7886     public void ActiveShaderProgram (GLuint pipeline, GLuint program) const {
7887         assert(_ActiveShaderProgram !is null, "OpenGL command glActiveShaderProgram was not loaded");
7888         return _ActiveShaderProgram (pipeline, program);
7889     }
7890     /// ditto
7891     public GLuint CreateShaderProgramv (GLenum type, GLsizei count, const(GLchar*)* strings) const {
7892         assert(_CreateShaderProgramv !is null, "OpenGL command glCreateShaderProgramv was not loaded");
7893         return _CreateShaderProgramv (type, count, strings);
7894     }
7895     /// ditto
7896     public void BindProgramPipeline (GLuint pipeline) const {
7897         assert(_BindProgramPipeline !is null, "OpenGL command glBindProgramPipeline was not loaded");
7898         return _BindProgramPipeline (pipeline);
7899     }
7900     /// ditto
7901     public void DeleteProgramPipelines (GLsizei n, const(GLuint)* pipelines) const {
7902         assert(_DeleteProgramPipelines !is null, "OpenGL command glDeleteProgramPipelines was not loaded");
7903         return _DeleteProgramPipelines (n, pipelines);
7904     }
7905     /// ditto
7906     public void GenProgramPipelines (GLsizei n, GLuint* pipelines) const {
7907         assert(_GenProgramPipelines !is null, "OpenGL command glGenProgramPipelines was not loaded");
7908         return _GenProgramPipelines (n, pipelines);
7909     }
7910     /// ditto
7911     public GLboolean IsProgramPipeline (GLuint pipeline) const {
7912         assert(_IsProgramPipeline !is null, "OpenGL command glIsProgramPipeline was not loaded");
7913         return _IsProgramPipeline (pipeline);
7914     }
7915     /// ditto
7916     public void GetProgramPipelineiv (GLuint pipeline, GLenum pname, GLint* params) const {
7917         assert(_GetProgramPipelineiv !is null, "OpenGL command glGetProgramPipelineiv was not loaded");
7918         return _GetProgramPipelineiv (pipeline, pname, params);
7919     }
7920     /// ditto
7921     public void ProgramUniform1i (GLuint program, GLint location, GLint v0) const {
7922         assert(_ProgramUniform1i !is null, "OpenGL command glProgramUniform1i was not loaded");
7923         return _ProgramUniform1i (program, location, v0);
7924     }
7925     /// ditto
7926     public void ProgramUniform1iv (GLuint program, GLint location, GLsizei count, const(GLint)* value) const {
7927         assert(_ProgramUniform1iv !is null, "OpenGL command glProgramUniform1iv was not loaded");
7928         return _ProgramUniform1iv (program, location, count, value);
7929     }
7930     /// ditto
7931     public void ProgramUniform1f (GLuint program, GLint location, GLfloat v0) const {
7932         assert(_ProgramUniform1f !is null, "OpenGL command glProgramUniform1f was not loaded");
7933         return _ProgramUniform1f (program, location, v0);
7934     }
7935     /// ditto
7936     public void ProgramUniform1fv (GLuint program, GLint location, GLsizei count, const(GLfloat)* value) const {
7937         assert(_ProgramUniform1fv !is null, "OpenGL command glProgramUniform1fv was not loaded");
7938         return _ProgramUniform1fv (program, location, count, value);
7939     }
7940     /// ditto
7941     public void ProgramUniform1d (GLuint program, GLint location, GLdouble v0) const {
7942         assert(_ProgramUniform1d !is null, "OpenGL command glProgramUniform1d was not loaded");
7943         return _ProgramUniform1d (program, location, v0);
7944     }
7945     /// ditto
7946     public void ProgramUniform1dv (GLuint program, GLint location, GLsizei count, const(GLdouble)* value) const {
7947         assert(_ProgramUniform1dv !is null, "OpenGL command glProgramUniform1dv was not loaded");
7948         return _ProgramUniform1dv (program, location, count, value);
7949     }
7950     /// ditto
7951     public void ProgramUniform1ui (GLuint program, GLint location, GLuint v0) const {
7952         assert(_ProgramUniform1ui !is null, "OpenGL command glProgramUniform1ui was not loaded");
7953         return _ProgramUniform1ui (program, location, v0);
7954     }
7955     /// ditto
7956     public void ProgramUniform1uiv (GLuint program, GLint location, GLsizei count, const(GLuint)* value) const {
7957         assert(_ProgramUniform1uiv !is null, "OpenGL command glProgramUniform1uiv was not loaded");
7958         return _ProgramUniform1uiv (program, location, count, value);
7959     }
7960     /// ditto
7961     public void ProgramUniform2i (GLuint program, GLint location, GLint v0, GLint v1) const {
7962         assert(_ProgramUniform2i !is null, "OpenGL command glProgramUniform2i was not loaded");
7963         return _ProgramUniform2i (program, location, v0, v1);
7964     }
7965     /// ditto
7966     public void ProgramUniform2iv (GLuint program, GLint location, GLsizei count, const(GLint)* value) const {
7967         assert(_ProgramUniform2iv !is null, "OpenGL command glProgramUniform2iv was not loaded");
7968         return _ProgramUniform2iv (program, location, count, value);
7969     }
7970     /// ditto
7971     public void ProgramUniform2f (GLuint program, GLint location, GLfloat v0, GLfloat v1) const {
7972         assert(_ProgramUniform2f !is null, "OpenGL command glProgramUniform2f was not loaded");
7973         return _ProgramUniform2f (program, location, v0, v1);
7974     }
7975     /// ditto
7976     public void ProgramUniform2fv (GLuint program, GLint location, GLsizei count, const(GLfloat)* value) const {
7977         assert(_ProgramUniform2fv !is null, "OpenGL command glProgramUniform2fv was not loaded");
7978         return _ProgramUniform2fv (program, location, count, value);
7979     }
7980     /// ditto
7981     public void ProgramUniform2d (GLuint program, GLint location, GLdouble v0, GLdouble v1) const {
7982         assert(_ProgramUniform2d !is null, "OpenGL command glProgramUniform2d was not loaded");
7983         return _ProgramUniform2d (program, location, v0, v1);
7984     }
7985     /// ditto
7986     public void ProgramUniform2dv (GLuint program, GLint location, GLsizei count, const(GLdouble)* value) const {
7987         assert(_ProgramUniform2dv !is null, "OpenGL command glProgramUniform2dv was not loaded");
7988         return _ProgramUniform2dv (program, location, count, value);
7989     }
7990     /// ditto
7991     public void ProgramUniform2ui (GLuint program, GLint location, GLuint v0, GLuint v1) const {
7992         assert(_ProgramUniform2ui !is null, "OpenGL command glProgramUniform2ui was not loaded");
7993         return _ProgramUniform2ui (program, location, v0, v1);
7994     }
7995     /// ditto
7996     public void ProgramUniform2uiv (GLuint program, GLint location, GLsizei count, const(GLuint)* value) const {
7997         assert(_ProgramUniform2uiv !is null, "OpenGL command glProgramUniform2uiv was not loaded");
7998         return _ProgramUniform2uiv (program, location, count, value);
7999     }
8000     /// ditto
8001     public void ProgramUniform3i (GLuint program, GLint location, GLint v0, GLint v1, GLint v2) const {
8002         assert(_ProgramUniform3i !is null, "OpenGL command glProgramUniform3i was not loaded");
8003         return _ProgramUniform3i (program, location, v0, v1, v2);
8004     }
8005     /// ditto
8006     public void ProgramUniform3iv (GLuint program, GLint location, GLsizei count, const(GLint)* value) const {
8007         assert(_ProgramUniform3iv !is null, "OpenGL command glProgramUniform3iv was not loaded");
8008         return _ProgramUniform3iv (program, location, count, value);
8009     }
8010     /// ditto
8011     public void ProgramUniform3f (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2) const {
8012         assert(_ProgramUniform3f !is null, "OpenGL command glProgramUniform3f was not loaded");
8013         return _ProgramUniform3f (program, location, v0, v1, v2);
8014     }
8015     /// ditto
8016     public void ProgramUniform3fv (GLuint program, GLint location, GLsizei count, const(GLfloat)* value) const {
8017         assert(_ProgramUniform3fv !is null, "OpenGL command glProgramUniform3fv was not loaded");
8018         return _ProgramUniform3fv (program, location, count, value);
8019     }
8020     /// ditto
8021     public void ProgramUniform3d (GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2) const {
8022         assert(_ProgramUniform3d !is null, "OpenGL command glProgramUniform3d was not loaded");
8023         return _ProgramUniform3d (program, location, v0, v1, v2);
8024     }
8025     /// ditto
8026     public void ProgramUniform3dv (GLuint program, GLint location, GLsizei count, const(GLdouble)* value) const {
8027         assert(_ProgramUniform3dv !is null, "OpenGL command glProgramUniform3dv was not loaded");
8028         return _ProgramUniform3dv (program, location, count, value);
8029     }
8030     /// ditto
8031     public void ProgramUniform3ui (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2) const {
8032         assert(_ProgramUniform3ui !is null, "OpenGL command glProgramUniform3ui was not loaded");
8033         return _ProgramUniform3ui (program, location, v0, v1, v2);
8034     }
8035     /// ditto
8036     public void ProgramUniform3uiv (GLuint program, GLint location, GLsizei count, const(GLuint)* value) const {
8037         assert(_ProgramUniform3uiv !is null, "OpenGL command glProgramUniform3uiv was not loaded");
8038         return _ProgramUniform3uiv (program, location, count, value);
8039     }
8040     /// ditto
8041     public void ProgramUniform4i (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3) const {
8042         assert(_ProgramUniform4i !is null, "OpenGL command glProgramUniform4i was not loaded");
8043         return _ProgramUniform4i (program, location, v0, v1, v2, v3);
8044     }
8045     /// ditto
8046     public void ProgramUniform4iv (GLuint program, GLint location, GLsizei count, const(GLint)* value) const {
8047         assert(_ProgramUniform4iv !is null, "OpenGL command glProgramUniform4iv was not loaded");
8048         return _ProgramUniform4iv (program, location, count, value);
8049     }
8050     /// ditto
8051     public void ProgramUniform4f (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3) const {
8052         assert(_ProgramUniform4f !is null, "OpenGL command glProgramUniform4f was not loaded");
8053         return _ProgramUniform4f (program, location, v0, v1, v2, v3);
8054     }
8055     /// ditto
8056     public void ProgramUniform4fv (GLuint program, GLint location, GLsizei count, const(GLfloat)* value) const {
8057         assert(_ProgramUniform4fv !is null, "OpenGL command glProgramUniform4fv was not loaded");
8058         return _ProgramUniform4fv (program, location, count, value);
8059     }
8060     /// ditto
8061     public void ProgramUniform4d (GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3) const {
8062         assert(_ProgramUniform4d !is null, "OpenGL command glProgramUniform4d was not loaded");
8063         return _ProgramUniform4d (program, location, v0, v1, v2, v3);
8064     }
8065     /// ditto
8066     public void ProgramUniform4dv (GLuint program, GLint location, GLsizei count, const(GLdouble)* value) const {
8067         assert(_ProgramUniform4dv !is null, "OpenGL command glProgramUniform4dv was not loaded");
8068         return _ProgramUniform4dv (program, location, count, value);
8069     }
8070     /// ditto
8071     public void ProgramUniform4ui (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3) const {
8072         assert(_ProgramUniform4ui !is null, "OpenGL command glProgramUniform4ui was not loaded");
8073         return _ProgramUniform4ui (program, location, v0, v1, v2, v3);
8074     }
8075     /// ditto
8076     public void ProgramUniform4uiv (GLuint program, GLint location, GLsizei count, const(GLuint)* value) const {
8077         assert(_ProgramUniform4uiv !is null, "OpenGL command glProgramUniform4uiv was not loaded");
8078         return _ProgramUniform4uiv (program, location, count, value);
8079     }
8080     /// ditto
8081     public void ProgramUniformMatrix2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const(GLfloat)* value) const {
8082         assert(_ProgramUniformMatrix2fv !is null, "OpenGL command glProgramUniformMatrix2fv was not loaded");
8083         return _ProgramUniformMatrix2fv (program, location, count, transpose, value);
8084     }
8085     /// ditto
8086     public void ProgramUniformMatrix3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const(GLfloat)* value) const {
8087         assert(_ProgramUniformMatrix3fv !is null, "OpenGL command glProgramUniformMatrix3fv was not loaded");
8088         return _ProgramUniformMatrix3fv (program, location, count, transpose, value);
8089     }
8090     /// ditto
8091     public void ProgramUniformMatrix4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const(GLfloat)* value) const {
8092         assert(_ProgramUniformMatrix4fv !is null, "OpenGL command glProgramUniformMatrix4fv was not loaded");
8093         return _ProgramUniformMatrix4fv (program, location, count, transpose, value);
8094     }
8095     /// ditto
8096     public void ProgramUniformMatrix2dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const(GLdouble)* value) const {
8097         assert(_ProgramUniformMatrix2dv !is null, "OpenGL command glProgramUniformMatrix2dv was not loaded");
8098         return _ProgramUniformMatrix2dv (program, location, count, transpose, value);
8099     }
8100     /// ditto
8101     public void ProgramUniformMatrix3dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const(GLdouble)* value) const {
8102         assert(_ProgramUniformMatrix3dv !is null, "OpenGL command glProgramUniformMatrix3dv was not loaded");
8103         return _ProgramUniformMatrix3dv (program, location, count, transpose, value);
8104     }
8105     /// ditto
8106     public void ProgramUniformMatrix4dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const(GLdouble)* value) const {
8107         assert(_ProgramUniformMatrix4dv !is null, "OpenGL command glProgramUniformMatrix4dv was not loaded");
8108         return _ProgramUniformMatrix4dv (program, location, count, transpose, value);
8109     }
8110     /// ditto
8111     public void ProgramUniformMatrix2x3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const(GLfloat)* value) const {
8112         assert(_ProgramUniformMatrix2x3fv !is null, "OpenGL command glProgramUniformMatrix2x3fv was not loaded");
8113         return _ProgramUniformMatrix2x3fv (program, location, count, transpose, value);
8114     }
8115     /// ditto
8116     public void ProgramUniformMatrix3x2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const(GLfloat)* value) const {
8117         assert(_ProgramUniformMatrix3x2fv !is null, "OpenGL command glProgramUniformMatrix3x2fv was not loaded");
8118         return _ProgramUniformMatrix3x2fv (program, location, count, transpose, value);
8119     }
8120     /// ditto
8121     public void ProgramUniformMatrix2x4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const(GLfloat)* value) const {
8122         assert(_ProgramUniformMatrix2x4fv !is null, "OpenGL command glProgramUniformMatrix2x4fv was not loaded");
8123         return _ProgramUniformMatrix2x4fv (program, location, count, transpose, value);
8124     }
8125     /// ditto
8126     public void ProgramUniformMatrix4x2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const(GLfloat)* value) const {
8127         assert(_ProgramUniformMatrix4x2fv !is null, "OpenGL command glProgramUniformMatrix4x2fv was not loaded");
8128         return _ProgramUniformMatrix4x2fv (program, location, count, transpose, value);
8129     }
8130     /// ditto
8131     public void ProgramUniformMatrix3x4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const(GLfloat)* value) const {
8132         assert(_ProgramUniformMatrix3x4fv !is null, "OpenGL command glProgramUniformMatrix3x4fv was not loaded");
8133         return _ProgramUniformMatrix3x4fv (program, location, count, transpose, value);
8134     }
8135     /// ditto
8136     public void ProgramUniformMatrix4x3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const(GLfloat)* value) const {
8137         assert(_ProgramUniformMatrix4x3fv !is null, "OpenGL command glProgramUniformMatrix4x3fv was not loaded");
8138         return _ProgramUniformMatrix4x3fv (program, location, count, transpose, value);
8139     }
8140     /// ditto
8141     public void ProgramUniformMatrix2x3dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const(GLdouble)* value) const {
8142         assert(_ProgramUniformMatrix2x3dv !is null, "OpenGL command glProgramUniformMatrix2x3dv was not loaded");
8143         return _ProgramUniformMatrix2x3dv (program, location, count, transpose, value);
8144     }
8145     /// ditto
8146     public void ProgramUniformMatrix3x2dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const(GLdouble)* value) const {
8147         assert(_ProgramUniformMatrix3x2dv !is null, "OpenGL command glProgramUniformMatrix3x2dv was not loaded");
8148         return _ProgramUniformMatrix3x2dv (program, location, count, transpose, value);
8149     }
8150     /// ditto
8151     public void ProgramUniformMatrix2x4dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const(GLdouble)* value) const {
8152         assert(_ProgramUniformMatrix2x4dv !is null, "OpenGL command glProgramUniformMatrix2x4dv was not loaded");
8153         return _ProgramUniformMatrix2x4dv (program, location, count, transpose, value);
8154     }
8155     /// ditto
8156     public void ProgramUniformMatrix4x2dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const(GLdouble)* value) const {
8157         assert(_ProgramUniformMatrix4x2dv !is null, "OpenGL command glProgramUniformMatrix4x2dv was not loaded");
8158         return _ProgramUniformMatrix4x2dv (program, location, count, transpose, value);
8159     }
8160     /// ditto
8161     public void ProgramUniformMatrix3x4dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const(GLdouble)* value) const {
8162         assert(_ProgramUniformMatrix3x4dv !is null, "OpenGL command glProgramUniformMatrix3x4dv was not loaded");
8163         return _ProgramUniformMatrix3x4dv (program, location, count, transpose, value);
8164     }
8165     /// ditto
8166     public void ProgramUniformMatrix4x3dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const(GLdouble)* value) const {
8167         assert(_ProgramUniformMatrix4x3dv !is null, "OpenGL command glProgramUniformMatrix4x3dv was not loaded");
8168         return _ProgramUniformMatrix4x3dv (program, location, count, transpose, value);
8169     }
8170     /// ditto
8171     public void ValidateProgramPipeline (GLuint pipeline) const {
8172         assert(_ValidateProgramPipeline !is null, "OpenGL command glValidateProgramPipeline was not loaded");
8173         return _ValidateProgramPipeline (pipeline);
8174     }
8175     /// ditto
8176     public void GetProgramPipelineInfoLog (GLuint pipeline, GLsizei bufSize, GLsizei* length, GLchar* infoLog) const {
8177         assert(_GetProgramPipelineInfoLog !is null, "OpenGL command glGetProgramPipelineInfoLog was not loaded");
8178         return _GetProgramPipelineInfoLog (pipeline, bufSize, length, infoLog);
8179     }
8180     /// ditto
8181     public void VertexAttribL1d (GLuint index, GLdouble x) const {
8182         assert(_VertexAttribL1d !is null, "OpenGL command glVertexAttribL1d was not loaded");
8183         return _VertexAttribL1d (index, x);
8184     }
8185     /// ditto
8186     public void VertexAttribL2d (GLuint index, GLdouble x, GLdouble y) const {
8187         assert(_VertexAttribL2d !is null, "OpenGL command glVertexAttribL2d was not loaded");
8188         return _VertexAttribL2d (index, x, y);
8189     }
8190     /// ditto
8191     public void VertexAttribL3d (GLuint index, GLdouble x, GLdouble y, GLdouble z) const {
8192         assert(_VertexAttribL3d !is null, "OpenGL command glVertexAttribL3d was not loaded");
8193         return _VertexAttribL3d (index, x, y, z);
8194     }
8195     /// ditto
8196     public void VertexAttribL4d (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w) const {
8197         assert(_VertexAttribL4d !is null, "OpenGL command glVertexAttribL4d was not loaded");
8198         return _VertexAttribL4d (index, x, y, z, w);
8199     }
8200     /// ditto
8201     public void VertexAttribL1dv (GLuint index, const(GLdouble)* v) const {
8202         assert(_VertexAttribL1dv !is null, "OpenGL command glVertexAttribL1dv was not loaded");
8203         return _VertexAttribL1dv (index, v);
8204     }
8205     /// ditto
8206     public void VertexAttribL2dv (GLuint index, const(GLdouble)* v) const {
8207         assert(_VertexAttribL2dv !is null, "OpenGL command glVertexAttribL2dv was not loaded");
8208         return _VertexAttribL2dv (index, v);
8209     }
8210     /// ditto
8211     public void VertexAttribL3dv (GLuint index, const(GLdouble)* v) const {
8212         assert(_VertexAttribL3dv !is null, "OpenGL command glVertexAttribL3dv was not loaded");
8213         return _VertexAttribL3dv (index, v);
8214     }
8215     /// ditto
8216     public void VertexAttribL4dv (GLuint index, const(GLdouble)* v) const {
8217         assert(_VertexAttribL4dv !is null, "OpenGL command glVertexAttribL4dv was not loaded");
8218         return _VertexAttribL4dv (index, v);
8219     }
8220     /// ditto
8221     public void VertexAttribLPointer (GLuint index, GLint size, GLenum type, GLsizei stride, const(void)* pointer) const {
8222         assert(_VertexAttribLPointer !is null, "OpenGL command glVertexAttribLPointer was not loaded");
8223         return _VertexAttribLPointer (index, size, type, stride, pointer);
8224     }
8225     /// ditto
8226     public void GetVertexAttribLdv (GLuint index, GLenum pname, GLdouble* params) const {
8227         assert(_GetVertexAttribLdv !is null, "OpenGL command glGetVertexAttribLdv was not loaded");
8228         return _GetVertexAttribLdv (index, pname, params);
8229     }
8230     /// ditto
8231     public void ViewportArrayv (GLuint first, GLsizei count, const(GLfloat)* v) const {
8232         assert(_ViewportArrayv !is null, "OpenGL command glViewportArrayv was not loaded");
8233         return _ViewportArrayv (first, count, v);
8234     }
8235     /// ditto
8236     public void ViewportIndexedf (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h) const {
8237         assert(_ViewportIndexedf !is null, "OpenGL command glViewportIndexedf was not loaded");
8238         return _ViewportIndexedf (index, x, y, w, h);
8239     }
8240     /// ditto
8241     public void ViewportIndexedfv (GLuint index, const(GLfloat)* v) const {
8242         assert(_ViewportIndexedfv !is null, "OpenGL command glViewportIndexedfv was not loaded");
8243         return _ViewportIndexedfv (index, v);
8244     }
8245     /// ditto
8246     public void ScissorArrayv (GLuint first, GLsizei count, const(GLint)* v) const {
8247         assert(_ScissorArrayv !is null, "OpenGL command glScissorArrayv was not loaded");
8248         return _ScissorArrayv (first, count, v);
8249     }
8250     /// ditto
8251     public void ScissorIndexed (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height) const {
8252         assert(_ScissorIndexed !is null, "OpenGL command glScissorIndexed was not loaded");
8253         return _ScissorIndexed (index, left, bottom, width, height);
8254     }
8255     /// ditto
8256     public void ScissorIndexedv (GLuint index, const(GLint)* v) const {
8257         assert(_ScissorIndexedv !is null, "OpenGL command glScissorIndexedv was not loaded");
8258         return _ScissorIndexedv (index, v);
8259     }
8260     /// ditto
8261     public void DepthRangeArrayv (GLuint first, GLsizei count, const(GLdouble)* v) const {
8262         assert(_DepthRangeArrayv !is null, "OpenGL command glDepthRangeArrayv was not loaded");
8263         return _DepthRangeArrayv (first, count, v);
8264     }
8265     /// ditto
8266     public void DepthRangeIndexed (GLuint index, GLdouble n, GLdouble f) const {
8267         assert(_DepthRangeIndexed !is null, "OpenGL command glDepthRangeIndexed was not loaded");
8268         return _DepthRangeIndexed (index, n, f);
8269     }
8270     /// ditto
8271     public void GetFloati_v (GLenum target, GLuint index, GLfloat* data) const {
8272         assert(_GetFloati_v !is null, "OpenGL command glGetFloati_v was not loaded");
8273         return _GetFloati_v (target, index, data);
8274     }
8275     /// ditto
8276     public void GetDoublei_v (GLenum target, GLuint index, GLdouble* data) const {
8277         assert(_GetDoublei_v !is null, "OpenGL command glGetDoublei_v was not loaded");
8278         return _GetDoublei_v (target, index, data);
8279     }
8280 
8281     /// Commands for GL_VERSION_4_2
8282     public void DrawArraysInstancedBaseInstance (GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance) const {
8283         assert(_DrawArraysInstancedBaseInstance !is null, "OpenGL command glDrawArraysInstancedBaseInstance was not loaded");
8284         return _DrawArraysInstancedBaseInstance (mode, first, count, instancecount, baseinstance);
8285     }
8286     /// ditto
8287     public void DrawElementsInstancedBaseInstance (GLenum mode, GLsizei count, GLenum type, const(void)* indices, GLsizei instancecount, GLuint baseinstance) const {
8288         assert(_DrawElementsInstancedBaseInstance !is null, "OpenGL command glDrawElementsInstancedBaseInstance was not loaded");
8289         return _DrawElementsInstancedBaseInstance (mode, count, type, indices, instancecount, baseinstance);
8290     }
8291     /// ditto
8292     public void DrawElementsInstancedBaseVertexBaseInstance (GLenum mode, GLsizei count, GLenum type, const(void)* indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance) const {
8293         assert(_DrawElementsInstancedBaseVertexBaseInstance !is null, "OpenGL command glDrawElementsInstancedBaseVertexBaseInstance was not loaded");
8294         return _DrawElementsInstancedBaseVertexBaseInstance (mode, count, type, indices, instancecount, basevertex, baseinstance);
8295     }
8296     /// ditto
8297     public void GetInternalformativ (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint* params) const {
8298         assert(_GetInternalformativ !is null, "OpenGL command glGetInternalformativ was not loaded");
8299         return _GetInternalformativ (target, internalformat, pname, bufSize, params);
8300     }
8301     /// ditto
8302     public void GetActiveAtomicCounterBufferiv (GLuint program, GLuint bufferIndex, GLenum pname, GLint* params) const {
8303         assert(_GetActiveAtomicCounterBufferiv !is null, "OpenGL command glGetActiveAtomicCounterBufferiv was not loaded");
8304         return _GetActiveAtomicCounterBufferiv (program, bufferIndex, pname, params);
8305     }
8306     /// ditto
8307     public void BindImageTexture (GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format) const {
8308         assert(_BindImageTexture !is null, "OpenGL command glBindImageTexture was not loaded");
8309         return _BindImageTexture (unit, texture, level, layered, layer, access, format);
8310     }
8311     /// ditto
8312     public void MemoryBarrier (GLbitfield barriers) const {
8313         assert(_MemoryBarrier !is null, "OpenGL command glMemoryBarrier was not loaded");
8314         return _MemoryBarrier (barriers);
8315     }
8316     /// ditto
8317     public void TexStorage1D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width) const {
8318         assert(_TexStorage1D !is null, "OpenGL command glTexStorage1D was not loaded");
8319         return _TexStorage1D (target, levels, internalformat, width);
8320     }
8321     /// ditto
8322     public void TexStorage2D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height) const {
8323         assert(_TexStorage2D !is null, "OpenGL command glTexStorage2D was not loaded");
8324         return _TexStorage2D (target, levels, internalformat, width, height);
8325     }
8326     /// ditto
8327     public void TexStorage3D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth) const {
8328         assert(_TexStorage3D !is null, "OpenGL command glTexStorage3D was not loaded");
8329         return _TexStorage3D (target, levels, internalformat, width, height, depth);
8330     }
8331     /// ditto
8332     public void DrawTransformFeedbackInstanced (GLenum mode, GLuint id, GLsizei instancecount) const {
8333         assert(_DrawTransformFeedbackInstanced !is null, "OpenGL command glDrawTransformFeedbackInstanced was not loaded");
8334         return _DrawTransformFeedbackInstanced (mode, id, instancecount);
8335     }
8336     /// ditto
8337     public void DrawTransformFeedbackStreamInstanced (GLenum mode, GLuint id, GLuint stream, GLsizei instancecount) const {
8338         assert(_DrawTransformFeedbackStreamInstanced !is null, "OpenGL command glDrawTransformFeedbackStreamInstanced was not loaded");
8339         return _DrawTransformFeedbackStreamInstanced (mode, id, stream, instancecount);
8340     }
8341 
8342     /// Commands for GL_VERSION_4_3
8343     public void ClearBufferData (GLenum target, GLenum internalformat, GLenum format, GLenum type, const(void)* data) const {
8344         assert(_ClearBufferData !is null, "OpenGL command glClearBufferData was not loaded");
8345         return _ClearBufferData (target, internalformat, format, type, data);
8346     }
8347     /// ditto
8348     public void ClearBufferSubData (GLenum target, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const(void)* data) const {
8349         assert(_ClearBufferSubData !is null, "OpenGL command glClearBufferSubData was not loaded");
8350         return _ClearBufferSubData (target, internalformat, offset, size, format, type, data);
8351     }
8352     /// ditto
8353     public void DispatchCompute (GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z) const {
8354         assert(_DispatchCompute !is null, "OpenGL command glDispatchCompute was not loaded");
8355         return _DispatchCompute (num_groups_x, num_groups_y, num_groups_z);
8356     }
8357     /// ditto
8358     public void DispatchComputeIndirect (GLintptr indirect) const {
8359         assert(_DispatchComputeIndirect !is null, "OpenGL command glDispatchComputeIndirect was not loaded");
8360         return _DispatchComputeIndirect (indirect);
8361     }
8362     /// ditto
8363     public void CopyImageSubData (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) const {
8364         assert(_CopyImageSubData !is null, "OpenGL command glCopyImageSubData was not loaded");
8365         return _CopyImageSubData (srcName, srcTarget, srcLevel, srcX, srcY, srcZ, dstName, dstTarget, dstLevel, dstX, dstY, dstZ, srcWidth, srcHeight, srcDepth);
8366     }
8367     /// ditto
8368     public void FramebufferParameteri (GLenum target, GLenum pname, GLint param) const {
8369         assert(_FramebufferParameteri !is null, "OpenGL command glFramebufferParameteri was not loaded");
8370         return _FramebufferParameteri (target, pname, param);
8371     }
8372     /// ditto
8373     public void GetFramebufferParameteriv (GLenum target, GLenum pname, GLint* params) const {
8374         assert(_GetFramebufferParameteriv !is null, "OpenGL command glGetFramebufferParameteriv was not loaded");
8375         return _GetFramebufferParameteriv (target, pname, params);
8376     }
8377     /// ditto
8378     public void GetInternalformati64v (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint64* params) const {
8379         assert(_GetInternalformati64v !is null, "OpenGL command glGetInternalformati64v was not loaded");
8380         return _GetInternalformati64v (target, internalformat, pname, bufSize, params);
8381     }
8382     /// ditto
8383     public void InvalidateTexSubImage (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth) const {
8384         assert(_InvalidateTexSubImage !is null, "OpenGL command glInvalidateTexSubImage was not loaded");
8385         return _InvalidateTexSubImage (texture, level, xoffset, yoffset, zoffset, width, height, depth);
8386     }
8387     /// ditto
8388     public void InvalidateTexImage (GLuint texture, GLint level) const {
8389         assert(_InvalidateTexImage !is null, "OpenGL command glInvalidateTexImage was not loaded");
8390         return _InvalidateTexImage (texture, level);
8391     }
8392     /// ditto
8393     public void InvalidateBufferSubData (GLuint buffer, GLintptr offset, GLsizeiptr length) const {
8394         assert(_InvalidateBufferSubData !is null, "OpenGL command glInvalidateBufferSubData was not loaded");
8395         return _InvalidateBufferSubData (buffer, offset, length);
8396     }
8397     /// ditto
8398     public void InvalidateBufferData (GLuint buffer) const {
8399         assert(_InvalidateBufferData !is null, "OpenGL command glInvalidateBufferData was not loaded");
8400         return _InvalidateBufferData (buffer);
8401     }
8402     /// ditto
8403     public void InvalidateFramebuffer (GLenum target, GLsizei numAttachments, const(GLenum)* attachments) const {
8404         assert(_InvalidateFramebuffer !is null, "OpenGL command glInvalidateFramebuffer was not loaded");
8405         return _InvalidateFramebuffer (target, numAttachments, attachments);
8406     }
8407     /// ditto
8408     public void InvalidateSubFramebuffer (GLenum target, GLsizei numAttachments, const(GLenum)* attachments, GLint x, GLint y, GLsizei width, GLsizei height) const {
8409         assert(_InvalidateSubFramebuffer !is null, "OpenGL command glInvalidateSubFramebuffer was not loaded");
8410         return _InvalidateSubFramebuffer (target, numAttachments, attachments, x, y, width, height);
8411     }
8412     /// ditto
8413     public void MultiDrawArraysIndirect (GLenum mode, const(void)* indirect, GLsizei drawcount, GLsizei stride) const {
8414         assert(_MultiDrawArraysIndirect !is null, "OpenGL command glMultiDrawArraysIndirect was not loaded");
8415         return _MultiDrawArraysIndirect (mode, indirect, drawcount, stride);
8416     }
8417     /// ditto
8418     public void MultiDrawElementsIndirect (GLenum mode, GLenum type, const(void)* indirect, GLsizei drawcount, GLsizei stride) const {
8419         assert(_MultiDrawElementsIndirect !is null, "OpenGL command glMultiDrawElementsIndirect was not loaded");
8420         return _MultiDrawElementsIndirect (mode, type, indirect, drawcount, stride);
8421     }
8422     /// ditto
8423     public void GetProgramInterfaceiv (GLuint program, GLenum programInterface, GLenum pname, GLint* params) const {
8424         assert(_GetProgramInterfaceiv !is null, "OpenGL command glGetProgramInterfaceiv was not loaded");
8425         return _GetProgramInterfaceiv (program, programInterface, pname, params);
8426     }
8427     /// ditto
8428     public GLuint GetProgramResourceIndex (GLuint program, GLenum programInterface, const(GLchar)* name) const {
8429         assert(_GetProgramResourceIndex !is null, "OpenGL command glGetProgramResourceIndex was not loaded");
8430         return _GetProgramResourceIndex (program, programInterface, name);
8431     }
8432     /// ditto
8433     public void GetProgramResourceName (GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei* length, GLchar* name) const {
8434         assert(_GetProgramResourceName !is null, "OpenGL command glGetProgramResourceName was not loaded");
8435         return _GetProgramResourceName (program, programInterface, index, bufSize, length, name);
8436     }
8437     /// ditto
8438     public void GetProgramResourceiv (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const(GLenum)* props, GLsizei bufSize, GLsizei* length, GLint* params) const {
8439         assert(_GetProgramResourceiv !is null, "OpenGL command glGetProgramResourceiv was not loaded");
8440         return _GetProgramResourceiv (program, programInterface, index, propCount, props, bufSize, length, params);
8441     }
8442     /// ditto
8443     public GLint GetProgramResourceLocation (GLuint program, GLenum programInterface, const(GLchar)* name) const {
8444         assert(_GetProgramResourceLocation !is null, "OpenGL command glGetProgramResourceLocation was not loaded");
8445         return _GetProgramResourceLocation (program, programInterface, name);
8446     }
8447     /// ditto
8448     public GLint GetProgramResourceLocationIndex (GLuint program, GLenum programInterface, const(GLchar)* name) const {
8449         assert(_GetProgramResourceLocationIndex !is null, "OpenGL command glGetProgramResourceLocationIndex was not loaded");
8450         return _GetProgramResourceLocationIndex (program, programInterface, name);
8451     }
8452     /// ditto
8453     public void ShaderStorageBlockBinding (GLuint program, GLuint storageBlockIndex, GLuint storageBlockBinding) const {
8454         assert(_ShaderStorageBlockBinding !is null, "OpenGL command glShaderStorageBlockBinding was not loaded");
8455         return _ShaderStorageBlockBinding (program, storageBlockIndex, storageBlockBinding);
8456     }
8457     /// ditto
8458     public void TexBufferRange (GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size) const {
8459         assert(_TexBufferRange !is null, "OpenGL command glTexBufferRange was not loaded");
8460         return _TexBufferRange (target, internalformat, buffer, offset, size);
8461     }
8462     /// ditto
8463     public void TexStorage2DMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations) const {
8464         assert(_TexStorage2DMultisample !is null, "OpenGL command glTexStorage2DMultisample was not loaded");
8465         return _TexStorage2DMultisample (target, samples, internalformat, width, height, fixedsamplelocations);
8466     }
8467     /// ditto
8468     public void TexStorage3DMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations) const {
8469         assert(_TexStorage3DMultisample !is null, "OpenGL command glTexStorage3DMultisample was not loaded");
8470         return _TexStorage3DMultisample (target, samples, internalformat, width, height, depth, fixedsamplelocations);
8471     }
8472     /// ditto
8473     public void TextureView (GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers) const {
8474         assert(_TextureView !is null, "OpenGL command glTextureView was not loaded");
8475         return _TextureView (texture, target, origtexture, internalformat, minlevel, numlevels, minlayer, numlayers);
8476     }
8477     /// ditto
8478     public void BindVertexBuffer (GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride) const {
8479         assert(_BindVertexBuffer !is null, "OpenGL command glBindVertexBuffer was not loaded");
8480         return _BindVertexBuffer (bindingindex, buffer, offset, stride);
8481     }
8482     /// ditto
8483     public void VertexAttribFormat (GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset) const {
8484         assert(_VertexAttribFormat !is null, "OpenGL command glVertexAttribFormat was not loaded");
8485         return _VertexAttribFormat (attribindex, size, type, normalized, relativeoffset);
8486     }
8487     /// ditto
8488     public void VertexAttribIFormat (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset) const {
8489         assert(_VertexAttribIFormat !is null, "OpenGL command glVertexAttribIFormat was not loaded");
8490         return _VertexAttribIFormat (attribindex, size, type, relativeoffset);
8491     }
8492     /// ditto
8493     public void VertexAttribLFormat (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset) const {
8494         assert(_VertexAttribLFormat !is null, "OpenGL command glVertexAttribLFormat was not loaded");
8495         return _VertexAttribLFormat (attribindex, size, type, relativeoffset);
8496     }
8497     /// ditto
8498     public void VertexAttribBinding (GLuint attribindex, GLuint bindingindex) const {
8499         assert(_VertexAttribBinding !is null, "OpenGL command glVertexAttribBinding was not loaded");
8500         return _VertexAttribBinding (attribindex, bindingindex);
8501     }
8502     /// ditto
8503     public void VertexBindingDivisor (GLuint bindingindex, GLuint divisor) const {
8504         assert(_VertexBindingDivisor !is null, "OpenGL command glVertexBindingDivisor was not loaded");
8505         return _VertexBindingDivisor (bindingindex, divisor);
8506     }
8507     /// ditto
8508     public void DebugMessageControl (GLenum source, GLenum type, GLenum severity, GLsizei count, const(GLuint)* ids, GLboolean enabled) const {
8509         assert(_DebugMessageControl !is null, "OpenGL command glDebugMessageControl was not loaded");
8510         return _DebugMessageControl (source, type, severity, count, ids, enabled);
8511     }
8512     /// ditto
8513     public void DebugMessageInsert (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const(GLchar)* buf) const {
8514         assert(_DebugMessageInsert !is null, "OpenGL command glDebugMessageInsert was not loaded");
8515         return _DebugMessageInsert (source, type, id, severity, length, buf);
8516     }
8517     /// ditto
8518     public void DebugMessageCallback (GLDEBUGPROC callback, const(void)* userParam) const {
8519         assert(_DebugMessageCallback !is null, "OpenGL command glDebugMessageCallback was not loaded");
8520         return _DebugMessageCallback (callback, userParam);
8521     }
8522     /// ditto
8523     public GLuint GetDebugMessageLog (GLuint count, GLsizei bufSize, GLenum* sources, GLenum* types, GLuint* ids, GLenum* severities, GLsizei* lengths, GLchar* messageLog) const {
8524         assert(_GetDebugMessageLog !is null, "OpenGL command glGetDebugMessageLog was not loaded");
8525         return _GetDebugMessageLog (count, bufSize, sources, types, ids, severities, lengths, messageLog);
8526     }
8527     /// ditto
8528     public void PushDebugGroup (GLenum source, GLuint id, GLsizei length, const(GLchar)* message) const {
8529         assert(_PushDebugGroup !is null, "OpenGL command glPushDebugGroup was not loaded");
8530         return _PushDebugGroup (source, id, length, message);
8531     }
8532     /// ditto
8533     public void PopDebugGroup () const {
8534         assert(_PopDebugGroup !is null, "OpenGL command glPopDebugGroup was not loaded");
8535         return _PopDebugGroup ();
8536     }
8537     /// ditto
8538     public void ObjectLabel (GLenum identifier, GLuint name, GLsizei length, const(GLchar)* label) const {
8539         assert(_ObjectLabel !is null, "OpenGL command glObjectLabel was not loaded");
8540         return _ObjectLabel (identifier, name, length, label);
8541     }
8542     /// ditto
8543     public void GetObjectLabel (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei* length, GLchar* label) const {
8544         assert(_GetObjectLabel !is null, "OpenGL command glGetObjectLabel was not loaded");
8545         return _GetObjectLabel (identifier, name, bufSize, length, label);
8546     }
8547     /// ditto
8548     public void ObjectPtrLabel (const(void)* ptr, GLsizei length, const(GLchar)* label) const {
8549         assert(_ObjectPtrLabel !is null, "OpenGL command glObjectPtrLabel was not loaded");
8550         return _ObjectPtrLabel (ptr, length, label);
8551     }
8552     /// ditto
8553     public void GetObjectPtrLabel (const(void)* ptr, GLsizei bufSize, GLsizei* length, GLchar* label) const {
8554         assert(_GetObjectPtrLabel !is null, "OpenGL command glGetObjectPtrLabel was not loaded");
8555         return _GetObjectPtrLabel (ptr, bufSize, length, label);
8556     }
8557 
8558     /// Commands for GL_VERSION_4_4
8559     public void BufferStorage (GLenum target, GLsizeiptr size, const(void)* data, GLbitfield flags) const {
8560         assert(_BufferStorage !is null, "OpenGL command glBufferStorage was not loaded");
8561         return _BufferStorage (target, size, data, flags);
8562     }
8563     /// ditto
8564     public void ClearTexImage (GLuint texture, GLint level, GLenum format, GLenum type, const(void)* data) const {
8565         assert(_ClearTexImage !is null, "OpenGL command glClearTexImage was not loaded");
8566         return _ClearTexImage (texture, level, format, type, data);
8567     }
8568     /// ditto
8569     public void ClearTexSubImage (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const(void)* data) const {
8570         assert(_ClearTexSubImage !is null, "OpenGL command glClearTexSubImage was not loaded");
8571         return _ClearTexSubImage (texture, level, xoffset, yoffset, zoffset, width, height, depth, format, type, data);
8572     }
8573     /// ditto
8574     public void BindBuffersBase (GLenum target, GLuint first, GLsizei count, const(GLuint)* buffers) const {
8575         assert(_BindBuffersBase !is null, "OpenGL command glBindBuffersBase was not loaded");
8576         return _BindBuffersBase (target, first, count, buffers);
8577     }
8578     /// ditto
8579     public void BindBuffersRange (GLenum target, GLuint first, GLsizei count, const(GLuint)* buffers, const(GLintptr)* offsets, const(GLsizeiptr)* sizes) const {
8580         assert(_BindBuffersRange !is null, "OpenGL command glBindBuffersRange was not loaded");
8581         return _BindBuffersRange (target, first, count, buffers, offsets, sizes);
8582     }
8583     /// ditto
8584     public void BindTextures (GLuint first, GLsizei count, const(GLuint)* textures) const {
8585         assert(_BindTextures !is null, "OpenGL command glBindTextures was not loaded");
8586         return _BindTextures (first, count, textures);
8587     }
8588     /// ditto
8589     public void BindSamplers (GLuint first, GLsizei count, const(GLuint)* samplers) const {
8590         assert(_BindSamplers !is null, "OpenGL command glBindSamplers was not loaded");
8591         return _BindSamplers (first, count, samplers);
8592     }
8593     /// ditto
8594     public void BindImageTextures (GLuint first, GLsizei count, const(GLuint)* textures) const {
8595         assert(_BindImageTextures !is null, "OpenGL command glBindImageTextures was not loaded");
8596         return _BindImageTextures (first, count, textures);
8597     }
8598     /// ditto
8599     public void BindVertexBuffers (GLuint first, GLsizei count, const(GLuint)* buffers, const(GLintptr)* offsets, const(GLsizei)* strides) const {
8600         assert(_BindVertexBuffers !is null, "OpenGL command glBindVertexBuffers was not loaded");
8601         return _BindVertexBuffers (first, count, buffers, offsets, strides);
8602     }
8603 
8604     /// Commands for GL_VERSION_4_5
8605     public void ClipControl (GLenum origin, GLenum depth) const {
8606         assert(_ClipControl !is null, "OpenGL command glClipControl was not loaded");
8607         return _ClipControl (origin, depth);
8608     }
8609     /// ditto
8610     public void CreateTransformFeedbacks (GLsizei n, GLuint* ids) const {
8611         assert(_CreateTransformFeedbacks !is null, "OpenGL command glCreateTransformFeedbacks was not loaded");
8612         return _CreateTransformFeedbacks (n, ids);
8613     }
8614     /// ditto
8615     public void TransformFeedbackBufferBase (GLuint xfb, GLuint index, GLuint buffer) const {
8616         assert(_TransformFeedbackBufferBase !is null, "OpenGL command glTransformFeedbackBufferBase was not loaded");
8617         return _TransformFeedbackBufferBase (xfb, index, buffer);
8618     }
8619     /// ditto
8620     public void TransformFeedbackBufferRange (GLuint xfb, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size) const {
8621         assert(_TransformFeedbackBufferRange !is null, "OpenGL command glTransformFeedbackBufferRange was not loaded");
8622         return _TransformFeedbackBufferRange (xfb, index, buffer, offset, size);
8623     }
8624     /// ditto
8625     public void GetTransformFeedbackiv (GLuint xfb, GLenum pname, GLint* param) const {
8626         assert(_GetTransformFeedbackiv !is null, "OpenGL command glGetTransformFeedbackiv was not loaded");
8627         return _GetTransformFeedbackiv (xfb, pname, param);
8628     }
8629     /// ditto
8630     public void GetTransformFeedbacki_v (GLuint xfb, GLenum pname, GLuint index, GLint* param) const {
8631         assert(_GetTransformFeedbacki_v !is null, "OpenGL command glGetTransformFeedbacki_v was not loaded");
8632         return _GetTransformFeedbacki_v (xfb, pname, index, param);
8633     }
8634     /// ditto
8635     public void GetTransformFeedbacki64_v (GLuint xfb, GLenum pname, GLuint index, GLint64* param) const {
8636         assert(_GetTransformFeedbacki64_v !is null, "OpenGL command glGetTransformFeedbacki64_v was not loaded");
8637         return _GetTransformFeedbacki64_v (xfb, pname, index, param);
8638     }
8639     /// ditto
8640     public void CreateBuffers (GLsizei n, GLuint* buffers) const {
8641         assert(_CreateBuffers !is null, "OpenGL command glCreateBuffers was not loaded");
8642         return _CreateBuffers (n, buffers);
8643     }
8644     /// ditto
8645     public void NamedBufferStorage (GLuint buffer, GLsizeiptr size, const(void)* data, GLbitfield flags) const {
8646         assert(_NamedBufferStorage !is null, "OpenGL command glNamedBufferStorage was not loaded");
8647         return _NamedBufferStorage (buffer, size, data, flags);
8648     }
8649     /// ditto
8650     public void NamedBufferData (GLuint buffer, GLsizeiptr size, const(void)* data, GLenum usage) const {
8651         assert(_NamedBufferData !is null, "OpenGL command glNamedBufferData was not loaded");
8652         return _NamedBufferData (buffer, size, data, usage);
8653     }
8654     /// ditto
8655     public void NamedBufferSubData (GLuint buffer, GLintptr offset, GLsizeiptr size, const(void)* data) const {
8656         assert(_NamedBufferSubData !is null, "OpenGL command glNamedBufferSubData was not loaded");
8657         return _NamedBufferSubData (buffer, offset, size, data);
8658     }
8659     /// ditto
8660     public void CopyNamedBufferSubData (GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size) const {
8661         assert(_CopyNamedBufferSubData !is null, "OpenGL command glCopyNamedBufferSubData was not loaded");
8662         return _CopyNamedBufferSubData (readBuffer, writeBuffer, readOffset, writeOffset, size);
8663     }
8664     /// ditto
8665     public void ClearNamedBufferData (GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const(void)* data) const {
8666         assert(_ClearNamedBufferData !is null, "OpenGL command glClearNamedBufferData was not loaded");
8667         return _ClearNamedBufferData (buffer, internalformat, format, type, data);
8668     }
8669     /// ditto
8670     public void ClearNamedBufferSubData (GLuint buffer, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const(void)* data) const {
8671         assert(_ClearNamedBufferSubData !is null, "OpenGL command glClearNamedBufferSubData was not loaded");
8672         return _ClearNamedBufferSubData (buffer, internalformat, offset, size, format, type, data);
8673     }
8674     /// ditto
8675     public void * MapNamedBuffer (GLuint buffer, GLenum access) const {
8676         assert(_MapNamedBuffer !is null, "OpenGL command glMapNamedBuffer was not loaded");
8677         return _MapNamedBuffer (buffer, access);
8678     }
8679     /// ditto
8680     public void * MapNamedBufferRange (GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access) const {
8681         assert(_MapNamedBufferRange !is null, "OpenGL command glMapNamedBufferRange was not loaded");
8682         return _MapNamedBufferRange (buffer, offset, length, access);
8683     }
8684     /// ditto
8685     public GLboolean UnmapNamedBuffer (GLuint buffer) const {
8686         assert(_UnmapNamedBuffer !is null, "OpenGL command glUnmapNamedBuffer was not loaded");
8687         return _UnmapNamedBuffer (buffer);
8688     }
8689     /// ditto
8690     public void FlushMappedNamedBufferRange (GLuint buffer, GLintptr offset, GLsizeiptr length) const {
8691         assert(_FlushMappedNamedBufferRange !is null, "OpenGL command glFlushMappedNamedBufferRange was not loaded");
8692         return _FlushMappedNamedBufferRange (buffer, offset, length);
8693     }
8694     /// ditto
8695     public void GetNamedBufferParameteriv (GLuint buffer, GLenum pname, GLint* params) const {
8696         assert(_GetNamedBufferParameteriv !is null, "OpenGL command glGetNamedBufferParameteriv was not loaded");
8697         return _GetNamedBufferParameteriv (buffer, pname, params);
8698     }
8699     /// ditto
8700     public void GetNamedBufferParameteri64v (GLuint buffer, GLenum pname, GLint64* params) const {
8701         assert(_GetNamedBufferParameteri64v !is null, "OpenGL command glGetNamedBufferParameteri64v was not loaded");
8702         return _GetNamedBufferParameteri64v (buffer, pname, params);
8703     }
8704     /// ditto
8705     public void GetNamedBufferPointerv (GLuint buffer, GLenum pname, void** params) const {
8706         assert(_GetNamedBufferPointerv !is null, "OpenGL command glGetNamedBufferPointerv was not loaded");
8707         return _GetNamedBufferPointerv (buffer, pname, params);
8708     }
8709     /// ditto
8710     public void GetNamedBufferSubData (GLuint buffer, GLintptr offset, GLsizeiptr size, void* data) const {
8711         assert(_GetNamedBufferSubData !is null, "OpenGL command glGetNamedBufferSubData was not loaded");
8712         return _GetNamedBufferSubData (buffer, offset, size, data);
8713     }
8714     /// ditto
8715     public void CreateFramebuffers (GLsizei n, GLuint* framebuffers) const {
8716         assert(_CreateFramebuffers !is null, "OpenGL command glCreateFramebuffers was not loaded");
8717         return _CreateFramebuffers (n, framebuffers);
8718     }
8719     /// ditto
8720     public void NamedFramebufferRenderbuffer (GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer) const {
8721         assert(_NamedFramebufferRenderbuffer !is null, "OpenGL command glNamedFramebufferRenderbuffer was not loaded");
8722         return _NamedFramebufferRenderbuffer (framebuffer, attachment, renderbuffertarget, renderbuffer);
8723     }
8724     /// ditto
8725     public void NamedFramebufferParameteri (GLuint framebuffer, GLenum pname, GLint param) const {
8726         assert(_NamedFramebufferParameteri !is null, "OpenGL command glNamedFramebufferParameteri was not loaded");
8727         return _NamedFramebufferParameteri (framebuffer, pname, param);
8728     }
8729     /// ditto
8730     public void NamedFramebufferTexture (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level) const {
8731         assert(_NamedFramebufferTexture !is null, "OpenGL command glNamedFramebufferTexture was not loaded");
8732         return _NamedFramebufferTexture (framebuffer, attachment, texture, level);
8733     }
8734     /// ditto
8735     public void NamedFramebufferTextureLayer (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer) const {
8736         assert(_NamedFramebufferTextureLayer !is null, "OpenGL command glNamedFramebufferTextureLayer was not loaded");
8737         return _NamedFramebufferTextureLayer (framebuffer, attachment, texture, level, layer);
8738     }
8739     /// ditto
8740     public void NamedFramebufferDrawBuffer (GLuint framebuffer, GLenum buf) const {
8741         assert(_NamedFramebufferDrawBuffer !is null, "OpenGL command glNamedFramebufferDrawBuffer was not loaded");
8742         return _NamedFramebufferDrawBuffer (framebuffer, buf);
8743     }
8744     /// ditto
8745     public void NamedFramebufferDrawBuffers (GLuint framebuffer, GLsizei n, const(GLenum)* bufs) const {
8746         assert(_NamedFramebufferDrawBuffers !is null, "OpenGL command glNamedFramebufferDrawBuffers was not loaded");
8747         return _NamedFramebufferDrawBuffers (framebuffer, n, bufs);
8748     }
8749     /// ditto
8750     public void NamedFramebufferReadBuffer (GLuint framebuffer, GLenum src) const {
8751         assert(_NamedFramebufferReadBuffer !is null, "OpenGL command glNamedFramebufferReadBuffer was not loaded");
8752         return _NamedFramebufferReadBuffer (framebuffer, src);
8753     }
8754     /// ditto
8755     public void InvalidateNamedFramebufferData (GLuint framebuffer, GLsizei numAttachments, const(GLenum)* attachments) const {
8756         assert(_InvalidateNamedFramebufferData !is null, "OpenGL command glInvalidateNamedFramebufferData was not loaded");
8757         return _InvalidateNamedFramebufferData (framebuffer, numAttachments, attachments);
8758     }
8759     /// ditto
8760     public void InvalidateNamedFramebufferSubData (GLuint framebuffer, GLsizei numAttachments, const(GLenum)* attachments, GLint x, GLint y, GLsizei width, GLsizei height) const {
8761         assert(_InvalidateNamedFramebufferSubData !is null, "OpenGL command glInvalidateNamedFramebufferSubData was not loaded");
8762         return _InvalidateNamedFramebufferSubData (framebuffer, numAttachments, attachments, x, y, width, height);
8763     }
8764     /// ditto
8765     public void ClearNamedFramebufferiv (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const(GLint)* value) const {
8766         assert(_ClearNamedFramebufferiv !is null, "OpenGL command glClearNamedFramebufferiv was not loaded");
8767         return _ClearNamedFramebufferiv (framebuffer, buffer, drawbuffer, value);
8768     }
8769     /// ditto
8770     public void ClearNamedFramebufferuiv (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const(GLuint)* value) const {
8771         assert(_ClearNamedFramebufferuiv !is null, "OpenGL command glClearNamedFramebufferuiv was not loaded");
8772         return _ClearNamedFramebufferuiv (framebuffer, buffer, drawbuffer, value);
8773     }
8774     /// ditto
8775     public void ClearNamedFramebufferfv (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const(GLfloat)* value) const {
8776         assert(_ClearNamedFramebufferfv !is null, "OpenGL command glClearNamedFramebufferfv was not loaded");
8777         return _ClearNamedFramebufferfv (framebuffer, buffer, drawbuffer, value);
8778     }
8779     /// ditto
8780     public void ClearNamedFramebufferfi (GLuint framebuffer, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil) const {
8781         assert(_ClearNamedFramebufferfi !is null, "OpenGL command glClearNamedFramebufferfi was not loaded");
8782         return _ClearNamedFramebufferfi (framebuffer, buffer, drawbuffer, depth, stencil);
8783     }
8784     /// ditto
8785     public void BlitNamedFramebuffer (GLuint readFramebuffer, GLuint drawFramebuffer, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter) const {
8786         assert(_BlitNamedFramebuffer !is null, "OpenGL command glBlitNamedFramebuffer was not loaded");
8787         return _BlitNamedFramebuffer (readFramebuffer, drawFramebuffer, srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
8788     }
8789     /// ditto
8790     public GLenum CheckNamedFramebufferStatus (GLuint framebuffer, GLenum target) const {
8791         assert(_CheckNamedFramebufferStatus !is null, "OpenGL command glCheckNamedFramebufferStatus was not loaded");
8792         return _CheckNamedFramebufferStatus (framebuffer, target);
8793     }
8794     /// ditto
8795     public void GetNamedFramebufferParameteriv (GLuint framebuffer, GLenum pname, GLint* param) const {
8796         assert(_GetNamedFramebufferParameteriv !is null, "OpenGL command glGetNamedFramebufferParameteriv was not loaded");
8797         return _GetNamedFramebufferParameteriv (framebuffer, pname, param);
8798     }
8799     /// ditto
8800     public void GetNamedFramebufferAttachmentParameteriv (GLuint framebuffer, GLenum attachment, GLenum pname, GLint* params) const {
8801         assert(_GetNamedFramebufferAttachmentParameteriv !is null, "OpenGL command glGetNamedFramebufferAttachmentParameteriv was not loaded");
8802         return _GetNamedFramebufferAttachmentParameteriv (framebuffer, attachment, pname, params);
8803     }
8804     /// ditto
8805     public void CreateRenderbuffers (GLsizei n, GLuint* renderbuffers) const {
8806         assert(_CreateRenderbuffers !is null, "OpenGL command glCreateRenderbuffers was not loaded");
8807         return _CreateRenderbuffers (n, renderbuffers);
8808     }
8809     /// ditto
8810     public void NamedRenderbufferStorage (GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height) const {
8811         assert(_NamedRenderbufferStorage !is null, "OpenGL command glNamedRenderbufferStorage was not loaded");
8812         return _NamedRenderbufferStorage (renderbuffer, internalformat, width, height);
8813     }
8814     /// ditto
8815     public void NamedRenderbufferStorageMultisample (GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height) const {
8816         assert(_NamedRenderbufferStorageMultisample !is null, "OpenGL command glNamedRenderbufferStorageMultisample was not loaded");
8817         return _NamedRenderbufferStorageMultisample (renderbuffer, samples, internalformat, width, height);
8818     }
8819     /// ditto
8820     public void GetNamedRenderbufferParameteriv (GLuint renderbuffer, GLenum pname, GLint* params) const {
8821         assert(_GetNamedRenderbufferParameteriv !is null, "OpenGL command glGetNamedRenderbufferParameteriv was not loaded");
8822         return _GetNamedRenderbufferParameteriv (renderbuffer, pname, params);
8823     }
8824     /// ditto
8825     public void CreateTextures (GLenum target, GLsizei n, GLuint* textures) const {
8826         assert(_CreateTextures !is null, "OpenGL command glCreateTextures was not loaded");
8827         return _CreateTextures (target, n, textures);
8828     }
8829     /// ditto
8830     public void TextureBuffer (GLuint texture, GLenum internalformat, GLuint buffer) const {
8831         assert(_TextureBuffer !is null, "OpenGL command glTextureBuffer was not loaded");
8832         return _TextureBuffer (texture, internalformat, buffer);
8833     }
8834     /// ditto
8835     public void TextureBufferRange (GLuint texture, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size) const {
8836         assert(_TextureBufferRange !is null, "OpenGL command glTextureBufferRange was not loaded");
8837         return _TextureBufferRange (texture, internalformat, buffer, offset, size);
8838     }
8839     /// ditto
8840     public void TextureStorage1D (GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width) const {
8841         assert(_TextureStorage1D !is null, "OpenGL command glTextureStorage1D was not loaded");
8842         return _TextureStorage1D (texture, levels, internalformat, width);
8843     }
8844     /// ditto
8845     public void TextureStorage2D (GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height) const {
8846         assert(_TextureStorage2D !is null, "OpenGL command glTextureStorage2D was not loaded");
8847         return _TextureStorage2D (texture, levels, internalformat, width, height);
8848     }
8849     /// ditto
8850     public void TextureStorage3D (GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth) const {
8851         assert(_TextureStorage3D !is null, "OpenGL command glTextureStorage3D was not loaded");
8852         return _TextureStorage3D (texture, levels, internalformat, width, height, depth);
8853     }
8854     /// ditto
8855     public void TextureStorage2DMultisample (GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations) const {
8856         assert(_TextureStorage2DMultisample !is null, "OpenGL command glTextureStorage2DMultisample was not loaded");
8857         return _TextureStorage2DMultisample (texture, samples, internalformat, width, height, fixedsamplelocations);
8858     }
8859     /// ditto
8860     public void TextureStorage3DMultisample (GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations) const {
8861         assert(_TextureStorage3DMultisample !is null, "OpenGL command glTextureStorage3DMultisample was not loaded");
8862         return _TextureStorage3DMultisample (texture, samples, internalformat, width, height, depth, fixedsamplelocations);
8863     }
8864     /// ditto
8865     public void TextureSubImage1D (GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const(void)* pixels) const {
8866         assert(_TextureSubImage1D !is null, "OpenGL command glTextureSubImage1D was not loaded");
8867         return _TextureSubImage1D (texture, level, xoffset, width, format, type, pixels);
8868     }
8869     /// ditto
8870     public void TextureSubImage2D (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const(void)* pixels) const {
8871         assert(_TextureSubImage2D !is null, "OpenGL command glTextureSubImage2D was not loaded");
8872         return _TextureSubImage2D (texture, level, xoffset, yoffset, width, height, format, type, pixels);
8873     }
8874     /// ditto
8875     public void TextureSubImage3D (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const(void)* pixels) const {
8876         assert(_TextureSubImage3D !is null, "OpenGL command glTextureSubImage3D was not loaded");
8877         return _TextureSubImage3D (texture, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels);
8878     }
8879     /// ditto
8880     public void CompressedTextureSubImage1D (GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const(void)* data) const {
8881         assert(_CompressedTextureSubImage1D !is null, "OpenGL command glCompressedTextureSubImage1D was not loaded");
8882         return _CompressedTextureSubImage1D (texture, level, xoffset, width, format, imageSize, data);
8883     }
8884     /// ditto
8885     public void CompressedTextureSubImage2D (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const(void)* data) const {
8886         assert(_CompressedTextureSubImage2D !is null, "OpenGL command glCompressedTextureSubImage2D was not loaded");
8887         return _CompressedTextureSubImage2D (texture, level, xoffset, yoffset, width, height, format, imageSize, data);
8888     }
8889     /// ditto
8890     public void CompressedTextureSubImage3D (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const(void)* data) const {
8891         assert(_CompressedTextureSubImage3D !is null, "OpenGL command glCompressedTextureSubImage3D was not loaded");
8892         return _CompressedTextureSubImage3D (texture, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data);
8893     }
8894     /// ditto
8895     public void CopyTextureSubImage1D (GLuint texture, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width) const {
8896         assert(_CopyTextureSubImage1D !is null, "OpenGL command glCopyTextureSubImage1D was not loaded");
8897         return _CopyTextureSubImage1D (texture, level, xoffset, x, y, width);
8898     }
8899     /// ditto
8900     public void CopyTextureSubImage2D (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height) const {
8901         assert(_CopyTextureSubImage2D !is null, "OpenGL command glCopyTextureSubImage2D was not loaded");
8902         return _CopyTextureSubImage2D (texture, level, xoffset, yoffset, x, y, width, height);
8903     }
8904     /// ditto
8905     public void CopyTextureSubImage3D (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height) const {
8906         assert(_CopyTextureSubImage3D !is null, "OpenGL command glCopyTextureSubImage3D was not loaded");
8907         return _CopyTextureSubImage3D (texture, level, xoffset, yoffset, zoffset, x, y, width, height);
8908     }
8909     /// ditto
8910     public void TextureParameterf (GLuint texture, GLenum pname, GLfloat param) const {
8911         assert(_TextureParameterf !is null, "OpenGL command glTextureParameterf was not loaded");
8912         return _TextureParameterf (texture, pname, param);
8913     }
8914     /// ditto
8915     public void TextureParameterfv (GLuint texture, GLenum pname, const(GLfloat)* param) const {
8916         assert(_TextureParameterfv !is null, "OpenGL command glTextureParameterfv was not loaded");
8917         return _TextureParameterfv (texture, pname, param);
8918     }
8919     /// ditto
8920     public void TextureParameteri (GLuint texture, GLenum pname, GLint param) const {
8921         assert(_TextureParameteri !is null, "OpenGL command glTextureParameteri was not loaded");
8922         return _TextureParameteri (texture, pname, param);
8923     }
8924     /// ditto
8925     public void TextureParameterIiv (GLuint texture, GLenum pname, const(GLint)* params) const {
8926         assert(_TextureParameterIiv !is null, "OpenGL command glTextureParameterIiv was not loaded");
8927         return _TextureParameterIiv (texture, pname, params);
8928     }
8929     /// ditto
8930     public void TextureParameterIuiv (GLuint texture, GLenum pname, const(GLuint)* params) const {
8931         assert(_TextureParameterIuiv !is null, "OpenGL command glTextureParameterIuiv was not loaded");
8932         return _TextureParameterIuiv (texture, pname, params);
8933     }
8934     /// ditto
8935     public void TextureParameteriv (GLuint texture, GLenum pname, const(GLint)* param) const {
8936         assert(_TextureParameteriv !is null, "OpenGL command glTextureParameteriv was not loaded");
8937         return _TextureParameteriv (texture, pname, param);
8938     }
8939     /// ditto
8940     public void GenerateTextureMipmap (GLuint texture) const {
8941         assert(_GenerateTextureMipmap !is null, "OpenGL command glGenerateTextureMipmap was not loaded");
8942         return _GenerateTextureMipmap (texture);
8943     }
8944     /// ditto
8945     public void BindTextureUnit (GLuint unit, GLuint texture) const {
8946         assert(_BindTextureUnit !is null, "OpenGL command glBindTextureUnit was not loaded");
8947         return _BindTextureUnit (unit, texture);
8948     }
8949     /// ditto
8950     public void GetTextureImage (GLuint texture, GLint level, GLenum format, GLenum type, GLsizei bufSize, void* pixels) const {
8951         assert(_GetTextureImage !is null, "OpenGL command glGetTextureImage was not loaded");
8952         return _GetTextureImage (texture, level, format, type, bufSize, pixels);
8953     }
8954     /// ditto
8955     public void GetCompressedTextureImage (GLuint texture, GLint level, GLsizei bufSize, void* pixels) const {
8956         assert(_GetCompressedTextureImage !is null, "OpenGL command glGetCompressedTextureImage was not loaded");
8957         return _GetCompressedTextureImage (texture, level, bufSize, pixels);
8958     }
8959     /// ditto
8960     public void GetTextureLevelParameterfv (GLuint texture, GLint level, GLenum pname, GLfloat* params) const {
8961         assert(_GetTextureLevelParameterfv !is null, "OpenGL command glGetTextureLevelParameterfv was not loaded");
8962         return _GetTextureLevelParameterfv (texture, level, pname, params);
8963     }
8964     /// ditto
8965     public void GetTextureLevelParameteriv (GLuint texture, GLint level, GLenum pname, GLint* params) const {
8966         assert(_GetTextureLevelParameteriv !is null, "OpenGL command glGetTextureLevelParameteriv was not loaded");
8967         return _GetTextureLevelParameteriv (texture, level, pname, params);
8968     }
8969     /// ditto
8970     public void GetTextureParameterfv (GLuint texture, GLenum pname, GLfloat* params) const {
8971         assert(_GetTextureParameterfv !is null, "OpenGL command glGetTextureParameterfv was not loaded");
8972         return _GetTextureParameterfv (texture, pname, params);
8973     }
8974     /// ditto
8975     public void GetTextureParameterIiv (GLuint texture, GLenum pname, GLint* params) const {
8976         assert(_GetTextureParameterIiv !is null, "OpenGL command glGetTextureParameterIiv was not loaded");
8977         return _GetTextureParameterIiv (texture, pname, params);
8978     }
8979     /// ditto
8980     public void GetTextureParameterIuiv (GLuint texture, GLenum pname, GLuint* params) const {
8981         assert(_GetTextureParameterIuiv !is null, "OpenGL command glGetTextureParameterIuiv was not loaded");
8982         return _GetTextureParameterIuiv (texture, pname, params);
8983     }
8984     /// ditto
8985     public void GetTextureParameteriv (GLuint texture, GLenum pname, GLint* params) const {
8986         assert(_GetTextureParameteriv !is null, "OpenGL command glGetTextureParameteriv was not loaded");
8987         return _GetTextureParameteriv (texture, pname, params);
8988     }
8989     /// ditto
8990     public void CreateVertexArrays (GLsizei n, GLuint* arrays) const {
8991         assert(_CreateVertexArrays !is null, "OpenGL command glCreateVertexArrays was not loaded");
8992         return _CreateVertexArrays (n, arrays);
8993     }
8994     /// ditto
8995     public void DisableVertexArrayAttrib (GLuint vaobj, GLuint index) const {
8996         assert(_DisableVertexArrayAttrib !is null, "OpenGL command glDisableVertexArrayAttrib was not loaded");
8997         return _DisableVertexArrayAttrib (vaobj, index);
8998     }
8999     /// ditto
9000     public void EnableVertexArrayAttrib (GLuint vaobj, GLuint index) const {
9001         assert(_EnableVertexArrayAttrib !is null, "OpenGL command glEnableVertexArrayAttrib was not loaded");
9002         return _EnableVertexArrayAttrib (vaobj, index);
9003     }
9004     /// ditto
9005     public void VertexArrayElementBuffer (GLuint vaobj, GLuint buffer) const {
9006         assert(_VertexArrayElementBuffer !is null, "OpenGL command glVertexArrayElementBuffer was not loaded");
9007         return _VertexArrayElementBuffer (vaobj, buffer);
9008     }
9009     /// ditto
9010     public void VertexArrayVertexBuffer (GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride) const {
9011         assert(_VertexArrayVertexBuffer !is null, "OpenGL command glVertexArrayVertexBuffer was not loaded");
9012         return _VertexArrayVertexBuffer (vaobj, bindingindex, buffer, offset, stride);
9013     }
9014     /// ditto
9015     public void VertexArrayVertexBuffers (GLuint vaobj, GLuint first, GLsizei count, const(GLuint)* buffers, const(GLintptr)* offsets, const(GLsizei)* strides) const {
9016         assert(_VertexArrayVertexBuffers !is null, "OpenGL command glVertexArrayVertexBuffers was not loaded");
9017         return _VertexArrayVertexBuffers (vaobj, first, count, buffers, offsets, strides);
9018     }
9019     /// ditto
9020     public void VertexArrayAttribBinding (GLuint vaobj, GLuint attribindex, GLuint bindingindex) const {
9021         assert(_VertexArrayAttribBinding !is null, "OpenGL command glVertexArrayAttribBinding was not loaded");
9022         return _VertexArrayAttribBinding (vaobj, attribindex, bindingindex);
9023     }
9024     /// ditto
9025     public void VertexArrayAttribFormat (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset) const {
9026         assert(_VertexArrayAttribFormat !is null, "OpenGL command glVertexArrayAttribFormat was not loaded");
9027         return _VertexArrayAttribFormat (vaobj, attribindex, size, type, normalized, relativeoffset);
9028     }
9029     /// ditto
9030     public void VertexArrayAttribIFormat (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset) const {
9031         assert(_VertexArrayAttribIFormat !is null, "OpenGL command glVertexArrayAttribIFormat was not loaded");
9032         return _VertexArrayAttribIFormat (vaobj, attribindex, size, type, relativeoffset);
9033     }
9034     /// ditto
9035     public void VertexArrayAttribLFormat (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset) const {
9036         assert(_VertexArrayAttribLFormat !is null, "OpenGL command glVertexArrayAttribLFormat was not loaded");
9037         return _VertexArrayAttribLFormat (vaobj, attribindex, size, type, relativeoffset);
9038     }
9039     /// ditto
9040     public void VertexArrayBindingDivisor (GLuint vaobj, GLuint bindingindex, GLuint divisor) const {
9041         assert(_VertexArrayBindingDivisor !is null, "OpenGL command glVertexArrayBindingDivisor was not loaded");
9042         return _VertexArrayBindingDivisor (vaobj, bindingindex, divisor);
9043     }
9044     /// ditto
9045     public void GetVertexArrayiv (GLuint vaobj, GLenum pname, GLint* param) const {
9046         assert(_GetVertexArrayiv !is null, "OpenGL command glGetVertexArrayiv was not loaded");
9047         return _GetVertexArrayiv (vaobj, pname, param);
9048     }
9049     /// ditto
9050     public void GetVertexArrayIndexediv (GLuint vaobj, GLuint index, GLenum pname, GLint* param) const {
9051         assert(_GetVertexArrayIndexediv !is null, "OpenGL command glGetVertexArrayIndexediv was not loaded");
9052         return _GetVertexArrayIndexediv (vaobj, index, pname, param);
9053     }
9054     /// ditto
9055     public void GetVertexArrayIndexed64iv (GLuint vaobj, GLuint index, GLenum pname, GLint64* param) const {
9056         assert(_GetVertexArrayIndexed64iv !is null, "OpenGL command glGetVertexArrayIndexed64iv was not loaded");
9057         return _GetVertexArrayIndexed64iv (vaobj, index, pname, param);
9058     }
9059     /// ditto
9060     public void CreateSamplers (GLsizei n, GLuint* samplers) const {
9061         assert(_CreateSamplers !is null, "OpenGL command glCreateSamplers was not loaded");
9062         return _CreateSamplers (n, samplers);
9063     }
9064     /// ditto
9065     public void CreateProgramPipelines (GLsizei n, GLuint* pipelines) const {
9066         assert(_CreateProgramPipelines !is null, "OpenGL command glCreateProgramPipelines was not loaded");
9067         return _CreateProgramPipelines (n, pipelines);
9068     }
9069     /// ditto
9070     public void CreateQueries (GLenum target, GLsizei n, GLuint* ids) const {
9071         assert(_CreateQueries !is null, "OpenGL command glCreateQueries was not loaded");
9072         return _CreateQueries (target, n, ids);
9073     }
9074     /// ditto
9075     public void GetQueryBufferObjecti64v (GLuint id, GLuint buffer, GLenum pname, GLintptr offset) const {
9076         assert(_GetQueryBufferObjecti64v !is null, "OpenGL command glGetQueryBufferObjecti64v was not loaded");
9077         return _GetQueryBufferObjecti64v (id, buffer, pname, offset);
9078     }
9079     /// ditto
9080     public void GetQueryBufferObjectiv (GLuint id, GLuint buffer, GLenum pname, GLintptr offset) const {
9081         assert(_GetQueryBufferObjectiv !is null, "OpenGL command glGetQueryBufferObjectiv was not loaded");
9082         return _GetQueryBufferObjectiv (id, buffer, pname, offset);
9083     }
9084     /// ditto
9085     public void GetQueryBufferObjectui64v (GLuint id, GLuint buffer, GLenum pname, GLintptr offset) const {
9086         assert(_GetQueryBufferObjectui64v !is null, "OpenGL command glGetQueryBufferObjectui64v was not loaded");
9087         return _GetQueryBufferObjectui64v (id, buffer, pname, offset);
9088     }
9089     /// ditto
9090     public void GetQueryBufferObjectuiv (GLuint id, GLuint buffer, GLenum pname, GLintptr offset) const {
9091         assert(_GetQueryBufferObjectuiv !is null, "OpenGL command glGetQueryBufferObjectuiv was not loaded");
9092         return _GetQueryBufferObjectuiv (id, buffer, pname, offset);
9093     }
9094     /// ditto
9095     public void MemoryBarrierByRegion (GLbitfield barriers) const {
9096         assert(_MemoryBarrierByRegion !is null, "OpenGL command glMemoryBarrierByRegion was not loaded");
9097         return _MemoryBarrierByRegion (barriers);
9098     }
9099     /// ditto
9100     public void GetTextureSubImage (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLsizei bufSize, void* pixels) const {
9101         assert(_GetTextureSubImage !is null, "OpenGL command glGetTextureSubImage was not loaded");
9102         return _GetTextureSubImage (texture, level, xoffset, yoffset, zoffset, width, height, depth, format, type, bufSize, pixels);
9103     }
9104     /// ditto
9105     public void GetCompressedTextureSubImage (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei bufSize, void* pixels) const {
9106         assert(_GetCompressedTextureSubImage !is null, "OpenGL command glGetCompressedTextureSubImage was not loaded");
9107         return _GetCompressedTextureSubImage (texture, level, xoffset, yoffset, zoffset, width, height, depth, bufSize, pixels);
9108     }
9109     /// ditto
9110     public GLenum GetGraphicsResetStatus () const {
9111         assert(_GetGraphicsResetStatus !is null, "OpenGL command glGetGraphicsResetStatus was not loaded");
9112         return _GetGraphicsResetStatus ();
9113     }
9114     /// ditto
9115     public void GetnCompressedTexImage (GLenum target, GLint lod, GLsizei bufSize, void* pixels) const {
9116         assert(_GetnCompressedTexImage !is null, "OpenGL command glGetnCompressedTexImage was not loaded");
9117         return _GetnCompressedTexImage (target, lod, bufSize, pixels);
9118     }
9119     /// ditto
9120     public void GetnTexImage (GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, void* pixels) const {
9121         assert(_GetnTexImage !is null, "OpenGL command glGetnTexImage was not loaded");
9122         return _GetnTexImage (target, level, format, type, bufSize, pixels);
9123     }
9124     /// ditto
9125     public void GetnUniformdv (GLuint program, GLint location, GLsizei bufSize, GLdouble* params) const {
9126         assert(_GetnUniformdv !is null, "OpenGL command glGetnUniformdv was not loaded");
9127         return _GetnUniformdv (program, location, bufSize, params);
9128     }
9129     /// ditto
9130     public void GetnUniformfv (GLuint program, GLint location, GLsizei bufSize, GLfloat* params) const {
9131         assert(_GetnUniformfv !is null, "OpenGL command glGetnUniformfv was not loaded");
9132         return _GetnUniformfv (program, location, bufSize, params);
9133     }
9134     /// ditto
9135     public void GetnUniformiv (GLuint program, GLint location, GLsizei bufSize, GLint* params) const {
9136         assert(_GetnUniformiv !is null, "OpenGL command glGetnUniformiv was not loaded");
9137         return _GetnUniformiv (program, location, bufSize, params);
9138     }
9139     /// ditto
9140     public void GetnUniformuiv (GLuint program, GLint location, GLsizei bufSize, GLuint* params) const {
9141         assert(_GetnUniformuiv !is null, "OpenGL command glGetnUniformuiv was not loaded");
9142         return _GetnUniformuiv (program, location, bufSize, params);
9143     }
9144     /// ditto
9145     public void ReadnPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void* data) const {
9146         assert(_ReadnPixels !is null, "OpenGL command glReadnPixels was not loaded");
9147         return _ReadnPixels (x, y, width, height, format, type, bufSize, data);
9148     }
9149     /// ditto
9150     public void TextureBarrier () const {
9151         assert(_TextureBarrier !is null, "OpenGL command glTextureBarrier was not loaded");
9152         return _TextureBarrier ();
9153     }
9154 
9155     /// Commands for GL_VERSION_4_6
9156     public void SpecializeShader (GLuint shader, const(GLchar)* pEntryPoint, GLuint numSpecializationConstants, const(GLuint)* pConstantIndex, const(GLuint)* pConstantValue) const {
9157         assert(_SpecializeShader !is null, "OpenGL command glSpecializeShader was not loaded");
9158         return _SpecializeShader (shader, pEntryPoint, numSpecializationConstants, pConstantIndex, pConstantValue);
9159     }
9160     /// ditto
9161     public void MultiDrawArraysIndirectCount (GLenum mode, const(void)* indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride) const {
9162         assert(_MultiDrawArraysIndirectCount !is null, "OpenGL command glMultiDrawArraysIndirectCount was not loaded");
9163         return _MultiDrawArraysIndirectCount (mode, indirect, drawcount, maxdrawcount, stride);
9164     }
9165     /// ditto
9166     public void MultiDrawElementsIndirectCount (GLenum mode, GLenum type, const(void)* indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride) const {
9167         assert(_MultiDrawElementsIndirectCount !is null, "OpenGL command glMultiDrawElementsIndirectCount was not loaded");
9168         return _MultiDrawElementsIndirectCount (mode, type, indirect, drawcount, maxdrawcount, stride);
9169     }
9170     /// ditto
9171     public void PolygonOffsetClamp (GLfloat factor, GLfloat units, GLfloat clamp) const {
9172         assert(_PolygonOffsetClamp !is null, "OpenGL command glPolygonOffsetClamp was not loaded");
9173         return _PolygonOffsetClamp (factor, units, clamp);
9174     }
9175 
9176     // GL_VERSION_1_0
9177     private PFN_glCullFace _CullFace;
9178     private PFN_glFrontFace _FrontFace;
9179     private PFN_glHint _Hint;
9180     private PFN_glLineWidth _LineWidth;
9181     private PFN_glPointSize _PointSize;
9182     private PFN_glPolygonMode _PolygonMode;
9183     private PFN_glScissor _Scissor;
9184     private PFN_glTexParameterf _TexParameterf;
9185     private PFN_glTexParameterfv _TexParameterfv;
9186     private PFN_glTexParameteri _TexParameteri;
9187     private PFN_glTexParameteriv _TexParameteriv;
9188     private PFN_glTexImage1D _TexImage1D;
9189     private PFN_glTexImage2D _TexImage2D;
9190     private PFN_glDrawBuffer _DrawBuffer;
9191     private PFN_glClear _Clear;
9192     private PFN_glClearColor _ClearColor;
9193     private PFN_glClearStencil _ClearStencil;
9194     private PFN_glClearDepth _ClearDepth;
9195     private PFN_glStencilMask _StencilMask;
9196     private PFN_glColorMask _ColorMask;
9197     private PFN_glDepthMask _DepthMask;
9198     private PFN_glDisable _Disable;
9199     private PFN_glEnable _Enable;
9200     private PFN_glFinish _Finish;
9201     private PFN_glFlush _Flush;
9202     private PFN_glBlendFunc _BlendFunc;
9203     private PFN_glLogicOp _LogicOp;
9204     private PFN_glStencilFunc _StencilFunc;
9205     private PFN_glStencilOp _StencilOp;
9206     private PFN_glDepthFunc _DepthFunc;
9207     private PFN_glPixelStoref _PixelStoref;
9208     private PFN_glPixelStorei _PixelStorei;
9209     private PFN_glReadBuffer _ReadBuffer;
9210     private PFN_glReadPixels _ReadPixels;
9211     private PFN_glGetBooleanv _GetBooleanv;
9212     private PFN_glGetDoublev _GetDoublev;
9213     private PFN_glGetError _GetError;
9214     private PFN_glGetFloatv _GetFloatv;
9215     private PFN_glGetIntegerv _GetIntegerv;
9216     private PFN_glGetString _GetString;
9217     private PFN_glGetTexImage _GetTexImage;
9218     private PFN_glGetTexParameterfv _GetTexParameterfv;
9219     private PFN_glGetTexParameteriv _GetTexParameteriv;
9220     private PFN_glGetTexLevelParameterfv _GetTexLevelParameterfv;
9221     private PFN_glGetTexLevelParameteriv _GetTexLevelParameteriv;
9222     private PFN_glIsEnabled _IsEnabled;
9223     private PFN_glDepthRange _DepthRange;
9224     private PFN_glViewport _Viewport;
9225 
9226     // GL_VERSION_1_1
9227     private PFN_glDrawArrays _DrawArrays;
9228     private PFN_glDrawElements _DrawElements;
9229     private PFN_glGetPointerv _GetPointerv;
9230     private PFN_glPolygonOffset _PolygonOffset;
9231     private PFN_glCopyTexImage1D _CopyTexImage1D;
9232     private PFN_glCopyTexImage2D _CopyTexImage2D;
9233     private PFN_glCopyTexSubImage1D _CopyTexSubImage1D;
9234     private PFN_glCopyTexSubImage2D _CopyTexSubImage2D;
9235     private PFN_glTexSubImage1D _TexSubImage1D;
9236     private PFN_glTexSubImage2D _TexSubImage2D;
9237     private PFN_glBindTexture _BindTexture;
9238     private PFN_glDeleteTextures _DeleteTextures;
9239     private PFN_glGenTextures _GenTextures;
9240     private PFN_glIsTexture _IsTexture;
9241 
9242     // GL_VERSION_1_2
9243     private PFN_glDrawRangeElements _DrawRangeElements;
9244     private PFN_glTexImage3D _TexImage3D;
9245     private PFN_glTexSubImage3D _TexSubImage3D;
9246     private PFN_glCopyTexSubImage3D _CopyTexSubImage3D;
9247 
9248     // GL_VERSION_1_3
9249     private PFN_glActiveTexture _ActiveTexture;
9250     private PFN_glSampleCoverage _SampleCoverage;
9251     private PFN_glCompressedTexImage3D _CompressedTexImage3D;
9252     private PFN_glCompressedTexImage2D _CompressedTexImage2D;
9253     private PFN_glCompressedTexImage1D _CompressedTexImage1D;
9254     private PFN_glCompressedTexSubImage3D _CompressedTexSubImage3D;
9255     private PFN_glCompressedTexSubImage2D _CompressedTexSubImage2D;
9256     private PFN_glCompressedTexSubImage1D _CompressedTexSubImage1D;
9257     private PFN_glGetCompressedTexImage _GetCompressedTexImage;
9258 
9259     // GL_VERSION_1_4
9260     private PFN_glBlendFuncSeparate _BlendFuncSeparate;
9261     private PFN_glMultiDrawArrays _MultiDrawArrays;
9262     private PFN_glMultiDrawElements _MultiDrawElements;
9263     private PFN_glPointParameterf _PointParameterf;
9264     private PFN_glPointParameterfv _PointParameterfv;
9265     private PFN_glPointParameteri _PointParameteri;
9266     private PFN_glPointParameteriv _PointParameteriv;
9267     private PFN_glBlendColor _BlendColor;
9268     private PFN_glBlendEquation _BlendEquation;
9269 
9270     // GL_VERSION_1_5
9271     private PFN_glGenQueries _GenQueries;
9272     private PFN_glDeleteQueries _DeleteQueries;
9273     private PFN_glIsQuery _IsQuery;
9274     private PFN_glBeginQuery _BeginQuery;
9275     private PFN_glEndQuery _EndQuery;
9276     private PFN_glGetQueryiv _GetQueryiv;
9277     private PFN_glGetQueryObjectiv _GetQueryObjectiv;
9278     private PFN_glGetQueryObjectuiv _GetQueryObjectuiv;
9279     private PFN_glBindBuffer _BindBuffer;
9280     private PFN_glDeleteBuffers _DeleteBuffers;
9281     private PFN_glGenBuffers _GenBuffers;
9282     private PFN_glIsBuffer _IsBuffer;
9283     private PFN_glBufferData _BufferData;
9284     private PFN_glBufferSubData _BufferSubData;
9285     private PFN_glGetBufferSubData _GetBufferSubData;
9286     private PFN_glMapBuffer _MapBuffer;
9287     private PFN_glUnmapBuffer _UnmapBuffer;
9288     private PFN_glGetBufferParameteriv _GetBufferParameteriv;
9289     private PFN_glGetBufferPointerv _GetBufferPointerv;
9290 
9291     // GL_VERSION_2_0
9292     private PFN_glBlendEquationSeparate _BlendEquationSeparate;
9293     private PFN_glDrawBuffers _DrawBuffers;
9294     private PFN_glStencilOpSeparate _StencilOpSeparate;
9295     private PFN_glStencilFuncSeparate _StencilFuncSeparate;
9296     private PFN_glStencilMaskSeparate _StencilMaskSeparate;
9297     private PFN_glAttachShader _AttachShader;
9298     private PFN_glBindAttribLocation _BindAttribLocation;
9299     private PFN_glCompileShader _CompileShader;
9300     private PFN_glCreateProgram _CreateProgram;
9301     private PFN_glCreateShader _CreateShader;
9302     private PFN_glDeleteProgram _DeleteProgram;
9303     private PFN_glDeleteShader _DeleteShader;
9304     private PFN_glDetachShader _DetachShader;
9305     private PFN_glDisableVertexAttribArray _DisableVertexAttribArray;
9306     private PFN_glEnableVertexAttribArray _EnableVertexAttribArray;
9307     private PFN_glGetActiveAttrib _GetActiveAttrib;
9308     private PFN_glGetActiveUniform _GetActiveUniform;
9309     private PFN_glGetAttachedShaders _GetAttachedShaders;
9310     private PFN_glGetAttribLocation _GetAttribLocation;
9311     private PFN_glGetProgramiv _GetProgramiv;
9312     private PFN_glGetProgramInfoLog _GetProgramInfoLog;
9313     private PFN_glGetShaderiv _GetShaderiv;
9314     private PFN_glGetShaderInfoLog _GetShaderInfoLog;
9315     private PFN_glGetShaderSource _GetShaderSource;
9316     private PFN_glGetUniformLocation _GetUniformLocation;
9317     private PFN_glGetUniformfv _GetUniformfv;
9318     private PFN_glGetUniformiv _GetUniformiv;
9319     private PFN_glGetVertexAttribdv _GetVertexAttribdv;
9320     private PFN_glGetVertexAttribfv _GetVertexAttribfv;
9321     private PFN_glGetVertexAttribiv _GetVertexAttribiv;
9322     private PFN_glGetVertexAttribPointerv _GetVertexAttribPointerv;
9323     private PFN_glIsProgram _IsProgram;
9324     private PFN_glIsShader _IsShader;
9325     private PFN_glLinkProgram _LinkProgram;
9326     private PFN_glShaderSource _ShaderSource;
9327     private PFN_glUseProgram _UseProgram;
9328     private PFN_glUniform1f _Uniform1f;
9329     private PFN_glUniform2f _Uniform2f;
9330     private PFN_glUniform3f _Uniform3f;
9331     private PFN_glUniform4f _Uniform4f;
9332     private PFN_glUniform1i _Uniform1i;
9333     private PFN_glUniform2i _Uniform2i;
9334     private PFN_glUniform3i _Uniform3i;
9335     private PFN_glUniform4i _Uniform4i;
9336     private PFN_glUniform1fv _Uniform1fv;
9337     private PFN_glUniform2fv _Uniform2fv;
9338     private PFN_glUniform3fv _Uniform3fv;
9339     private PFN_glUniform4fv _Uniform4fv;
9340     private PFN_glUniform1iv _Uniform1iv;
9341     private PFN_glUniform2iv _Uniform2iv;
9342     private PFN_glUniform3iv _Uniform3iv;
9343     private PFN_glUniform4iv _Uniform4iv;
9344     private PFN_glUniformMatrix2fv _UniformMatrix2fv;
9345     private PFN_glUniformMatrix3fv _UniformMatrix3fv;
9346     private PFN_glUniformMatrix4fv _UniformMatrix4fv;
9347     private PFN_glValidateProgram _ValidateProgram;
9348     private PFN_glVertexAttrib1d _VertexAttrib1d;
9349     private PFN_glVertexAttrib1dv _VertexAttrib1dv;
9350     private PFN_glVertexAttrib1f _VertexAttrib1f;
9351     private PFN_glVertexAttrib1fv _VertexAttrib1fv;
9352     private PFN_glVertexAttrib1s _VertexAttrib1s;
9353     private PFN_glVertexAttrib1sv _VertexAttrib1sv;
9354     private PFN_glVertexAttrib2d _VertexAttrib2d;
9355     private PFN_glVertexAttrib2dv _VertexAttrib2dv;
9356     private PFN_glVertexAttrib2f _VertexAttrib2f;
9357     private PFN_glVertexAttrib2fv _VertexAttrib2fv;
9358     private PFN_glVertexAttrib2s _VertexAttrib2s;
9359     private PFN_glVertexAttrib2sv _VertexAttrib2sv;
9360     private PFN_glVertexAttrib3d _VertexAttrib3d;
9361     private PFN_glVertexAttrib3dv _VertexAttrib3dv;
9362     private PFN_glVertexAttrib3f _VertexAttrib3f;
9363     private PFN_glVertexAttrib3fv _VertexAttrib3fv;
9364     private PFN_glVertexAttrib3s _VertexAttrib3s;
9365     private PFN_glVertexAttrib3sv _VertexAttrib3sv;
9366     private PFN_glVertexAttrib4Nbv _VertexAttrib4Nbv;
9367     private PFN_glVertexAttrib4Niv _VertexAttrib4Niv;
9368     private PFN_glVertexAttrib4Nsv _VertexAttrib4Nsv;
9369     private PFN_glVertexAttrib4Nub _VertexAttrib4Nub;
9370     private PFN_glVertexAttrib4Nubv _VertexAttrib4Nubv;
9371     private PFN_glVertexAttrib4Nuiv _VertexAttrib4Nuiv;
9372     private PFN_glVertexAttrib4Nusv _VertexAttrib4Nusv;
9373     private PFN_glVertexAttrib4bv _VertexAttrib4bv;
9374     private PFN_glVertexAttrib4d _VertexAttrib4d;
9375     private PFN_glVertexAttrib4dv _VertexAttrib4dv;
9376     private PFN_glVertexAttrib4f _VertexAttrib4f;
9377     private PFN_glVertexAttrib4fv _VertexAttrib4fv;
9378     private PFN_glVertexAttrib4iv _VertexAttrib4iv;
9379     private PFN_glVertexAttrib4s _VertexAttrib4s;
9380     private PFN_glVertexAttrib4sv _VertexAttrib4sv;
9381     private PFN_glVertexAttrib4ubv _VertexAttrib4ubv;
9382     private PFN_glVertexAttrib4uiv _VertexAttrib4uiv;
9383     private PFN_glVertexAttrib4usv _VertexAttrib4usv;
9384     private PFN_glVertexAttribPointer _VertexAttribPointer;
9385 
9386     // GL_VERSION_2_1
9387     private PFN_glUniformMatrix2x3fv _UniformMatrix2x3fv;
9388     private PFN_glUniformMatrix3x2fv _UniformMatrix3x2fv;
9389     private PFN_glUniformMatrix2x4fv _UniformMatrix2x4fv;
9390     private PFN_glUniformMatrix4x2fv _UniformMatrix4x2fv;
9391     private PFN_glUniformMatrix3x4fv _UniformMatrix3x4fv;
9392     private PFN_glUniformMatrix4x3fv _UniformMatrix4x3fv;
9393 
9394     // GL_VERSION_3_0
9395     private PFN_glColorMaski _ColorMaski;
9396     private PFN_glGetBooleani_v _GetBooleani_v;
9397     private PFN_glGetIntegeri_v _GetIntegeri_v;
9398     private PFN_glEnablei _Enablei;
9399     private PFN_glDisablei _Disablei;
9400     private PFN_glIsEnabledi _IsEnabledi;
9401     private PFN_glBeginTransformFeedback _BeginTransformFeedback;
9402     private PFN_glEndTransformFeedback _EndTransformFeedback;
9403     private PFN_glBindBufferRange _BindBufferRange;
9404     private PFN_glBindBufferBase _BindBufferBase;
9405     private PFN_glTransformFeedbackVaryings _TransformFeedbackVaryings;
9406     private PFN_glGetTransformFeedbackVarying _GetTransformFeedbackVarying;
9407     private PFN_glClampColor _ClampColor;
9408     private PFN_glBeginConditionalRender _BeginConditionalRender;
9409     private PFN_glEndConditionalRender _EndConditionalRender;
9410     private PFN_glVertexAttribIPointer _VertexAttribIPointer;
9411     private PFN_glGetVertexAttribIiv _GetVertexAttribIiv;
9412     private PFN_glGetVertexAttribIuiv _GetVertexAttribIuiv;
9413     private PFN_glVertexAttribI1i _VertexAttribI1i;
9414     private PFN_glVertexAttribI2i _VertexAttribI2i;
9415     private PFN_glVertexAttribI3i _VertexAttribI3i;
9416     private PFN_glVertexAttribI4i _VertexAttribI4i;
9417     private PFN_glVertexAttribI1ui _VertexAttribI1ui;
9418     private PFN_glVertexAttribI2ui _VertexAttribI2ui;
9419     private PFN_glVertexAttribI3ui _VertexAttribI3ui;
9420     private PFN_glVertexAttribI4ui _VertexAttribI4ui;
9421     private PFN_glVertexAttribI1iv _VertexAttribI1iv;
9422     private PFN_glVertexAttribI2iv _VertexAttribI2iv;
9423     private PFN_glVertexAttribI3iv _VertexAttribI3iv;
9424     private PFN_glVertexAttribI4iv _VertexAttribI4iv;
9425     private PFN_glVertexAttribI1uiv _VertexAttribI1uiv;
9426     private PFN_glVertexAttribI2uiv _VertexAttribI2uiv;
9427     private PFN_glVertexAttribI3uiv _VertexAttribI3uiv;
9428     private PFN_glVertexAttribI4uiv _VertexAttribI4uiv;
9429     private PFN_glVertexAttribI4bv _VertexAttribI4bv;
9430     private PFN_glVertexAttribI4sv _VertexAttribI4sv;
9431     private PFN_glVertexAttribI4ubv _VertexAttribI4ubv;
9432     private PFN_glVertexAttribI4usv _VertexAttribI4usv;
9433     private PFN_glGetUniformuiv _GetUniformuiv;
9434     private PFN_glBindFragDataLocation _BindFragDataLocation;
9435     private PFN_glGetFragDataLocation _GetFragDataLocation;
9436     private PFN_glUniform1ui _Uniform1ui;
9437     private PFN_glUniform2ui _Uniform2ui;
9438     private PFN_glUniform3ui _Uniform3ui;
9439     private PFN_glUniform4ui _Uniform4ui;
9440     private PFN_glUniform1uiv _Uniform1uiv;
9441     private PFN_glUniform2uiv _Uniform2uiv;
9442     private PFN_glUniform3uiv _Uniform3uiv;
9443     private PFN_glUniform4uiv _Uniform4uiv;
9444     private PFN_glTexParameterIiv _TexParameterIiv;
9445     private PFN_glTexParameterIuiv _TexParameterIuiv;
9446     private PFN_glGetTexParameterIiv _GetTexParameterIiv;
9447     private PFN_glGetTexParameterIuiv _GetTexParameterIuiv;
9448     private PFN_glClearBufferiv _ClearBufferiv;
9449     private PFN_glClearBufferuiv _ClearBufferuiv;
9450     private PFN_glClearBufferfv _ClearBufferfv;
9451     private PFN_glClearBufferfi _ClearBufferfi;
9452     private PFN_glGetStringi _GetStringi;
9453     private PFN_glIsRenderbuffer _IsRenderbuffer;
9454     private PFN_glBindRenderbuffer _BindRenderbuffer;
9455     private PFN_glDeleteRenderbuffers _DeleteRenderbuffers;
9456     private PFN_glGenRenderbuffers _GenRenderbuffers;
9457     private PFN_glRenderbufferStorage _RenderbufferStorage;
9458     private PFN_glGetRenderbufferParameteriv _GetRenderbufferParameteriv;
9459     private PFN_glIsFramebuffer _IsFramebuffer;
9460     private PFN_glBindFramebuffer _BindFramebuffer;
9461     private PFN_glDeleteFramebuffers _DeleteFramebuffers;
9462     private PFN_glGenFramebuffers _GenFramebuffers;
9463     private PFN_glCheckFramebufferStatus _CheckFramebufferStatus;
9464     private PFN_glFramebufferTexture1D _FramebufferTexture1D;
9465     private PFN_glFramebufferTexture2D _FramebufferTexture2D;
9466     private PFN_glFramebufferTexture3D _FramebufferTexture3D;
9467     private PFN_glFramebufferRenderbuffer _FramebufferRenderbuffer;
9468     private PFN_glGetFramebufferAttachmentParameteriv _GetFramebufferAttachmentParameteriv;
9469     private PFN_glGenerateMipmap _GenerateMipmap;
9470     private PFN_glBlitFramebuffer _BlitFramebuffer;
9471     private PFN_glRenderbufferStorageMultisample _RenderbufferStorageMultisample;
9472     private PFN_glFramebufferTextureLayer _FramebufferTextureLayer;
9473     private PFN_glMapBufferRange _MapBufferRange;
9474     private PFN_glFlushMappedBufferRange _FlushMappedBufferRange;
9475     private PFN_glBindVertexArray _BindVertexArray;
9476     private PFN_glDeleteVertexArrays _DeleteVertexArrays;
9477     private PFN_glGenVertexArrays _GenVertexArrays;
9478     private PFN_glIsVertexArray _IsVertexArray;
9479 
9480     // GL_VERSION_3_1
9481     private PFN_glDrawArraysInstanced _DrawArraysInstanced;
9482     private PFN_glDrawElementsInstanced _DrawElementsInstanced;
9483     private PFN_glTexBuffer _TexBuffer;
9484     private PFN_glPrimitiveRestartIndex _PrimitiveRestartIndex;
9485     private PFN_glCopyBufferSubData _CopyBufferSubData;
9486     private PFN_glGetUniformIndices _GetUniformIndices;
9487     private PFN_glGetActiveUniformsiv _GetActiveUniformsiv;
9488     private PFN_glGetActiveUniformName _GetActiveUniformName;
9489     private PFN_glGetUniformBlockIndex _GetUniformBlockIndex;
9490     private PFN_glGetActiveUniformBlockiv _GetActiveUniformBlockiv;
9491     private PFN_glGetActiveUniformBlockName _GetActiveUniformBlockName;
9492     private PFN_glUniformBlockBinding _UniformBlockBinding;
9493 
9494     // GL_VERSION_3_2
9495     private PFN_glDrawElementsBaseVertex _DrawElementsBaseVertex;
9496     private PFN_glDrawRangeElementsBaseVertex _DrawRangeElementsBaseVertex;
9497     private PFN_glDrawElementsInstancedBaseVertex _DrawElementsInstancedBaseVertex;
9498     private PFN_glMultiDrawElementsBaseVertex _MultiDrawElementsBaseVertex;
9499     private PFN_glProvokingVertex _ProvokingVertex;
9500     private PFN_glFenceSync _FenceSync;
9501     private PFN_glIsSync _IsSync;
9502     private PFN_glDeleteSync _DeleteSync;
9503     private PFN_glClientWaitSync _ClientWaitSync;
9504     private PFN_glWaitSync _WaitSync;
9505     private PFN_glGetInteger64v _GetInteger64v;
9506     private PFN_glGetSynciv _GetSynciv;
9507     private PFN_glGetInteger64i_v _GetInteger64i_v;
9508     private PFN_glGetBufferParameteri64v _GetBufferParameteri64v;
9509     private PFN_glFramebufferTexture _FramebufferTexture;
9510     private PFN_glTexImage2DMultisample _TexImage2DMultisample;
9511     private PFN_glTexImage3DMultisample _TexImage3DMultisample;
9512     private PFN_glGetMultisamplefv _GetMultisamplefv;
9513     private PFN_glSampleMaski _SampleMaski;
9514 
9515     // GL_VERSION_3_3
9516     private PFN_glBindFragDataLocationIndexed _BindFragDataLocationIndexed;
9517     private PFN_glGetFragDataIndex _GetFragDataIndex;
9518     private PFN_glGenSamplers _GenSamplers;
9519     private PFN_glDeleteSamplers _DeleteSamplers;
9520     private PFN_glIsSampler _IsSampler;
9521     private PFN_glBindSampler _BindSampler;
9522     private PFN_glSamplerParameteri _SamplerParameteri;
9523     private PFN_glSamplerParameteriv _SamplerParameteriv;
9524     private PFN_glSamplerParameterf _SamplerParameterf;
9525     private PFN_glSamplerParameterfv _SamplerParameterfv;
9526     private PFN_glSamplerParameterIiv _SamplerParameterIiv;
9527     private PFN_glSamplerParameterIuiv _SamplerParameterIuiv;
9528     private PFN_glGetSamplerParameteriv _GetSamplerParameteriv;
9529     private PFN_glGetSamplerParameterIiv _GetSamplerParameterIiv;
9530     private PFN_glGetSamplerParameterfv _GetSamplerParameterfv;
9531     private PFN_glGetSamplerParameterIuiv _GetSamplerParameterIuiv;
9532     private PFN_glQueryCounter _QueryCounter;
9533     private PFN_glGetQueryObjecti64v _GetQueryObjecti64v;
9534     private PFN_glGetQueryObjectui64v _GetQueryObjectui64v;
9535     private PFN_glVertexAttribDivisor _VertexAttribDivisor;
9536     private PFN_glVertexAttribP1ui _VertexAttribP1ui;
9537     private PFN_glVertexAttribP1uiv _VertexAttribP1uiv;
9538     private PFN_glVertexAttribP2ui _VertexAttribP2ui;
9539     private PFN_glVertexAttribP2uiv _VertexAttribP2uiv;
9540     private PFN_glVertexAttribP3ui _VertexAttribP3ui;
9541     private PFN_glVertexAttribP3uiv _VertexAttribP3uiv;
9542     private PFN_glVertexAttribP4ui _VertexAttribP4ui;
9543     private PFN_glVertexAttribP4uiv _VertexAttribP4uiv;
9544 
9545     // GL_VERSION_4_0
9546     private PFN_glMinSampleShading _MinSampleShading;
9547     private PFN_glBlendEquationi _BlendEquationi;
9548     private PFN_glBlendEquationSeparatei _BlendEquationSeparatei;
9549     private PFN_glBlendFunci _BlendFunci;
9550     private PFN_glBlendFuncSeparatei _BlendFuncSeparatei;
9551     private PFN_glDrawArraysIndirect _DrawArraysIndirect;
9552     private PFN_glDrawElementsIndirect _DrawElementsIndirect;
9553     private PFN_glUniform1d _Uniform1d;
9554     private PFN_glUniform2d _Uniform2d;
9555     private PFN_glUniform3d _Uniform3d;
9556     private PFN_glUniform4d _Uniform4d;
9557     private PFN_glUniform1dv _Uniform1dv;
9558     private PFN_glUniform2dv _Uniform2dv;
9559     private PFN_glUniform3dv _Uniform3dv;
9560     private PFN_glUniform4dv _Uniform4dv;
9561     private PFN_glUniformMatrix2dv _UniformMatrix2dv;
9562     private PFN_glUniformMatrix3dv _UniformMatrix3dv;
9563     private PFN_glUniformMatrix4dv _UniformMatrix4dv;
9564     private PFN_glUniformMatrix2x3dv _UniformMatrix2x3dv;
9565     private PFN_glUniformMatrix2x4dv _UniformMatrix2x4dv;
9566     private PFN_glUniformMatrix3x2dv _UniformMatrix3x2dv;
9567     private PFN_glUniformMatrix3x4dv _UniformMatrix3x4dv;
9568     private PFN_glUniformMatrix4x2dv _UniformMatrix4x2dv;
9569     private PFN_glUniformMatrix4x3dv _UniformMatrix4x3dv;
9570     private PFN_glGetUniformdv _GetUniformdv;
9571     private PFN_glGetSubroutineUniformLocation _GetSubroutineUniformLocation;
9572     private PFN_glGetSubroutineIndex _GetSubroutineIndex;
9573     private PFN_glGetActiveSubroutineUniformiv _GetActiveSubroutineUniformiv;
9574     private PFN_glGetActiveSubroutineUniformName _GetActiveSubroutineUniformName;
9575     private PFN_glGetActiveSubroutineName _GetActiveSubroutineName;
9576     private PFN_glUniformSubroutinesuiv _UniformSubroutinesuiv;
9577     private PFN_glGetUniformSubroutineuiv _GetUniformSubroutineuiv;
9578     private PFN_glGetProgramStageiv _GetProgramStageiv;
9579     private PFN_glPatchParameteri _PatchParameteri;
9580     private PFN_glPatchParameterfv _PatchParameterfv;
9581     private PFN_glBindTransformFeedback _BindTransformFeedback;
9582     private PFN_glDeleteTransformFeedbacks _DeleteTransformFeedbacks;
9583     private PFN_glGenTransformFeedbacks _GenTransformFeedbacks;
9584     private PFN_glIsTransformFeedback _IsTransformFeedback;
9585     private PFN_glPauseTransformFeedback _PauseTransformFeedback;
9586     private PFN_glResumeTransformFeedback _ResumeTransformFeedback;
9587     private PFN_glDrawTransformFeedback _DrawTransformFeedback;
9588     private PFN_glDrawTransformFeedbackStream _DrawTransformFeedbackStream;
9589     private PFN_glBeginQueryIndexed _BeginQueryIndexed;
9590     private PFN_glEndQueryIndexed _EndQueryIndexed;
9591     private PFN_glGetQueryIndexediv _GetQueryIndexediv;
9592 
9593     // GL_VERSION_4_1
9594     private PFN_glReleaseShaderCompiler _ReleaseShaderCompiler;
9595     private PFN_glShaderBinary _ShaderBinary;
9596     private PFN_glGetShaderPrecisionFormat _GetShaderPrecisionFormat;
9597     private PFN_glDepthRangef _DepthRangef;
9598     private PFN_glClearDepthf _ClearDepthf;
9599     private PFN_glGetProgramBinary _GetProgramBinary;
9600     private PFN_glProgramBinary _ProgramBinary;
9601     private PFN_glProgramParameteri _ProgramParameteri;
9602     private PFN_glUseProgramStages _UseProgramStages;
9603     private PFN_glActiveShaderProgram _ActiveShaderProgram;
9604     private PFN_glCreateShaderProgramv _CreateShaderProgramv;
9605     private PFN_glBindProgramPipeline _BindProgramPipeline;
9606     private PFN_glDeleteProgramPipelines _DeleteProgramPipelines;
9607     private PFN_glGenProgramPipelines _GenProgramPipelines;
9608     private PFN_glIsProgramPipeline _IsProgramPipeline;
9609     private PFN_glGetProgramPipelineiv _GetProgramPipelineiv;
9610     private PFN_glProgramUniform1i _ProgramUniform1i;
9611     private PFN_glProgramUniform1iv _ProgramUniform1iv;
9612     private PFN_glProgramUniform1f _ProgramUniform1f;
9613     private PFN_glProgramUniform1fv _ProgramUniform1fv;
9614     private PFN_glProgramUniform1d _ProgramUniform1d;
9615     private PFN_glProgramUniform1dv _ProgramUniform1dv;
9616     private PFN_glProgramUniform1ui _ProgramUniform1ui;
9617     private PFN_glProgramUniform1uiv _ProgramUniform1uiv;
9618     private PFN_glProgramUniform2i _ProgramUniform2i;
9619     private PFN_glProgramUniform2iv _ProgramUniform2iv;
9620     private PFN_glProgramUniform2f _ProgramUniform2f;
9621     private PFN_glProgramUniform2fv _ProgramUniform2fv;
9622     private PFN_glProgramUniform2d _ProgramUniform2d;
9623     private PFN_glProgramUniform2dv _ProgramUniform2dv;
9624     private PFN_glProgramUniform2ui _ProgramUniform2ui;
9625     private PFN_glProgramUniform2uiv _ProgramUniform2uiv;
9626     private PFN_glProgramUniform3i _ProgramUniform3i;
9627     private PFN_glProgramUniform3iv _ProgramUniform3iv;
9628     private PFN_glProgramUniform3f _ProgramUniform3f;
9629     private PFN_glProgramUniform3fv _ProgramUniform3fv;
9630     private PFN_glProgramUniform3d _ProgramUniform3d;
9631     private PFN_glProgramUniform3dv _ProgramUniform3dv;
9632     private PFN_glProgramUniform3ui _ProgramUniform3ui;
9633     private PFN_glProgramUniform3uiv _ProgramUniform3uiv;
9634     private PFN_glProgramUniform4i _ProgramUniform4i;
9635     private PFN_glProgramUniform4iv _ProgramUniform4iv;
9636     private PFN_glProgramUniform4f _ProgramUniform4f;
9637     private PFN_glProgramUniform4fv _ProgramUniform4fv;
9638     private PFN_glProgramUniform4d _ProgramUniform4d;
9639     private PFN_glProgramUniform4dv _ProgramUniform4dv;
9640     private PFN_glProgramUniform4ui _ProgramUniform4ui;
9641     private PFN_glProgramUniform4uiv _ProgramUniform4uiv;
9642     private PFN_glProgramUniformMatrix2fv _ProgramUniformMatrix2fv;
9643     private PFN_glProgramUniformMatrix3fv _ProgramUniformMatrix3fv;
9644     private PFN_glProgramUniformMatrix4fv _ProgramUniformMatrix4fv;
9645     private PFN_glProgramUniformMatrix2dv _ProgramUniformMatrix2dv;
9646     private PFN_glProgramUniformMatrix3dv _ProgramUniformMatrix3dv;
9647     private PFN_glProgramUniformMatrix4dv _ProgramUniformMatrix4dv;
9648     private PFN_glProgramUniformMatrix2x3fv _ProgramUniformMatrix2x3fv;
9649     private PFN_glProgramUniformMatrix3x2fv _ProgramUniformMatrix3x2fv;
9650     private PFN_glProgramUniformMatrix2x4fv _ProgramUniformMatrix2x4fv;
9651     private PFN_glProgramUniformMatrix4x2fv _ProgramUniformMatrix4x2fv;
9652     private PFN_glProgramUniformMatrix3x4fv _ProgramUniformMatrix3x4fv;
9653     private PFN_glProgramUniformMatrix4x3fv _ProgramUniformMatrix4x3fv;
9654     private PFN_glProgramUniformMatrix2x3dv _ProgramUniformMatrix2x3dv;
9655     private PFN_glProgramUniformMatrix3x2dv _ProgramUniformMatrix3x2dv;
9656     private PFN_glProgramUniformMatrix2x4dv _ProgramUniformMatrix2x4dv;
9657     private PFN_glProgramUniformMatrix4x2dv _ProgramUniformMatrix4x2dv;
9658     private PFN_glProgramUniformMatrix3x4dv _ProgramUniformMatrix3x4dv;
9659     private PFN_glProgramUniformMatrix4x3dv _ProgramUniformMatrix4x3dv;
9660     private PFN_glValidateProgramPipeline _ValidateProgramPipeline;
9661     private PFN_glGetProgramPipelineInfoLog _GetProgramPipelineInfoLog;
9662     private PFN_glVertexAttribL1d _VertexAttribL1d;
9663     private PFN_glVertexAttribL2d _VertexAttribL2d;
9664     private PFN_glVertexAttribL3d _VertexAttribL3d;
9665     private PFN_glVertexAttribL4d _VertexAttribL4d;
9666     private PFN_glVertexAttribL1dv _VertexAttribL1dv;
9667     private PFN_glVertexAttribL2dv _VertexAttribL2dv;
9668     private PFN_glVertexAttribL3dv _VertexAttribL3dv;
9669     private PFN_glVertexAttribL4dv _VertexAttribL4dv;
9670     private PFN_glVertexAttribLPointer _VertexAttribLPointer;
9671     private PFN_glGetVertexAttribLdv _GetVertexAttribLdv;
9672     private PFN_glViewportArrayv _ViewportArrayv;
9673     private PFN_glViewportIndexedf _ViewportIndexedf;
9674     private PFN_glViewportIndexedfv _ViewportIndexedfv;
9675     private PFN_glScissorArrayv _ScissorArrayv;
9676     private PFN_glScissorIndexed _ScissorIndexed;
9677     private PFN_glScissorIndexedv _ScissorIndexedv;
9678     private PFN_glDepthRangeArrayv _DepthRangeArrayv;
9679     private PFN_glDepthRangeIndexed _DepthRangeIndexed;
9680     private PFN_glGetFloati_v _GetFloati_v;
9681     private PFN_glGetDoublei_v _GetDoublei_v;
9682 
9683     // GL_VERSION_4_2
9684     private PFN_glDrawArraysInstancedBaseInstance _DrawArraysInstancedBaseInstance;
9685     private PFN_glDrawElementsInstancedBaseInstance _DrawElementsInstancedBaseInstance;
9686     private PFN_glDrawElementsInstancedBaseVertexBaseInstance _DrawElementsInstancedBaseVertexBaseInstance;
9687     private PFN_glGetInternalformativ _GetInternalformativ;
9688     private PFN_glGetActiveAtomicCounterBufferiv _GetActiveAtomicCounterBufferiv;
9689     private PFN_glBindImageTexture _BindImageTexture;
9690     private PFN_glMemoryBarrier _MemoryBarrier;
9691     private PFN_glTexStorage1D _TexStorage1D;
9692     private PFN_glTexStorage2D _TexStorage2D;
9693     private PFN_glTexStorage3D _TexStorage3D;
9694     private PFN_glDrawTransformFeedbackInstanced _DrawTransformFeedbackInstanced;
9695     private PFN_glDrawTransformFeedbackStreamInstanced _DrawTransformFeedbackStreamInstanced;
9696 
9697     // GL_VERSION_4_3
9698     private PFN_glClearBufferData _ClearBufferData;
9699     private PFN_glClearBufferSubData _ClearBufferSubData;
9700     private PFN_glDispatchCompute _DispatchCompute;
9701     private PFN_glDispatchComputeIndirect _DispatchComputeIndirect;
9702     private PFN_glCopyImageSubData _CopyImageSubData;
9703     private PFN_glFramebufferParameteri _FramebufferParameteri;
9704     private PFN_glGetFramebufferParameteriv _GetFramebufferParameteriv;
9705     private PFN_glGetInternalformati64v _GetInternalformati64v;
9706     private PFN_glInvalidateTexSubImage _InvalidateTexSubImage;
9707     private PFN_glInvalidateTexImage _InvalidateTexImage;
9708     private PFN_glInvalidateBufferSubData _InvalidateBufferSubData;
9709     private PFN_glInvalidateBufferData _InvalidateBufferData;
9710     private PFN_glInvalidateFramebuffer _InvalidateFramebuffer;
9711     private PFN_glInvalidateSubFramebuffer _InvalidateSubFramebuffer;
9712     private PFN_glMultiDrawArraysIndirect _MultiDrawArraysIndirect;
9713     private PFN_glMultiDrawElementsIndirect _MultiDrawElementsIndirect;
9714     private PFN_glGetProgramInterfaceiv _GetProgramInterfaceiv;
9715     private PFN_glGetProgramResourceIndex _GetProgramResourceIndex;
9716     private PFN_glGetProgramResourceName _GetProgramResourceName;
9717     private PFN_glGetProgramResourceiv _GetProgramResourceiv;
9718     private PFN_glGetProgramResourceLocation _GetProgramResourceLocation;
9719     private PFN_glGetProgramResourceLocationIndex _GetProgramResourceLocationIndex;
9720     private PFN_glShaderStorageBlockBinding _ShaderStorageBlockBinding;
9721     private PFN_glTexBufferRange _TexBufferRange;
9722     private PFN_glTexStorage2DMultisample _TexStorage2DMultisample;
9723     private PFN_glTexStorage3DMultisample _TexStorage3DMultisample;
9724     private PFN_glTextureView _TextureView;
9725     private PFN_glBindVertexBuffer _BindVertexBuffer;
9726     private PFN_glVertexAttribFormat _VertexAttribFormat;
9727     private PFN_glVertexAttribIFormat _VertexAttribIFormat;
9728     private PFN_glVertexAttribLFormat _VertexAttribLFormat;
9729     private PFN_glVertexAttribBinding _VertexAttribBinding;
9730     private PFN_glVertexBindingDivisor _VertexBindingDivisor;
9731     private PFN_glDebugMessageControl _DebugMessageControl;
9732     private PFN_glDebugMessageInsert _DebugMessageInsert;
9733     private PFN_glDebugMessageCallback _DebugMessageCallback;
9734     private PFN_glGetDebugMessageLog _GetDebugMessageLog;
9735     private PFN_glPushDebugGroup _PushDebugGroup;
9736     private PFN_glPopDebugGroup _PopDebugGroup;
9737     private PFN_glObjectLabel _ObjectLabel;
9738     private PFN_glGetObjectLabel _GetObjectLabel;
9739     private PFN_glObjectPtrLabel _ObjectPtrLabel;
9740     private PFN_glGetObjectPtrLabel _GetObjectPtrLabel;
9741 
9742     // GL_VERSION_4_4
9743     private PFN_glBufferStorage _BufferStorage;
9744     private PFN_glClearTexImage _ClearTexImage;
9745     private PFN_glClearTexSubImage _ClearTexSubImage;
9746     private PFN_glBindBuffersBase _BindBuffersBase;
9747     private PFN_glBindBuffersRange _BindBuffersRange;
9748     private PFN_glBindTextures _BindTextures;
9749     private PFN_glBindSamplers _BindSamplers;
9750     private PFN_glBindImageTextures _BindImageTextures;
9751     private PFN_glBindVertexBuffers _BindVertexBuffers;
9752 
9753     // GL_VERSION_4_5
9754     private PFN_glClipControl _ClipControl;
9755     private PFN_glCreateTransformFeedbacks _CreateTransformFeedbacks;
9756     private PFN_glTransformFeedbackBufferBase _TransformFeedbackBufferBase;
9757     private PFN_glTransformFeedbackBufferRange _TransformFeedbackBufferRange;
9758     private PFN_glGetTransformFeedbackiv _GetTransformFeedbackiv;
9759     private PFN_glGetTransformFeedbacki_v _GetTransformFeedbacki_v;
9760     private PFN_glGetTransformFeedbacki64_v _GetTransformFeedbacki64_v;
9761     private PFN_glCreateBuffers _CreateBuffers;
9762     private PFN_glNamedBufferStorage _NamedBufferStorage;
9763     private PFN_glNamedBufferData _NamedBufferData;
9764     private PFN_glNamedBufferSubData _NamedBufferSubData;
9765     private PFN_glCopyNamedBufferSubData _CopyNamedBufferSubData;
9766     private PFN_glClearNamedBufferData _ClearNamedBufferData;
9767     private PFN_glClearNamedBufferSubData _ClearNamedBufferSubData;
9768     private PFN_glMapNamedBuffer _MapNamedBuffer;
9769     private PFN_glMapNamedBufferRange _MapNamedBufferRange;
9770     private PFN_glUnmapNamedBuffer _UnmapNamedBuffer;
9771     private PFN_glFlushMappedNamedBufferRange _FlushMappedNamedBufferRange;
9772     private PFN_glGetNamedBufferParameteriv _GetNamedBufferParameteriv;
9773     private PFN_glGetNamedBufferParameteri64v _GetNamedBufferParameteri64v;
9774     private PFN_glGetNamedBufferPointerv _GetNamedBufferPointerv;
9775     private PFN_glGetNamedBufferSubData _GetNamedBufferSubData;
9776     private PFN_glCreateFramebuffers _CreateFramebuffers;
9777     private PFN_glNamedFramebufferRenderbuffer _NamedFramebufferRenderbuffer;
9778     private PFN_glNamedFramebufferParameteri _NamedFramebufferParameteri;
9779     private PFN_glNamedFramebufferTexture _NamedFramebufferTexture;
9780     private PFN_glNamedFramebufferTextureLayer _NamedFramebufferTextureLayer;
9781     private PFN_glNamedFramebufferDrawBuffer _NamedFramebufferDrawBuffer;
9782     private PFN_glNamedFramebufferDrawBuffers _NamedFramebufferDrawBuffers;
9783     private PFN_glNamedFramebufferReadBuffer _NamedFramebufferReadBuffer;
9784     private PFN_glInvalidateNamedFramebufferData _InvalidateNamedFramebufferData;
9785     private PFN_glInvalidateNamedFramebufferSubData _InvalidateNamedFramebufferSubData;
9786     private PFN_glClearNamedFramebufferiv _ClearNamedFramebufferiv;
9787     private PFN_glClearNamedFramebufferuiv _ClearNamedFramebufferuiv;
9788     private PFN_glClearNamedFramebufferfv _ClearNamedFramebufferfv;
9789     private PFN_glClearNamedFramebufferfi _ClearNamedFramebufferfi;
9790     private PFN_glBlitNamedFramebuffer _BlitNamedFramebuffer;
9791     private PFN_glCheckNamedFramebufferStatus _CheckNamedFramebufferStatus;
9792     private PFN_glGetNamedFramebufferParameteriv _GetNamedFramebufferParameteriv;
9793     private PFN_glGetNamedFramebufferAttachmentParameteriv _GetNamedFramebufferAttachmentParameteriv;
9794     private PFN_glCreateRenderbuffers _CreateRenderbuffers;
9795     private PFN_glNamedRenderbufferStorage _NamedRenderbufferStorage;
9796     private PFN_glNamedRenderbufferStorageMultisample _NamedRenderbufferStorageMultisample;
9797     private PFN_glGetNamedRenderbufferParameteriv _GetNamedRenderbufferParameteriv;
9798     private PFN_glCreateTextures _CreateTextures;
9799     private PFN_glTextureBuffer _TextureBuffer;
9800     private PFN_glTextureBufferRange _TextureBufferRange;
9801     private PFN_glTextureStorage1D _TextureStorage1D;
9802     private PFN_glTextureStorage2D _TextureStorage2D;
9803     private PFN_glTextureStorage3D _TextureStorage3D;
9804     private PFN_glTextureStorage2DMultisample _TextureStorage2DMultisample;
9805     private PFN_glTextureStorage3DMultisample _TextureStorage3DMultisample;
9806     private PFN_glTextureSubImage1D _TextureSubImage1D;
9807     private PFN_glTextureSubImage2D _TextureSubImage2D;
9808     private PFN_glTextureSubImage3D _TextureSubImage3D;
9809     private PFN_glCompressedTextureSubImage1D _CompressedTextureSubImage1D;
9810     private PFN_glCompressedTextureSubImage2D _CompressedTextureSubImage2D;
9811     private PFN_glCompressedTextureSubImage3D _CompressedTextureSubImage3D;
9812     private PFN_glCopyTextureSubImage1D _CopyTextureSubImage1D;
9813     private PFN_glCopyTextureSubImage2D _CopyTextureSubImage2D;
9814     private PFN_glCopyTextureSubImage3D _CopyTextureSubImage3D;
9815     private PFN_glTextureParameterf _TextureParameterf;
9816     private PFN_glTextureParameterfv _TextureParameterfv;
9817     private PFN_glTextureParameteri _TextureParameteri;
9818     private PFN_glTextureParameterIiv _TextureParameterIiv;
9819     private PFN_glTextureParameterIuiv _TextureParameterIuiv;
9820     private PFN_glTextureParameteriv _TextureParameteriv;
9821     private PFN_glGenerateTextureMipmap _GenerateTextureMipmap;
9822     private PFN_glBindTextureUnit _BindTextureUnit;
9823     private PFN_glGetTextureImage _GetTextureImage;
9824     private PFN_glGetCompressedTextureImage _GetCompressedTextureImage;
9825     private PFN_glGetTextureLevelParameterfv _GetTextureLevelParameterfv;
9826     private PFN_glGetTextureLevelParameteriv _GetTextureLevelParameteriv;
9827     private PFN_glGetTextureParameterfv _GetTextureParameterfv;
9828     private PFN_glGetTextureParameterIiv _GetTextureParameterIiv;
9829     private PFN_glGetTextureParameterIuiv _GetTextureParameterIuiv;
9830     private PFN_glGetTextureParameteriv _GetTextureParameteriv;
9831     private PFN_glCreateVertexArrays _CreateVertexArrays;
9832     private PFN_glDisableVertexArrayAttrib _DisableVertexArrayAttrib;
9833     private PFN_glEnableVertexArrayAttrib _EnableVertexArrayAttrib;
9834     private PFN_glVertexArrayElementBuffer _VertexArrayElementBuffer;
9835     private PFN_glVertexArrayVertexBuffer _VertexArrayVertexBuffer;
9836     private PFN_glVertexArrayVertexBuffers _VertexArrayVertexBuffers;
9837     private PFN_glVertexArrayAttribBinding _VertexArrayAttribBinding;
9838     private PFN_glVertexArrayAttribFormat _VertexArrayAttribFormat;
9839     private PFN_glVertexArrayAttribIFormat _VertexArrayAttribIFormat;
9840     private PFN_glVertexArrayAttribLFormat _VertexArrayAttribLFormat;
9841     private PFN_glVertexArrayBindingDivisor _VertexArrayBindingDivisor;
9842     private PFN_glGetVertexArrayiv _GetVertexArrayiv;
9843     private PFN_glGetVertexArrayIndexediv _GetVertexArrayIndexediv;
9844     private PFN_glGetVertexArrayIndexed64iv _GetVertexArrayIndexed64iv;
9845     private PFN_glCreateSamplers _CreateSamplers;
9846     private PFN_glCreateProgramPipelines _CreateProgramPipelines;
9847     private PFN_glCreateQueries _CreateQueries;
9848     private PFN_glGetQueryBufferObjecti64v _GetQueryBufferObjecti64v;
9849     private PFN_glGetQueryBufferObjectiv _GetQueryBufferObjectiv;
9850     private PFN_glGetQueryBufferObjectui64v _GetQueryBufferObjectui64v;
9851     private PFN_glGetQueryBufferObjectuiv _GetQueryBufferObjectuiv;
9852     private PFN_glMemoryBarrierByRegion _MemoryBarrierByRegion;
9853     private PFN_glGetTextureSubImage _GetTextureSubImage;
9854     private PFN_glGetCompressedTextureSubImage _GetCompressedTextureSubImage;
9855     private PFN_glGetGraphicsResetStatus _GetGraphicsResetStatus;
9856     private PFN_glGetnCompressedTexImage _GetnCompressedTexImage;
9857     private PFN_glGetnTexImage _GetnTexImage;
9858     private PFN_glGetnUniformdv _GetnUniformdv;
9859     private PFN_glGetnUniformfv _GetnUniformfv;
9860     private PFN_glGetnUniformiv _GetnUniformiv;
9861     private PFN_glGetnUniformuiv _GetnUniformuiv;
9862     private PFN_glReadnPixels _ReadnPixels;
9863     private PFN_glTextureBarrier _TextureBarrier;
9864 
9865     // GL_VERSION_4_6
9866     private PFN_glSpecializeShader _SpecializeShader;
9867     private PFN_glMultiDrawArraysIndirectCount _MultiDrawArraysIndirectCount;
9868     private PFN_glMultiDrawElementsIndirectCount _MultiDrawElementsIndirectCount;
9869     private PFN_glPolygonOffsetClamp _PolygonOffsetClamp;
9870 }