1 /*M///////////////////////////////////////////////////////////////////////////////////////
2 //
3 //  IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
4 //
5 //  By downloading, copying, installing or using the software you agree to this license.
6 //  If you do not agree to this license, do not download, install,
7 //  copy or use the software.
8 //
9 //
10 //                           License Agreement
11 //                For Open Source Computer Vision Library
12 //
13 // Copyright (C) 2000-2008, Intel Corporation, all rights reserved.
14 // Copyright (C) 2009, Willow Garage Inc., all rights reserved.
15 // Third party copyrights are property of their respective owners.
16 //
17 // Redistribution and use in source and binary forms, with or without modification,
18 // are permitted provided that the following conditions are met:
19 //
20 //   * Redistribution's of source code must retain the above copyright notice,
21 //     this list of conditions and the following disclaimer.
22 //
23 //   * Redistribution's in binary form must reproduce the above copyright notice,
24 //     this list of conditions and the following disclaimer in the documentation
25 //     and/or other materials provided with the distribution.
26 //
27 //   * The name of the copyright holders may not be used to endorse or promote products
28 //     derived from this software without specific prior written permission.
29 //
30 // This software is provided by the copyright holders and contributors "as is" and
31 // any express or implied warranties, including, but not limited to, the implied
32 // warranties of merchantability and fitness for a particular purpose are disclaimed.
33 // In no event shall the Intel Corporation or contributors be liable for any direct,
34 // indirect, incidental, special, exemplary, or consequential damages
35 // (including, but not limited to, procurement of substitute goods or services;
36 // loss of use, data, or profits; or business interruption) however caused
37 // and on any theory of liability, whether in contract, strict liability,
38 // or tort (including negligence or otherwise) arising in any way out of
39 // the use of this software, even if advised of the possibility of such damage.
40 //
41 //M*/
42 
43 #ifndef OPENGL_NOLOAD_STYLE_HPP
44 #define OPENGL_NOLOAD_STYLE_HPP
45 
46 #if defined(__gl_h_) || defined(__GL_H__)
47 #error Attempt to include auto-generated header after including gl.h
48 #endif
49 #if defined(__glext_h_) || defined(__GLEXT_H_)
50 #error Attempt to include auto-generated header after including glext.h
51 #endif
52 #if defined(__gl_ATI_h_)
53 #error Attempt to include auto-generated header after including glATI.h
54 #endif
55 
56 #define __gl_h_
57 #define __GL_H__
58 #define __glext_h_
59 #define __GLEXT_H_
60 #define __gl_ATI_h_
61 
62 #ifndef APIENTRY
63     #if defined(__MINGW32__)
64         #ifndef WIN32_LEAN_AND_MEAN
65             #define WIN32_LEAN_AND_MEAN 1
66         #endif
67         #ifndef NOMINMAX
68             #define NOMINMAX
69         #endif
70         #include <windows.h>
71     #elif (defined(_MSC_VER) && _MSC_VER >= 800) || defined(_STDCALL_SUPPORTED) || defined(__BORLANDC__)
72         #ifndef WIN32_LEAN_AND_MEAN
73             #define WIN32_LEAN_AND_MEAN 1
74         #endif
75         #ifndef NOMINMAX
76             #define NOMINMAX
77         #endif
78         #include <windows.h>
79     #else
80         #define APIENTRY
81     #endif
82 #endif // APIENTRY
83 
84 #ifndef CODEGEN_FUNCPTR
85     #define CODEGEN_REMOVE_FUNCPTR
86     #if defined(_WIN32)
87         #define CODEGEN_FUNCPTR APIENTRY
88     #else
89         #define CODEGEN_FUNCPTR
90     #endif
91 #endif // CODEGEN_FUNCPTR
92 
93 #ifndef GL_LOAD_GEN_BASIC_OPENGL_TYPEDEFS
94 #define GL_LOAD_GEN_BASIC_OPENGL_TYPEDEFS
95     typedef unsigned int GLenum;
96     typedef unsigned char GLboolean;
97     typedef unsigned int GLbitfield;
98     typedef signed char GLbyte;
99     typedef short GLshort;
100     typedef int GLint;
101     typedef int GLsizei;
102     typedef unsigned char GLubyte;
103     typedef unsigned short GLushort;
104     typedef unsigned int GLuint;
105     typedef float GLfloat;
106     typedef float GLclampf;
107     typedef double GLdouble;
108     typedef double GLclampd;
109     #define GLvoid void
110 #endif // GL_LOAD_GEN_BASIC_OPENGL_TYPEDEFS
111 
112 #include <stddef.h>
113 
114 #ifndef GL_VERSION_2_0
115     // GL type for program/shader text
116     typedef char GLchar;
117 #endif
118 
119 #ifndef GL_VERSION_1_5
120     // GL types for handling large vertex buffer objects
121     typedef ptrdiff_t GLintptr;
122     typedef ptrdiff_t GLsizeiptr;
123 #endif
124 
125 #ifndef GL_ARB_vertex_buffer_object
126     // GL types for handling large vertex buffer objects
127     typedef ptrdiff_t GLintptrARB;
128     typedef ptrdiff_t GLsizeiptrARB;
129 #endif
130 
131 #ifndef GL_ARB_shader_objects
132     // GL types for program/shader text and shader object handles
133     typedef char GLcharARB;
134     typedef unsigned int GLhandleARB;
135 #endif
136 
137 // GL type for "half" precision (s10e5) float data in host memory
138 #ifndef GL_ARB_half_float_pixel
139     typedef unsigned short GLhalfARB;
140 #endif
141 #ifndef GL_NV_half_float
142     typedef unsigned short GLhalfNV;
143 #endif
144 
145 #ifndef GLEXT_64_TYPES_DEFINED
146     // This code block is duplicated in glxext.h, so must be protected
147     #define GLEXT_64_TYPES_DEFINED
148 
149     // Define int32_t, int64_t, and uint64_t types for UST/MSC
150     // (as used in the GL_EXT_timer_query extension)
151     #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
152         #include <inttypes.h>
153     #elif defined(__sun__) || defined(__digital__)
154         #include <inttypes.h>
155         #if defined(__STDC__)
156             #if defined(__arch64__) || defined(_LP64)
157                 typedef long int int64_t;
158                 typedef unsigned long int uint64_t;
159             #else
160                 typedef long long int int64_t;
161                 typedef unsigned long long int uint64_t;
162             #endif // __arch64__
163         #endif // __STDC__
164     #elif defined( __VMS ) || defined(__sgi)
165         #include <inttypes.h>
166     #elif defined(__SCO__) || defined(__USLC__)
167         #include <stdint.h>
168     #elif defined(__UNIXOS2__) || defined(__SOL64__)
169         typedef long int int32_t;
170         typedef long long int int64_t;
171         typedef unsigned long long int uint64_t;
172     #elif defined(_WIN32) && defined(__GNUC__)
173         #include <stdint.h>
174     #elif defined(_WIN32)
175         typedef __int32 int32_t;
176         typedef __int64 int64_t;
177         typedef unsigned __int64 uint64_t;
178     #else
179         // Fallback if nothing above works
180         #include <inttypes.h>
181     #endif
182 #endif
183 
184 #ifndef GL_EXT_timer_query
185     typedef int64_t GLint64EXT;
186     typedef uint64_t GLuint64EXT;
187 #endif
188 
189 #ifndef GL_ARB_sync
190     typedef int64_t GLint64;
191     typedef uint64_t GLuint64;
192     typedef struct __GLsync *GLsync;
193 #endif
194 
195 #ifndef GL_ARB_cl_event
196     // These incomplete types let us declare types compatible with OpenCL's cl_context and cl_event
197     struct _cl_context;
198     struct _cl_event;
199 #endif
200 
201 #ifndef GL_ARB_debug_output
202     typedef void (APIENTRY *GLDEBUGPROCARB)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,GLvoid *userParam);
203 #endif
204 
205 #ifndef GL_AMD_debug_output
206     typedef void (APIENTRY *GLDEBUGPROCAMD)(GLuint id,GLenum category,GLenum severity,GLsizei length,const GLchar *message,GLvoid *userParam);
207 #endif
208 
209 #ifndef GL_KHR_debug
210     typedef void (APIENTRY *GLDEBUGPROC)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,GLvoid *userParam);
211 #endif
212 
213 #ifndef GL_NV_vdpau_interop
214     typedef GLintptr GLvdpauSurfaceNV;
215 #endif
216 
217 namespace gl
218 {
219     enum
220     {
221         // Version: 1.1
222         DEPTH_BUFFER_BIT                 = 0x00000100,
223         STENCIL_BUFFER_BIT               = 0x00000400,
224         COLOR_BUFFER_BIT                 = 0x00004000,
225         FALSE_                           = 0,
226         TRUE_                            = 1,
227         POINTS                           = 0x0000,
228         LINES                            = 0x0001,
229         LINE_LOOP                        = 0x0002,
230         LINE_STRIP                       = 0x0003,
231         TRIANGLES                        = 0x0004,
232         TRIANGLE_STRIP                   = 0x0005,
233         TRIANGLE_FAN                     = 0x0006,
234         QUADS                            = 0x0007,
235         NEVER                            = 0x0200,
236         LESS                             = 0x0201,
237         EQUAL                            = 0x0202,
238         LEQUAL                           = 0x0203,
239         GREATER                          = 0x0204,
240         NOTEQUAL                         = 0x0205,
241         GEQUAL                           = 0x0206,
242         ALWAYS                           = 0x0207,
243         ZERO                             = 0,
244         ONE                              = 1,
245         SRC_COLOR                        = 0x0300,
246         ONE_MINUS_SRC_COLOR              = 0x0301,
247         SRC_ALPHA                        = 0x0302,
248         ONE_MINUS_SRC_ALPHA              = 0x0303,
249         DST_ALPHA                        = 0x0304,
250         ONE_MINUS_DST_ALPHA              = 0x0305,
251         DST_COLOR                        = 0x0306,
252         ONE_MINUS_DST_COLOR              = 0x0307,
253         SRC_ALPHA_SATURATE               = 0x0308,
254         NONE                             = 0,
255         FRONT_LEFT                       = 0x0400,
256         FRONT_RIGHT                      = 0x0401,
257         BACK_LEFT                        = 0x0402,
258         BACK_RIGHT                       = 0x0403,
259         FRONT                            = 0x0404,
260         BACK                             = 0x0405,
261         LEFT                             = 0x0406,
262         RIGHT                            = 0x0407,
263         FRONT_AND_BACK                   = 0x0408,
264         NO_ERROR_                        = 0,
265         INVALID_ENUM                     = 0x0500,
266         INVALID_VALUE                    = 0x0501,
267         INVALID_OPERATION                = 0x0502,
268         OUT_OF_MEMORY                    = 0x0505,
269         CW                               = 0x0900,
270         CCW                              = 0x0901,
271         POINT_SIZE                       = 0x0B11,
272         POINT_SIZE_RANGE                 = 0x0B12,
273         POINT_SIZE_GRANULARITY           = 0x0B13,
274         LINE_SMOOTH                      = 0x0B20,
275         LINE_WIDTH                       = 0x0B21,
276         LINE_WIDTH_RANGE                 = 0x0B22,
277         LINE_WIDTH_GRANULARITY           = 0x0B23,
278         POLYGON_MODE                     = 0x0B40,
279         POLYGON_SMOOTH                   = 0x0B41,
280         CULL_FACE                        = 0x0B44,
281         CULL_FACE_MODE                   = 0x0B45,
282         FRONT_FACE                       = 0x0B46,
283         DEPTH_RANGE                      = 0x0B70,
284         DEPTH_TEST                       = 0x0B71,
285         DEPTH_WRITEMASK                  = 0x0B72,
286         DEPTH_CLEAR_VALUE                = 0x0B73,
287         DEPTH_FUNC                       = 0x0B74,
288         STENCIL_TEST                     = 0x0B90,
289         STENCIL_CLEAR_VALUE              = 0x0B91,
290         STENCIL_FUNC                     = 0x0B92,
291         STENCIL_VALUE_MASK               = 0x0B93,
292         STENCIL_FAIL                     = 0x0B94,
293         STENCIL_PASS_DEPTH_FAIL          = 0x0B95,
294         STENCIL_PASS_DEPTH_PASS          = 0x0B96,
295         STENCIL_REF                      = 0x0B97,
296         STENCIL_WRITEMASK                = 0x0B98,
297         VIEWPORT                         = 0x0BA2,
298         DITHER                           = 0x0BD0,
299         BLEND_DST                        = 0x0BE0,
300         BLEND_SRC                        = 0x0BE1,
301         BLEND                            = 0x0BE2,
302         LOGIC_OP_MODE                    = 0x0BF0,
303         COLOR_LOGIC_OP                   = 0x0BF2,
304         DRAW_BUFFER                      = 0x0C01,
305         READ_BUFFER                      = 0x0C02,
306         SCISSOR_BOX                      = 0x0C10,
307         SCISSOR_TEST                     = 0x0C11,
308         COLOR_CLEAR_VALUE                = 0x0C22,
309         COLOR_WRITEMASK                  = 0x0C23,
310         DOUBLEBUFFER                     = 0x0C32,
311         STEREO                           = 0x0C33,
312         LINE_SMOOTH_HINT                 = 0x0C52,
313         POLYGON_SMOOTH_HINT              = 0x0C53,
314         UNPACK_SWAP_BYTES                = 0x0CF0,
315         UNPACK_LSB_FIRST                 = 0x0CF1,
316         UNPACK_ROW_LENGTH                = 0x0CF2,
317         UNPACK_SKIP_ROWS                 = 0x0CF3,
318         UNPACK_SKIP_PIXELS               = 0x0CF4,
319         UNPACK_ALIGNMENT                 = 0x0CF5,
320         PACK_SWAP_BYTES                  = 0x0D00,
321         PACK_LSB_FIRST                   = 0x0D01,
322         PACK_ROW_LENGTH                  = 0x0D02,
323         PACK_SKIP_ROWS                   = 0x0D03,
324         PACK_SKIP_PIXELS                 = 0x0D04,
325         PACK_ALIGNMENT                   = 0x0D05,
326         MAX_TEXTURE_SIZE                 = 0x0D33,
327         MAX_VIEWPORT_DIMS                = 0x0D3A,
328         SUBPIXEL_BITS                    = 0x0D50,
329         TEXTURE_1D                       = 0x0DE0,
330         TEXTURE_2D                       = 0x0DE1,
331         POLYGON_OFFSET_UNITS             = 0x2A00,
332         POLYGON_OFFSET_POINT             = 0x2A01,
333         POLYGON_OFFSET_LINE              = 0x2A02,
334         POLYGON_OFFSET_FILL              = 0x8037,
335         POLYGON_OFFSET_FACTOR            = 0x8038,
336         TEXTURE_BINDING_1D               = 0x8068,
337         TEXTURE_BINDING_2D               = 0x8069,
338         TEXTURE_WIDTH                    = 0x1000,
339         TEXTURE_HEIGHT                   = 0x1001,
340         TEXTURE_INTERNAL_FORMAT          = 0x1003,
341         TEXTURE_BORDER_COLOR             = 0x1004,
342         TEXTURE_RED_SIZE                 = 0x805C,
343         TEXTURE_GREEN_SIZE               = 0x805D,
344         TEXTURE_BLUE_SIZE                = 0x805E,
345         TEXTURE_ALPHA_SIZE               = 0x805F,
346         DONT_CARE                        = 0x1100,
347         FASTEST                          = 0x1101,
348         NICEST                           = 0x1102,
349         BYTE                             = 0x1400,
350         UNSIGNED_BYTE                    = 0x1401,
351         SHORT                            = 0x1402,
352         UNSIGNED_SHORT                   = 0x1403,
353         INT                              = 0x1404,
354         UNSIGNED_INT                     = 0x1405,
355         FLOAT                            = 0x1406,
356         DOUBLE                           = 0x140A,
357         CLEAR                            = 0x1500,
358         AND                              = 0x1501,
359         AND_REVERSE                      = 0x1502,
360         COPY                             = 0x1503,
361         AND_INVERTED                     = 0x1504,
362         NOOP                             = 0x1505,
363         XOR                              = 0x1506,
364         OR                               = 0x1507,
365         NOR                              = 0x1508,
366         EQUIV                            = 0x1509,
367         INVERT                           = 0x150A,
368         OR_REVERSE                       = 0x150B,
369         COPY_INVERTED                    = 0x150C,
370         OR_INVERTED                      = 0x150D,
371         NAND                             = 0x150E,
372         SET                              = 0x150F,
373         TEXTURE                          = 0x1702,
374         COLOR                            = 0x1800,
375         DEPTH                            = 0x1801,
376         STENCIL                          = 0x1802,
377         STENCIL_INDEX                    = 0x1901,
378         DEPTH_COMPONENT                  = 0x1902,
379         RED                              = 0x1903,
380         GREEN                            = 0x1904,
381         BLUE                             = 0x1905,
382         ALPHA                            = 0x1906,
383         RGB                              = 0x1907,
384         RGBA                             = 0x1908,
385         POINT                            = 0x1B00,
386         LINE                             = 0x1B01,
387         FILL                             = 0x1B02,
388         KEEP                             = 0x1E00,
389         REPLACE                          = 0x1E01,
390         INCR                             = 0x1E02,
391         DECR                             = 0x1E03,
392         VENDOR                           = 0x1F00,
393         RENDERER                         = 0x1F01,
394         VERSION_                         = 0x1F02,
395         EXTENSIONS                       = 0x1F03,
396         NEAREST                          = 0x2600,
397         LINEAR                           = 0x2601,
398         NEAREST_MIPMAP_NEAREST           = 0x2700,
399         LINEAR_MIPMAP_NEAREST            = 0x2701,
400         NEAREST_MIPMAP_LINEAR            = 0x2702,
401         LINEAR_MIPMAP_LINEAR             = 0x2703,
402         TEXTURE_MAG_FILTER               = 0x2800,
403         TEXTURE_MIN_FILTER               = 0x2801,
404         TEXTURE_WRAP_S                   = 0x2802,
405         TEXTURE_WRAP_T                   = 0x2803,
406         PROXY_TEXTURE_1D                 = 0x8063,
407         PROXY_TEXTURE_2D                 = 0x8064,
408         REPEAT                           = 0x2901,
409         R3_G3_B2                         = 0x2A10,
410         RGB4                             = 0x804F,
411         RGB5                             = 0x8050,
412         RGB8                             = 0x8051,
413         RGB10                            = 0x8052,
414         RGB12                            = 0x8053,
415         RGB16                            = 0x8054,
416         RGBA2                            = 0x8055,
417         RGBA4                            = 0x8056,
418         RGB5_A1                          = 0x8057,
419         RGBA8                            = 0x8058,
420         RGB10_A2                         = 0x8059,
421         RGBA12                           = 0x805A,
422         RGBA16                           = 0x805B,
423 
424         // Core Extension: ARB_imaging
425         CONSTANT_COLOR                   = 0x8001,
426         ONE_MINUS_CONSTANT_COLOR         = 0x8002,
427         CONSTANT_ALPHA                   = 0x8003,
428         ONE_MINUS_CONSTANT_ALPHA         = 0x8004,
429         BLEND_COLOR                      = 0x8005,
430         FUNC_ADD                         = 0x8006,
431         MIN                              = 0x8007,
432         MAX                              = 0x8008,
433         BLEND_EQUATION                   = 0x8009,
434         FUNC_SUBTRACT                    = 0x800A,
435         FUNC_REVERSE_SUBTRACT            = 0x800B,
436         CONVOLUTION_1D                   = 0x8010,
437         CONVOLUTION_2D                   = 0x8011,
438         SEPARABLE_2D                     = 0x8012,
439         CONVOLUTION_BORDER_MODE          = 0x8013,
440         CONVOLUTION_FILTER_SCALE         = 0x8014,
441         CONVOLUTION_FILTER_BIAS          = 0x8015,
442         REDUCE                           = 0x8016,
443         CONVOLUTION_FORMAT               = 0x8017,
444         CONVOLUTION_WIDTH                = 0x8018,
445         CONVOLUTION_HEIGHT               = 0x8019,
446         MAX_CONVOLUTION_WIDTH            = 0x801A,
447         MAX_CONVOLUTION_HEIGHT           = 0x801B,
448         POST_CONVOLUTION_RED_SCALE       = 0x801C,
449         POST_CONVOLUTION_GREEN_SCALE     = 0x801D,
450         POST_CONVOLUTION_BLUE_SCALE      = 0x801E,
451         POST_CONVOLUTION_ALPHA_SCALE     = 0x801F,
452         POST_CONVOLUTION_RED_BIAS        = 0x8020,
453         POST_CONVOLUTION_GREEN_BIAS      = 0x8021,
454         POST_CONVOLUTION_BLUE_BIAS       = 0x8022,
455         POST_CONVOLUTION_ALPHA_BIAS      = 0x8023,
456         HISTOGRAM                        = 0x8024,
457         PROXY_HISTOGRAM                  = 0x8025,
458         HISTOGRAM_WIDTH                  = 0x8026,
459         HISTOGRAM_FORMAT                 = 0x8027,
460         HISTOGRAM_RED_SIZE               = 0x8028,
461         HISTOGRAM_GREEN_SIZE             = 0x8029,
462         HISTOGRAM_BLUE_SIZE              = 0x802A,
463         HISTOGRAM_ALPHA_SIZE             = 0x802B,
464         HISTOGRAM_LUMINANCE_SIZE         = 0x802C,
465         HISTOGRAM_SINK                   = 0x802D,
466         MINMAX                           = 0x802E,
467         MINMAX_FORMAT                    = 0x802F,
468         MINMAX_SINK                      = 0x8030,
469         TABLE_TOO_LARGE                  = 0x8031,
470         COLOR_MATRIX                     = 0x80B1,
471         COLOR_MATRIX_STACK_DEPTH         = 0x80B2,
472         MAX_COLOR_MATRIX_STACK_DEPTH     = 0x80B3,
473         POST_COLOR_MATRIX_RED_SCALE      = 0x80B4,
474         POST_COLOR_MATRIX_GREEN_SCALE    = 0x80B5,
475         POST_COLOR_MATRIX_BLUE_SCALE     = 0x80B6,
476         POST_COLOR_MATRIX_ALPHA_SCALE    = 0x80B7,
477         POST_COLOR_MATRIX_RED_BIAS       = 0x80B8,
478         POST_COLOR_MATRIX_GREEN_BIAS     = 0x80B9,
479         POST_COLOR_MATRIX_BLUE_BIAS      = 0x80BA,
480         POST_COLOR_MATRIX_ALPHA_BIAS     = 0x80BB,
481         COLOR_TABLE                      = 0x80D0,
482         POST_CONVOLUTION_COLOR_TABLE     = 0x80D1,
483         POST_COLOR_MATRIX_COLOR_TABLE    = 0x80D2,
484         PROXY_COLOR_TABLE                = 0x80D3,
485         PROXY_POST_CONVOLUTION_COLOR_TABLE = 0x80D4,
486         PROXY_POST_COLOR_MATRIX_COLOR_TABLE = 0x80D5,
487         COLOR_TABLE_SCALE                = 0x80D6,
488         COLOR_TABLE_BIAS                 = 0x80D7,
489         COLOR_TABLE_FORMAT               = 0x80D8,
490         COLOR_TABLE_WIDTH                = 0x80D9,
491         COLOR_TABLE_RED_SIZE             = 0x80DA,
492         COLOR_TABLE_GREEN_SIZE           = 0x80DB,
493         COLOR_TABLE_BLUE_SIZE            = 0x80DC,
494         COLOR_TABLE_ALPHA_SIZE           = 0x80DD,
495         COLOR_TABLE_LUMINANCE_SIZE       = 0x80DE,
496         COLOR_TABLE_INTENSITY_SIZE       = 0x80DF,
497         CONSTANT_BORDER                  = 0x8151,
498         REPLICATE_BORDER                 = 0x8153,
499         CONVOLUTION_BORDER_COLOR         = 0x8154,
500 
501         // Version: 1.2
502         UNSIGNED_BYTE_3_3_2              = 0x8032,
503         UNSIGNED_SHORT_4_4_4_4           = 0x8033,
504         UNSIGNED_SHORT_5_5_5_1           = 0x8034,
505         UNSIGNED_INT_8_8_8_8             = 0x8035,
506         UNSIGNED_INT_10_10_10_2          = 0x8036,
507         TEXTURE_BINDING_3D               = 0x806A,
508         PACK_SKIP_IMAGES                 = 0x806B,
509         PACK_IMAGE_HEIGHT                = 0x806C,
510         UNPACK_SKIP_IMAGES               = 0x806D,
511         UNPACK_IMAGE_HEIGHT              = 0x806E,
512         TEXTURE_3D                       = 0x806F,
513         PROXY_TEXTURE_3D                 = 0x8070,
514         TEXTURE_DEPTH                    = 0x8071,
515         TEXTURE_WRAP_R                   = 0x8072,
516         MAX_3D_TEXTURE_SIZE              = 0x8073,
517         UNSIGNED_BYTE_2_3_3_REV          = 0x8362,
518         UNSIGNED_SHORT_5_6_5             = 0x8363,
519         UNSIGNED_SHORT_5_6_5_REV         = 0x8364,
520         UNSIGNED_SHORT_4_4_4_4_REV       = 0x8365,
521         UNSIGNED_SHORT_1_5_5_5_REV       = 0x8366,
522         UNSIGNED_INT_8_8_8_8_REV         = 0x8367,
523         UNSIGNED_INT_2_10_10_10_REV      = 0x8368,
524         BGR                              = 0x80E0,
525         BGRA                             = 0x80E1,
526         MAX_ELEMENTS_VERTICES            = 0x80E8,
527         MAX_ELEMENTS_INDICES             = 0x80E9,
528         CLAMP_TO_EDGE                    = 0x812F,
529         TEXTURE_MIN_LOD                  = 0x813A,
530         TEXTURE_MAX_LOD                  = 0x813B,
531         TEXTURE_BASE_LEVEL               = 0x813C,
532         TEXTURE_MAX_LEVEL                = 0x813D,
533         SMOOTH_POINT_SIZE_RANGE          = 0x0B12,
534         SMOOTH_POINT_SIZE_GRANULARITY    = 0x0B13,
535         SMOOTH_LINE_WIDTH_RANGE          = 0x0B22,
536         SMOOTH_LINE_WIDTH_GRANULARITY    = 0x0B23,
537         ALIASED_LINE_WIDTH_RANGE         = 0x846E,
538 
539         // Version: 1.3
540         TEXTURE0                         = 0x84C0,
541         TEXTURE1                         = 0x84C1,
542         TEXTURE2                         = 0x84C2,
543         TEXTURE3                         = 0x84C3,
544         TEXTURE4                         = 0x84C4,
545         TEXTURE5                         = 0x84C5,
546         TEXTURE6                         = 0x84C6,
547         TEXTURE7                         = 0x84C7,
548         TEXTURE8                         = 0x84C8,
549         TEXTURE9                         = 0x84C9,
550         TEXTURE10                        = 0x84CA,
551         TEXTURE11                        = 0x84CB,
552         TEXTURE12                        = 0x84CC,
553         TEXTURE13                        = 0x84CD,
554         TEXTURE14                        = 0x84CE,
555         TEXTURE15                        = 0x84CF,
556         TEXTURE16                        = 0x84D0,
557         TEXTURE17                        = 0x84D1,
558         TEXTURE18                        = 0x84D2,
559         TEXTURE19                        = 0x84D3,
560         TEXTURE20                        = 0x84D4,
561         TEXTURE21                        = 0x84D5,
562         TEXTURE22                        = 0x84D6,
563         TEXTURE23                        = 0x84D7,
564         TEXTURE24                        = 0x84D8,
565         TEXTURE25                        = 0x84D9,
566         TEXTURE26                        = 0x84DA,
567         TEXTURE27                        = 0x84DB,
568         TEXTURE28                        = 0x84DC,
569         TEXTURE29                        = 0x84DD,
570         TEXTURE30                        = 0x84DE,
571         TEXTURE31                        = 0x84DF,
572         ACTIVE_TEXTURE                   = 0x84E0,
573         MULTISAMPLE                      = 0x809D,
574         SAMPLE_ALPHA_TO_COVERAGE         = 0x809E,
575         SAMPLE_ALPHA_TO_ONE              = 0x809F,
576         SAMPLE_COVERAGE                  = 0x80A0,
577         SAMPLE_BUFFERS                   = 0x80A8,
578         SAMPLES                          = 0x80A9,
579         SAMPLE_COVERAGE_VALUE            = 0x80AA,
580         SAMPLE_COVERAGE_INVERT           = 0x80AB,
581         TEXTURE_CUBE_MAP                 = 0x8513,
582         TEXTURE_BINDING_CUBE_MAP         = 0x8514,
583         TEXTURE_CUBE_MAP_POSITIVE_X      = 0x8515,
584         TEXTURE_CUBE_MAP_NEGATIVE_X      = 0x8516,
585         TEXTURE_CUBE_MAP_POSITIVE_Y      = 0x8517,
586         TEXTURE_CUBE_MAP_NEGATIVE_Y      = 0x8518,
587         TEXTURE_CUBE_MAP_POSITIVE_Z      = 0x8519,
588         TEXTURE_CUBE_MAP_NEGATIVE_Z      = 0x851A,
589         PROXY_TEXTURE_CUBE_MAP           = 0x851B,
590         MAX_CUBE_MAP_TEXTURE_SIZE        = 0x851C,
591         COMPRESSED_RGB                   = 0x84ED,
592         COMPRESSED_RGBA                  = 0x84EE,
593         TEXTURE_COMPRESSION_HINT         = 0x84EF,
594         TEXTURE_COMPRESSED_IMAGE_SIZE    = 0x86A0,
595         TEXTURE_COMPRESSED               = 0x86A1,
596         NUM_COMPRESSED_TEXTURE_FORMATS   = 0x86A2,
597         COMPRESSED_TEXTURE_FORMATS       = 0x86A3,
598         CLAMP_TO_BORDER                  = 0x812D,
599 
600         // Version: 1.4
601         BLEND_DST_RGB                    = 0x80C8,
602         BLEND_SRC_RGB                    = 0x80C9,
603         BLEND_DST_ALPHA                  = 0x80CA,
604         BLEND_SRC_ALPHA                  = 0x80CB,
605         POINT_FADE_THRESHOLD_SIZE        = 0x8128,
606         DEPTH_COMPONENT16                = 0x81A5,
607         DEPTH_COMPONENT24                = 0x81A6,
608         DEPTH_COMPONENT32                = 0x81A7,
609         MIRRORED_REPEAT                  = 0x8370,
610         MAX_TEXTURE_LOD_BIAS             = 0x84FD,
611         TEXTURE_LOD_BIAS                 = 0x8501,
612         INCR_WRAP                        = 0x8507,
613         DECR_WRAP                        = 0x8508,
614         TEXTURE_DEPTH_SIZE               = 0x884A,
615         TEXTURE_COMPARE_MODE             = 0x884C,
616         TEXTURE_COMPARE_FUNC             = 0x884D,
617 
618         // Version: 1.5
619         BUFFER_SIZE                      = 0x8764,
620         BUFFER_USAGE                     = 0x8765,
621         QUERY_COUNTER_BITS               = 0x8864,
622         CURRENT_QUERY                    = 0x8865,
623         QUERY_RESULT                     = 0x8866,
624         QUERY_RESULT_AVAILABLE           = 0x8867,
625         ARRAY_BUFFER                     = 0x8892,
626         ELEMENT_ARRAY_BUFFER             = 0x8893,
627         ARRAY_BUFFER_BINDING             = 0x8894,
628         ELEMENT_ARRAY_BUFFER_BINDING     = 0x8895,
629         VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 0x889F,
630         READ_ONLY                        = 0x88B8,
631         WRITE_ONLY                       = 0x88B9,
632         READ_WRITE                       = 0x88BA,
633         BUFFER_ACCESS                    = 0x88BB,
634         BUFFER_MAPPED                    = 0x88BC,
635         BUFFER_MAP_POINTER               = 0x88BD,
636         STREAM_DRAW                      = 0x88E0,
637         STREAM_READ                      = 0x88E1,
638         STREAM_COPY                      = 0x88E2,
639         STATIC_DRAW                      = 0x88E4,
640         STATIC_READ                      = 0x88E5,
641         STATIC_COPY                      = 0x88E6,
642         DYNAMIC_DRAW                     = 0x88E8,
643         DYNAMIC_READ                     = 0x88E9,
644         DYNAMIC_COPY                     = 0x88EA,
645         SAMPLES_PASSED                   = 0x8914,
646         SRC1_ALPHA                       = 0x8589,
647 
648         // Version: 2.0
649         BLEND_EQUATION_RGB               = 0x8009,
650         VERTEX_ATTRIB_ARRAY_ENABLED      = 0x8622,
651         VERTEX_ATTRIB_ARRAY_SIZE         = 0x8623,
652         VERTEX_ATTRIB_ARRAY_STRIDE       = 0x8624,
653         VERTEX_ATTRIB_ARRAY_TYPE         = 0x8625,
654         CURRENT_VERTEX_ATTRIB            = 0x8626,
655         VERTEX_PROGRAM_POINT_SIZE        = 0x8642,
656         VERTEX_ATTRIB_ARRAY_POINTER      = 0x8645,
657         STENCIL_BACK_FUNC                = 0x8800,
658         STENCIL_BACK_FAIL                = 0x8801,
659         STENCIL_BACK_PASS_DEPTH_FAIL     = 0x8802,
660         STENCIL_BACK_PASS_DEPTH_PASS     = 0x8803,
661         MAX_DRAW_BUFFERS                 = 0x8824,
662         DRAW_BUFFER0                     = 0x8825,
663         DRAW_BUFFER1                     = 0x8826,
664         DRAW_BUFFER2                     = 0x8827,
665         DRAW_BUFFER3                     = 0x8828,
666         DRAW_BUFFER4                     = 0x8829,
667         DRAW_BUFFER5                     = 0x882A,
668         DRAW_BUFFER6                     = 0x882B,
669         DRAW_BUFFER7                     = 0x882C,
670         DRAW_BUFFER8                     = 0x882D,
671         DRAW_BUFFER9                     = 0x882E,
672         DRAW_BUFFER10                    = 0x882F,
673         DRAW_BUFFER11                    = 0x8830,
674         DRAW_BUFFER12                    = 0x8831,
675         DRAW_BUFFER13                    = 0x8832,
676         DRAW_BUFFER14                    = 0x8833,
677         DRAW_BUFFER15                    = 0x8834,
678         BLEND_EQUATION_ALPHA             = 0x883D,
679         MAX_VERTEX_ATTRIBS               = 0x8869,
680         VERTEX_ATTRIB_ARRAY_NORMALIZED   = 0x886A,
681         MAX_TEXTURE_IMAGE_UNITS          = 0x8872,
682         FRAGMENT_SHADER                  = 0x8B30,
683         VERTEX_SHADER                    = 0x8B31,
684         MAX_FRAGMENT_UNIFORM_COMPONENTS  = 0x8B49,
685         MAX_VERTEX_UNIFORM_COMPONENTS    = 0x8B4A,
686         MAX_VARYING_FLOATS               = 0x8B4B,
687         MAX_VERTEX_TEXTURE_IMAGE_UNITS   = 0x8B4C,
688         MAX_COMBINED_TEXTURE_IMAGE_UNITS = 0x8B4D,
689         SHADER_TYPE                      = 0x8B4F,
690         FLOAT_VEC2                       = 0x8B50,
691         FLOAT_VEC3                       = 0x8B51,
692         FLOAT_VEC4                       = 0x8B52,
693         INT_VEC2                         = 0x8B53,
694         INT_VEC3                         = 0x8B54,
695         INT_VEC4                         = 0x8B55,
696         BOOL                             = 0x8B56,
697         BOOL_VEC2                        = 0x8B57,
698         BOOL_VEC3                        = 0x8B58,
699         BOOL_VEC4                        = 0x8B59,
700         FLOAT_MAT2                       = 0x8B5A,
701         FLOAT_MAT3                       = 0x8B5B,
702         FLOAT_MAT4                       = 0x8B5C,
703         SAMPLER_1D                       = 0x8B5D,
704         SAMPLER_2D                       = 0x8B5E,
705         SAMPLER_3D                       = 0x8B5F,
706         SAMPLER_CUBE                     = 0x8B60,
707         SAMPLER_1D_SHADOW                = 0x8B61,
708         SAMPLER_2D_SHADOW                = 0x8B62,
709         DELETE_STATUS                    = 0x8B80,
710         COMPILE_STATUS                   = 0x8B81,
711         LINK_STATUS                      = 0x8B82,
712         VALIDATE_STATUS                  = 0x8B83,
713         INFO_LOG_LENGTH                  = 0x8B84,
714         ATTACHED_SHADERS                 = 0x8B85,
715         ACTIVE_UNIFORMS                  = 0x8B86,
716         ACTIVE_UNIFORM_MAX_LENGTH        = 0x8B87,
717         SHADER_SOURCE_LENGTH             = 0x8B88,
718         ACTIVE_ATTRIBUTES                = 0x8B89,
719         ACTIVE_ATTRIBUTE_MAX_LENGTH      = 0x8B8A,
720         FRAGMENT_SHADER_DERIVATIVE_HINT  = 0x8B8B,
721         SHADING_LANGUAGE_VERSION         = 0x8B8C,
722         CURRENT_PROGRAM                  = 0x8B8D,
723         POINT_SPRITE_COORD_ORIGIN        = 0x8CA0,
724         LOWER_LEFT                       = 0x8CA1,
725         UPPER_LEFT                       = 0x8CA2,
726         STENCIL_BACK_REF                 = 0x8CA3,
727         STENCIL_BACK_VALUE_MASK          = 0x8CA4,
728         STENCIL_BACK_WRITEMASK           = 0x8CA5,
729 
730         // Version: 2.1
731         PIXEL_PACK_BUFFER                = 0x88EB,
732         PIXEL_UNPACK_BUFFER              = 0x88EC,
733         PIXEL_PACK_BUFFER_BINDING        = 0x88ED,
734         PIXEL_UNPACK_BUFFER_BINDING      = 0x88EF,
735         FLOAT_MAT2x3                     = 0x8B65,
736         FLOAT_MAT2x4                     = 0x8B66,
737         FLOAT_MAT3x2                     = 0x8B67,
738         FLOAT_MAT3x4                     = 0x8B68,
739         FLOAT_MAT4x2                     = 0x8B69,
740         FLOAT_MAT4x3                     = 0x8B6A,
741         SRGB                             = 0x8C40,
742         SRGB8                            = 0x8C41,
743         SRGB_ALPHA                       = 0x8C42,
744         SRGB8_ALPHA8                     = 0x8C43,
745         COMPRESSED_SRGB                  = 0x8C48,
746         COMPRESSED_SRGB_ALPHA            = 0x8C49,
747 
748         // Core Extension: ARB_vertex_array_object
749         VERTEX_ARRAY_BINDING             = 0x85B5,
750 
751         // Core Extension: ARB_texture_rg
752         RG                               = 0x8227,
753         RG_INTEGER                       = 0x8228,
754         R8                               = 0x8229,
755         R16                              = 0x822A,
756         RG8                              = 0x822B,
757         RG16                             = 0x822C,
758         R16F                             = 0x822D,
759         R32F                             = 0x822E,
760         RG16F                            = 0x822F,
761         RG32F                            = 0x8230,
762         R8I                              = 0x8231,
763         R8UI                             = 0x8232,
764         R16I                             = 0x8233,
765         R16UI                            = 0x8234,
766         R32I                             = 0x8235,
767         R32UI                            = 0x8236,
768         RG8I                             = 0x8237,
769         RG8UI                            = 0x8238,
770         RG16I                            = 0x8239,
771         RG16UI                           = 0x823A,
772         RG32I                            = 0x823B,
773         RG32UI                           = 0x823C,
774 
775         // Core Extension: ARB_texture_compression_rgtc
776         COMPRESSED_RED_RGTC1             = 0x8DBB,
777         COMPRESSED_SIGNED_RED_RGTC1      = 0x8DBC,
778         COMPRESSED_RG_RGTC2              = 0x8DBD,
779         COMPRESSED_SIGNED_RG_RGTC2       = 0x8DBE,
780 
781         // Core Extension: ARB_map_buffer_range
782         MAP_READ_BIT                     = 0x0001,
783         MAP_WRITE_BIT                    = 0x0002,
784         MAP_INVALIDATE_RANGE_BIT         = 0x0004,
785         MAP_INVALIDATE_BUFFER_BIT        = 0x0008,
786         MAP_FLUSH_EXPLICIT_BIT           = 0x0010,
787         MAP_UNSYNCHRONIZED_BIT           = 0x0020,
788 
789         // Core Extension: ARB_half_float_vertex
790         HALF_FLOAT                       = 0x140B,
791 
792         // Core Extension: ARB_framebuffer_sRGB
793         FRAMEBUFFER_SRGB                 = 0x8DB9,
794 
795         // Core Extension: ARB_framebuffer_object
796         INVALID_FRAMEBUFFER_OPERATION    = 0x0506,
797         FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING = 0x8210,
798         FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE = 0x8211,
799         FRAMEBUFFER_ATTACHMENT_RED_SIZE  = 0x8212,
800         FRAMEBUFFER_ATTACHMENT_GREEN_SIZE = 0x8213,
801         FRAMEBUFFER_ATTACHMENT_BLUE_SIZE = 0x8214,
802         FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE = 0x8215,
803         FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE = 0x8216,
804         FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE = 0x8217,
805         FRAMEBUFFER_DEFAULT              = 0x8218,
806         FRAMEBUFFER_UNDEFINED            = 0x8219,
807         DEPTH_STENCIL_ATTACHMENT         = 0x821A,
808         INDEX                            = 0x8222,
809         MAX_RENDERBUFFER_SIZE            = 0x84E8,
810         DEPTH_STENCIL                    = 0x84F9,
811         UNSIGNED_INT_24_8                = 0x84FA,
812         DEPTH24_STENCIL8                 = 0x88F0,
813         TEXTURE_STENCIL_SIZE             = 0x88F1,
814         TEXTURE_RED_TYPE                 = 0x8C10,
815         TEXTURE_GREEN_TYPE               = 0x8C11,
816         TEXTURE_BLUE_TYPE                = 0x8C12,
817         TEXTURE_ALPHA_TYPE               = 0x8C13,
818         TEXTURE_DEPTH_TYPE               = 0x8C16,
819         UNSIGNED_NORMALIZED              = 0x8C17,
820         FRAMEBUFFER_BINDING              = 0x8CA6,
821         DRAW_FRAMEBUFFER_BINDING         = 0x8CA6,
822         RENDERBUFFER_BINDING             = 0x8CA7,
823         READ_FRAMEBUFFER                 = 0x8CA8,
824         DRAW_FRAMEBUFFER                 = 0x8CA9,
825         READ_FRAMEBUFFER_BINDING         = 0x8CAA,
826         RENDERBUFFER_SAMPLES             = 0x8CAB,
827         FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 0x8CD0,
828         FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 0x8CD1,
829         FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 0x8CD2,
830         FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 0x8CD3,
831         FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER = 0x8CD4,
832         FRAMEBUFFER_COMPLETE             = 0x8CD5,
833         FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 0x8CD6,
834         FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 0x8CD7,
835         FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER = 0x8CDB,
836         FRAMEBUFFER_INCOMPLETE_READ_BUFFER = 0x8CDC,
837         FRAMEBUFFER_UNSUPPORTED          = 0x8CDD,
838         MAX_COLOR_ATTACHMENTS            = 0x8CDF,
839         COLOR_ATTACHMENT0                = 0x8CE0,
840         COLOR_ATTACHMENT1                = 0x8CE1,
841         COLOR_ATTACHMENT2                = 0x8CE2,
842         COLOR_ATTACHMENT3                = 0x8CE3,
843         COLOR_ATTACHMENT4                = 0x8CE4,
844         COLOR_ATTACHMENT5                = 0x8CE5,
845         COLOR_ATTACHMENT6                = 0x8CE6,
846         COLOR_ATTACHMENT7                = 0x8CE7,
847         COLOR_ATTACHMENT8                = 0x8CE8,
848         COLOR_ATTACHMENT9                = 0x8CE9,
849         COLOR_ATTACHMENT10               = 0x8CEA,
850         COLOR_ATTACHMENT11               = 0x8CEB,
851         COLOR_ATTACHMENT12               = 0x8CEC,
852         COLOR_ATTACHMENT13               = 0x8CED,
853         COLOR_ATTACHMENT14               = 0x8CEE,
854         COLOR_ATTACHMENT15               = 0x8CEF,
855         DEPTH_ATTACHMENT                 = 0x8D00,
856         STENCIL_ATTACHMENT               = 0x8D20,
857         FRAMEBUFFER                      = 0x8D40,
858         RENDERBUFFER                     = 0x8D41,
859         RENDERBUFFER_WIDTH               = 0x8D42,
860         RENDERBUFFER_HEIGHT              = 0x8D43,
861         RENDERBUFFER_INTERNAL_FORMAT     = 0x8D44,
862         STENCIL_INDEX1                   = 0x8D46,
863         STENCIL_INDEX4                   = 0x8D47,
864         STENCIL_INDEX8                   = 0x8D48,
865         STENCIL_INDEX16                  = 0x8D49,
866         RENDERBUFFER_RED_SIZE            = 0x8D50,
867         RENDERBUFFER_GREEN_SIZE          = 0x8D51,
868         RENDERBUFFER_BLUE_SIZE           = 0x8D52,
869         RENDERBUFFER_ALPHA_SIZE          = 0x8D53,
870         RENDERBUFFER_DEPTH_SIZE          = 0x8D54,
871         RENDERBUFFER_STENCIL_SIZE        = 0x8D55,
872         FRAMEBUFFER_INCOMPLETE_MULTISAMPLE = 0x8D56,
873         MAX_SAMPLES                      = 0x8D57,
874         TEXTURE_LUMINANCE_TYPE           = 0x8C14,
875         TEXTURE_INTENSITY_TYPE           = 0x8C15,
876 
877         // Core Extension: ARB_depth_buffer_float
878         DEPTH_COMPONENT32F               = 0x8CAC,
879         DEPTH32F_STENCIL8                = 0x8CAD,
880         FLOAT_32_UNSIGNED_INT_24_8_REV   = 0x8DAD,
881 
882         // Version: 3.0
883         COMPARE_REF_TO_TEXTURE           = 0x884E,
884         CLIP_DISTANCE0                   = 0x3000,
885         CLIP_DISTANCE1                   = 0x3001,
886         CLIP_DISTANCE2                   = 0x3002,
887         CLIP_DISTANCE3                   = 0x3003,
888         CLIP_DISTANCE4                   = 0x3004,
889         CLIP_DISTANCE5                   = 0x3005,
890         CLIP_DISTANCE6                   = 0x3006,
891         CLIP_DISTANCE7                   = 0x3007,
892         MAX_CLIP_DISTANCES               = 0x0D32,
893         MAJOR_VERSION                    = 0x821B,
894         MINOR_VERSION                    = 0x821C,
895         NUM_EXTENSIONS                   = 0x821D,
896         CONTEXT_FLAGS                    = 0x821E,
897         COMPRESSED_RED                   = 0x8225,
898         COMPRESSED_RG                    = 0x8226,
899         CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT = 0x0001,
900         RGBA32F                          = 0x8814,
901         RGB32F                           = 0x8815,
902         RGBA16F                          = 0x881A,
903         RGB16F                           = 0x881B,
904         VERTEX_ATTRIB_ARRAY_INTEGER      = 0x88FD,
905         MAX_ARRAY_TEXTURE_LAYERS         = 0x88FF,
906         MIN_PROGRAM_TEXEL_OFFSET         = 0x8904,
907         MAX_PROGRAM_TEXEL_OFFSET         = 0x8905,
908         CLAMP_READ_COLOR                 = 0x891C,
909         FIXED_ONLY                       = 0x891D,
910         TEXTURE_1D_ARRAY                 = 0x8C18,
911         PROXY_TEXTURE_1D_ARRAY           = 0x8C19,
912         TEXTURE_2D_ARRAY                 = 0x8C1A,
913         PROXY_TEXTURE_2D_ARRAY           = 0x8C1B,
914         TEXTURE_BINDING_1D_ARRAY         = 0x8C1C,
915         TEXTURE_BINDING_2D_ARRAY         = 0x8C1D,
916         R11F_G11F_B10F                   = 0x8C3A,
917         UNSIGNED_INT_10F_11F_11F_REV     = 0x8C3B,
918         RGB9_E5                          = 0x8C3D,
919         UNSIGNED_INT_5_9_9_9_REV         = 0x8C3E,
920         TEXTURE_SHARED_SIZE              = 0x8C3F,
921         TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH = 0x8C76,
922         TRANSFORM_FEEDBACK_BUFFER_MODE   = 0x8C7F,
923         MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS = 0x8C80,
924         TRANSFORM_FEEDBACK_VARYINGS      = 0x8C83,
925         TRANSFORM_FEEDBACK_BUFFER_START  = 0x8C84,
926         TRANSFORM_FEEDBACK_BUFFER_SIZE   = 0x8C85,
927         PRIMITIVES_GENERATED             = 0x8C87,
928         TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN = 0x8C88,
929         RASTERIZER_DISCARD               = 0x8C89,
930         MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS = 0x8C8A,
931         MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS = 0x8C8B,
932         INTERLEAVED_ATTRIBS              = 0x8C8C,
933         SEPARATE_ATTRIBS                 = 0x8C8D,
934         TRANSFORM_FEEDBACK_BUFFER        = 0x8C8E,
935         TRANSFORM_FEEDBACK_BUFFER_BINDING = 0x8C8F,
936         RGBA32UI                         = 0x8D70,
937         RGB32UI                          = 0x8D71,
938         RGBA16UI                         = 0x8D76,
939         RGB16UI                          = 0x8D77,
940         RGBA8UI                          = 0x8D7C,
941         RGB8UI                           = 0x8D7D,
942         RGBA32I                          = 0x8D82,
943         RGB32I                           = 0x8D83,
944         RGBA16I                          = 0x8D88,
945         RGB16I                           = 0x8D89,
946         RGBA8I                           = 0x8D8E,
947         RGB8I                            = 0x8D8F,
948         RED_INTEGER                      = 0x8D94,
949         GREEN_INTEGER                    = 0x8D95,
950         BLUE_INTEGER                     = 0x8D96,
951         RGB_INTEGER                      = 0x8D98,
952         RGBA_INTEGER                     = 0x8D99,
953         BGR_INTEGER                      = 0x8D9A,
954         BGRA_INTEGER                     = 0x8D9B,
955         SAMPLER_1D_ARRAY                 = 0x8DC0,
956         SAMPLER_2D_ARRAY                 = 0x8DC1,
957         SAMPLER_1D_ARRAY_SHADOW          = 0x8DC3,
958         SAMPLER_2D_ARRAY_SHADOW          = 0x8DC4,
959         SAMPLER_CUBE_SHADOW              = 0x8DC5,
960         UNSIGNED_INT_VEC2                = 0x8DC6,
961         UNSIGNED_INT_VEC3                = 0x8DC7,
962         UNSIGNED_INT_VEC4                = 0x8DC8,
963         INT_SAMPLER_1D                   = 0x8DC9,
964         INT_SAMPLER_2D                   = 0x8DCA,
965         INT_SAMPLER_3D                   = 0x8DCB,
966         INT_SAMPLER_CUBE                 = 0x8DCC,
967         INT_SAMPLER_1D_ARRAY             = 0x8DCE,
968         INT_SAMPLER_2D_ARRAY             = 0x8DCF,
969         UNSIGNED_INT_SAMPLER_1D          = 0x8DD1,
970         UNSIGNED_INT_SAMPLER_2D          = 0x8DD2,
971         UNSIGNED_INT_SAMPLER_3D          = 0x8DD3,
972         UNSIGNED_INT_SAMPLER_CUBE        = 0x8DD4,
973         UNSIGNED_INT_SAMPLER_1D_ARRAY    = 0x8DD6,
974         UNSIGNED_INT_SAMPLER_2D_ARRAY    = 0x8DD7,
975         QUERY_WAIT                       = 0x8E13,
976         QUERY_NO_WAIT                    = 0x8E14,
977         QUERY_BY_REGION_WAIT             = 0x8E15,
978         QUERY_BY_REGION_NO_WAIT          = 0x8E16,
979         BUFFER_ACCESS_FLAGS              = 0x911F,
980         BUFFER_MAP_LENGTH                = 0x9120,
981         BUFFER_MAP_OFFSET                = 0x9121,
982 
983         // Core Extension: ARB_uniform_buffer_object
984         UNIFORM_BUFFER                   = 0x8A11,
985         UNIFORM_BUFFER_BINDING           = 0x8A28,
986         UNIFORM_BUFFER_START             = 0x8A29,
987         UNIFORM_BUFFER_SIZE              = 0x8A2A,
988         MAX_VERTEX_UNIFORM_BLOCKS        = 0x8A2B,
989         MAX_FRAGMENT_UNIFORM_BLOCKS      = 0x8A2D,
990         MAX_COMBINED_UNIFORM_BLOCKS      = 0x8A2E,
991         MAX_UNIFORM_BUFFER_BINDINGS      = 0x8A2F,
992         MAX_UNIFORM_BLOCK_SIZE           = 0x8A30,
993         MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS = 0x8A31,
994         MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS = 0x8A33,
995         UNIFORM_BUFFER_OFFSET_ALIGNMENT  = 0x8A34,
996         ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH = 0x8A35,
997         ACTIVE_UNIFORM_BLOCKS            = 0x8A36,
998         UNIFORM_TYPE                     = 0x8A37,
999         UNIFORM_SIZE                     = 0x8A38,
1000         UNIFORM_NAME_LENGTH              = 0x8A39,
1001         UNIFORM_BLOCK_INDEX              = 0x8A3A,
1002         UNIFORM_OFFSET                   = 0x8A3B,
1003         UNIFORM_ARRAY_STRIDE             = 0x8A3C,
1004         UNIFORM_MATRIX_STRIDE            = 0x8A3D,
1005         UNIFORM_IS_ROW_MAJOR             = 0x8A3E,
1006         UNIFORM_BLOCK_BINDING            = 0x8A3F,
1007         UNIFORM_BLOCK_DATA_SIZE          = 0x8A40,
1008         UNIFORM_BLOCK_NAME_LENGTH        = 0x8A41,
1009         UNIFORM_BLOCK_ACTIVE_UNIFORMS    = 0x8A42,
1010         UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 0x8A43,
1011         UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 0x8A44,
1012         UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 0x8A46,
1013         INVALID_INDEX                    = 0xFFFFFFFF,
1014         MAX_GEOMETRY_UNIFORM_BLOCKS      = 0x8A2C,
1015         MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS = 0x8A32,
1016         UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER = 0x8A45,
1017 
1018         // Core Extension: ARB_copy_buffer
1019         COPY_READ_BUFFER                 = 0x8F36,
1020         COPY_WRITE_BUFFER                = 0x8F37,
1021         COPY_READ_BUFFER_BINDING         = 0x8F36,
1022         COPY_WRITE_BUFFER_BINDING        = 0x8F37,
1023 
1024         // Version: 3.1
1025         SAMPLER_2D_RECT                  = 0x8B63,
1026         SAMPLER_2D_RECT_SHADOW           = 0x8B64,
1027         SAMPLER_BUFFER                   = 0x8DC2,
1028         INT_SAMPLER_2D_RECT              = 0x8DCD,
1029         INT_SAMPLER_BUFFER               = 0x8DD0,
1030         UNSIGNED_INT_SAMPLER_2D_RECT     = 0x8DD5,
1031         UNSIGNED_INT_SAMPLER_BUFFER      = 0x8DD8,
1032         TEXTURE_BUFFER                   = 0x8C2A,
1033         MAX_TEXTURE_BUFFER_SIZE          = 0x8C2B,
1034         TEXTURE_BINDING_BUFFER           = 0x8C2C,
1035         TEXTURE_BUFFER_DATA_STORE_BINDING = 0x8C2D,
1036         TEXTURE_RECTANGLE                = 0x84F5,
1037         TEXTURE_BINDING_RECTANGLE        = 0x84F6,
1038         PROXY_TEXTURE_RECTANGLE          = 0x84F7,
1039         MAX_RECTANGLE_TEXTURE_SIZE       = 0x84F8,
1040         RED_SNORM                        = 0x8F90,
1041         RG_SNORM                         = 0x8F91,
1042         RGB_SNORM                        = 0x8F92,
1043         RGBA_SNORM                       = 0x8F93,
1044         R8_SNORM                         = 0x8F94,
1045         RG8_SNORM                        = 0x8F95,
1046         RGB8_SNORM                       = 0x8F96,
1047         RGBA8_SNORM                      = 0x8F97,
1048         R16_SNORM                        = 0x8F98,
1049         RG16_SNORM                       = 0x8F99,
1050         RGB16_SNORM                      = 0x8F9A,
1051         RGBA16_SNORM                     = 0x8F9B,
1052         SIGNED_NORMALIZED                = 0x8F9C,
1053         PRIMITIVE_RESTART                = 0x8F9D,
1054         PRIMITIVE_RESTART_INDEX          = 0x8F9E,
1055 
1056         // Legacy
1057         VERTEX_ARRAY = 0x8074,
1058         NORMAL_ARRAY = 0x8075,
1059         COLOR_ARRAY = 0x8076,
1060         TEXTURE_COORD_ARRAY = 0x8078,
1061         TEXTURE_ENV = 0x2300,
1062         TEXTURE_ENV_MODE = 0x2200,
1063         MODELVIEW = 0x1700,
1064         PROJECTION = 0x1701,
1065         LIGHTING = 0x0B50
1066     };
1067 
1068     // Extension: 1.1
1069     extern void (CODEGEN_FUNCPTR *CullFace)(GLenum mode);
1070     extern void (CODEGEN_FUNCPTR *FrontFace)(GLenum mode);
1071     extern void (CODEGEN_FUNCPTR *Hint)(GLenum target, GLenum mode);
1072     extern void (CODEGEN_FUNCPTR *LineWidth)(GLfloat width);
1073     extern void (CODEGEN_FUNCPTR *PointSize)(GLfloat size);
1074     extern void (CODEGEN_FUNCPTR *PolygonMode)(GLenum face, GLenum mode);
1075     extern void (CODEGEN_FUNCPTR *Scissor)(GLint x, GLint y, GLsizei width, GLsizei height);
1076     extern void (CODEGEN_FUNCPTR *TexParameterf)(GLenum target, GLenum pname, GLfloat param);
1077     extern void (CODEGEN_FUNCPTR *TexParameterfv)(GLenum target, GLenum pname, const GLfloat *params);
1078     extern void (CODEGEN_FUNCPTR *TexParameteri)(GLenum target, GLenum pname, GLint param);
1079     extern void (CODEGEN_FUNCPTR *TexParameteriv)(GLenum target, GLenum pname, const GLint *params);
1080     extern void (CODEGEN_FUNCPTR *TexImage1D)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
1081     extern void (CODEGEN_FUNCPTR *TexImage2D)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
1082     extern void (CODEGEN_FUNCPTR *DrawBuffer)(GLenum mode);
1083     extern void (CODEGEN_FUNCPTR *Clear)(GLbitfield mask);
1084     extern void (CODEGEN_FUNCPTR *ClearColor)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
1085     extern void (CODEGEN_FUNCPTR *ClearStencil)(GLint s);
1086     extern void (CODEGEN_FUNCPTR *ClearDepth)(GLdouble depth);
1087     extern void (CODEGEN_FUNCPTR *StencilMask)(GLuint mask);
1088     extern void (CODEGEN_FUNCPTR *ColorMask)(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
1089     extern void (CODEGEN_FUNCPTR *DepthMask)(GLboolean flag);
1090     extern void (CODEGEN_FUNCPTR *Disable)(GLenum cap);
1091     extern void (CODEGEN_FUNCPTR *Enable)(GLenum cap);
1092     extern void (CODEGEN_FUNCPTR *Finish)();
1093     extern void (CODEGEN_FUNCPTR *Flush)();
1094     extern void (CODEGEN_FUNCPTR *BlendFunc)(GLenum sfactor, GLenum dfactor);
1095     extern void (CODEGEN_FUNCPTR *LogicOp)(GLenum opcode);
1096     extern void (CODEGEN_FUNCPTR *StencilFunc)(GLenum func, GLint ref, GLuint mask);
1097     extern void (CODEGEN_FUNCPTR *StencilOp)(GLenum fail, GLenum zfail, GLenum zpass);
1098     extern void (CODEGEN_FUNCPTR *DepthFunc)(GLenum func);
1099     extern void (CODEGEN_FUNCPTR *PixelStoref)(GLenum pname, GLfloat param);
1100     extern void (CODEGEN_FUNCPTR *PixelStorei)(GLenum pname, GLint param);
1101     extern void (CODEGEN_FUNCPTR *ReadBuffer)(GLenum mode);
1102     extern void (CODEGEN_FUNCPTR *ReadPixels)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels);
1103     extern void (CODEGEN_FUNCPTR *GetBooleanv)(GLenum pname, GLboolean *params);
1104     extern void (CODEGEN_FUNCPTR *GetDoublev)(GLenum pname, GLdouble *params);
1105     extern GLenum (CODEGEN_FUNCPTR *GetError)();
1106     extern void (CODEGEN_FUNCPTR *GetFloatv)(GLenum pname, GLfloat *params);
1107     extern void (CODEGEN_FUNCPTR *GetIntegerv)(GLenum pname, GLint *params);
1108     extern const GLubyte * (CODEGEN_FUNCPTR *GetString)(GLenum name);
1109     extern void (CODEGEN_FUNCPTR *GetTexImage)(GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels);
1110     extern void (CODEGEN_FUNCPTR *GetTexParameterfv)(GLenum target, GLenum pname, GLfloat *params);
1111     extern void (CODEGEN_FUNCPTR *GetTexParameteriv)(GLenum target, GLenum pname, GLint *params);
1112     extern void (CODEGEN_FUNCPTR *GetTexLevelParameterfv)(GLenum target, GLint level, GLenum pname, GLfloat *params);
1113     extern void (CODEGEN_FUNCPTR *GetTexLevelParameteriv)(GLenum target, GLint level, GLenum pname, GLint *params);
1114     extern GLboolean (CODEGEN_FUNCPTR *IsEnabled)(GLenum cap);
1115     extern void (CODEGEN_FUNCPTR *DepthRange)(GLdouble ren_near, GLdouble ren_far);
1116     extern void (CODEGEN_FUNCPTR *Viewport)(GLint x, GLint y, GLsizei width, GLsizei height);
1117     extern void (CODEGEN_FUNCPTR *DrawArrays)(GLenum mode, GLint first, GLsizei count);
1118     extern void (CODEGEN_FUNCPTR *DrawElements)(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices);
1119     extern void (CODEGEN_FUNCPTR *GetPointerv)(GLenum pname, GLvoid* *params);
1120     extern void (CODEGEN_FUNCPTR *PolygonOffset)(GLfloat factor, GLfloat units);
1121     extern void (CODEGEN_FUNCPTR *CopyTexImage1D)(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
1122     extern void (CODEGEN_FUNCPTR *CopyTexImage2D)(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
1123     extern void (CODEGEN_FUNCPTR *CopyTexSubImage1D)(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
1124     extern void (CODEGEN_FUNCPTR *CopyTexSubImage2D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
1125     extern void (CODEGEN_FUNCPTR *TexSubImage1D)(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels);
1126     extern void (CODEGEN_FUNCPTR *TexSubImage2D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
1127     extern void (CODEGEN_FUNCPTR *BindTexture)(GLenum target, GLuint texture);
1128     extern void (CODEGEN_FUNCPTR *DeleteTextures)(GLsizei n, const GLuint *textures);
1129     extern void (CODEGEN_FUNCPTR *GenTextures)(GLsizei n, GLuint *textures);
1130     extern GLboolean (CODEGEN_FUNCPTR *IsTexture)(GLuint texture);
1131     extern void (CODEGEN_FUNCPTR *Indexub)(GLubyte c);
1132     extern void (CODEGEN_FUNCPTR *Indexubv)(const GLubyte *c);
1133 
1134     // Extension: 1.2
1135     extern void (CODEGEN_FUNCPTR *BlendColor)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
1136     extern void (CODEGEN_FUNCPTR *BlendEquation)(GLenum mode);
1137     extern void (CODEGEN_FUNCPTR *DrawRangeElements)(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices);
1138     extern void (CODEGEN_FUNCPTR *TexSubImage3D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels);
1139     extern void (CODEGEN_FUNCPTR *CopyTexSubImage3D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
1140 
1141     // Extension: 1.3
1142     extern void (CODEGEN_FUNCPTR *ActiveTexture)(GLenum texture);
1143     extern void (CODEGEN_FUNCPTR *SampleCoverage)(GLfloat value, GLboolean invert);
1144     extern void (CODEGEN_FUNCPTR *CompressedTexImage3D)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data);
1145     extern void (CODEGEN_FUNCPTR *CompressedTexImage2D)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data);
1146     extern void (CODEGEN_FUNCPTR *CompressedTexImage1D)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data);
1147     extern void (CODEGEN_FUNCPTR *CompressedTexSubImage3D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data);
1148     extern void (CODEGEN_FUNCPTR *CompressedTexSubImage2D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data);
1149     extern void (CODEGEN_FUNCPTR *CompressedTexSubImage1D)(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data);
1150     extern void (CODEGEN_FUNCPTR *GetCompressedTexImage)(GLenum target, GLint level, GLvoid *img);
1151 
1152     // Extension: 1.4
1153     extern void (CODEGEN_FUNCPTR *BlendFuncSeparate)(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
1154     extern void (CODEGEN_FUNCPTR *MultiDrawArrays)(GLenum mode, const GLint *first, const GLsizei *count, GLsizei drawcount);
1155     extern void (CODEGEN_FUNCPTR *MultiDrawElements)(GLenum mode, const GLsizei *count, GLenum type, const GLvoid* const *indices, GLsizei drawcount);
1156     extern void (CODEGEN_FUNCPTR *PointParameterf)(GLenum pname, GLfloat param);
1157     extern void (CODEGEN_FUNCPTR *PointParameterfv)(GLenum pname, const GLfloat *params);
1158     extern void (CODEGEN_FUNCPTR *PointParameteri)(GLenum pname, GLint param);
1159     extern void (CODEGEN_FUNCPTR *PointParameteriv)(GLenum pname, const GLint *params);
1160 
1161     // Extension: 1.5
1162     extern void (CODEGEN_FUNCPTR *GenQueries)(GLsizei n, GLuint *ids);
1163     extern void (CODEGEN_FUNCPTR *DeleteQueries)(GLsizei n, const GLuint *ids);
1164     extern GLboolean (CODEGEN_FUNCPTR *IsQuery)(GLuint id);
1165     extern void (CODEGEN_FUNCPTR *BeginQuery)(GLenum target, GLuint id);
1166     extern void (CODEGEN_FUNCPTR *EndQuery)(GLenum target);
1167     extern void (CODEGEN_FUNCPTR *GetQueryiv)(GLenum target, GLenum pname, GLint *params);
1168     extern void (CODEGEN_FUNCPTR *GetQueryObjectiv)(GLuint id, GLenum pname, GLint *params);
1169     extern void (CODEGEN_FUNCPTR *GetQueryObjectuiv)(GLuint id, GLenum pname, GLuint *params);
1170     extern void (CODEGEN_FUNCPTR *BindBuffer)(GLenum target, GLuint buffer);
1171     extern void (CODEGEN_FUNCPTR *DeleteBuffers)(GLsizei n, const GLuint *buffers);
1172     extern void (CODEGEN_FUNCPTR *GenBuffers)(GLsizei n, GLuint *buffers);
1173     extern GLboolean (CODEGEN_FUNCPTR *IsBuffer)(GLuint buffer);
1174     extern void (CODEGEN_FUNCPTR *BufferData)(GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage);
1175     extern void (CODEGEN_FUNCPTR *BufferSubData)(GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data);
1176     extern void (CODEGEN_FUNCPTR *GetBufferSubData)(GLenum target, GLintptr offset, GLsizeiptr size, GLvoid *data);
1177     extern GLvoid* (CODEGEN_FUNCPTR *MapBuffer)(GLenum target, GLenum access);
1178     extern GLboolean (CODEGEN_FUNCPTR *UnmapBuffer)(GLenum target);
1179     extern void (CODEGEN_FUNCPTR *GetBufferParameteriv)(GLenum target, GLenum pname, GLint *params);
1180     extern void (CODEGEN_FUNCPTR *GetBufferPointerv)(GLenum target, GLenum pname, GLvoid* *params);
1181 
1182     // Extension: 2.0
1183     extern void (CODEGEN_FUNCPTR *BlendEquationSeparate)(GLenum modeRGB, GLenum modeAlpha);
1184     extern void (CODEGEN_FUNCPTR *DrawBuffers)(GLsizei n, const GLenum *bufs);
1185     extern void (CODEGEN_FUNCPTR *StencilOpSeparate)(GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
1186     extern void (CODEGEN_FUNCPTR *StencilFuncSeparate)(GLenum face, GLenum func, GLint ref, GLuint mask);
1187     extern void (CODEGEN_FUNCPTR *StencilMaskSeparate)(GLenum face, GLuint mask);
1188     extern void (CODEGEN_FUNCPTR *AttachShader)(GLuint program, GLuint shader);
1189     extern void (CODEGEN_FUNCPTR *BindAttribLocation)(GLuint program, GLuint index, const GLchar *name);
1190     extern void (CODEGEN_FUNCPTR *CompileShader)(GLuint shader);
1191     extern GLuint (CODEGEN_FUNCPTR *CreateProgram)();
1192     extern GLuint (CODEGEN_FUNCPTR *CreateShader)(GLenum type);
1193     extern void (CODEGEN_FUNCPTR *DeleteProgram)(GLuint program);
1194     extern void (CODEGEN_FUNCPTR *DeleteShader)(GLuint shader);
1195     extern void (CODEGEN_FUNCPTR *DetachShader)(GLuint program, GLuint shader);
1196     extern void (CODEGEN_FUNCPTR *DisableVertexAttribArray)(GLuint index);
1197     extern void (CODEGEN_FUNCPTR *EnableVertexAttribArray)(GLuint index);
1198     extern void (CODEGEN_FUNCPTR *GetActiveAttrib)(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
1199     extern void (CODEGEN_FUNCPTR *GetActiveUniform)(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
1200     extern void (CODEGEN_FUNCPTR *GetAttachedShaders)(GLuint program, GLsizei maxCount, GLsizei *count, GLuint *obj);
1201     extern GLint (CODEGEN_FUNCPTR *GetAttribLocation)(GLuint program, const GLchar *name);
1202     extern void (CODEGEN_FUNCPTR *GetProgramiv)(GLuint program, GLenum pname, GLint *params);
1203     extern void (CODEGEN_FUNCPTR *GetProgramInfoLog)(GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
1204     extern void (CODEGEN_FUNCPTR *GetShaderiv)(GLuint shader, GLenum pname, GLint *params);
1205     extern void (CODEGEN_FUNCPTR *GetShaderInfoLog)(GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
1206     extern void (CODEGEN_FUNCPTR *GetShaderSource)(GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source);
1207     extern GLint (CODEGEN_FUNCPTR *GetUniformLocation)(GLuint program, const GLchar *name);
1208     extern void (CODEGEN_FUNCPTR *GetUniformfv)(GLuint program, GLint location, GLfloat *params);
1209     extern void (CODEGEN_FUNCPTR *GetUniformiv)(GLuint program, GLint location, GLint *params);
1210     extern void (CODEGEN_FUNCPTR *GetVertexAttribdv)(GLuint index, GLenum pname, GLdouble *params);
1211     extern void (CODEGEN_FUNCPTR *GetVertexAttribfv)(GLuint index, GLenum pname, GLfloat *params);
1212     extern void (CODEGEN_FUNCPTR *GetVertexAttribiv)(GLuint index, GLenum pname, GLint *params);
1213     extern void (CODEGEN_FUNCPTR *GetVertexAttribPointerv)(GLuint index, GLenum pname, GLvoid* *pointer);
1214     extern GLboolean (CODEGEN_FUNCPTR *IsProgram)(GLuint program);
1215     extern GLboolean (CODEGEN_FUNCPTR *IsShader)(GLuint shader);
1216     extern void (CODEGEN_FUNCPTR *LinkProgram)(GLuint program);
1217     extern void (CODEGEN_FUNCPTR *ShaderSource)(GLuint shader, GLsizei count, const GLchar* const *string, const GLint *length);
1218     extern void (CODEGEN_FUNCPTR *UseProgram)(GLuint program);
1219     extern void (CODEGEN_FUNCPTR *Uniform1f)(GLint location, GLfloat v0);
1220     extern void (CODEGEN_FUNCPTR *Uniform2f)(GLint location, GLfloat v0, GLfloat v1);
1221     extern void (CODEGEN_FUNCPTR *Uniform3f)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
1222     extern void (CODEGEN_FUNCPTR *Uniform4f)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
1223     extern void (CODEGEN_FUNCPTR *Uniform1i)(GLint location, GLint v0);
1224     extern void (CODEGEN_FUNCPTR *Uniform2i)(GLint location, GLint v0, GLint v1);
1225     extern void (CODEGEN_FUNCPTR *Uniform3i)(GLint location, GLint v0, GLint v1, GLint v2);
1226     extern void (CODEGEN_FUNCPTR *Uniform4i)(GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
1227     extern void (CODEGEN_FUNCPTR *Uniform1fv)(GLint location, GLsizei count, const GLfloat *value);
1228     extern void (CODEGEN_FUNCPTR *Uniform2fv)(GLint location, GLsizei count, const GLfloat *value);
1229     extern void (CODEGEN_FUNCPTR *Uniform3fv)(GLint location, GLsizei count, const GLfloat *value);
1230     extern void (CODEGEN_FUNCPTR *Uniform4fv)(GLint location, GLsizei count, const GLfloat *value);
1231     extern void (CODEGEN_FUNCPTR *Uniform1iv)(GLint location, GLsizei count, const GLint *value);
1232     extern void (CODEGEN_FUNCPTR *Uniform2iv)(GLint location, GLsizei count, const GLint *value);
1233     extern void (CODEGEN_FUNCPTR *Uniform3iv)(GLint location, GLsizei count, const GLint *value);
1234     extern void (CODEGEN_FUNCPTR *Uniform4iv)(GLint location, GLsizei count, const GLint *value);
1235     extern void (CODEGEN_FUNCPTR *UniformMatrix2fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
1236     extern void (CODEGEN_FUNCPTR *UniformMatrix3fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
1237     extern void (CODEGEN_FUNCPTR *UniformMatrix4fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
1238     extern void (CODEGEN_FUNCPTR *ValidateProgram)(GLuint program);
1239     extern void (CODEGEN_FUNCPTR *VertexAttribPointer)(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer);
1240 
1241     // Extension: 2.1
1242     extern void (CODEGEN_FUNCPTR *UniformMatrix2x3fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
1243     extern void (CODEGEN_FUNCPTR *UniformMatrix3x2fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
1244     extern void (CODEGEN_FUNCPTR *UniformMatrix2x4fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
1245     extern void (CODEGEN_FUNCPTR *UniformMatrix4x2fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
1246     extern void (CODEGEN_FUNCPTR *UniformMatrix3x4fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
1247     extern void (CODEGEN_FUNCPTR *UniformMatrix4x3fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
1248 
1249     // Extension: ARB_vertex_array_object
1250     extern void (CODEGEN_FUNCPTR *BindVertexArray)(GLuint ren_array);
1251     extern void (CODEGEN_FUNCPTR *DeleteVertexArrays)(GLsizei n, const GLuint *arrays);
1252     extern void (CODEGEN_FUNCPTR *GenVertexArrays)(GLsizei n, GLuint *arrays);
1253     extern GLboolean (CODEGEN_FUNCPTR *IsVertexArray)(GLuint ren_array);
1254 
1255     // Extension: ARB_map_buffer_range
1256     extern GLvoid* (CODEGEN_FUNCPTR *MapBufferRange)(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access);
1257     extern void (CODEGEN_FUNCPTR *FlushMappedBufferRange)(GLenum target, GLintptr offset, GLsizeiptr length);
1258 
1259     // Extension: ARB_framebuffer_object
1260     extern GLboolean (CODEGEN_FUNCPTR *IsRenderbuffer)(GLuint renderbuffer);
1261     extern void (CODEGEN_FUNCPTR *BindRenderbuffer)(GLenum target, GLuint renderbuffer);
1262     extern void (CODEGEN_FUNCPTR *DeleteRenderbuffers)(GLsizei n, const GLuint *renderbuffers);
1263     extern void (CODEGEN_FUNCPTR *GenRenderbuffers)(GLsizei n, GLuint *renderbuffers);
1264     extern void (CODEGEN_FUNCPTR *RenderbufferStorage)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
1265     extern void (CODEGEN_FUNCPTR *GetRenderbufferParameteriv)(GLenum target, GLenum pname, GLint *params);
1266     extern GLboolean (CODEGEN_FUNCPTR *IsFramebuffer)(GLuint framebuffer);
1267     extern void (CODEGEN_FUNCPTR *BindFramebuffer)(GLenum target, GLuint framebuffer);
1268     extern void (CODEGEN_FUNCPTR *DeleteFramebuffers)(GLsizei n, const GLuint *framebuffers);
1269     extern void (CODEGEN_FUNCPTR *GenFramebuffers)(GLsizei n, GLuint *framebuffers);
1270     extern GLenum (CODEGEN_FUNCPTR *CheckFramebufferStatus)(GLenum target);
1271     extern void (CODEGEN_FUNCPTR *FramebufferTexture1D)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
1272     extern void (CODEGEN_FUNCPTR *FramebufferTexture2D)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
1273     extern void (CODEGEN_FUNCPTR *FramebufferTexture3D)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
1274     extern void (CODEGEN_FUNCPTR *FramebufferRenderbuffer)(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
1275     extern void (CODEGEN_FUNCPTR *GetFramebufferAttachmentParameteriv)(GLenum target, GLenum attachment, GLenum pname, GLint *params);
1276     extern void (CODEGEN_FUNCPTR *GenerateMipmap)(GLenum target);
1277     extern void (CODEGEN_FUNCPTR *BlitFramebuffer)(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
1278     extern void (CODEGEN_FUNCPTR *RenderbufferStorageMultisample)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
1279     extern void (CODEGEN_FUNCPTR *FramebufferTextureLayer)(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
1280 
1281     // Extension: 3.0
1282     extern void (CODEGEN_FUNCPTR *ColorMaski)(GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
1283     extern void (CODEGEN_FUNCPTR *GetBooleani_v)(GLenum target, GLuint index, GLboolean *data);
1284     extern void (CODEGEN_FUNCPTR *GetIntegeri_v)(GLenum target, GLuint index, GLint *data);
1285     extern void (CODEGEN_FUNCPTR *Enablei)(GLenum target, GLuint index);
1286     extern void (CODEGEN_FUNCPTR *Disablei)(GLenum target, GLuint index);
1287     extern GLboolean (CODEGEN_FUNCPTR *IsEnabledi)(GLenum target, GLuint index);
1288     extern void (CODEGEN_FUNCPTR *BeginTransformFeedback)(GLenum primitiveMode);
1289     extern void (CODEGEN_FUNCPTR *EndTransformFeedback)();
1290     extern void (CODEGEN_FUNCPTR *BindBufferRange)(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
1291     extern void (CODEGEN_FUNCPTR *BindBufferBase)(GLenum target, GLuint index, GLuint buffer);
1292     extern void (CODEGEN_FUNCPTR *TransformFeedbackVaryings)(GLuint program, GLsizei count, const GLchar* const *varyings, GLenum bufferMode);
1293     extern void (CODEGEN_FUNCPTR *GetTransformFeedbackVarying)(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name);
1294     extern void (CODEGEN_FUNCPTR *ClampColor)(GLenum target, GLenum clamp);
1295     extern void (CODEGEN_FUNCPTR *BeginConditionalRender)(GLuint id, GLenum mode);
1296     extern void (CODEGEN_FUNCPTR *EndConditionalRender)();
1297     extern void (CODEGEN_FUNCPTR *VertexAttribIPointer)(GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
1298     extern void (CODEGEN_FUNCPTR *GetVertexAttribIiv)(GLuint index, GLenum pname, GLint *params);
1299     extern void (CODEGEN_FUNCPTR *GetVertexAttribIuiv)(GLuint index, GLenum pname, GLuint *params);
1300     extern void (CODEGEN_FUNCPTR *VertexAttribI1i)(GLuint index, GLint x);
1301     extern void (CODEGEN_FUNCPTR *VertexAttribI2i)(GLuint index, GLint x, GLint y);
1302     extern void (CODEGEN_FUNCPTR *VertexAttribI3i)(GLuint index, GLint x, GLint y, GLint z);
1303     extern void (CODEGEN_FUNCPTR *VertexAttribI4i)(GLuint index, GLint x, GLint y, GLint z, GLint w);
1304     extern void (CODEGEN_FUNCPTR *VertexAttribI1ui)(GLuint index, GLuint x);
1305     extern void (CODEGEN_FUNCPTR *VertexAttribI2ui)(GLuint index, GLuint x, GLuint y);
1306     extern void (CODEGEN_FUNCPTR *VertexAttribI3ui)(GLuint index, GLuint x, GLuint y, GLuint z);
1307     extern void (CODEGEN_FUNCPTR *VertexAttribI4ui)(GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
1308     extern void (CODEGEN_FUNCPTR *VertexAttribI1iv)(GLuint index, const GLint *v);
1309     extern void (CODEGEN_FUNCPTR *VertexAttribI2iv)(GLuint index, const GLint *v);
1310     extern void (CODEGEN_FUNCPTR *VertexAttribI3iv)(GLuint index, const GLint *v);
1311     extern void (CODEGEN_FUNCPTR *VertexAttribI4iv)(GLuint index, const GLint *v);
1312     extern void (CODEGEN_FUNCPTR *VertexAttribI1uiv)(GLuint index, const GLuint *v);
1313     extern void (CODEGEN_FUNCPTR *VertexAttribI2uiv)(GLuint index, const GLuint *v);
1314     extern void (CODEGEN_FUNCPTR *VertexAttribI3uiv)(GLuint index, const GLuint *v);
1315     extern void (CODEGEN_FUNCPTR *VertexAttribI4uiv)(GLuint index, const GLuint *v);
1316     extern void (CODEGEN_FUNCPTR *VertexAttribI4bv)(GLuint index, const GLbyte *v);
1317     extern void (CODEGEN_FUNCPTR *VertexAttribI4sv)(GLuint index, const GLshort *v);
1318     extern void (CODEGEN_FUNCPTR *VertexAttribI4ubv)(GLuint index, const GLubyte *v);
1319     extern void (CODEGEN_FUNCPTR *VertexAttribI4usv)(GLuint index, const GLushort *v);
1320     extern void (CODEGEN_FUNCPTR *GetUniformuiv)(GLuint program, GLint location, GLuint *params);
1321     extern void (CODEGEN_FUNCPTR *BindFragDataLocation)(GLuint program, GLuint color, const GLchar *name);
1322     extern GLint (CODEGEN_FUNCPTR *GetFragDataLocation)(GLuint program, const GLchar *name);
1323     extern void (CODEGEN_FUNCPTR *Uniform1ui)(GLint location, GLuint v0);
1324     extern void (CODEGEN_FUNCPTR *Uniform2ui)(GLint location, GLuint v0, GLuint v1);
1325     extern void (CODEGEN_FUNCPTR *Uniform3ui)(GLint location, GLuint v0, GLuint v1, GLuint v2);
1326     extern void (CODEGEN_FUNCPTR *Uniform4ui)(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
1327     extern void (CODEGEN_FUNCPTR *Uniform1uiv)(GLint location, GLsizei count, const GLuint *value);
1328     extern void (CODEGEN_FUNCPTR *Uniform2uiv)(GLint location, GLsizei count, const GLuint *value);
1329     extern void (CODEGEN_FUNCPTR *Uniform3uiv)(GLint location, GLsizei count, const GLuint *value);
1330     extern void (CODEGEN_FUNCPTR *Uniform4uiv)(GLint location, GLsizei count, const GLuint *value);
1331     extern void (CODEGEN_FUNCPTR *TexParameterIiv)(GLenum target, GLenum pname, const GLint *params);
1332     extern void (CODEGEN_FUNCPTR *TexParameterIuiv)(GLenum target, GLenum pname, const GLuint *params);
1333     extern void (CODEGEN_FUNCPTR *GetTexParameterIiv)(GLenum target, GLenum pname, GLint *params);
1334     extern void (CODEGEN_FUNCPTR *GetTexParameterIuiv)(GLenum target, GLenum pname, GLuint *params);
1335     extern void (CODEGEN_FUNCPTR *ClearBufferiv)(GLenum buffer, GLint drawbuffer, const GLint *value);
1336     extern void (CODEGEN_FUNCPTR *ClearBufferuiv)(GLenum buffer, GLint drawbuffer, const GLuint *value);
1337     extern void (CODEGEN_FUNCPTR *ClearBufferfv)(GLenum buffer, GLint drawbuffer, const GLfloat *value);
1338     extern void (CODEGEN_FUNCPTR *ClearBufferfi)(GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
1339     extern const GLubyte * (CODEGEN_FUNCPTR *GetStringi)(GLenum name, GLuint index);
1340 
1341     // Extension: ARB_uniform_buffer_object
1342     extern void (CODEGEN_FUNCPTR *GetUniformIndices)(GLuint program, GLsizei uniformCount, const GLchar* const *uniformNames, GLuint *uniformIndices);
1343     extern void (CODEGEN_FUNCPTR *GetActiveUniformsiv)(GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params);
1344     extern void (CODEGEN_FUNCPTR *GetActiveUniformName)(GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformName);
1345     extern GLuint (CODEGEN_FUNCPTR *GetUniformBlockIndex)(GLuint program, const GLchar *uniformBlockName);
1346     extern void (CODEGEN_FUNCPTR *GetActiveUniformBlockiv)(GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params);
1347     extern void (CODEGEN_FUNCPTR *GetActiveUniformBlockName)(GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName);
1348     extern void (CODEGEN_FUNCPTR *UniformBlockBinding)(GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding);
1349 
1350     // Extension: ARB_copy_buffer
1351     extern void (CODEGEN_FUNCPTR *CopyBufferSubData)(GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
1352 
1353     // Extension: 3.1
1354     extern void (CODEGEN_FUNCPTR *DrawArraysInstanced)(GLenum mode, GLint first, GLsizei count, GLsizei instancecount);
1355     extern void (CODEGEN_FUNCPTR *DrawElementsInstanced)(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei instancecount);
1356     extern void (CODEGEN_FUNCPTR *TexBuffer)(GLenum target, GLenum internalformat, GLuint buffer);
1357     extern void (CODEGEN_FUNCPTR *PrimitiveRestartIndex)(GLuint index);
1358 
1359     // Legacy
1360     extern void (CODEGEN_FUNCPTR *EnableClientState)(GLenum cap);
1361     extern void (CODEGEN_FUNCPTR *DisableClientState)(GLenum cap);
1362     extern void (CODEGEN_FUNCPTR *VertexPointer)(GLint size, GLenum type, GLsizei stride, const GLvoid *ptr);
1363     extern void (CODEGEN_FUNCPTR *NormalPointer)(GLenum type, GLsizei stride, const GLvoid *ptr);
1364     extern void (CODEGEN_FUNCPTR *ColorPointer)(GLint size, GLenum type, GLsizei stride, const GLvoid *ptr);
1365     extern void (CODEGEN_FUNCPTR *TexCoordPointer)(GLint size, GLenum type, GLsizei stride, const GLvoid *ptr);
1366     extern void (CODEGEN_FUNCPTR *TexEnvi)(GLenum target, GLenum pname, GLint param);
1367     extern void (CODEGEN_FUNCPTR *MatrixMode)(GLenum mode);
1368     extern void (CODEGEN_FUNCPTR *LoadIdentity)(void);
1369     extern void (CODEGEN_FUNCPTR *Ortho)(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near_val, GLdouble far_val);
1370     extern void (CODEGEN_FUNCPTR *Color3d)(GLdouble red, GLdouble green, GLdouble blue);
1371 }
1372 
1373 #endif // OPENGL_NOLOAD_STYLE_HPP
1374