Added tokens and procedures for GL_ARB_compute_variable_group_size
[LazOpenGLCore.git] / dglOpenGL.pas
1 { ============================================================================
2
3        OpenGL 4.5 - Headertranslation
4        Version 4.5
5
6        Supported environments and targets :
7         - (Win32) Delphi 4 and up
8         - (Win32, Win64) Delphi XE2
9         - (Win32, Win64, Linux, MacOSX) FreePascal (1.9.3 and up)
10
11 ==============================================================================
12
13        Copyright (C) DGL-OpenGL-Portteam
14        All Rights Reserved
15
16        Obtained through:
17        Bitbucket source repository - https://bitbucket.org/saschawillems/dglopengl
18        Delphi OpenGL Community(DGL) - www.delphigl.com
19
20        Converted and maintained by DGL's OpenGL-Portteam :
21          - Sascha Willems             - http://www.saschawillems.de
22          - Steffen Xonna (Lossy eX)   - http://www.dev-center.de
23        Additional input :
24          - Andrey Gruzdev (Mac OS X patch for XE2 / FPC)
25          - Lars Middendorf
26          - Martin Waldegger (Mars)
27          - Benjamin Rosseaux (BeRo)   - http://www.0ok.de
28        Additional thanks:
29            sigsegv (libdl.so)
30
31 ==============================================================================
32
33   You may retrieve the latest version of this file at the Delphi OpenGL
34   Community home page, located at http://www.delphigl.com/
35
36   The contents of this file are used with permission, subject to
37   the Mozilla Public License Version 1.1 (the "License"); you may
38   not use this file except in compliance with the License. You may
39   obtain a copy of the License at
40   http://www.mozilla.org/MPL/MPL-1.1.html
41
42   Software distributed under the License is distributed on an
43   "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
44   implied. See the License for the specific language governing
45   rights and limitations under the License.
46
47 ==============================================================================
48
49
50   History : see readme.md
51
52
53 ============================================================================== }
54
55 {$define DGL_DEPRECATED}
56 {
57   This define defines if the header should use deprecated ARB stuff or not.
58   per Default the Header use deprecated Stuff.
59 }
60
61
62 {.$define DGL_TINY_HEADER}
63 {
64   If you enable the define DGL_TINY_HEADER no function automatically will be loaded if you
65   call ActivateRenderingContext. This may some bit faster and the smart linker can delete
66   all non used functions. This will reduce the filesize of your binary file. But in this
67   case you have to load the functions by yourself. There are two ways to do this.
68
69   1. You can load whole extension by calling the func Read_Extensionname. But if you do
70      this it's possible to load functions you dont use. So you have the same "problem"
71      like before. But it's only an bit smaler.
72      > Read_GL_ARB_multitexture;
73
74   2. You are able to load only the functions you exactly need. In this case you are able
75      to use the variables of the dglOpenGL.pas. So you only need to load the functions
76      and you can use the header like before.
77      To do this you have to created and activated an opengl context and than you can load
78      the needed functions.
79      > ActivateRenderingContext(fDC, fRC);
80      > glActiveTextureARB := dglGetProcAddress('glActiveTextureARB');
81      > glMultiTexCoord2fARB := dglGetProcAddress('glMultiTexCoord2fARB');
82
83      So only the function "glActiveTextureARB" and "glMultiTexCoord2fARB" will be loaded.
84
85
86   Please notice that the extension variables won't be loaded if this define is active. But
87   you can call dglCheckExtension to check if any extension exists. You can assign them to
88   the variables of the dglOpenGL.pas so all code they use this will find them.
89
90   > GL_ARB_shading_language_100 := dglCheckExtension('GL_ARB_shading_language_100');
91 }
92
93
94 unit dglOpenGL;
95
96 interface
97
98 // defines to configure freepascal
99 {$IFDEF FPC}
100   {$MODE Delphi}
101
102   {$IFNDEF WINDOWS}
103     {$LINKLIB c}
104   {$ENDIF}
105 {$ENDIF}
106
107 // known delphi versions
108 {$IFNDEF FPC}       // if freepascal isnt defined
109   {$IFDEF VER140}   // Delphi 6
110     {$DEFINE DELPHI6_AND_DOWN}
111   {$ENDIF}
112
113   {$IFDEF VER130}   // Delphi 5
114     {$DEFINE DELPHI6_AND_DOWN}
115   {$ENDIF}
116
117   {$IFDEF VER120}   // Delphi 4
118     {$DEFINE DELPHI6_AND_DOWN}
119   {$ENDIF}
120
121   {$IFDEF VER110}   // C++ Builder 3
122     {$DEFINE DELPHI6_AND_DOWN}
123   {$ENDIF}
124
125   {$IFDEF VER100}   // Delphi 3
126     {$DEFINE DELPHI6_AND_DOWN}
127   {$ENDIF}
128 {$ENDIF}
129
130 // Options for Delphi < 5
131 {$IFDEF DELPHI6_AND_DOWN}
132   {$A+}
133 {$ELSE}
134   {$A4}
135 {$ENDIF}
136
137 // generell options
138 {$H+,O+,X+}
139
140 // detecting Windows
141 {$IFDEF Win32}          // Delphi and fpc of 32 Bit Windows
142   {$DEFINE DGL_WIN}
143 {$ENDIF}
144
145 {$IFDEF Win64}          // Delphi and fpc of 32 Bit Windows
146   {$DEFINE DGL_WIN}
147 {$ENDIF}
148
149 // detecting Linux
150 {$IFDEF linux}          // Linux
151   {$DEFINE DGL_LINUX}
152 {$ENDIF}
153
154 {$IFDEF DARWIN}  // Mac OS X and FPC
155    {$DEFINE DGL_MAC}
156 {$ENDIF}
157
158 {$IFDEF DELPHI}  // Mac OS X add Delphi
159 {$IFDEF MACOS}
160    {$DEFINE DGL_MAC}
161 {$ENDIF}
162 {$ENDIF}
163
164
165 // detecting 64 Bit CPU
166 {$IFDEF CPU64}          // fpc on 64 bit cpus
167   {$DEFINE DGL_64BIT}   // dgl define for 64 bit
168 {$ENDIF}
169
170
171
172 uses
173   {$IFDEF FPC}{$IFDEF DARWIN}dynlibs,{$ENDIF}{$ENDIF}  // LoadLibrary functions
174   SysUtils
175   {$IFDEF DGL_WIN}, Windows{$ENDIF}
176   {$IFDEF DGL_LINUX}, X, XLib, XUtil{$ENDIF}
177   ;
178
179 type
180   // Needed for Delphi 6 and less (defined in system.pas for Delphi 7)
181   PPointer = ^Pointer;
182   PCardinal = ^Cardinal;
183
184   GLenum = Cardinal;
185   GLboolean = BYTEBOOL;
186   GLbitfield = Cardinal;
187   GLbyte = Shortint;
188   GLshort = SmallInt;
189   GLint = Integer;
190   GLsizei = Integer;
191   GLubyte = Byte;
192   GLushort = Word;
193   GLuint = Cardinal;
194   GLfloat = Single;
195   GLclampf = Single;
196   GLdouble = Double;
197   GLclampd = Double;
198   GLvoid = Pointer;
199   GLint64 = Int64;
200   GLuint64 = {$IFDEF DELPHI6_AND_DOWN} Int64 {$ELSE} UInt64 {$ENDIF};
201
202   TGLenum = GLenum;
203   TGLboolean = GLboolean;
204   TGLbitfield = GLbitfield;
205   TGLbyte = GLbyte;
206   TGLshort = GLshort;
207   TGLint = GLint;
208   TGLsizei = GLsizei;
209   TGLubyte = GLubyte;
210   TGLushort = GLushort;
211   TGLuint = GLuint;
212   TGLfloat = GLfloat;
213   TGLclampf = GLclampf;
214   TGLdouble = GLdouble;
215   TGLclampd = GLclampd;
216   TGLvoid = GLvoid;
217   TGLint64 = GLint64;
218   TGLuint64 = GLuint64;
219
220   PGLboolean = ^GLboolean;
221   PGLbyte = ^GLbyte;
222   PGLshort = ^GLshort;
223   PGLint = ^GLint;
224   PGLsizei = ^GLsizei;
225   PGLubyte = ^GLubyte;
226   PGLushort = ^GLushort;
227   PGLuint = ^GLuint;
228   PGLclampf = ^GLclampf;
229   PGLfloat = ^GLfloat;
230   PGLdouble = ^GLdouble;
231   PGLclampd = ^GLclampd;
232   PGLenum = ^GLenum;
233   PGLvoid = Pointer;
234   PPGLvoid = ^PGLvoid;
235   PGLint64 = ^GLint64;
236   PGLuint64 = ^GLuint64;
237
238   // GL_NV_half_float
239   GLhalfNV = WORD;
240   TGLhalfNV = GLhalfNV;
241   PGLhalfNV = ^GLhalfNV;
242
243   // GL_ARB_shader_objects
244   PGLHandleARB = ^GLHandleARB;
245   GLHandleARB = Integer;
246   GLcharARB = AnsiChar;
247   PGLcharARB = PAnsiChar;
248   PPGLcharARB = ^PGLcharARB;
249
250   // GL_VERSION_1_5
251   GLintptr = GLint;
252   PGLintptr = ^GLintptr;
253   GLsizeiptr = GLsizei;
254
255   // GL_ARB_vertex_buffer_object
256   GLintptrARB = GLint;
257   GLsizeiptrARB = GLsizei;
258
259   // GL_VERSION_2_0
260   GLHandle = Integer;
261   PGLchar = PAnsiChar;
262   PPGLchar = ^PGLChar;
263
264   // GL_EXT_timer_query
265   GLint64EXT = Int64;
266   TGLint64EXT = GLint64EXT;
267   PGLint64EXT = ^GLint64EXT;
268
269   GLuint64EXT = GLuint64;
270   TGLuint64EXT = GLuint64EXT;
271   PGLuint64EXT = ^GLuint64EXT;
272
273   // WGL_ARB_pbuffer
274   HPBUFFERARB = THandle;
275
276   // WGL_EXT_pbuffer
277   HPBUFFEREXT = THandle;
278
279   // WGL_NV_present_video
280   PHVIDEOOUTPUTDEVICENV = ^HVIDEOOUTPUTDEVICENV;
281   HVIDEOOUTPUTDEVICENV = THandle;
282
283   // WGL_NV_video_output
284   PHPVIDEODEV = ^HPVIDEODEV;
285   HPVIDEODEV = THandle;
286
287   // WGL_NV_gpu_affinity
288   PHPGPUNV = ^HPGPUNV;
289   PHGPUNV = ^HGPUNV;
290
291   // WGL_NV_video_capture
292   HVIDEOINPUTDEVICENV = THandle;
293   PHVIDEOINPUTDEVICENV = ^HVIDEOINPUTDEVICENV;
294
295   HPGPUNV = THandle;
296   HGPUNV = THandle;
297
298   // GL_ARB_sync
299   GLsync = Pointer;
300
301   // GL_ARB_cl_event
302   { These incomplete types let us declare types compatible with OpenCL's cl_context and cl_event }
303   _cl_context = record end;
304   _cl_event = record end;
305   p_cl_context = ^_cl_context;
306   p_cl_event = ^_cl_event;
307
308   // GL_ARB_compute_variable_group_size
309   TglDispatchComputeGroupSizeARB = procedure (num_groups_x : GLuint; num_groups_y : GLuint; num_groups_z : GLuint; group_size_x : GLuint; group_size_y : GLuint; group_size_z : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
310
311   // GL_ARB_debug_output
312   TglDebugProcARB = procedure (source: GLenum; type_: GLenum; id: GLuint; severity: GLenum; length: GLsizei; const message_: PGLchar; userParam: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
313
314   // GL_AMD_debug_output
315   TglDebugProcAMD = procedure (id: GLuint; category: GLenum; severity: GLenum; length: GLsizei; const message_: PGLchar; userParam: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
316
317   // GL_KHR_debug (4.3)
318   TglDebugProc = procedure(source : GLEnum; type_ : GLEnum; id : GLUInt; severity : GLUInt; length : GLsizei; const message_ : PGLCHar; userParam : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
319
320   // GL_NV_vdpau_interop
321   GLvdpauSurfaceNV = GLintptr;
322   PGLvdpauSurfaceNV = ^GLvdpauSurfaceNV;
323
324
325   // GLX
326   {$IFDEF DGL_LINUX}
327     GLXContext = Pointer;
328     GLXContextID = TXID;
329     GLXDrawable = TXID;
330     GLXFBConfig = Pointer;
331     GLXPbuffer = TXID;
332     GLXPixmap = TXID;
333     GLXWindow = TXID;
334
335     Window = TXID;
336     Colormap = TXID;
337     Pixmap = TXID;
338     Font = TXID;
339   {$ENDIF}
340
341   // Datatypes corresponding to GL's types TGL(name)(type)(count)
342   TGLVectorub2 = array[0..1] of GLubyte;
343   TGLVectori2  = array[0..1] of GLint;
344   TGLVectorf2  = array[0..1] of GLfloat;
345   TGLVectord2  = array[0..1] of GLdouble;
346   TGLVectorp2  = array[0..1] of Pointer;
347
348   TGLVectorub3 = array[0..2] of GLubyte;
349   TGLVectori3  = array[0..2] of GLint;
350   TGLVectorf3  = array[0..2] of GLfloat;
351   TGLVectord3  = array[0..2] of GLdouble;
352   TGLVectorp3  = array[0..2] of Pointer;
353
354   TGLVectorub4 = array[0..3] of GLubyte;
355   TGLVectori4  = array[0..3] of GLint;
356   TGLVectorf4  = array[0..3] of GLfloat;
357   TGLVectord4  = array[0..3] of GLdouble;
358   TGLVectorp4  = array[0..3] of Pointer;
359
360   TGLArrayf4 = TGLVectorf4;
361   TGLArrayf3 = TGLVectorf3;
362   TGLArrayd3 = TGLVectord3;
363   TGLArrayi4 = TGLVectori4;
364   TGLArrayp4 = TGLVectorp4;
365
366   TGlMatrixub3 = array[0..2, 0..2] of GLubyte;
367   TGlMatrixi3  = array[0..2, 0..2] of GLint;
368   TGLMatrixf3  = array[0..2, 0..2] of GLfloat;
369   TGLMatrixd3  = array[0..2, 0..2] of GLdouble;
370
371   TGlMatrixub4 = array[0..3, 0..3] of GLubyte;
372   TGlMatrixi4  = array[0..3, 0..3] of GLint;
373   TGLMatrixf4  = array[0..3, 0..3] of GLfloat;
374   TGLMatrixd4  = array[0..3, 0..3] of GLdouble;
375
376   TGLVector3f = TGLVectorf3;
377
378   // Datatypes corresponding to OpenGL12.pas for easy porting
379   TVector3d = TGLVectord3;
380
381   TVector4i = TGLVectori4;
382   TVector4f = TGLVectorf4;
383   TVector4p = TGLVectorp4;
384
385   TMatrix4f = TGLMatrixf4;
386   TMatrix4d = TGLMatrixd4;
387
388   PGLMatrixd4 = ^TGLMatrixd4;
389   PVector4i = ^TVector4i;
390
391
392
393 {$IFDEF FPC}
394   TRect = packed record
395     Left, Top, Right, Bottom: Longint;
396   end;
397 {$ENDIF}
398
399
400   PGPU_DEVICE = ^GPU_DEVICE;
401   GPU_DEVICE = record
402     cb: DWORD;
403     DeviceName: array [0..31] of AnsiChar;
404     DeviceString: array [0..127] of AnsiChar;
405     Flags: DWORD;
406     rcVirtualScreen: TRect;
407   end;
408
409
410 type
411 {$IFDEF FPC}
412   {$IFDEF DGL_WIN}
413     PWGLSwap = ^TWGLSwap;
414     {$EXTERNALSYM _WGLSWAP}
415       _WGLSWAP = packed record
416         hdc: HDC;
417         uiFlags: UINT;
418       end;
419
420     TWGLSwap = _WGLSWAP;
421   {$EXTERNALSYM WGLSWAP}
422     WGLSWAP = _WGLSWAP;
423
424   {$ENDIF}
425 {$ENDIF}
426
427   // GLU types
428   TGLUNurbs = record
429   end;
430   TGLUQuadric = record
431   end;
432   TGLUTesselator = record
433   end;
434   PGLUNurbs = ^TGLUNurbs;
435   PGLUQuadric = ^TGLUQuadric;
436   PGLUTesselator = ^TGLUTesselator;
437   // backwards compatibility
438   TGLUNurbsObj = TGLUNurbs;
439   TGLUQuadricObj = TGLUQuadric;
440   TGLUTesselatorObj = TGLUTesselator;
441   TGLUTriangulatorObj = TGLUTesselator;
442   PGLUNurbsObj = PGLUNurbs;
443   PGLUQuadricObj = PGLUQuadric;
444   PGLUTesselatorObj = PGLUTesselator;
445   PGLUTriangulatorObj = PGLUTesselator;
446
447   // GLUQuadricCallback
448   TGLUQuadricErrorProc = procedure(errorCode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
449   // GLUTessCallback
450   TGLUTessBeginProc = procedure(AType: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
451   TGLUTessEdgeFlagProc = procedure(Flag: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
452   TGLUTessVertexProc = procedure(VertexData: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
453   TGLUTessEndProc = procedure; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
454   TGLUTessErrorProc = procedure(ErrNo: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
455   TGLUTessCombineProc = procedure(Coords: TGLArrayd3; VertexData: TGLArrayp4; Weight: TGLArrayf4; OutData: PPointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
456   TGLUTessBeginDataProc = procedure(AType: GLenum; UserData: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
457   TGLUTessEdgeFlagDataProc = procedure(Flag: GLboolean; UserData: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
458   TGLUTessVertexDataProc = procedure(VertexData: Pointer; UserData: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
459   TGLUTessEndDataProc = procedure(UserData: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
460   TGLUTessErrorDataProc = procedure(ErrNo: GLenum; UserData: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
461   TGLUTessCombineDataProc = procedure(Coords: TGLArrayd3; VertexData: TGLArrayp4; Weight: TGLArrayf4; OutData: PPointer; UserData: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
462   // GLUNurbsCallback
463   TGLUNurbsErrorProc = procedure(ErrorCode: GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
464
465 var
466   GL_VERSION_1_0,
467   GL_VERSION_1_1,
468   GL_VERSION_1_2,
469   GL_VERSION_1_3,
470   GL_VERSION_1_4,
471   GL_VERSION_1_5,
472   GL_VERSION_2_0,
473   GL_VERSION_2_1,
474   GL_VERSION_3_0,
475   GL_VERSION_3_1,
476   GL_VERSION_3_2,
477   GL_VERSION_3_3,
478   GL_VERSION_4_0,
479   GL_VERSION_4_1,
480   GL_VERSION_4_2,
481   GL_VERSION_4_3,
482   GL_VERSION_4_4,
483   GL_VERSION_4_5,
484   GLU_VERSION_1_1,
485   GLU_VERSION_1_2,
486   GLU_VERSION_1_3,
487   GL_3DFX_multisample,
488   GL_3DFX_tbuffer,
489   GL_3DFX_texture_compression_FXT1,
490   GL_APPLE_client_storage,
491   GL_APPLE_element_array,
492   GL_APPLE_fence,
493   GL_APPLE_specular_vector,
494   GL_APPLE_transform_hint,
495   GL_APPLE_vertex_array_object,
496   GL_APPLE_vertex_array_range,
497   GL_APPLE_ycbcr_422,
498   GL_APPLE_texture_range,
499   GL_APPLE_float_pixels,
500   GL_APPLE_vertex_program_evaluators,
501   GL_APPLE_aux_depth_stencil,
502   GL_APPLE_object_purgeable,
503   GL_APPLE_row_bytes,
504   GL_APPLE_rgb_422,
505   GL_ARB_depth_texture,
506   GL_ARB_fragment_program,
507   GL_ARB_imaging,
508   GL_ARB_matrix_palette,
509   GL_ARB_multisample,
510   GL_ARB_multitexture,
511   GL_ARB_point_parameters,
512   GL_ARB_shadow,
513   GL_ARB_shadow_ambient,
514   GL_ARB_texture_border_clamp,
515   GL_ARB_texture_compression,
516   GL_ARB_texture_cube_map,
517   GL_ARB_texture_env_add,
518   GL_ARB_texture_env_combine,
519   GL_ARB_texture_env_crossbar,
520   GL_ARB_texture_env_dot3,
521   GL_ARB_texture_mirrored_repeat,
522   GL_ARB_transpose_matrix,
523   GL_ARB_vertex_blend,
524   GL_ARB_vertex_buffer_object,
525   GL_ARB_vertex_program,
526   GL_ARB_window_pos,
527   GL_ARB_shader_objects,
528   GL_ARB_vertex_shader,
529   GL_ARB_fragment_shader,
530   GL_ARB_shading_language_100,
531   GL_ARB_occlusion_query,
532   GL_ARB_texture_non_power_of_two,
533   GL_ARB_point_sprite,
534   GL_ARB_fragment_program_shadow,
535   GL_ARB_draw_buffers,
536   GL_ARB_texture_rectangle,
537   GL_ARB_color_buffer_float,
538   GL_ARB_half_float_pixel,
539   GL_ARB_texture_float,
540   GL_ARB_pixel_buffer_object,
541   GL_ARB_depth_buffer_float,
542   GL_ARB_draw_instanced,
543   GL_ARB_framebuffer_object,
544   GL_ARB_framebuffer_sRGB,
545   GL_ARB_geometry_shader4,
546   GL_ARB_half_float_vertex,
547   GL_ARB_instanced_arrays,
548   GL_ARB_map_buffer_range,
549   GL_ARB_texture_buffer_object,
550   GL_ARB_texture_compression_rgtc,
551   GL_ARB_texture_rg,
552   GL_ARB_vertex_array_object,
553   GL_ARB_uniform_buffer_object,
554   GL_ARB_compatibility,
555   GL_ARB_copy_buffer,
556   GL_ARB_shader_texture_lod,
557   GL_ARB_depth_clamp,
558   GL_ARB_draw_elements_base_vertex,
559   GL_ARB_fragment_coord_conventions,
560   GL_ARB_provoking_vertex,
561   GL_ARB_seamless_cube_map,
562   GL_ARB_sync,
563   GL_ARB_texture_multisample,
564   GL_ARB_vertex_array_bgra,
565   GL_ARB_draw_buffers_blend,
566   GL_ARB_sample_shading,
567   GL_ARB_texture_cube_map_array,
568   GL_ARB_texture_gather,
569   GL_ARB_texture_query_lod,
570   GL_ARB_shading_language_include,
571   GL_ARB_texture_compression_bptc,
572   GL_ARB_blend_func_extended,
573   GL_ARB_explicit_attrib_location,
574   GL_ARB_occlusion_query2,
575   GL_ARB_sampler_objects,
576   GL_ARB_shader_bit_encoding,
577   GL_ARB_texture_rgb10_a2ui,
578   GL_ARB_texture_swizzle,
579   GL_ARB_timer_query,
580   GL_ARB_vertex_type_2_10_10_10_rev,
581   GL_ARB_draw_indirect,
582   GL_ARB_gpu_shader5,
583   GL_ARB_gpu_shader_fp64,
584   GL_ARB_shader_subroutine,
585   GL_ARB_tessellation_shader,
586   GL_ARB_texture_buffer_object_rgb32,
587   GL_ARB_transform_feedback2,
588   GL_ARB_transform_feedback3,
589   GL_ARB_ES2_compatibility,
590   GL_ARB_get_program_binary,
591   GL_ARB_separate_shader_objects,
592   GL_ARB_shader_precision,
593   GL_ARB_vertex_attrib_64bit,
594   GL_ARB_viewport_array,
595
596   // GL 4.2
597   GL_ARB_base_instance,
598   GL_ARB_shading_language_420pack,
599   GL_ARB_transform_feedback_instanced,
600   GL_ARB_compressed_texture_pixel_storage,
601   GL_ARB_conservative_depth,
602   GL_ARB_internalformat_query,
603   GL_ARB_map_buffer_alignment,
604   GL_ARB_shader_atomic_counters,
605   GL_ARB_shader_image_load_store,
606   GL_ARB_shading_language_packing,
607   GL_ARB_texture_storage,
608
609
610   // GL 4.3
611   GL_ARB_arrays_of_arrays,
612   GL_ARB_fragment_layer_viewport,
613   GL_ARB_shader_image_size,
614   GL_ARB_ES3_compatibility,
615   GL_ARB_clear_buffer_object,
616   GL_ARB_compute_shader,
617   GL_ARB_copy_image,
618   GL_KHR_debug,
619   GL_ARB_explicit_uniform_location,
620   GL_ARB_framebuffer_no_attachments,
621   GL_ARB_internalformat_query2,
622   GL_ARB_invalidate_subdata,
623   GL_ARB_multi_draw_indirect,
624   GL_ARB_program_interface_query,
625   GL_ARB_robust_buffer_access_behavior,
626   GL_ARB_shader_storage_buffer_object,
627   GL_ARB_stencil_texturing,
628   GL_ARB_texture_buffer_range,
629   GL_ARB_texture_query_levels,
630   GL_ARB_texture_storage_multisample,
631   GL_ARB_texture_view,
632   GL_ARB_vertex_attrib_binding,
633   GL_NV_path_rendering,
634   GL_AMD_pinned_memory,
635   GL_AMD_stencil_operation_extended,
636   GL_AMD_vertex_shader_viewport_index,
637   GL_AMD_vertex_shader_layer,
638   GL_NV_bindless_texture,
639   GL_NV_shader_atomic_float,
640   GL_AMD_query_buffer_object,
641
642
643   // GL 4.4
644   GL_ARB_buffer_storage,
645   GL_ARB_clear_texture,
646   GL_ARB_enhanced_layouts,
647   GL_ARB_multi_bind,
648   GL_ARB_query_buffer_object,
649   GL_ARB_texture_mirror_clamp_to_edge,
650   GL_ARB_texture_stencil8,
651   GL_ARB_vertex_type_10f_11f_11f_rev,
652   GL_ARB_bindless_texture,
653   GL_ARB_sparse_texture,
654
655   // GL 4.5
656   GL_ARB_clip_control,
657   GL_ARB_cull_distance,
658   GL_ARB_ES3_1_compatibility,
659   GL_ARB_conditional_render_inverted,
660   GL_KHR_context_flush_control,
661   GL_ARB_derivative_control,
662   GL_ARB_direct_state_access,
663   GL_ARB_get_texture_sub_image,
664   GL_KHR_robustness,
665   GL_KHR_blend_equation_advanced,
666   GL_KHR_blend_equation_advanced_coherent,
667   GL_KHR_robust_buffer_access_behavior,
668   GL_ARB_shader_texture_image_samples,
669   GL_ARB_texture_barrier,
670
671   GL_ARB_cl_event,
672   GL_ARB_compute_variable_group_size,
673   GL_ARB_debug_output,
674   GL_ARB_robustness,
675   GL_ARB_shader_stencil_export,
676   GL_ATI_draw_buffers,
677   GL_ATI_element_array,
678   GL_ATI_envmap_bumpmap,
679   GL_ATI_fragment_shader,
680   GL_ATI_map_object_buffer,
681   GL_ATI_pn_triangles,
682   GL_ATI_separate_stencil,
683   GL_ATI_text_fragment_shader,
684   GL_ATI_texture_env_combine3,
685   GL_ATI_texture_float,
686   GL_ATI_texture_mirror_once,
687   GL_ATI_vertex_array_object,
688   GL_ATI_vertex_attrib_array_object,
689   GL_ATI_vertex_streams,
690   GL_ATI_meminfo,
691   GL_AMD_performance_monitor,
692   GL_AMD_texture_texture4,
693   GL_AMD_vertex_shader_tesselator,
694   GL_AMD_draw_buffers_blend,
695   GL_AMD_shader_stencil_export,
696   GL_AMD_seamless_cubemap_per_texture,
697   GL_AMD_conservative_depth,
698   GL_AMD_name_gen_delete,
699   GL_AMD_debug_output,
700   GL_AMD_transform_feedback3_lines_triangles,
701   GL_AMD_depth_clamp_separate,
702   GL_EXT_422_pixels,
703   GL_EXT_abgr,
704   GL_EXT_bgra,
705   GL_EXT_blend_color,
706   GL_EXT_blend_func_separate,
707   GL_EXT_blend_logic_op,
708   GL_EXT_blend_minmax,
709   GL_EXT_blend_subtract,
710   GL_EXT_clip_volume_hint,
711   GL_EXT_cmyka,
712   GL_EXT_color_matrix,
713   GL_EXT_color_subtable,
714   GL_EXT_compiled_vertex_array,
715   GL_EXT_convolution,
716   GL_EXT_coordinate_frame,
717   GL_EXT_copy_texture,
718   GL_EXT_cull_vertex,
719   GL_EXT_draw_range_elements,
720   GL_EXT_fog_coord,
721   GL_EXT_framebuffer_object,
722   GL_EXT_histogram,
723   GL_EXT_index_array_formats,
724   GL_EXT_index_func,
725   GL_EXT_index_material,
726   GL_EXT_index_texture,
727   GL_EXT_light_texture,
728   GL_EXT_misc_attribute,
729   GL_EXT_multi_draw_arrays,
730   GL_EXT_multisample,
731   GL_EXT_packed_pixels,
732   GL_EXT_paletted_texture,
733   GL_EXT_pixel_transform,
734   GL_EXT_pixel_transform_color_table,
735   GL_EXT_point_parameters,
736   GL_EXT_polygon_offset,
737   GL_EXT_rescale_normal,
738   GL_EXT_secondary_color,
739   GL_EXT_separate_specular_color,
740   GL_EXT_shadow_funcs,
741   GL_EXT_shared_texture_palette,
742   GL_EXT_stencil_two_side,
743   GL_EXT_stencil_wrap,
744   GL_EXT_subtexture,
745   GL_EXT_texture,
746   GL_EXT_texture3D,
747   GL_EXT_texture_compression_s3tc,
748   GL_EXT_texture_cube_map,
749   GL_EXT_texture_edge_clamp,
750   GL_EXT_texture_env_add,
751   GL_EXT_texture_env_combine,
752   GL_EXT_texture_env_dot3,
753   GL_EXT_texture_filter_anisotropic,
754   GL_EXT_texture_lod_bias,
755   GL_EXT_texture_object,
756   GL_EXT_texture_perturb_normal,
757   GL_EXT_texture_rectangle,
758   GL_EXT_vertex_array,
759   GL_EXT_vertex_shader,
760   GL_EXT_vertex_weighting,
761   GL_EXT_depth_bounds_test,
762   GL_EXT_texture_mirror_clamp,
763   GL_EXT_blend_equation_separate,
764   GL_EXT_pixel_buffer_object,
765   GL_EXT_texture_compression_dxt1,
766   GL_EXT_stencil_clear_tag,
767   GL_EXT_packed_depth_stencil,
768   GL_EXT_texture_sRGB,
769   GL_EXT_framebuffer_blit,
770   GL_EXT_framebuffer_multisample,
771   GL_EXT_timer_query,
772   GL_EXT_gpu_program_parameters,
773   GL_EXT_bindable_uniform,
774   GL_EXT_draw_buffers2,
775   GL_EXT_draw_instanced,
776   GL_EXT_framebuffer_sRGB,
777   GL_EXT_geometry_shader4,
778   GL_EXT_gpu_shader4,
779   GL_EXT_packed_float,
780   GL_EXT_texture_array,
781   GL_EXT_texture_buffer_object,
782   GL_EXT_texture_compression_latc,
783   GL_EXT_texture_compression_rgtc,
784   GL_EXT_texture_integer,
785   GL_EXT_texture_shared_exponent,
786   GL_EXT_transform_feedback,
787   GL_EXT_direct_state_access,
788   GL_EXT_vertex_array_bgra,
789   GL_EXT_texture_swizzle,
790   GL_EXT_provoking_vertex,
791   GL_EXT_texture_snorm,
792   GL_EXT_separate_shader_objects,
793   GL_EXT_shader_image_load_store,
794   GL_EXT_vertex_attrib_64bit,
795   GL_EXT_texture_sRGB_decode,
796   GL_FfdMaskSGIX,
797   GL_HP_convolution_border_modes,
798   GL_HP_image_transform,
799   GL_HP_occlusion_test,
800   GL_HP_texture_lighting,
801   GL_IBM_cull_vertex,
802   GL_IBM_multimode_draw_arrays,
803   GL_IBM_rasterpos_clip,
804   GL_IBM_texture_mirrored_repeat,
805   GL_IBM_vertex_array_lists,
806   GL_INGR_blend_func_separate,
807   GL_INGR_color_clamp,
808   GL_INGR_interlace_read,
809   GL_INGR_palette_buffer,
810   GL_INTEL_parallel_arrays,
811   GL_INTEL_texture_scissor,
812   GL_MESA_resize_buffers,
813   GL_MESA_window_pos,
814   GL_NV_blend_square,
815   GL_NV_copy_depth_to_color,
816   GL_NV_depth_clamp,
817   GL_NV_evaluators,
818   GL_NV_fence,
819   GL_NV_float_buffer,
820   GL_NV_fog_distance,
821   GL_NV_fragment_program,
822   GL_NV_half_float,
823   GL_NV_light_max_exponent,
824   GL_NV_multisample_filter_hint,
825   GL_NV_occlusion_query,
826   GL_NV_packed_depth_stencil,
827   GL_NV_pixel_data_range,
828   GL_NV_point_sprite,
829   GL_NV_primitive_restart,
830   GL_NV_register_combiners,
831   GL_NV_register_combiners2,
832   GL_NV_texgen_emboss,
833   GL_NV_texgen_reflection,
834   GL_NV_texture_compression_vtc,
835   GL_NV_texture_env_combine4,
836   GL_NV_texture_expand_normal,
837   GL_NV_texture_rectangle,
838   GL_NV_texture_shader,
839   GL_NV_texture_shader2,
840   GL_NV_texture_shader3,
841   GL_NV_vertex_array_range,
842   GL_NV_vertex_array_range2,
843   GL_NV_vertex_program,
844   GL_NV_vertex_program1_1,
845   GL_NV_vertex_program2,
846   GL_NV_fragment_program_option,
847   GL_NV_fragment_program2,
848   GL_NV_vertex_program2_option,
849   GL_NV_vertex_program3,
850   GL_NV_depth_buffer_float,
851   GL_NV_fragment_program4,
852   GL_NV_framebuffer_multisample_coverage,
853   GL_NV_geometry_program4,
854   GL_NV_gpu_program4,
855   GL_NV_parameter_buffer_object,
856   GL_NV_transform_feedback,
857   GL_NV_vertex_program4,
858   GL_NV_conditional_render,
859   GL_NV_present_video,
860   GL_NV_explicit_multisample,
861   GL_NV_transform_feedback2,
862   GL_NV_video_capture,
863   GL_NV_copy_image,
864   GL_NV_parameter_buffer_object2,
865   GL_NV_shader_buffer_load,
866   GL_NV_vertex_buffer_unified_memory,
867   GL_NV_gpu_program5,
868   GL_NV_gpu_shader5,
869   GL_NV_shader_buffer_store,
870   GL_NV_tessellation_program5,
871   GL_NV_vertex_attrib_integer_64bit,
872   GL_NV_multisample_coverage,
873   GL_NV_vdpau_interop,
874   GL_NV_texture_barrier,
875   GL_OML_interlace,
876   GL_OML_resample,
877   GL_OML_subsample,
878   GL_PGI_misc_hints,
879   GL_PGI_vertex_hints,
880   GL_REND_screen_coordinates,
881   GL_S3_s3tc,
882   GL_SGIS_detail_texture,
883   GL_SGIS_fog_function,
884   GL_SGIS_generate_mipmap,
885   GL_SGIS_multisample,
886   GL_SGIS_pixel_texture,
887   GL_SGIS_point_line_texgen,
888   GL_SGIS_point_parameters,
889   GL_SGIS_sharpen_texture,
890   GL_SGIS_texture4D,
891   GL_SGIS_texture_border_clamp,
892   GL_SGIS_texture_color_mask,
893   GL_SGIS_texture_edge_clamp,
894   GL_SGIS_texture_filter4,
895   GL_SGIS_texture_lod,
896   GL_SGIS_texture_select,
897   GL_SGIX_async,
898   GL_SGIX_async_histogram,
899   GL_SGIX_async_pixel,
900   GL_SGIX_blend_alpha_minmax,
901   GL_SGIX_calligraphic_fragment,
902   GL_SGIX_clipmap,
903   GL_SGIX_convolution_accuracy,
904   GL_SGIX_depth_pass_instrument,
905   GL_SGIX_depth_texture,
906   GL_SGIX_flush_raster,
907   GL_SGIX_fog_offset,
908   GL_SGIX_fog_scale,
909   GL_SGIX_fragment_lighting,
910   GL_SGIX_framezoom,
911   GL_SGIX_igloo_interface,
912   GL_SGIX_impact_pixel_texture,
913   GL_SGIX_instruments,
914   GL_SGIX_interlace,
915   GL_SGIX_ir_instrument1,
916   GL_SGIX_list_priority,
917   GL_SGIX_pixel_texture,
918   GL_SGIX_pixel_tiles,
919   GL_SGIX_polynomial_ffd,
920   GL_SGIX_reference_plane,
921   GL_SGIX_resample,
922   GL_SGIX_scalebias_hint,
923   GL_SGIX_shadow,
924   GL_SGIX_shadow_ambient,
925   GL_SGIX_sprite,
926   GL_SGIX_subsample,
927   GL_SGIX_tag_sample_buffer,
928   GL_SGIX_texture_add_env,
929   GL_SGIX_texture_coordinate_clamp,
930   GL_SGIX_texture_lod_bias,
931   GL_SGIX_texture_multi_buffer,
932   GL_SGIX_texture_scale_bias,
933   GL_SGIX_texture_select,
934   GL_SGIX_vertex_preclip,
935   GL_SGIX_ycrcb,
936   GL_SGIX_ycrcb_subsample,
937   GL_SGIX_ycrcba,
938   GL_SGI_color_matrix,
939   GL_SGI_color_table,
940   GL_SGI_depth_pass_instrument,
941   GL_SGI_texture_color_table,
942   GL_SUNX_constant_data,
943   GL_SUN_convolution_border_modes,
944   GL_SUN_global_alpha,
945   GL_SUN_mesh_array,
946   GL_SUN_slice_accum,
947   GL_SUN_triangle_list,
948   GL_SUN_vertex,
949
950   // WGL
951   GL_WIN_phong_shading,
952   GL_WIN_specular_fog,
953   WGL_3DFX_multisample,
954   WGL_ARB_buffer_region,
955   WGL_ARB_extensions_string,
956   WGL_ARB_make_current_read,
957   WGL_ARB_multisample,
958   WGL_ARB_pbuffer,
959   WGL_ARB_pixel_format,
960   WGL_ARB_pixel_format_float,
961   WGL_ARB_render_texture,
962   WGL_ARB_create_context,
963   WGL_ARB_create_context_profile,
964   WGL_ARB_framebuffer_sRGB,
965   WGL_ARB_create_context_robustness,
966   WGL_ATI_pixel_format_float,
967   WGL_AMD_gpu_association,
968   WGL_EXT_depth_float,
969   WGL_EXT_display_color_table,
970   WGL_EXT_extensions_string,
971   WGL_EXT_make_current_read,
972   WGL_EXT_multisample,
973   WGL_EXT_pbuffer,
974   WGL_EXT_pixel_format,
975   WGL_EXT_swap_control,
976   WGL_EXT_create_context_es2_profile,
977   WGL_I3D_digital_video_control,
978   WGL_I3D_gamma,
979   WGL_I3D_genlock,
980   WGL_I3D_image_buffer,
981   WGL_I3D_swap_frame_lock,
982   WGL_I3D_swap_frame_usage,
983   WGL_NV_float_buffer,
984   WGL_NV_render_depth_texture,
985   WGL_NV_render_texture_rectangle,
986   WGL_NV_vertex_array_range,
987   WGL_NV_present_video,
988   WGL_NV_video_output,
989   WGL_NV_swap_group,
990   WGL_NV_gpu_affinity,
991   WGL_NV_video_capture,
992   WGL_NV_copy_image,
993   WGL_NV_multisample_coverage,
994   WGL_NV_DX_interop,
995   WGL_OML_sync_control,
996   WGL_3DL_stereo_control,
997   WGL_ARB_context_flush_control,
998   WIN_draw_range_elements,
999   WIN_swap_hint,
1000
1001   // GLX
1002   GLX_VERSION_1_3,
1003   GLX_VERSION_1_4,
1004   GLX_ARB_multisample,
1005   GLX_ARB_fbconfig_float,
1006   GLX_ARB_get_proc_address,
1007   GLX_ARB_create_context,
1008   GLX_ARB_create_context_profile,
1009   GLX_ARB_vertex_buffer_object,
1010   GLX_ARB_framebuffer_sRGB,
1011   GLX_ARB_create_context_robustness,
1012   GLX_EXT_visual_info,
1013   GLX_EXT_visual_rating,
1014   GLX_EXT_import_context,
1015   GLX_EXT_fbconfig_packed_float,
1016   GLX_EXT_framebuffer_sRGB,
1017   GLX_EXT_texture_from_pixmap,
1018   GLX_EXT_swap_control,
1019   GLX_ARB_context_flush_control,
1020   GLX_EXT_create_context_es2_profile : Boolean;
1021
1022 const
1023   // GL_VERSION_1_1
1024   { AttribMask }
1025   GL_DEPTH_BUFFER_BIT = $00000100;
1026   GL_STENCIL_BUFFER_BIT = $00000400;
1027   GL_COLOR_BUFFER_BIT = $00004000;
1028   { Boolean }
1029   GL_TRUE = 1;
1030   GL_FALSE = 0;
1031   { BeginMode }
1032   GL_POINTS = $0000;
1033   GL_LINES = $0001;
1034   GL_LINE_LOOP = $0002;
1035   GL_LINE_STRIP = $0003;
1036   GL_TRIANGLES = $0004;
1037   GL_TRIANGLE_STRIP = $0005;
1038   GL_TRIANGLE_FAN = $0006;
1039   { AlphaFunction }
1040   GL_NEVER = $0200;
1041   GL_LESS = $0201;
1042   GL_EQUAL = $0202;
1043   GL_LEQUAL = $0203;
1044   GL_GREATER = $0204;
1045   GL_NOTEQUAL = $0205;
1046   GL_GEQUAL = $0206;
1047   GL_ALWAYS = $0207;
1048   { BlendingFactorDest }
1049   GL_ZERO = 0;
1050   GL_ONE = 1;
1051   GL_SRC_COLOR = $0300;
1052   GL_ONE_MINUS_SRC_COLOR = $0301;
1053   GL_SRC_ALPHA = $0302;
1054   GL_ONE_MINUS_SRC_ALPHA = $0303;
1055   GL_DST_ALPHA = $0304;
1056   GL_ONE_MINUS_DST_ALPHA = $0305;
1057   { BlendingFactorSrc }
1058   GL_DST_COLOR = $0306;
1059   GL_ONE_MINUS_DST_COLOR = $0307;
1060   GL_SRC_ALPHA_SATURATE = $0308;
1061   { DrawBufferMode }
1062   GL_NONE = 0;
1063   GL_FRONT_LEFT = $0400;
1064   GL_FRONT_RIGHT = $0401;
1065   GL_BACK_LEFT = $0402;
1066   GL_BACK_RIGHT = $0403;
1067   GL_FRONT = $0404;
1068   GL_BACK = $0405;
1069   GL_LEFT = $0406;
1070   GL_RIGHT = $0407;
1071   GL_FRONT_AND_BACK = $0408;
1072   { ErrorCode }
1073   GL_NO_ERROR = 0;
1074   GL_INVALID_ENUM = $0500;
1075   GL_INVALID_VALUE = $0501;
1076   GL_INVALID_OPERATION = $0502;
1077   GL_OUT_OF_MEMORY = $0505;
1078   { FrontFaceDirection }
1079   GL_CW = $0900;
1080   GL_CCW = $0901;
1081   { GetPName }
1082   GL_POINT_SIZE = $0B11;
1083   GL_POINT_SIZE_RANGE = $0B12;
1084   GL_POINT_SIZE_GRANULARITY = $0B13;
1085   GL_LINE_SMOOTH = $0B20;
1086   GL_LINE_WIDTH = $0B21;
1087   GL_LINE_WIDTH_RANGE = $0B22;
1088   GL_LINE_WIDTH_GRANULARITY = $0B23;
1089   GL_POLYGON_SMOOTH = $0B41;
1090   GL_CULL_FACE = $0B44;
1091   GL_CULL_FACE_MODE = $0B45;
1092   GL_FRONT_FACE = $0B46;
1093   GL_DEPTH_RANGE = $0B70;
1094   GL_DEPTH_TEST = $0B71;
1095   GL_DEPTH_WRITEMASK = $0B72;
1096   GL_DEPTH_CLEAR_VALUE = $0B73;
1097   GL_DEPTH_FUNC = $0B74;
1098   GL_STENCIL_TEST = $0B90;
1099   GL_STENCIL_CLEAR_VALUE = $0B91;
1100   GL_STENCIL_FUNC = $0B92;
1101   GL_STENCIL_VALUE_MASK = $0B93;
1102   GL_STENCIL_FAIL = $0B94;
1103   GL_STENCIL_PASS_DEPTH_FAIL = $0B95;
1104   GL_STENCIL_PASS_DEPTH_PASS = $0B96;
1105   GL_STENCIL_REF = $0B97;
1106   GL_STENCIL_WRITEMASK = $0B98;
1107   GL_VIEWPORT = $0BA2;
1108   GL_DITHER = $0BD0;
1109   GL_BLEND_DST = $0BE0;
1110   GL_BLEND_SRC = $0BE1;
1111   GL_BLEND = $0BE2;
1112   GL_LOGIC_OP_MODE = $0BF0;
1113   GL_COLOR_LOGIC_OP = $0BF2;
1114   GL_DRAW_BUFFER = $0C01;
1115   GL_READ_BUFFER = $0C02;
1116   GL_SCISSOR_BOX = $0C10;
1117   GL_SCISSOR_TEST = $0C11;
1118   GL_COLOR_CLEAR_VALUE = $0C22;
1119   GL_COLOR_WRITEMASK = $0C23;
1120   GL_DOUBLEBUFFER = $0C32;
1121   GL_STEREO = $0C33;
1122   GL_LINE_SMOOTH_HINT = $0C52;
1123   GL_POLYGON_SMOOTH_HINT = $0C53;
1124   GL_UNPACK_SWAP_BYTES = $0CF0;
1125   GL_UNPACK_LSB_FIRST = $0CF1;
1126   GL_UNPACK_ROW_LENGTH = $0CF2;
1127   GL_UNPACK_SKIP_ROWS = $0CF3;
1128   GL_UNPACK_SKIP_PIXELS = $0CF4;
1129   GL_UNPACK_ALIGNMENT = $0CF5;
1130   GL_PACK_SWAP_BYTES = $0D00;
1131   GL_PACK_LSB_FIRST = $0D01;
1132   GL_PACK_ROW_LENGTH = $0D02;
1133   GL_PACK_SKIP_ROWS = $0D03;
1134   GL_PACK_SKIP_PIXELS = $0D04;
1135   GL_PACK_ALIGNMENT = $0D05;
1136   GL_MAX_TEXTURE_SIZE = $0D33;
1137   GL_MAX_VIEWPORT_DIMS = $0D3A;
1138   GL_SUBPIXEL_BITS = $0D50;
1139   GL_TEXTURE_1D = $0DE0;
1140   GL_TEXTURE_2D = $0DE1;
1141   GL_POLYGON_OFFSET_UNITS = $2A00;
1142   GL_POLYGON_OFFSET_POINT = $2A01;
1143   GL_POLYGON_OFFSET_LINE = $2A02;
1144   GL_POLYGON_OFFSET_FILL = $8037;
1145   GL_POLYGON_OFFSET_FACTOR = $8038;
1146   GL_TEXTURE_BINDING_1D = $8068;
1147   GL_TEXTURE_BINDING_2D = $8069;
1148   { GetTextureParameter }
1149   GL_TEXTURE_WIDTH = $1000;
1150   GL_TEXTURE_HEIGHT = $1001;
1151   GL_TEXTURE_INTERNAL_FORMAT = $1003;
1152   GL_TEXTURE_BORDER_COLOR = $1004;
1153   GL_TEXTURE_BORDER = $1005;
1154   GL_TEXTURE_RED_SIZE = $805C;
1155   GL_TEXTURE_GREEN_SIZE = $805D;
1156   GL_TEXTURE_BLUE_SIZE = $805E;
1157   GL_TEXTURE_ALPHA_SIZE = $805F;
1158   { HintMode }
1159   GL_DONT_CARE = $1100;
1160   GL_FASTEST = $1101;
1161   GL_NICEST = $1102;
1162   { DataType }
1163   GL_BYTE = $1400;
1164   GL_UNSIGNED_BYTE = $1401;
1165   GL_SHORT = $1402;
1166   GL_UNSIGNED_SHORT = $1403;
1167   GL_INT = $1404;
1168   GL_UNSIGNED_INT = $1405;
1169   GL_FLOAT = $1406;
1170   GL_DOUBLE = $140A;
1171   { LogicOp }
1172   GL_CLEAR = $1500;
1173   GL_AND = $1501;
1174   GL_AND_REVERSE = $1502;
1175   GL_COPY = $1503;
1176   GL_AND_INVERTED = $1504;
1177   GL_NOOP = $1505;
1178   GL_XOR = $1506;
1179   GL_OR = $1507;
1180   GL_NOR = $1508;
1181   GL_EQUIV = $1509;
1182   GL_INVERT = $150A;
1183   GL_OR_REVERSE = $150B;
1184   GL_COPY_INVERTED = $150C;
1185   GL_OR_INVERTED = $150D;
1186   GL_NAND = $150E;
1187   GL_SET = $150F;
1188   { MatrixMode (for gl3.h, FBO attachment type) }
1189   GL_TEXTURE = $1702;
1190   { PixelCopyType }
1191   GL_COLOR = $1800;
1192   GL_DEPTH = $1801;
1193   GL_STENCIL = $1802;
1194   { PixelFormat }
1195   GL_STENCIL_INDEX = $1901;
1196   GL_DEPTH_COMPONENT = $1902;
1197   GL_RED = $1903;
1198   GL_GREEN = $1904;
1199   GL_BLUE = $1905;
1200   GL_ALPHA = $1906;
1201   GL_RGB = $1907;
1202   GL_RGBA = $1908;
1203   { PolygonMode }
1204   GL_POINT = $1B00;
1205   GL_LINE = $1B01;
1206   GL_FILL = $1B02;
1207   { StencilOp }
1208   GL_KEEP = $1E00;
1209   GL_REPLACE = $1E01;
1210   GL_INCR = $1E02;
1211   GL_DECR = $1E03;
1212   { StringName }
1213   GL_VENDOR = $1F00;
1214   GL_RENDERER = $1F01;
1215   GL_VERSION = $1F02;
1216   GL_EXTENSIONS = $1F03;
1217   { TextureMagFilter }
1218   GL_NEAREST = $2600;
1219   GL_LINEAR = $2601;
1220   { TextureMinFilter }
1221   GL_NEAREST_MIPMAP_NEAREST = $2700;
1222   GL_LINEAR_MIPMAP_NEAREST = $2701;
1223   GL_NEAREST_MIPMAP_LINEAR = $2702;
1224   GL_LINEAR_MIPMAP_LINEAR = $2703;
1225   { TextureParameterName }
1226   GL_TEXTURE_MAG_FILTER = $2800;
1227   GL_TEXTURE_MIN_FILTER = $2801;
1228   GL_TEXTURE_WRAP_S = $2802;
1229   GL_TEXTURE_WRAP_T = $2803;
1230   { TextureTarget }
1231   GL_PROXY_TEXTURE_1D = $8063;
1232   GL_PROXY_TEXTURE_2D = $8064;
1233   { TextureWrapMode }
1234   GL_REPEAT = $2901;
1235   { PixelInternalFormat }
1236   GL_R3_G3_B2 = $2A10;
1237   GL_RGB4 = $804F;
1238   GL_RGB5 = $8050;
1239   GL_RGB8 = $8051;
1240   GL_RGB10 = $8052;
1241   GL_RGB12 = $8053;
1242   GL_RGB16 = $8054;
1243   GL_RGBA2 = $8055;
1244   GL_RGBA4 = $8056;
1245   GL_RGB5_A1 = $8057;
1246   GL_RGBA8 = $8058;
1247   GL_RGB10_A2 = $8059;
1248   GL_RGBA12 = $805A;
1249   GL_RGBA16 = $805B;
1250 {$ifdef DGL_DEPRECATED}
1251   GL_ACCUM = $0100;
1252   GL_LOAD = $0101;
1253   GL_RETURN = $0102;
1254   GL_MULT = $0103;
1255   GL_ADD = $0104;
1256   GL_CURRENT_BIT = $00000001;
1257   GL_POINT_BIT = $00000002;
1258   GL_LINE_BIT = $00000004;
1259   GL_POLYGON_BIT = $00000008;
1260   GL_POLYGON_STIPPLE_BIT = $00000010;
1261   GL_PIXEL_MODE_BIT = $00000020;
1262   GL_LIGHTING_BIT = $00000040;
1263   GL_FOG_BIT = $00000080;
1264   GL_ACCUM_BUFFER_BIT = $00000200;
1265   GL_VIEWPORT_BIT = $00000800;
1266   GL_TRANSFORM_BIT = $00001000;
1267   GL_ENABLE_BIT = $00002000;
1268   GL_HINT_BIT = $00008000;
1269   GL_EVAL_BIT = $00010000;
1270   GL_LIST_BIT = $00020000;
1271   GL_TEXTURE_BIT = $00040000;
1272   GL_SCISSOR_BIT = $00080000;
1273   GL_ALL_ATTRIB_BITS = $000FFFFF;
1274   GL_QUADS = $0007;
1275   GL_QUAD_STRIP = $0008;
1276   GL_POLYGON = $0009;
1277   GL_CLIP_PLANE0 = $3000;
1278   GL_CLIP_PLANE1 = $3001;
1279   GL_CLIP_PLANE2 = $3002;
1280   GL_CLIP_PLANE3 = $3003;
1281   GL_CLIP_PLANE4 = $3004;
1282   GL_CLIP_PLANE5 = $3005;
1283   GL_2_BYTES = $1407;
1284   GL_3_BYTES = $1408;
1285   GL_4_BYTES = $1409;
1286   GL_AUX0 = $0409;
1287   GL_AUX1 = $040A;
1288   GL_AUX2 = $040B;
1289   GL_AUX3 = $040C;
1290   GL_STACK_OVERFLOW = $0503;
1291   GL_STACK_UNDERFLOW = $0504;
1292   GL_2D = $0600;
1293   GL_3D = $0601;
1294   GL_3D_COLOR = $0602;
1295   GL_3D_COLOR_TEXTURE = $0603;
1296   GL_4D_COLOR_TEXTURE = $0604;
1297   GL_PASS_THROUGH_TOKEN = $0700;
1298   GL_POINT_TOKEN = $0701;
1299   GL_LINE_TOKEN = $0702;
1300   GL_POLYGON_TOKEN = $0703;
1301   GL_BITMAP_TOKEN = $0704;
1302   GL_DRAW_PIXEL_TOKEN = $0705;
1303   GL_COPY_PIXEL_TOKEN = $0706;
1304   GL_LINE_RESET_TOKEN = $0707;
1305   GL_EXP = $0800;
1306   GL_EXP2 = $0801;
1307   GL_COEFF = $0A00;
1308   GL_ORDER = $0A01;
1309   GL_DOMAIN = $0A02;
1310   GL_CURRENT_COLOR = $0B00;
1311   GL_CURRENT_INDEX = $0B01;
1312   GL_CURRENT_NORMAL = $0B02;
1313   GL_CURRENT_TEXTURE_COORDS = $0B03;
1314   GL_CURRENT_RASTER_COLOR = $0B04;
1315   GL_CURRENT_RASTER_INDEX = $0B05;
1316   GL_CURRENT_RASTER_TEXTURE_COORDS = $0B06;
1317   GL_CURRENT_RASTER_POSITION = $0B07;
1318   GL_CURRENT_RASTER_POSITION_VALID = $0B08;
1319   GL_CURRENT_RASTER_DISTANCE = $0B09;
1320   GL_POINT_SMOOTH = $0B10;
1321   GL_LINE_STIPPLE = $0B24;
1322   GL_LINE_STIPPLE_PATTERN = $0B25;
1323   GL_LINE_STIPPLE_REPEAT = $0B26;
1324   GL_LIST_MODE = $0B30;
1325   GL_MAX_LIST_NESTING = $0B31;
1326   GL_LIST_BASE = $0B32;
1327   GL_LIST_INDEX = $0B33;
1328   GL_POLYGON_MODE = $0B40;
1329   GL_POLYGON_STIPPLE = $0B42;
1330   GL_EDGE_FLAG = $0B43;
1331   GL_LIGHTING = $0B50;
1332   GL_LIGHT_MODEL_LOCAL_VIEWER = $0B51;
1333   GL_LIGHT_MODEL_TWO_SIDE = $0B52;
1334   GL_LIGHT_MODEL_AMBIENT = $0B53;
1335   GL_SHADE_MODEL = $0B54;
1336   GL_COLOR_MATERIAL_FACE = $0B55;
1337   GL_COLOR_MATERIAL_PARAMETER = $0B56;
1338   GL_COLOR_MATERIAL = $0B57;
1339   GL_FOG = $0B60;
1340   GL_FOG_INDEX = $0B61;
1341   GL_FOG_DENSITY = $0B62;
1342   GL_FOG_START = $0B63;
1343   GL_FOG_END = $0B64;
1344   GL_FOG_MODE = $0B65;
1345   GL_FOG_COLOR = $0B66;
1346   GL_ACCUM_CLEAR_VALUE = $0B80;
1347   GL_MATRIX_MODE = $0BA0;
1348   GL_NORMALIZE = $0BA1;
1349   GL_MODELVIEW_STACK_DEPTH = $0BA3;
1350   GL_PROJECTION_STACK_DEPTH = $0BA4;
1351   GL_TEXTURE_STACK_DEPTH = $0BA5;
1352   GL_MODELVIEW_MATRIX = $0BA6;
1353   GL_PROJECTION_MATRIX = $0BA7;
1354   GL_TEXTURE_MATRIX = $0BA8;
1355   GL_ATTRIB_STACK_DEPTH = $0BB0;
1356   GL_CLIENT_ATTRIB_STACK_DEPTH = $0BB1;
1357   GL_ALPHA_TEST = $0BC0;
1358   GL_ALPHA_TEST_FUNC = $0BC1;
1359   GL_ALPHA_TEST_REF = $0BC2;
1360   GL_INDEX_LOGIC_OP = $0BF1;
1361   GL_AUX_BUFFERS = $0C00;
1362   GL_INDEX_CLEAR_VALUE = $0C20;
1363   GL_INDEX_WRITEMASK = $0C21;
1364   GL_INDEX_MODE = $0C30;
1365   GL_RGBA_MODE = $0C31;
1366   GL_RENDER_MODE = $0C40;
1367   GL_PERSPECTIVE_CORRECTION_HINT = $0C50;
1368   GL_POINT_SMOOTH_HINT = $0C51;
1369   GL_FOG_HINT = $0C54;
1370   GL_TEXTURE_GEN_S = $0C60;
1371   GL_TEXTURE_GEN_T = $0C61;
1372   GL_TEXTURE_GEN_R = $0C62;
1373   GL_TEXTURE_GEN_Q = $0C63;
1374   GL_PIXEL_MAP_I_TO_I = $0C70;
1375   GL_PIXEL_MAP_S_TO_S = $0C71;
1376   GL_PIXEL_MAP_I_TO_R = $0C72;
1377   GL_PIXEL_MAP_I_TO_G = $0C73;
1378   GL_PIXEL_MAP_I_TO_B = $0C74;
1379   GL_PIXEL_MAP_I_TO_A = $0C75;
1380   GL_PIXEL_MAP_R_TO_R = $0C76;
1381   GL_PIXEL_MAP_G_TO_G = $0C77;
1382   GL_PIXEL_MAP_B_TO_B = $0C78;
1383   GL_PIXEL_MAP_A_TO_A = $0C79;
1384   GL_PIXEL_MAP_I_TO_I_SIZE = $0CB0;
1385   GL_PIXEL_MAP_S_TO_S_SIZE = $0CB1;
1386   GL_PIXEL_MAP_I_TO_R_SIZE = $0CB2;
1387   GL_PIXEL_MAP_I_TO_G_SIZE = $0CB3;
1388   GL_PIXEL_MAP_I_TO_B_SIZE = $0CB4;
1389   GL_PIXEL_MAP_I_TO_A_SIZE = $0CB5;
1390   GL_PIXEL_MAP_R_TO_R_SIZE = $0CB6;
1391   GL_PIXEL_MAP_G_TO_G_SIZE = $0CB7;
1392   GL_PIXEL_MAP_B_TO_B_SIZE = $0CB8;
1393   GL_PIXEL_MAP_A_TO_A_SIZE = $0CB9;
1394   GL_MAP_COLOR = $0D10;
1395   GL_MAP_STENCIL = $0D11;
1396   GL_INDEX_SHIFT = $0D12;
1397   GL_INDEX_OFFSET = $0D13;
1398   GL_RED_SCALE = $0D14;
1399   GL_RED_BIAS = $0D15;
1400   GL_ZOOM_X = $0D16;
1401   GL_ZOOM_Y = $0D17;
1402   GL_GREEN_SCALE = $0D18;
1403   GL_GREEN_BIAS = $0D19;
1404   GL_BLUE_SCALE = $0D1A;
1405   GL_BLUE_BIAS = $0D1B;
1406   GL_ALPHA_SCALE = $0D1C;
1407   GL_ALPHA_BIAS = $0D1D;
1408   GL_DEPTH_SCALE = $0D1E;
1409   GL_DEPTH_BIAS = $0D1F;
1410   GL_MAX_EVAL_ORDER = $0D30;
1411   GL_MAX_LIGHTS = $0D31;
1412   GL_MAX_CLIP_PLANES = $0D32;
1413   GL_MAX_PIXEL_MAP_TABLE = $0D34;
1414   GL_MAX_ATTRIB_STACK_DEPTH = $0D35;
1415   GL_MAX_MODELVIEW_STACK_DEPTH = $0D36;
1416   GL_MAX_NAME_STACK_DEPTH = $0D37;
1417   GL_MAX_PROJECTION_STACK_DEPTH = $0D38;
1418   GL_MAX_TEXTURE_STACK_DEPTH = $0D39;
1419   GL_MAX_CLIENT_ATTRIB_STACK_DEPTH = $0D3B;
1420   GL_INDEX_BITS = $0D51;
1421   GL_RED_BITS = $0D52;
1422   GL_GREEN_BITS = $0D53;
1423   GL_BLUE_BITS = $0D54;
1424   GL_ALPHA_BITS = $0D55;
1425   GL_DEPTH_BITS = $0D56;
1426   GL_STENCIL_BITS = $0D57;
1427   GL_ACCUM_RED_BITS = $0D58;
1428   GL_ACCUM_GREEN_BITS = $0D59;
1429   GL_ACCUM_BLUE_BITS = $0D5A;
1430   GL_ACCUM_ALPHA_BITS = $0D5B;
1431   GL_NAME_STACK_DEPTH = $0D70;
1432   GL_AUTO_NORMAL = $0D80;
1433   GL_MAP1_COLOR_4 = $0D90;
1434   GL_MAP1_INDEX = $0D91;
1435   GL_MAP1_NORMAL = $0D92;
1436   GL_MAP1_TEXTURE_COORD_1 = $0D93;
1437   GL_MAP1_TEXTURE_COORD_2 = $0D94;
1438   GL_MAP1_TEXTURE_COORD_3 = $0D95;
1439   GL_MAP1_TEXTURE_COORD_4 = $0D96;
1440   GL_MAP1_VERTEX_3 = $0D97;
1441   GL_MAP1_VERTEX_4 = $0D98;
1442   GL_MAP2_COLOR_4 = $0DB0;
1443   GL_MAP2_INDEX = $0DB1;
1444   GL_MAP2_NORMAL = $0DB2;
1445   GL_MAP2_TEXTURE_COORD_1 = $0DB3;
1446   GL_MAP2_TEXTURE_COORD_2 = $0DB4;
1447   GL_MAP2_TEXTURE_COORD_3 = $0DB5;
1448   GL_MAP2_TEXTURE_COORD_4 = $0DB6;
1449   GL_MAP2_VERTEX_3 = $0DB7;
1450   GL_MAP2_VERTEX_4 = $0DB8;
1451   GL_MAP1_GRID_DOMAIN = $0DD0;
1452   GL_MAP1_GRID_SEGMENTS = $0DD1;
1453   GL_MAP2_GRID_DOMAIN = $0DD2;
1454   GL_MAP2_GRID_SEGMENTS = $0DD3;
1455   GL_FEEDBACK_BUFFER_POINTER = $0DF0;
1456   GL_FEEDBACK_BUFFER_SIZE = $0DF1;
1457   GL_FEEDBACK_BUFFER_TYPE = $0DF2;
1458   GL_SELECTION_BUFFER_POINTER = $0DF3;
1459   GL_SELECTION_BUFFER_SIZE = $0DF4;
1460   GL_LIGHT0 = $4000;
1461   GL_LIGHT1 = $4001;
1462   GL_LIGHT2 = $4002;
1463   GL_LIGHT3 = $4003;
1464   GL_LIGHT4 = $4004;
1465   GL_LIGHT5 = $4005;
1466   GL_LIGHT6 = $4006;
1467   GL_LIGHT7 = $4007;
1468   GL_AMBIENT = $1200;
1469   GL_DIFFUSE = $1201;
1470   GL_SPECULAR = $1202;
1471   GL_POSITION = $1203;
1472   GL_SPOT_DIRECTION = $1204;
1473   GL_SPOT_EXPONENT = $1205;
1474   GL_SPOT_CUTOFF = $1206;
1475   GL_CONSTANT_ATTENUATION = $1207;
1476   GL_LINEAR_ATTENUATION = $1208;
1477   GL_QUADRATIC_ATTENUATION = $1209;
1478   GL_COMPILE = $1300;
1479   GL_COMPILE_AND_EXECUTE = $1301;
1480   GL_EMISSION = $1600;
1481   GL_SHININESS = $1601;
1482   GL_AMBIENT_AND_DIFFUSE = $1602;
1483   GL_COLOR_INDEXES = $1603;
1484   GL_MODELVIEW = $1700;
1485   GL_PROJECTION = $1701;
1486   GL_COLOR_INDEX = $1900;
1487   GL_LUMINANCE = $1909;
1488   GL_LUMINANCE_ALPHA = $190A;
1489   GL_BITMAP = $1A00;
1490   GL_RENDER = $1C00;
1491   GL_FEEDBACK = $1C01;
1492   GL_SELECT = $1C02;
1493   GL_FLAT = $1D00;
1494   GL_SMOOTH = $1D01;
1495   GL_S = $2000;
1496   GL_T = $2001;
1497   GL_R = $2002;
1498   GL_Q = $2003;
1499   GL_MODULATE = $2100;
1500   GL_DECAL = $2101;
1501   GL_TEXTURE_ENV_MODE = $2200;
1502   GL_TEXTURE_ENV_COLOR = $2201;
1503   GL_TEXTURE_ENV = $2300;
1504   GL_EYE_LINEAR = $2400;
1505   GL_OBJECT_LINEAR = $2401;
1506   GL_SPHERE_MAP = $2402;
1507   GL_TEXTURE_GEN_MODE = $2500;
1508   GL_OBJECT_PLANE = $2501;
1509   GL_EYE_PLANE = $2502;
1510   GL_CLAMP = $2900;
1511   GL_CLIENT_PIXEL_STORE_BIT = $00000001;
1512   GL_CLIENT_VERTEX_ARRAY_BIT = $00000002;
1513   GL_CLIENT_ALL_ATTRIB_BITS = $FFFFFFFF;
1514   GL_ALPHA4 = $803B;
1515   GL_ALPHA8 = $803C;
1516   GL_ALPHA12 = $803D;
1517   GL_ALPHA16 = $803E;
1518   GL_LUMINANCE4 = $803F;
1519   GL_LUMINANCE8 = $8040;
1520   GL_LUMINANCE12 = $8041;
1521   GL_LUMINANCE16 = $8042;
1522   GL_LUMINANCE4_ALPHA4 = $8043;
1523   GL_LUMINANCE6_ALPHA2 = $8044;
1524   GL_LUMINANCE8_ALPHA8 = $8045;
1525   GL_LUMINANCE12_ALPHA4 = $8046;
1526   GL_LUMINANCE12_ALPHA12 = $8047;
1527   GL_LUMINANCE16_ALPHA16 = $8048;
1528   GL_INTENSITY = $8049;
1529   GL_INTENSITY4 = $804A;
1530   GL_INTENSITY8 = $804B;
1531   GL_INTENSITY12 = $804C;
1532   GL_INTENSITY16 = $804D;
1533   GL_TEXTURE_LUMINANCE_SIZE = $8060;
1534   GL_TEXTURE_INTENSITY_SIZE = $8061;
1535   GL_TEXTURE_PRIORITY = $8066;
1536   GL_TEXTURE_RESIDENT = $8067;
1537   GL_VERTEX_ARRAY = $8074;
1538   GL_NORMAL_ARRAY = $8075;
1539   GL_COLOR_ARRAY = $8076;
1540   GL_INDEX_ARRAY = $8077;
1541   GL_TEXTURE_COORD_ARRAY = $8078;
1542   GL_EDGE_FLAG_ARRAY = $8079;
1543   GL_VERTEX_ARRAY_SIZE = $807A;
1544   GL_VERTEX_ARRAY_TYPE = $807B;
1545   GL_VERTEX_ARRAY_STRIDE = $807C;
1546   GL_NORMAL_ARRAY_TYPE = $807E;
1547   GL_NORMAL_ARRAY_STRIDE = $807F;
1548   GL_COLOR_ARRAY_SIZE = $8081;
1549   GL_COLOR_ARRAY_TYPE = $8082;
1550   GL_COLOR_ARRAY_STRIDE = $8083;
1551   GL_INDEX_ARRAY_TYPE = $8085;
1552   GL_INDEX_ARRAY_STRIDE = $8086;
1553   GL_TEXTURE_COORD_ARRAY_SIZE = $8088;
1554   GL_TEXTURE_COORD_ARRAY_TYPE = $8089;
1555   GL_TEXTURE_COORD_ARRAY_STRIDE = $808A;
1556   GL_EDGE_FLAG_ARRAY_STRIDE = $808C;
1557   GL_VERTEX_ARRAY_POINTER = $808E;
1558   GL_NORMAL_ARRAY_POINTER = $808F;
1559   GL_COLOR_ARRAY_POINTER = $8090;
1560   GL_INDEX_ARRAY_POINTER = $8091;
1561   GL_TEXTURE_COORD_ARRAY_POINTER = $8092;
1562   GL_EDGE_FLAG_ARRAY_POINTER = $8093;
1563   GL_V2F = $2A20;
1564   GL_V3F = $2A21;
1565   GL_C4UB_V2F = $2A22;
1566   GL_C4UB_V3F = $2A23;
1567   GL_C3F_V3F = $2A24;
1568   GL_N3F_V3F = $2A25;
1569   GL_C4F_N3F_V3F = $2A26;
1570   GL_T2F_V3F = $2A27;
1571   GL_T4F_V4F = $2A28;
1572   GL_T2F_C4UB_V3F = $2A29;
1573   GL_T2F_C3F_V3F = $2A2A;
1574   GL_T2F_N3F_V3F = $2A2B;
1575   GL_T2F_C4F_N3F_V3F = $2A2C;
1576   GL_T4F_C4F_N3F_V4F = $2A2D;
1577   GL_COLOR_TABLE_FORMAT_EXT = $80D8;
1578   GL_COLOR_TABLE_WIDTH_EXT = $80D9;
1579   GL_COLOR_TABLE_RED_SIZE_EXT = $80DA;
1580   GL_COLOR_TABLE_GREEN_SIZE_EXT = $80DB;
1581   GL_COLOR_TABLE_BLUE_SIZE_EXT = $80DC;
1582   GL_COLOR_TABLE_ALPHA_SIZE_EXT = $80DD;
1583   GL_COLOR_TABLE_LUMINANCE_SIZE_EXT = $80DE;
1584   GL_COLOR_TABLE_INTENSITY_SIZE_EXT = $80DF;
1585   GL_LOGIC_OP = GL_INDEX_LOGIC_OP;
1586   GL_TEXTURE_COMPONENTS = GL_TEXTURE_INTERNAL_FORMAT;
1587 {$endif}
1588
1589   // GL_VERSION_1_2
1590   GL_UNSIGNED_BYTE_3_3_2 = $8032;
1591   GL_UNSIGNED_SHORT_4_4_4_4 = $8033;
1592   GL_UNSIGNED_SHORT_5_5_5_1 = $8034;
1593   GL_UNSIGNED_INT_8_8_8_8 = $8035;
1594   GL_UNSIGNED_INT_10_10_10_2 = $8036;
1595   GL_TEXTURE_BINDING_3D = $806A;
1596   GL_PACK_SKIP_IMAGES = $806B;
1597   GL_PACK_IMAGE_HEIGHT = $806C;
1598   GL_UNPACK_SKIP_IMAGES = $806D;
1599   GL_UNPACK_IMAGE_HEIGHT = $806E;
1600   GL_TEXTURE_3D = $806F;
1601   GL_PROXY_TEXTURE_3D = $8070;
1602   GL_TEXTURE_DEPTH = $8071;
1603   GL_TEXTURE_WRAP_R = $8072;
1604   GL_MAX_3D_TEXTURE_SIZE = $8073;
1605   GL_UNSIGNED_BYTE_2_3_3_REV = $8362;
1606   GL_UNSIGNED_SHORT_5_6_5 = $8363;
1607   GL_UNSIGNED_SHORT_5_6_5_REV = $8364;
1608   GL_UNSIGNED_SHORT_4_4_4_4_REV = $8365;
1609   GL_UNSIGNED_SHORT_1_5_5_5_REV = $8366;
1610   GL_UNSIGNED_INT_8_8_8_8_REV = $8367;
1611   GL_UNSIGNED_INT_2_10_10_10_REV = $8368;
1612   GL_BGR = $80E0;
1613   GL_BGRA = $80E1;
1614   GL_MAX_ELEMENTS_VERTICES = $80E8;
1615   GL_MAX_ELEMENTS_INDICES = $80E9;
1616   GL_CLAMP_TO_EDGE = $812F;
1617   GL_TEXTURE_MIN_LOD = $813A;
1618   GL_TEXTURE_MAX_LOD = $813B;
1619   GL_TEXTURE_BASE_LEVEL = $813C;
1620   GL_TEXTURE_MAX_LEVEL = $813D;
1621   GL_SMOOTH_POINT_SIZE_RANGE = $0B12;
1622   GL_SMOOTH_POINT_SIZE_GRANULARITY = $0B13;
1623   GL_SMOOTH_LINE_WIDTH_RANGE = $0B22;
1624   GL_SMOOTH_LINE_WIDTH_GRANULARITY = $0B23;
1625   GL_ALIASED_LINE_WIDTH_RANGE = $846E;
1626 {$ifdef DGL_DEPRECATED}
1627   GL_RESCALE_NORMAL = $803A;
1628   GL_LIGHT_MODEL_COLOR_CONTROL = $81F8;
1629   GL_SINGLE_COLOR = $81F9;
1630   GL_SEPARATE_SPECULAR_COLOR = $81FA;
1631   GL_ALIASED_POINT_SIZE_RANGE = $846D;
1632 {$endif}
1633
1634   // GL_VERSION_1_3
1635   GL_TEXTURE0 = $84C0;
1636   GL_TEXTURE1 = $84C1;
1637   GL_TEXTURE2 = $84C2;
1638   GL_TEXTURE3 = $84C3;
1639   GL_TEXTURE4 = $84C4;
1640   GL_TEXTURE5 = $84C5;
1641   GL_TEXTURE6 = $84C6;
1642   GL_TEXTURE7 = $84C7;
1643   GL_TEXTURE8 = $84C8;
1644   GL_TEXTURE9 = $84C9;
1645   GL_TEXTURE10 = $84CA;
1646   GL_TEXTURE11 = $84CB;
1647   GL_TEXTURE12 = $84CC;
1648   GL_TEXTURE13 = $84CD;
1649   GL_TEXTURE14 = $84CE;
1650   GL_TEXTURE15 = $84CF;
1651   GL_TEXTURE16 = $84D0;
1652   GL_TEXTURE17 = $84D1;
1653   GL_TEXTURE18 = $84D2;
1654   GL_TEXTURE19 = $84D3;
1655   GL_TEXTURE20 = $84D4;
1656   GL_TEXTURE21 = $84D5;
1657   GL_TEXTURE22 = $84D6;
1658   GL_TEXTURE23 = $84D7;
1659   GL_TEXTURE24 = $84D8;
1660   GL_TEXTURE25 = $84D9;
1661   GL_TEXTURE26 = $84DA;
1662   GL_TEXTURE27 = $84DB;
1663   GL_TEXTURE28 = $84DC;
1664   GL_TEXTURE29 = $84DD;
1665   GL_TEXTURE30 = $84DE;
1666   GL_TEXTURE31 = $84DF;
1667   GL_ACTIVE_TEXTURE = $84E0;
1668   GL_MULTISAMPLE = $809D;
1669   GL_SAMPLE_ALPHA_TO_COVERAGE = $809E;
1670   GL_SAMPLE_ALPHA_TO_ONE = $809F;
1671   GL_SAMPLE_COVERAGE = $80A0;
1672   GL_SAMPLE_BUFFERS = $80A8;
1673   GL_SAMPLES = $80A9;
1674   GL_SAMPLE_COVERAGE_VALUE = $80AA;
1675   GL_SAMPLE_COVERAGE_INVERT = $80AB;
1676   GL_TEXTURE_CUBE_MAP = $8513;
1677   GL_TEXTURE_BINDING_CUBE_MAP = $8514;
1678   GL_TEXTURE_CUBE_MAP_POSITIVE_X = $8515;
1679   GL_TEXTURE_CUBE_MAP_NEGATIVE_X = $8516;
1680   GL_TEXTURE_CUBE_MAP_POSITIVE_Y = $8517;
1681   GL_TEXTURE_CUBE_MAP_NEGATIVE_Y = $8518;
1682   GL_TEXTURE_CUBE_MAP_POSITIVE_Z = $8519;
1683   GL_TEXTURE_CUBE_MAP_NEGATIVE_Z = $851A;
1684   GL_PROXY_TEXTURE_CUBE_MAP = $851B;
1685   GL_MAX_CUBE_MAP_TEXTURE_SIZE = $851C;
1686   GL_COMPRESSED_RGB = $84ED;
1687   GL_COMPRESSED_RGBA = $84EE;
1688   GL_TEXTURE_COMPRESSION_HINT = $84EF;
1689   GL_TEXTURE_COMPRESSED_IMAGE_SIZE = $86A0;
1690   GL_TEXTURE_COMPRESSED = $86A1;
1691   GL_NUM_COMPRESSED_TEXTURE_FORMATS = $86A2;
1692   GL_COMPRESSED_TEXTURE_FORMATS = $86A3;
1693   GL_CLAMP_TO_BORDER = $812D;
1694 {$ifdef DGL_DEPRECATED}
1695   GL_CLIENT_ACTIVE_TEXTURE = $84E1;
1696   GL_MAX_TEXTURE_UNITS = $84E2;
1697   GL_TRANSPOSE_MODELVIEW_MATRIX = $84E3;
1698   GL_TRANSPOSE_PROJECTION_MATRIX = $84E4;
1699   GL_TRANSPOSE_TEXTURE_MATRIX = $84E5;
1700   GL_TRANSPOSE_COLOR_MATRIX = $84E6;
1701   GL_MULTISAMPLE_BIT = $20000000;
1702   GL_NORMAL_MAP = $8511;
1703   GL_REFLECTION_MAP = $8512;
1704   GL_COMPRESSED_ALPHA = $84E9;
1705   GL_COMPRESSED_LUMINANCE = $84EA;
1706   GL_COMPRESSED_LUMINANCE_ALPHA = $84EB;
1707   GL_COMPRESSED_INTENSITY = $84EC;
1708   GL_COMBINE = $8570;
1709   GL_COMBINE_RGB = $8571;
1710   GL_COMBINE_ALPHA = $8572;
1711   GL_SOURCE0_RGB = $8580;
1712   GL_SOURCE1_RGB = $8581;
1713   GL_SOURCE2_RGB = $8582;
1714   GL_SOURCE0_ALPHA = $8588;
1715   GL_SOURCE1_ALPHA = $8589;
1716   GL_SOURCE2_ALPHA = $858A;
1717   GL_OPERAND0_RGB = $8590;
1718   GL_OPERAND1_RGB = $8591;
1719   GL_OPERAND2_RGB = $8592;
1720   GL_OPERAND0_ALPHA = $8598;
1721   GL_OPERAND1_ALPHA = $8599;
1722   GL_OPERAND2_ALPHA = $859A;
1723   GL_RGB_SCALE = $8573;
1724   GL_ADD_SIGNED = $8574;
1725   GL_INTERPOLATE = $8575;
1726   GL_SUBTRACT = $84E7;
1727   GL_CONSTANT = $8576;
1728   GL_PRIMARY_COLOR = $8577;
1729   GL_PREVIOUS = $8578;
1730   GL_DOT3_RGB = $86AE;
1731   GL_DOT3_RGBA = $86AF;
1732 {$endif}
1733
1734   // GL_VERSION_1_4
1735   GL_BLEND_DST_RGB = $80C8;
1736   GL_BLEND_SRC_RGB = $80C9;
1737   GL_BLEND_DST_ALPHA = $80CA;
1738   GL_BLEND_SRC_ALPHA = $80CB;
1739   GL_POINT_FADE_THRESHOLD_SIZE = $8128;
1740   GL_DEPTH_COMPONENT16 = $81A5;
1741   GL_DEPTH_COMPONENT24 = $81A6;
1742   GL_DEPTH_COMPONENT32 = $81A7;
1743   GL_MIRRORED_REPEAT = $8370;
1744   GL_MAX_TEXTURE_LOD_BIAS = $84FD;
1745   GL_TEXTURE_LOD_BIAS = $8501;
1746   GL_INCR_WRAP = $8507;
1747   GL_DECR_WRAP = $8508;
1748   GL_TEXTURE_DEPTH_SIZE = $884A;
1749   GL_TEXTURE_COMPARE_MODE = $884C;
1750   GL_TEXTURE_COMPARE_FUNC = $884D;
1751 {$ifdef DGL_DEPRECATED}
1752   GL_POINT_SIZE_MIN = $8126;
1753   GL_POINT_SIZE_MAX = $8127;
1754   GL_POINT_DISTANCE_ATTENUATION = $8129;
1755   GL_GENERATE_MIPMAP = $8191;
1756   GL_GENERATE_MIPMAP_HINT = $8192;
1757   GL_FOG_COORDINATE_SOURCE = $8450;
1758   GL_FOG_COORDINATE = $8451;
1759   GL_FRAGMENT_DEPTH = $8452;
1760   GL_CURRENT_FOG_COORDINATE = $8453;
1761   GL_FOG_COORDINATE_ARRAY_TYPE = $8454;
1762   GL_FOG_COORDINATE_ARRAY_STRIDE = $8455;
1763   GL_FOG_COORDINATE_ARRAY_POINTER = $8456;
1764   GL_FOG_COORDINATE_ARRAY = $8457;
1765   GL_COLOR_SUM = $8458;
1766   GL_CURRENT_SECONDARY_COLOR = $8459;
1767   GL_SECONDARY_COLOR_ARRAY_SIZE = $845A;
1768   GL_SECONDARY_COLOR_ARRAY_TYPE = $845B;
1769   GL_SECONDARY_COLOR_ARRAY_STRIDE = $845C;
1770   GL_SECONDARY_COLOR_ARRAY_POINTER = $845D;
1771   GL_SECONDARY_COLOR_ARRAY = $845E;
1772   GL_TEXTURE_FILTER_CONTROL = $8500;
1773   GL_DEPTH_TEXTURE_MODE = $884B;
1774   GL_COMPARE_R_TO_TEXTURE = $884E;
1775 {$endif}
1776
1777   // GL_VERSION_1_5
1778   GL_BUFFER_SIZE = $8764;
1779   GL_BUFFER_USAGE = $8765;
1780   GL_QUERY_COUNTER_BITS = $8864;
1781   GL_CURRENT_QUERY = $8865;
1782   GL_QUERY_RESULT = $8866;
1783   GL_QUERY_RESULT_AVAILABLE = $8867;
1784   GL_ARRAY_BUFFER = $8892;
1785   GL_ELEMENT_ARRAY_BUFFER = $8893;
1786   GL_ARRAY_BUFFER_BINDING = $8894;
1787   GL_ELEMENT_ARRAY_BUFFER_BINDING = $8895;
1788   GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = $889F;
1789   GL_READ_ONLY = $88B8;
1790   GL_WRITE_ONLY = $88B9;
1791   GL_READ_WRITE = $88BA;
1792   GL_BUFFER_ACCESS = $88BB;
1793   GL_BUFFER_MAPPED = $88BC;
1794   GL_BUFFER_MAP_POINTER = $88BD;
1795   GL_STREAM_DRAW = $88E0;
1796   GL_STREAM_READ = $88E1;
1797   GL_STREAM_COPY = $88E2;
1798   GL_STATIC_DRAW = $88E4;
1799   GL_STATIC_READ = $88E5;
1800   GL_STATIC_COPY = $88E6;
1801   GL_DYNAMIC_DRAW = $88E8;
1802   GL_DYNAMIC_READ = $88E9;
1803   GL_DYNAMIC_COPY = $88EA;
1804   GL_SAMPLES_PASSED = $8914;
1805 {$ifdef DGL_DEPRECATED}
1806   GL_VERTEX_ARRAY_BUFFER_BINDING = $8896;
1807   GL_NORMAL_ARRAY_BUFFER_BINDING = $8897;
1808   GL_COLOR_ARRAY_BUFFER_BINDING = $8898;
1809   GL_INDEX_ARRAY_BUFFER_BINDING = $8899;
1810   GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING = $889A;
1811   GL_EDGE_FLAG_ARRAY_BUFFER_BINDING = $889B;
1812   GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING = $889C;
1813   GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING = $889D;
1814   GL_WEIGHT_ARRAY_BUFFER_BINDING = $889E;
1815   GL_FOG_COORD_SRC = $8450;
1816   GL_FOG_COORD = $8451;
1817   GL_CURRENT_FOG_COORD = $8453;
1818   GL_FOG_COORD_ARRAY_TYPE = $8454;
1819   GL_FOG_COORD_ARRAY_STRIDE = $8455;
1820   GL_FOG_COORD_ARRAY_POINTER = $8456;
1821   GL_FOG_COORD_ARRAY = $8457;
1822   GL_FOG_COORD_ARRAY_BUFFER_BINDING = $889D;
1823   GL_SRC0_RGB = $8580;
1824   GL_SRC1_RGB = $8581;
1825   GL_SRC2_RGB = $8582;
1826   GL_SRC0_ALPHA = $8588;
1827   GL_SRC1_ALPHA = $8589;
1828   GL_SRC2_ALPHA = $858A;
1829 {$endif}
1830
1831   // GL_VERSION_2_0
1832   GL_BLEND_EQUATION_RGB = $8009;
1833   GL_VERTEX_ATTRIB_ARRAY_ENABLED = $8622;
1834   GL_VERTEX_ATTRIB_ARRAY_SIZE = $8623;
1835   GL_VERTEX_ATTRIB_ARRAY_STRIDE = $8624;
1836   GL_VERTEX_ATTRIB_ARRAY_TYPE = $8625;
1837   GL_CURRENT_VERTEX_ATTRIB = $8626;
1838   GL_VERTEX_PROGRAM_POINT_SIZE = $8642;
1839   GL_VERTEX_ATTRIB_ARRAY_POINTER = $8645;
1840   GL_STENCIL_BACK_FUNC = $8800;
1841   GL_STENCIL_BACK_FAIL = $8801;
1842   GL_STENCIL_BACK_PASS_DEPTH_FAIL = $8802;
1843   GL_STENCIL_BACK_PASS_DEPTH_PASS = $8803;
1844   GL_MAX_DRAW_BUFFERS = $8824;
1845   GL_DRAW_BUFFER0 = $8825;
1846   GL_DRAW_BUFFER1 = $8826;
1847   GL_DRAW_BUFFER2 = $8827;
1848   GL_DRAW_BUFFER3 = $8828;
1849   GL_DRAW_BUFFER4 = $8829;
1850   GL_DRAW_BUFFER5 = $882A;
1851   GL_DRAW_BUFFER6 = $882B;
1852   GL_DRAW_BUFFER7 = $882C;
1853   GL_DRAW_BUFFER8 = $882D;
1854   GL_DRAW_BUFFER9 = $882E;
1855   GL_DRAW_BUFFER10 = $882F;
1856   GL_DRAW_BUFFER11 = $8830;
1857   GL_DRAW_BUFFER12 = $8831;
1858   GL_DRAW_BUFFER13 = $8832;
1859   GL_DRAW_BUFFER14 = $8833;
1860   GL_DRAW_BUFFER15 = $8834;
1861   GL_BLEND_EQUATION_ALPHA = $883D;
1862   GL_MAX_VERTEX_ATTRIBS = $8869;
1863   GL_VERTEX_ATTRIB_ARRAY_NORMALIZED = $886A;
1864   GL_MAX_TEXTURE_IMAGE_UNITS = $8872;
1865   GL_FRAGMENT_SHADER = $8B30;
1866   GL_VERTEX_SHADER = $8B31;
1867   GL_MAX_FRAGMENT_UNIFORM_COMPONENTS = $8B49;
1868   GL_MAX_VERTEX_UNIFORM_COMPONENTS = $8B4A;
1869   GL_MAX_VARYING_FLOATS = $8B4B;
1870   GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS = $8B4C;
1871   GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS = $8B4D;
1872   GL_SHADER_TYPE = $8B4F;
1873   GL_FLOAT_VEC2 = $8B50;
1874   GL_FLOAT_VEC3 = $8B51;
1875   GL_FLOAT_VEC4 = $8B52;
1876   GL_INT_VEC2 = $8B53;
1877   GL_INT_VEC3 = $8B54;
1878   GL_INT_VEC4 = $8B55;
1879   GL_BOOL = $8B56;
1880   GL_BOOL_VEC2 = $8B57;
1881   GL_BOOL_VEC3 = $8B58;
1882   GL_BOOL_VEC4 = $8B59;
1883   GL_FLOAT_MAT2 = $8B5A;
1884   GL_FLOAT_MAT3 = $8B5B;
1885   GL_FLOAT_MAT4 = $8B5C;
1886   GL_SAMPLER_1D = $8B5D;
1887   GL_SAMPLER_2D = $8B5E;
1888   GL_SAMPLER_3D = $8B5F;
1889   GL_SAMPLER_CUBE = $8B60;
1890   GL_SAMPLER_1D_SHADOW = $8B61;
1891   GL_SAMPLER_2D_SHADOW = $8B62;
1892   GL_DELETE_STATUS = $8B80;
1893   GL_COMPILE_STATUS = $8B81;
1894   GL_LINK_STATUS = $8B82;
1895   GL_VALIDATE_STATUS = $8B83;
1896   GL_INFO_LOG_LENGTH = $8B84;
1897   GL_ATTACHED_SHADERS = $8B85;
1898   GL_ACTIVE_UNIFORMS = $8B86;
1899   GL_ACTIVE_UNIFORM_MAX_LENGTH = $8B87;
1900   GL_SHADER_SOURCE_LENGTH = $8B88;
1901   GL_ACTIVE_ATTRIBUTES = $8B89;
1902   GL_ACTIVE_ATTRIBUTE_MAX_LENGTH = $8B8A;
1903   GL_FRAGMENT_SHADER_DERIVATIVE_HINT = $8B8B;
1904   GL_SHADING_LANGUAGE_VERSION = $8B8C;
1905   GL_CURRENT_PROGRAM = $8B8D;
1906   GL_POINT_SPRITE_COORD_ORIGIN = $8CA0;
1907   GL_LOWER_LEFT = $8CA1;
1908   GL_UPPER_LEFT = $8CA2;
1909   GL_STENCIL_BACK_REF = $8CA3;
1910   GL_STENCIL_BACK_VALUE_MASK = $8CA4;
1911   GL_STENCIL_BACK_WRITEMASK = $8CA5;
1912 {$ifdef DGL_DEPRECATED}
1913   GL_VERTEX_PROGRAM_TWO_SIDE = $8643;
1914   GL_POINT_SPRITE = $8861;
1915   GL_COORD_REPLACE = $8862;
1916   GL_MAX_TEXTURE_COORDS = $8871;
1917 {$endif}
1918
1919   // GL_VERSION_2_1
1920   GL_PIXEL_PACK_BUFFER = $88EB;
1921   GL_PIXEL_UNPACK_BUFFER = $88EC;
1922   GL_PIXEL_PACK_BUFFER_BINDING = $88ED;
1923   GL_PIXEL_UNPACK_BUFFER_BINDING = $88EF;
1924   GL_FLOAT_MAT2x3 = $8B65;
1925   GL_FLOAT_MAT2x4 = $8B66;
1926   GL_FLOAT_MAT3x2 = $8B67;
1927   GL_FLOAT_MAT3x4 = $8B68;
1928   GL_FLOAT_MAT4x2 = $8B69;
1929   GL_FLOAT_MAT4x3 = $8B6A;
1930   GL_SRGB = $8C40;
1931   GL_SRGB8 = $8C41;
1932   GL_SRGB_ALPHA = $8C42;
1933   GL_SRGB8_ALPHA8 = $8C43;
1934   GL_COMPRESSED_SRGB = $8C48;
1935   GL_COMPRESSED_SRGB_ALPHA = $8C49;
1936 {$ifdef DGL_DEPRECATED}
1937   GL_CURRENT_RASTER_SECONDARY_COLOR = $845F;
1938   GL_SLUMINANCE_ALPHA = $8C44;
1939   GL_SLUMINANCE8_ALPHA8 = $8C45;
1940   GL_SLUMINANCE = $8C46;
1941   GL_SLUMINANCE8 = $8C47;
1942   GL_COMPRESSED_SLUMINANCE = $8C4A;
1943   GL_COMPRESSED_SLUMINANCE_ALPHA = $8C4B;
1944 {$endif}
1945
1946   // GL_VERSION_3_0
1947   GL_COMPARE_REF_TO_TEXTURE = $884E;
1948   GL_CLIP_DISTANCE0 = $3000;
1949   GL_CLIP_DISTANCE1 = $3001;
1950   GL_CLIP_DISTANCE2 = $3002;
1951   GL_CLIP_DISTANCE3 = $3003;
1952   GL_CLIP_DISTANCE4 = $3004;
1953   GL_CLIP_DISTANCE5 = $3005;
1954   GL_CLIP_DISTANCE6 = $3006;
1955   GL_CLIP_DISTANCE7 = $3007;
1956   GL_MAX_CLIP_DISTANCES = $0D32;
1957   GL_MAJOR_VERSION = $821B;
1958   GL_MINOR_VERSION = $821C;
1959   GL_NUM_EXTENSIONS = $821D;
1960   GL_CONTEXT_FLAGS = $821E;
1961   GL_DEPTH_BUFFER = $8223;
1962   GL_STENCIL_BUFFER = $8224;
1963   GL_COMPRESSED_RED = $8225;
1964   GL_COMPRESSED_RG = $8226;
1965   GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT = $0001;
1966   GL_RGBA32F = $8814;
1967   GL_RGB32F = $8815;
1968   GL_RGBA16F = $881A;
1969   GL_RGB16F = $881B;
1970   GL_VERTEX_ATTRIB_ARRAY_INTEGER = $88FD;
1971   GL_MAX_ARRAY_TEXTURE_LAYERS = $88FF;
1972   GL_MIN_PROGRAM_TEXEL_OFFSET = $8904;
1973   GL_MAX_PROGRAM_TEXEL_OFFSET = $8905;
1974   GL_CLAMP_READ_COLOR = $891C;
1975   GL_FIXED_ONLY = $891D;
1976   GL_MAX_VARYING_COMPONENTS = $8B4B;
1977   GL_TEXTURE_1D_ARRAY = $8C18;
1978   GL_PROXY_TEXTURE_1D_ARRAY = $8C19;
1979   GL_TEXTURE_2D_ARRAY = $8C1A;
1980   GL_PROXY_TEXTURE_2D_ARRAY = $8C1B;
1981   GL_TEXTURE_BINDING_1D_ARRAY = $8C1C;
1982   GL_TEXTURE_BINDING_2D_ARRAY = $8C1D;
1983   GL_R11F_G11F_B10F = $8C3A;
1984   GL_UNSIGNED_INT_10F_11F_11F_REV = $8C3B;
1985   GL_RGB9_E5 = $8C3D;
1986   GL_UNSIGNED_INT_5_9_9_9_REV = $8C3E;
1987   GL_TEXTURE_SHARED_SIZE = $8C3F;
1988   GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH = $8C76;
1989   GL_TRANSFORM_FEEDBACK_BUFFER_MODE = $8C7F;
1990   GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS = $8C80;
1991   GL_TRANSFORM_FEEDBACK_VARYINGS = $8C83;
1992   GL_TRANSFORM_FEEDBACK_BUFFER_START = $8C84;
1993   GL_TRANSFORM_FEEDBACK_BUFFER_SIZE = $8C85;
1994   GL_PRIMITIVES_GENERATED = $8C87;
1995   GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN = $8C88;
1996   GL_RASTERIZER_DISCARD = $8C89;
1997   GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS = $8C8A;
1998   GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS = $8C8B;
1999   GL_INTERLEAVED_ATTRIBS = $8C8C;
2000   GL_SEPARATE_ATTRIBS = $8C8D;
2001   GL_TRANSFORM_FEEDBACK_BUFFER = $8C8E;
2002   GL_TRANSFORM_FEEDBACK_BUFFER_BINDING = $8C8F;
2003   GL_RGBA32UI = $8D70;
2004   GL_RGB32UI = $8D71;
2005   GL_RGBA16UI = $8D76;
2006   GL_RGB16UI = $8D77;
2007   GL_RGBA8UI = $8D7C;
2008   GL_RGB8UI = $8D7D;
2009   GL_RGBA32I = $8D82;
2010   GL_RGB32I = $8D83;
2011   GL_RGBA16I = $8D88;
2012   GL_RGB16I = $8D89;
2013   GL_RGBA8I = $8D8E;
2014   GL_RGB8I = $8D8F;
2015   GL_RED_INTEGER = $8D94;
2016   GL_GREEN_INTEGER = $8D95;
2017   GL_BLUE_INTEGER = $8D96;
2018   GL_RGB_INTEGER = $8D98;
2019   GL_RGBA_INTEGER = $8D99;
2020   GL_BGR_INTEGER = $8D9A;
2021   GL_BGRA_INTEGER = $8D9B;
2022   GL_SAMPLER_1D_ARRAY = $8DC0;
2023   GL_SAMPLER_2D_ARRAY = $8DC1;
2024   GL_SAMPLER_1D_ARRAY_SHADOW = $8DC3;
2025   GL_SAMPLER_2D_ARRAY_SHADOW = $8DC4;
2026   GL_SAMPLER_CUBE_SHADOW = $8DC5;
2027   GL_UNSIGNED_INT_VEC2 = $8DC6;
2028   GL_UNSIGNED_INT_VEC3 = $8DC7;
2029   GL_UNSIGNED_INT_VEC4 = $8DC8;
2030   GL_INT_SAMPLER_1D = $8DC9;
2031   GL_INT_SAMPLER_2D = $8DCA;
2032   GL_INT_SAMPLER_3D = $8DCB;
2033   GL_INT_SAMPLER_CUBE = $8DCC;
2034   GL_INT_SAMPLER_1D_ARRAY = $8DCE;
2035   GL_INT_SAMPLER_2D_ARRAY = $8DCF;
2036   GL_UNSIGNED_INT_SAMPLER_1D = $8DD1;
2037   GL_UNSIGNED_INT_SAMPLER_2D = $8DD2;
2038   GL_UNSIGNED_INT_SAMPLER_3D = $8DD3;
2039   GL_UNSIGNED_INT_SAMPLER_CUBE = $8DD4;
2040   GL_UNSIGNED_INT_SAMPLER_1D_ARRAY = $8DD6;
2041   GL_UNSIGNED_INT_SAMPLER_2D_ARRAY = $8DD7;
2042   GL_QUERY_WAIT = $8E13;
2043   GL_QUERY_NO_WAIT = $8E14;
2044   GL_QUERY_BY_REGION_WAIT = $8E15;
2045   GL_QUERY_BY_REGION_NO_WAIT = $8E16;
2046   GL_BUFFER_ACCESS_FLAGS = $911F;
2047   GL_BUFFER_MAP_LENGTH = $9120;
2048   GL_BUFFER_MAP_OFFSET = $9121;
2049   { Reuse tokens from ARB_depth_buffer_float }
2050   { reuse GL_DEPTH_COMPONENT32F }
2051   { reuse GL_DEPTH32F_STENCIL8 }
2052   { reuse GL_FLOAT_32_UNSIGNED_INT_24_8_REV }
2053   { Reuse tokens from ARB_framebuffer_object }
2054   { reuse GL_INVALID_FRAMEBUFFER_OPERATION }
2055   { reuse GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING }
2056   { reuse GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE }
2057   { reuse GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE }
2058   { reuse GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE }
2059   { reuse GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE }
2060   { reuse GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE }
2061   { reuse GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE }
2062   { reuse GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE }
2063   { reuse GL_FRAMEBUFFER_DEFAULT }
2064   { reuse GL_FRAMEBUFFER_UNDEFINED }
2065   { reuse GL_DEPTH_STENCIL_ATTACHMENT }
2066   { reuse GL_INDEX }
2067   { reuse GL_MAX_RENDERBUFFER_SIZE }
2068   { reuse GL_DEPTH_STENCIL }
2069   { reuse GL_UNSIGNED_INT_24_8 }
2070   { reuse GL_DEPTH24_STENCIL8 }
2071   { reuse GL_TEXTURE_STENCIL_SIZE }
2072   { reuse GL_TEXTURE_RED_TYPE }
2073   { reuse GL_TEXTURE_GREEN_TYPE }
2074   { reuse GL_TEXTURE_BLUE_TYPE }
2075   { reuse GL_TEXTURE_ALPHA_TYPE }
2076   { reuse GL_TEXTURE_DEPTH_TYPE }
2077   { reuse GL_UNSIGNED_NORMALIZED }
2078   { reuse GL_FRAMEBUFFER_BINDING }
2079   { reuse GL_DRAW_FRAMEBUFFER_BINDING }
2080   { reuse GL_RENDERBUFFER_BINDING }
2081   { reuse GL_READ_FRAMEBUFFER }
2082   { reuse GL_DRAW_FRAMEBUFFER }
2083   { reuse GL_READ_FRAMEBUFFER_BINDING }
2084   { reuse GL_RENDERBUFFER_SAMPLES }
2085   { reuse GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE }
2086   { reuse GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME }
2087   { reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL }
2088   { reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE }
2089   { reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER }
2090   { reuse GL_FRAMEBUFFER_COMPLETE }
2091   { reuse GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT }
2092   { reuse GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT }
2093   { reuse GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER }
2094   { reuse GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER }
2095   { reuse GL_FRAMEBUFFER_UNSUPPORTED }
2096   { reuse GL_MAX_COLOR_ATTACHMENTS }
2097   { reuse GL_COLOR_ATTACHMENT0 }
2098   { reuse GL_COLOR_ATTACHMENT1 }
2099   { reuse GL_COLOR_ATTACHMENT2 }
2100   { reuse GL_COLOR_ATTACHMENT3 }
2101   { reuse GL_COLOR_ATTACHMENT4 }
2102   { reuse GL_COLOR_ATTACHMENT5 }
2103   { reuse GL_COLOR_ATTACHMENT6 }
2104   { reuse GL_COLOR_ATTACHMENT7 }
2105   { reuse GL_COLOR_ATTACHMENT8 }
2106   { reuse GL_COLOR_ATTACHMENT9 }
2107   { reuse GL_COLOR_ATTACHMENT10 }
2108   { reuse GL_COLOR_ATTACHMENT11 }
2109   { reuse GL_COLOR_ATTACHMENT12 }
2110   { reuse GL_COLOR_ATTACHMENT13 }
2111   { reuse GL_COLOR_ATTACHMENT14 }
2112   { reuse GL_COLOR_ATTACHMENT15 }
2113   { reuse GL_DEPTH_ATTACHMENT }
2114   { reuse GL_STENCIL_ATTACHMENT }
2115   { reuse GL_FRAMEBUFFER }
2116   { reuse GL_RENDERBUFFER }
2117   { reuse GL_RENDERBUFFER_WIDTH }
2118   { reuse GL_RENDERBUFFER_HEIGHT }
2119   { reuse GL_RENDERBUFFER_INTERNAL_FORMAT }
2120   { reuse GL_STENCIL_INDEX1 }
2121   { reuse GL_STENCIL_INDEX4 }
2122   { reuse GL_STENCIL_INDEX8 }
2123   { reuse GL_STENCIL_INDEX16 }
2124   { reuse GL_RENDERBUFFER_RED_SIZE }
2125   { reuse GL_RENDERBUFFER_GREEN_SIZE }
2126   { reuse GL_RENDERBUFFER_BLUE_SIZE }
2127   { reuse GL_RENDERBUFFER_ALPHA_SIZE }
2128   { reuse GL_RENDERBUFFER_DEPTH_SIZE }
2129   { reuse GL_RENDERBUFFER_STENCIL_SIZE }
2130   { reuse GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE }
2131   { reuse GL_MAX_SAMPLES }
2132   { Reuse tokens from ARB_framebuffer_sRGB }
2133   { reuse GL_FRAMEBUFFER_SRGB }
2134   { Reuse tokens from ARB_half_float_vertex }
2135   { reuse GL_HALF_FLOAT }
2136   { Reuse tokens from ARB_map_buffer_range }
2137   { reuse GL_MAP_READ_BIT }
2138   { reuse GL_MAP_WRITE_BIT }
2139   { reuse GL_MAP_INVALIDATE_RANGE_BIT }
2140   { reuse GL_MAP_INVALIDATE_BUFFER_BIT }
2141   { reuse GL_MAP_FLUSH_EXPLICIT_BIT }
2142   { reuse GL_MAP_UNSYNCHRONIZED_BIT }
2143   { Reuse tokens from ARB_texture_compression_rgtc }
2144   { reuse GL_COMPRESSED_RED_RGTC1 }
2145   { reuse GL_COMPRESSED_SIGNED_RED_RGTC1 }
2146   { reuse GL_COMPRESSED_RG_RGTC2 }
2147   { reuse GL_COMPRESSED_SIGNED_RG_RGTC2 }
2148   { Reuse tokens from ARB_texture_rg }
2149   { reuse GL_RG }
2150   { reuse GL_RG_INTEGER }
2151   { reuse GL_R8 }
2152   { reuse GL_R16 }
2153   { reuse GL_RG8 }
2154   { reuse GL_RG16 }
2155   { reuse GL_R16F }
2156   { reuse GL_R32F }
2157   { reuse GL_RG16F }
2158   { reuse GL_RG32F }
2159   { reuse GL_R8I }
2160   { reuse GL_R8UI }
2161   { reuse GL_R16I }
2162   { reuse GL_R16UI }
2163   { reuse GL_R32I }
2164   { reuse GL_R32UI }
2165   { reuse GL_RG8I }
2166   { reuse GL_RG8UI }
2167   { reuse GL_RG16I }
2168   { reuse GL_RG16UI }
2169   { reuse GL_RG32I }
2170   { reuse GL_RG32UI }
2171   { Reuse tokens from ARB_vertex_array_object }
2172   { reuse GL_VERTEX_ARRAY_BINDING }
2173 {$ifdef DGL_DEPRECATED}
2174   GL_CLAMP_VERTEX_COLOR = $891A;
2175   GL_CLAMP_FRAGMENT_COLOR = $891B;
2176   GL_ALPHA_INTEGER = $8D97;
2177   { Reuse tokens from ARB_framebuffer_object }
2178   { reuse GL_TEXTURE_LUMINANCE_TYPE }
2179   { reuse GL_TEXTURE_INTENSITY_TYPE }
2180 {$endif}
2181
2182   // GL_VERSION_3_1
2183   GL_SAMPLER_2D_RECT = $8B63;
2184   GL_SAMPLER_2D_RECT_SHADOW = $8B64;
2185   GL_SAMPLER_BUFFER = $8DC2;
2186   GL_INT_SAMPLER_2D_RECT = $8DCD;
2187   GL_INT_SAMPLER_BUFFER = $8DD0;
2188   GL_UNSIGNED_INT_SAMPLER_2D_RECT = $8DD5;
2189   GL_UNSIGNED_INT_SAMPLER_BUFFER = $8DD8;
2190   GL_TEXTURE_BUFFER = $8C2A;
2191   GL_MAX_TEXTURE_BUFFER_SIZE = $8C2B;
2192   GL_TEXTURE_BINDING_BUFFER = $8C2C;
2193   GL_TEXTURE_BUFFER_DATA_STORE_BINDING = $8C2D;
2194   GL_TEXTURE_BUFFER_FORMAT = $8C2E;
2195   GL_TEXTURE_RECTANGLE = $84F5;
2196   GL_TEXTURE_BINDING_RECTANGLE = $84F6;
2197   GL_PROXY_TEXTURE_RECTANGLE = $84F7;
2198   GL_MAX_RECTANGLE_TEXTURE_SIZE = $84F8;
2199   GL_RED_SNORM = $8F90;
2200   GL_RG_SNORM = $8F91;
2201   GL_RGB_SNORM = $8F92;
2202   GL_RGBA_SNORM = $8F93;
2203   GL_R8_SNORM = $8F94;
2204   GL_RG8_SNORM = $8F95;
2205   GL_RGB8_SNORM = $8F96;
2206   GL_RGBA8_SNORM = $8F97;
2207   GL_R16_SNORM = $8F98;
2208   GL_RG16_SNORM = $8F99;
2209   GL_RGB16_SNORM = $8F9A;
2210   GL_RGBA16_SNORM = $8F9B;
2211   GL_SIGNED_NORMALIZED = $8F9C;
2212   GL_PRIMITIVE_RESTART = $8F9D;
2213   GL_PRIMITIVE_RESTART_INDEX = $8F9E;
2214   { Reuse tokens from ARB_copy_buffer }
2215   { reuse GL_COPY_READ_BUFFER }
2216   { reuse GL_COPY_WRITE_BUFFER }
2217   { Reuse tokens from ARB_draw_instanced (none) }
2218   { Reuse tokens from ARB_uniform_buffer_object }
2219   { reuse GL_UNIFORM_BUFFER }
2220   { reuse GL_UNIFORM_BUFFER_BINDING }
2221   { reuse GL_UNIFORM_BUFFER_START }
2222   { reuse GL_UNIFORM_BUFFER_SIZE }
2223   { reuse GL_MAX_VERTEX_UNIFORM_BLOCKS }
2224   { reuse GL_MAX_FRAGMENT_UNIFORM_BLOCKS }
2225   { reuse GL_MAX_COMBINED_UNIFORM_BLOCKS }
2226   { reuse GL_MAX_UNIFORM_BUFFER_BINDINGS }
2227   { reuse GL_MAX_UNIFORM_BLOCK_SIZE }
2228   { reuse GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS }
2229   { reuse GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS }
2230   { reuse GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT }
2231   { reuse GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH }
2232   { reuse GL_ACTIVE_UNIFORM_BLOCKS }
2233   { reuse GL_UNIFORM_TYPE }
2234   { reuse GL_UNIFORM_SIZE }
2235   { reuse GL_UNIFORM_NAME_LENGTH }
2236   { reuse GL_UNIFORM_BLOCK_INDEX }
2237   { reuse GL_UNIFORM_OFFSET }
2238   { reuse GL_UNIFORM_ARRAY_STRIDE }
2239   { reuse GL_UNIFORM_MATRIX_STRIDE }
2240   { reuse GL_UNIFORM_IS_ROW_MAJOR }
2241   { reuse GL_UNIFORM_BLOCK_BINDING }
2242   { reuse GL_UNIFORM_BLOCK_DATA_SIZE }
2243   { reuse GL_UNIFORM_BLOCK_NAME_LENGTH }
2244   { reuse GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS }
2245   { reuse GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES }
2246   { reuse GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER }
2247   { reuse GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER }
2248   { reuse GL_INVALID_INDEX }
2249
2250   // GL_VERSION_3_2
2251   GL_CONTEXT_CORE_PROFILE_BIT = $00000001;
2252   GL_CONTEXT_COMPATIBILITY_PROFILE_BIT = $00000002;
2253   GL_LINES_ADJACENCY = $000A;
2254   GL_LINE_STRIP_ADJACENCY = $000B;
2255   GL_TRIANGLES_ADJACENCY = $000C;
2256   GL_TRIANGLE_STRIP_ADJACENCY = $000D;
2257   GL_PROGRAM_POINT_SIZE = $8642;
2258   GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS = $8C29;
2259   GL_FRAMEBUFFER_ATTACHMENT_LAYERED = $8DA7;
2260   GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS = $8DA8;
2261   GL_GEOMETRY_SHADER = $8DD9;
2262   GL_GEOMETRY_VERTICES_OUT = $8916;
2263   GL_GEOMETRY_INPUT_TYPE = $8917;
2264   GL_GEOMETRY_OUTPUT_TYPE = $8918;
2265   GL_MAX_GEOMETRY_UNIFORM_COMPONENTS = $8DDF;
2266   GL_MAX_GEOMETRY_OUTPUT_VERTICES = $8DE0;
2267   GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS = $8DE1;
2268   GL_MAX_VERTEX_OUTPUT_COMPONENTS = $9122;
2269   GL_MAX_GEOMETRY_INPUT_COMPONENTS = $9123;
2270   GL_MAX_GEOMETRY_OUTPUT_COMPONENTS = $9124;
2271   GL_MAX_FRAGMENT_INPUT_COMPONENTS = $9125;
2272   GL_CONTEXT_PROFILE_MASK = $9126;
2273   { reuse GL_MAX_VARYING_COMPONENTS }
2274   { reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER }
2275   { Reuse tokens from ARB_depth_clamp }
2276   { reuse GL_DEPTH_CLAMP }
2277   { Reuse tokens from ARB_draw_elements_base_vertex (none) }
2278   { Reuse tokens from ARB_fragment_coord_conventions (none) }
2279   { Reuse tokens from ARB_provoking_vertex }
2280   { reuse GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION }
2281   { reuse GL_FIRST_VERTEX_CONVENTION }
2282   { reuse GL_LAST_VERTEX_CONVENTION }
2283   { reuse GL_PROVOKING_VERTEX }
2284   { Reuse tokens from ARB_seamless_cube_map }
2285   { reuse GL_TEXTURE_CUBE_MAP_SEAMLESS }
2286   { Reuse tokens from ARB_sync }
2287   { reuse GL_MAX_SERVER_WAIT_TIMEOUT }
2288   { reuse GL_OBJECT_TYPE }
2289   { reuse GL_SYNC_CONDITION }
2290   { reuse GL_SYNC_STATUS }
2291   { reuse GL_SYNC_FLAGS }
2292   { reuse GL_SYNC_FENCE }
2293   { reuse GL_SYNC_GPU_COMMANDS_COMPLETE }
2294   { reuse GL_UNSIGNALED }
2295   { reuse GL_SIGNALED }
2296   { reuse GL_ALREADY_SIGNALED }
2297   { reuse GL_TIMEOUT_EXPIRED }
2298   { reuse GL_CONDITION_SATISFIED }
2299   { reuse GL_WAIT_FAILED }
2300   { reuse GL_TIMEOUT_IGNORED }
2301   { reuse GL_SYNC_FLUSH_COMMANDS_BIT }
2302   { reuse GL_TIMEOUT_IGNORED }
2303   { Reuse tokens from ARB_texture_multisample }
2304   { reuse GL_SAMPLE_POSITION }
2305   { reuse GL_SAMPLE_MASK }
2306   { reuse GL_SAMPLE_MASK_VALUE }
2307   { reuse GL_MAX_SAMPLE_MASK_WORDS }
2308   { reuse GL_TEXTURE_2D_MULTISAMPLE }
2309   { reuse GL_PROXY_TEXTURE_2D_MULTISAMPLE }
2310   { reuse GL_TEXTURE_2D_MULTISAMPLE_ARRAY }
2311   { reuse GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY }
2312   { reuse GL_TEXTURE_BINDING_2D_MULTISAMPLE }
2313   { reuse GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY }
2314   { reuse GL_TEXTURE_SAMPLES }
2315   { reuse GL_TEXTURE_FIXED_SAMPLE_LOCATIONS }
2316   { reuse GL_SAMPLER_2D_MULTISAMPLE }
2317   { reuse GL_INT_SAMPLER_2D_MULTISAMPLE }
2318   { reuse GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE }
2319   { reuse GL_SAMPLER_2D_MULTISAMPLE_ARRAY }
2320   { reuse GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY }
2321   { reuse GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY }
2322   { reuse GL_MAX_COLOR_TEXTURE_SAMPLES }
2323   { reuse GL_MAX_DEPTH_TEXTURE_SAMPLES }
2324   { reuse GL_MAX_INTEGER_SAMPLES }
2325   { Don't need to reuse tokens from ARB_vertex_array_bgra since they're already in 1.2 core }
2326
2327   // GL_VERSION_3_3
2328   GL_VERTEX_ATTRIB_ARRAY_DIVISOR = $88FE;
2329   { Reuse tokens from ARB_blend_func_extended }
2330   { reuse GL_SRC1_COLOR }
2331   { reuse GL_ONE_MINUS_SRC1_COLOR }
2332   { reuse GL_ONE_MINUS_SRC1_ALPHA }
2333   { reuse GL_MAX_DUAL_SOURCE_DRAW_BUFFERS }
2334   { Reuse tokens from ARB_explicit_attrib_location (none) }
2335   { Reuse tokens from ARB_occlusion_query2 }
2336   { reuse GL_ANY_SAMPLES_PASSED }
2337   { Reuse tokens from ARB_sampler_objects }
2338   { reuse GL_SAMPLER_BINDING }
2339   { Reuse tokens from ARB_shader_bit_encoding (none) }
2340   { Reuse tokens from ARB_texture_rgb10_a2ui }
2341   { reuse GL_RGB10_A2UI }
2342   { Reuse tokens from ARB_texture_swizzle }
2343   { reuse GL_TEXTURE_SWIZZLE_R }
2344   { reuse GL_TEXTURE_SWIZZLE_G }
2345   { reuse GL_TEXTURE_SWIZZLE_B }
2346   { reuse GL_TEXTURE_SWIZZLE_A }
2347   { reuse GL_TEXTURE_SWIZZLE_RGBA }
2348   { Reuse tokens from ARB_timer_query }
2349   { reuse GL_TIME_ELAPSED }
2350   { reuse GL_TIMESTAMP }
2351   { Reuse tokens from ARB_vertex_type_2_10_10_10_rev }
2352   { reuse GL_INT_2_10_10_10_REV }
2353
2354   // GL_VERSION_4_0
2355   GL_SAMPLE_SHADING = $8C36;
2356   GL_MIN_SAMPLE_SHADING_VALUE = $8C37;
2357   GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET = $8E5E;
2358   GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET = $8E5F;
2359   GL_TEXTURE_CUBE_MAP_ARRAY = $9009;
2360   GL_TEXTURE_BINDING_CUBE_MAP_ARRAY = $900A;
2361   GL_PROXY_TEXTURE_CUBE_MAP_ARRAY = $900B;
2362   GL_SAMPLER_CUBE_MAP_ARRAY = $900C;
2363   GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW = $900D;
2364   GL_INT_SAMPLER_CUBE_MAP_ARRAY = $900E;
2365   GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY = $900F;
2366   { Reuse tokens from ARB_texture_query_lod (none) }
2367   { Reuse tokens from ARB_draw_buffers_blend (none) }
2368   { Reuse tokens from ARB_draw_indirect }
2369   { reuse GL_DRAW_INDIRECT_BUFFER }
2370   { reuse GL_DRAW_INDIRECT_BUFFER_BINDING }
2371   { Reuse tokens from ARB_gpu_shader5 }
2372   { reuse GL_GEOMETRY_SHADER_INVOCATIONS }
2373   { reuse GL_MAX_GEOMETRY_SHADER_INVOCATIONS }
2374   { reuse GL_MIN_FRAGMENT_INTERPOLATION_OFFSET }
2375   { reuse GL_MAX_FRAGMENT_INTERPOLATION_OFFSET }
2376   { reuse GL_FRAGMENT_INTERPOLATION_OFFSET_BITS }
2377   { reuse GL_MAX_VERTEX_STREAMS }
2378   { Reuse tokens from ARB_gpu_shader_fp64 }
2379   { reuse GL_DOUBLE_VEC2 }
2380   { reuse GL_DOUBLE_VEC3 }
2381   { reuse GL_DOUBLE_VEC4 }
2382   { reuse GL_DOUBLE_MAT2 }
2383   { reuse GL_DOUBLE_MAT3 }
2384   { reuse GL_DOUBLE_MAT4 }
2385   { reuse GL_DOUBLE_MAT2x3 }
2386   { reuse GL_DOUBLE_MAT2x4 }
2387   { reuse GL_DOUBLE_MAT3x2 }
2388   { reuse GL_DOUBLE_MAT3x4 }
2389   { reuse GL_DOUBLE_MAT4x2 }
2390   { reuse GL_DOUBLE_MAT4x3 }
2391   { Reuse tokens from ARB_shader_subroutine }
2392   { reuse GL_ACTIVE_SUBROUTINES }
2393   { reuse GL_ACTIVE_SUBROUTINE_UNIFORMS }
2394   { reuse GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS }
2395   { reuse GL_ACTIVE_SUBROUTINE_MAX_LENGTH }
2396   { reuse GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH }
2397   { reuse GL_MAX_SUBROUTINES }
2398   { reuse GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS }
2399   { reuse GL_NUM_COMPATIBLE_SUBROUTINES }
2400   { reuse GL_COMPATIBLE_SUBROUTINES }
2401   { Reuse tokens from ARB_tessellation_shader }
2402   { reuse GL_PATCHES }
2403   { reuse GL_PATCH_VERTICES }
2404   { reuse GL_PATCH_DEFAULT_INNER_LEVEL }
2405   { reuse GL_PATCH_DEFAULT_OUTER_LEVEL }
2406   { reuse GL_TESS_CONTROL_OUTPUT_VERTICES }
2407   { reuse GL_TESS_GEN_MODE }
2408   { reuse GL_TESS_GEN_SPACING }
2409   { reuse GL_TESS_GEN_VERTEX_ORDER }
2410   { reuse GL_TESS_GEN_POINT_MODE }
2411   { reuse GL_ISOLINES }
2412   { reuse GL_FRACTIONAL_ODD }
2413   { reuse GL_FRACTIONAL_EVEN }
2414   { reuse GL_MAX_PATCH_VERTICES }
2415   { reuse GL_MAX_TESS_GEN_LEVEL }
2416   { reuse GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS }
2417   { reuse GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS }
2418   { reuse GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS }
2419   { reuse GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS }
2420   { reuse GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS }
2421   { reuse GL_MAX_TESS_PATCH_COMPONENTS }
2422   { reuse GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS }
2423   { reuse GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS }
2424   { reuse GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS }
2425   { reuse GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS }
2426   { reuse GL_MAX_TESS_CONTROL_INPUT_COMPONENTS }
2427   { reuse GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS }
2428   { reuse GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS }
2429   { reuse GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS }
2430   { reuse GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER }
2431   { reuse GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER }
2432   { reuse GL_TESS_EVALUATION_SHADER }
2433   { reuse GL_TESS_CONTROL_SHADER }
2434   { Reuse tokens from ARB_texture_buffer_object_rgb32 (none) }
2435   { Reuse tokens from ARB_transform_feedback2 }
2436   { reuse GL_TRANSFORM_FEEDBACK }
2437   { reuse GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED }
2438   { reuse GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE }
2439   { reuse GL_TRANSFORM_FEEDBACK_BINDING }
2440   { Reuse tokens from ARB_transform_feedback3 }
2441   { reuse GL_MAX_TRANSFORM_FEEDBACK_BUFFERS }
2442   { reuse GL_MAX_VERTEX_STREAMS }
2443
2444   // GL_VERSION_4_1
2445   { Reuse tokens from ARB_ES2_compatibility }
2446   { reuse GL_FIXED }
2447   { reuse GL_IMPLEMENTATION_COLOR_READ_TYPE }
2448   { reuse GL_IMPLEMENTATION_COLOR_READ_FORMAT }
2449   { reuse GL_LOW_FLOAT }
2450   { reuse GL_MEDIUM_FLOAT }
2451   { reuse GL_HIGH_FLOAT }
2452   { reuse GL_LOW_INT }
2453   { reuse GL_MEDIUM_INT }
2454   { reuse GL_HIGH_INT }
2455   { reuse GL_SHADER_COMPILER }
2456   { reuse GL_NUM_SHADER_BINARY_FORMATS }
2457   { reuse GL_MAX_VERTEX_UNIFORM_VECTORS }
2458   { reuse GL_MAX_VARYING_VECTORS }
2459   { reuse GL_MAX_FRAGMENT_UNIFORM_VECTORS }
2460   { reuse GL_RGB565 }
2461   { Reuse tokens from ARB_get_program_binary }
2462   { reuse GL_PROGRAM_BINARY_RETRIEVABLE_HINT }
2463   { reuse GL_PROGRAM_BINARY_LENGTH }
2464   { reuse GL_NUM_PROGRAM_BINARY_FORMATS }
2465   { reuse GL_PROGRAM_BINARY_FORMATS }
2466   { Reuse tokens from ARB_separate_shader_objects }
2467   { reuse GL_VERTEX_SHADER_BIT }
2468   { reuse GL_FRAGMENT_SHADER_BIT }
2469   { reuse GL_GEOMETRY_SHADER_BIT }
2470   { reuse GL_TESS_CONTROL_SHADER_BIT }
2471   { reuse GL_TESS_EVALUATION_SHADER_BIT }
2472   { reuse GL_ALL_SHADER_BITS }
2473   { reuse GL_PROGRAM_SEPARABLE }
2474   { reuse GL_ACTIVE_PROGRAM }
2475   { reuse GL_PROGRAM_PIPELINE_BINDING }
2476   { Reuse tokens from ARB_shader_precision (none) }
2477   { Reuse tokens from ARB_vertex_attrib_64bit - all are in GL 3.0 and 4.0 already }
2478   { Reuse tokens from ARB_viewport_array - some are in GL 1.1 and ARB_provoking_vertex already }
2479   { reuse GL_MAX_VIEWPORTS }
2480   { reuse GL_VIEWPORT_SUBPIXEL_BITS }
2481   { reuse GL_VIEWPORT_BOUNDS_RANGE }
2482   { reuse GL_LAYER_PROVOKING_VERTEX }
2483   { reuse GL_VIEWPORT_INDEX_PROVOKING_VERTEX }
2484   { reuse GL_UNDEFINED_VERTEX }
2485
2486   // GL_VERSION_4_2
2487   { Reuse tokens from ARB_base_instance (none) }
2488   { Reuse tokens from ARB_shading_language_420pack (none) }
2489   { Reuse tokens from ARB_transform_feedback_instanced (none) }
2490   { Reuse tokens from ARB_compressed_texture_pixel_storage }
2491   { reuse GL_UNPACK_COMPRESSED_BLOCK_WIDTH }
2492   { reuse GL_UNPACK_COMPRESSED_BLOCK_HEIGHT }
2493   { reuse GL_UNPACK_COMPRESSED_BLOCK_DEPTH }
2494   { reuse GL_UNPACK_COMPRESSED_BLOCK_SIZE }
2495   { reuse GL_PACK_COMPRESSED_BLOCK_WIDTH }
2496   { reuse GL_PACK_COMPRESSED_BLOCK_HEIGHT }
2497   { reuse GL_PACK_COMPRESSED_BLOCK_DEPTH }
2498   { reuse GL_PACK_COMPRESSED_BLOCK_SIZE }
2499   { Reuse tokens from ARB_conservative_depth (none) }
2500   { Reuse tokens from ARB_internalformat_query }
2501   { reuse GL_NUM_SAMPLE_COUNTS }
2502   { Reuse tokens from ARB_map_buffer_alignment }
2503   { reuse GL_MIN_MAP_BUFFER_ALIGNMENT }
2504   { Reuse tokens from ARB_shader_atomic_counters }
2505   { reuse GL_ATOMIC_COUNTER_BUFFER }
2506   { reuse GL_ATOMIC_COUNTER_BUFFER_BINDING }
2507   { reuse GL_ATOMIC_COUNTER_BUFFER_START }
2508   { reuse GL_ATOMIC_COUNTER_BUFFER_SIZE }
2509   { reuse GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE }
2510   { reuse GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS }
2511   { reuse GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES }
2512   { reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER }
2513   { reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER }
2514   { reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER }
2515   { reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER }
2516   { reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER }
2517   { reuse GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS }
2518   { reuse GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS }
2519   { reuse GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS }
2520   { reuse GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS }
2521   { reuse GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS }
2522   { reuse GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS }
2523   { reuse GL_MAX_VERTEX_ATOMIC_COUNTERS }
2524   { reuse GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS }
2525   { reuse GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS }
2526   { reuse GL_MAX_GEOMETRY_ATOMIC_COUNTERS }
2527   { reuse GL_MAX_FRAGMENT_ATOMIC_COUNTERS }
2528   { reuse GL_MAX_COMBINED_ATOMIC_COUNTERS }
2529   { reuse GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE }
2530   { reuse GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS }
2531   { reuse GL_ACTIVE_ATOMIC_COUNTER_BUFFERS }
2532   { reuse GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX }
2533   { reuse GL_UNSIGNED_INT_ATOMIC_COUNTER }
2534   { Reuse tokens from ARB_shader_image_load_store }
2535   { reuse GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT }
2536   { reuse GL_ELEMENT_ARRAY_BARRIER_BIT }
2537   { reuse GL_UNIFORM_BARRIER_BIT }
2538   { reuse GL_TEXTURE_FETCH_BARRIER_BIT }
2539   { reuse GL_SHADER_IMAGE_ACCESS_BARRIER_BIT }
2540   { reuse GL_COMMAND_BARRIER_BIT }
2541   { reuse GL_PIXEL_BUFFER_BARRIER_BIT }
2542   { reuse GL_TEXTURE_UPDATE_BARRIER_BIT }
2543   { reuse GL_BUFFER_UPDATE_BARRIER_BIT }
2544   { reuse GL_FRAMEBUFFER_BARRIER_BIT }
2545   { reuse GL_TRANSFORM_FEEDBACK_BARRIER_BIT }
2546   { reuse GL_ATOMIC_COUNTER_BARRIER_BIT }
2547   { reuse GL_ALL_BARRIER_BITS }
2548   { reuse GL_MAX_IMAGE_UNITS }
2549   { reuse GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS }
2550   { reuse GL_IMAGE_BINDING_NAME }
2551   { reuse GL_IMAGE_BINDING_LEVEL }
2552   { reuse GL_IMAGE_BINDING_LAYERED }
2553   { reuse GL_IMAGE_BINDING_LAYER }
2554   { reuse GL_IMAGE_BINDING_ACCESS }
2555   { reuse GL_IMAGE_1D }
2556   { reuse GL_IMAGE_2D }
2557   { reuse GL_IMAGE_3D }
2558   { reuse GL_IMAGE_2D_RECT }
2559   { reuse GL_IMAGE_CUBE }
2560   { reuse GL_IMAGE_BUFFER }
2561   { reuse GL_IMAGE_1D_ARRAY }
2562   { reuse GL_IMAGE_2D_ARRAY }
2563   { reuse GL_IMAGE_CUBE_MAP_ARRAY }
2564   { reuse GL_IMAGE_2D_MULTISAMPLE }
2565   { reuse GL_IMAGE_2D_MULTISAMPLE_ARRAY }
2566   { reuse GL_INT_IMAGE_1D }
2567   { reuse GL_INT_IMAGE_2D }
2568   { reuse GL_INT_IMAGE_3D }
2569   { reuse GL_INT_IMAGE_2D_RECT }
2570   { reuse GL_INT_IMAGE_CUBE }
2571   { reuse GL_INT_IMAGE_BUFFER }
2572   { reuse GL_INT_IMAGE_1D_ARRAY }
2573   { reuse GL_INT_IMAGE_2D_ARRAY }
2574   { reuse GL_INT_IMAGE_CUBE_MAP_ARRAY }
2575   { reuse GL_INT_IMAGE_2D_MULTISAMPLE }
2576   { reuse GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY }
2577   { reuse GL_UNSIGNED_INT_IMAGE_1D }
2578   { reuse GL_UNSIGNED_INT_IMAGE_2D }
2579   { reuse GL_UNSIGNED_INT_IMAGE_3D }
2580   { reuse GL_UNSIGNED_INT_IMAGE_2D_RECT }
2581   { reuse GL_UNSIGNED_INT_IMAGE_CUBE }
2582   { reuse GL_UNSIGNED_INT_IMAGE_BUFFER }
2583   { reuse GL_UNSIGNED_INT_IMAGE_1D_ARRAY }
2584   { reuse GL_UNSIGNED_INT_IMAGE_2D_ARRAY }
2585   { reuse GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY }
2586   { reuse GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE }
2587   { reuse GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY }
2588   { reuse GL_MAX_IMAGE_SAMPLES }
2589   { reuse GL_IMAGE_BINDING_FORMAT }
2590   { reuse GL_IMAGE_FORMAT_COMPATIBILITY_TYPE }
2591   { reuse GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE }
2592   { reuse GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS }
2593   { reuse GL_MAX_VERTEX_IMAGE_UNIFORMS }
2594   { reuse GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS }
2595   { reuse GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS }
2596   { reuse GL_MAX_GEOMETRY_IMAGE_UNIFORMS }
2597   { reuse GL_MAX_FRAGMENT_IMAGE_UNIFORMS }
2598   { reuse GL_MAX_COMBINED_IMAGE_UNIFORMS }
2599   { Reuse tokens from ARB_shading_language_packing (none) }
2600   { Reuse tokens from ARB_texture_storage }
2601   { reuse GL_TEXTURE_IMMUTABLE_FORMAT }
2602
2603   // GL_VERSION_4_3
2604   GL_NUM_SHADING_LANGUAGE_VERSIONS  = $82E9;
2605   GL_VERTEX_ATTRIB_ARRAY_LONG = $874E;
2606   { Reuse tokens from ARB_arrays_of_arrays (none, GLSL only) }
2607   { Reuse tokens from ARB_fragment_layer_viewport (none, GLSL only) }
2608   { Reuse tokens from ARB_shader_image_size (none, GLSL only) }
2609   { Reuse tokens from ARB_ES3_compatibility }
2610   { reuse GL_COMPRESSED_RGB8_ETC2 }
2611   { reuse GL_COMPRESSED_SRGB8_ETC2 }
2612   { reuse GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 }
2613   { reuse GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 }
2614   { reuse GL_COMPRESSED_RGBA8_ETC2_EAC }
2615   { reuse GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC }
2616   { reuse GL_COMPRESSED_R11_EAC }
2617   { reuse GL_COMPRESSED_SIGNED_R11_EAC }
2618   { reuse GL_COMPRESSED_RG11_EAC }
2619   { reuse GL_COMPRESSED_SIGNED_RG11_EAC }
2620   { reuse GL_PRIMITIVE_RESTART_FIXED_INDEX }
2621   { reuse GL_ANY_SAMPLES_PASSED_CONSERVATIVE }
2622   { reuse GL_MAX_ELEMENT_INDEX }
2623   { Reuse tokens from ARB_clear_buffer_object (none) }
2624   { Reuse tokens from ARB_compute_shader }
2625   { reuse GL_COMPUTE_SHADER }
2626   { reuse GL_MAX_COMPUTE_UNIFORM_BLOCKS }
2627   { reuse GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS }
2628   { reuse GL_MAX_COMPUTE_IMAGE_UNIFORMS }
2629   { reuse GL_MAX_COMPUTE_SHARED_MEMORY_SIZE }
2630   { reuse GL_MAX_COMPUTE_UNIFORM_COMPONENTS }
2631   { reuse GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS }
2632   { reuse GL_MAX_COMPUTE_ATOMIC_COUNTERS }
2633   { reuse GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS }
2634   { reuse GL_MAX_COMPUTE_LOCAL_INVOCATIONS }
2635   { reuse GL_MAX_COMPUTE_WORK_GROUP_COUNT }
2636   { reuse GL_MAX_COMPUTE_WORK_GROUP_SIZE }
2637   { reuse GL_COMPUTE_LOCAL_WORK_SIZE }
2638   { reuse GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER }
2639   { reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER }
2640   { reuse GL_DISPATCH_INDIRECT_BUFFER }
2641   { reuse GL_DISPATCH_INDIRECT_BUFFER_BINDING }
2642   { Reuse tokens from ARB_copy_image (none) }
2643   { Reuse tokens from KHR_debug }
2644   { reuse GL_DEBUG_OUTPUT_SYNCHRONOUS }
2645   { reuse GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH }
2646   { reuse GL_DEBUG_CALLBACK_FUNCTION }
2647   { reuse GL_DEBUG_CALLBACK_USER_PARAM }
2648   { reuse GL_DEBUG_SOURCE_API }
2649   { reuse GL_DEBUG_SOURCE_WINDOW_SYSTEM }
2650   { reuse GL_DEBUG_SOURCE_SHADER_COMPILER }
2651   { reuse GL_DEBUG_SOURCE_THIRD_PARTY }
2652   { reuse GL_DEBUG_SOURCE_APPLICATION }
2653   { reuse GL_DEBUG_SOURCE_OTHER }
2654   { reuse GL_DEBUG_TYPE_ERROR }
2655   { reuse GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR }
2656   { reuse GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR }
2657   { reuse GL_DEBUG_TYPE_PORTABILITY }
2658   { reuse GL_DEBUG_TYPE_PERFORMANCE }
2659   { reuse GL_DEBUG_TYPE_OTHER }
2660   { reuse GL_MAX_DEBUG_MESSAGE_LENGTH }
2661   { reuse GL_MAX_DEBUG_LOGGED_MESSAGES }
2662   { reuse GL_DEBUG_LOGGED_MESSAGES }
2663   { reuse GL_DEBUG_SEVERITY_HIGH }
2664   { reuse GL_DEBUG_SEVERITY_MEDIUM }
2665   { reuse GL_DEBUG_SEVERITY_LOW }
2666   { reuse GL_DEBUG_TYPE_MARKER }
2667   { reuse GL_DEBUG_TYPE_PUSH_GROUP }
2668   { reuse GL_DEBUG_TYPE_POP_GROUP }
2669   { reuse GL_DEBUG_SEVERITY_NOTIFICATION }
2670   { reuse GL_MAX_DEBUG_GROUP_STACK_DEPTH }
2671   { reuse GL_DEBUG_GROUP_STACK_DEPTH }
2672   { reuse GL_BUFFER }
2673   { reuse GL_SHADER }
2674   { reuse GL_PROGRAM }
2675   { reuse GL_QUERY }
2676   { reuse GL_PROGRAM_PIPELINE }
2677   { reuse GL_SAMPLER }
2678   { reuse GL_DISPLAY_LIST }
2679   { reuse GL_MAX_LABEL_LENGTH }
2680   { reuse GL_DEBUG_OUTPUT }
2681   { reuse GL_CONTEXT_FLAG_DEBUG_BIT }
2682   { reuse GL_STACK_UNDERFLOW }
2683   { reuse GL_STACK_OVERFLOW }
2684   { Reuse tokens from ARB_explicit_uniform_location }
2685   { reuse GL_MAX_UNIFORM_LOCATIONS }
2686   { Reuse tokens from ARB_framebuffer_no_attachments }
2687   { reuse GL_FRAMEBUFFER_DEFAULT_WIDTH }
2688   { reuse GL_FRAMEBUFFER_DEFAULT_HEIGHT }
2689   { reuse GL_FRAMEBUFFER_DEFAULT_LAYERS }
2690   { reuse GL_FRAMEBUFFER_DEFAULT_SAMPLES }
2691   { reuse GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS }
2692   { reuse GL_MAX_FRAMEBUFFER_WIDTH }
2693   { reuse GL_MAX_FRAMEBUFFER_HEIGHT }
2694   { reuse GL_MAX_FRAMEBUFFER_LAYERS }
2695   { reuse GL_MAX_FRAMEBUFFER_SAMPLES }
2696   { Reuse tokens from ARB_internalformat_query2 }
2697   { reuse GL_INTERNALFORMAT_SUPPORTED }
2698   { reuse GL_INTERNALFORMAT_PREFERRED }
2699   { reuse GL_INTERNALFORMAT_RED_SIZE }
2700   { reuse GL_INTERNALFORMAT_GREEN_SIZE }
2701   { reuse GL_INTERNALFORMAT_BLUE_SIZE }
2702   { reuse GL_INTERNALFORMAT_ALPHA_SIZE }
2703   { reuse GL_INTERNALFORMAT_DEPTH_SIZE }
2704   { reuse GL_INTERNALFORMAT_STENCIL_SIZE }
2705   { reuse GL_INTERNALFORMAT_SHARED_SIZE }
2706   { reuse GL_INTERNALFORMAT_RED_TYPE }
2707   { reuse GL_INTERNALFORMAT_GREEN_TYPE }
2708   { reuse GL_INTERNALFORMAT_BLUE_TYPE }
2709   { reuse GL_INTERNALFORMAT_ALPHA_TYPE }
2710   { reuse GL_INTERNALFORMAT_DEPTH_TYPE }
2711   { reuse GL_INTERNALFORMAT_STENCIL_TYPE }
2712   { reuse GL_MAX_WIDTH }
2713   { reuse GL_MAX_HEIGHT }
2714   { reuse GL_MAX_DEPTH }
2715   { reuse GL_MAX_LAYERS }
2716   { reuse GL_MAX_COMBINED_DIMENSIONS }
2717   { reuse GL_COLOR_COMPONENTS }
2718   { reuse GL_DEPTH_COMPONENTS }
2719   { reuse GL_STENCIL_COMPONENTS }
2720   { reuse GL_COLOR_RENDERABLE }
2721   { reuse GL_DEPTH_RENDERABLE }
2722   { reuse GL_STENCIL_RENDERABLE }
2723   { reuse GL_FRAMEBUFFER_RENDERABLE }
2724   { reuse GL_FRAMEBUFFER_RENDERABLE_LAYERED }
2725   { reuse GL_FRAMEBUFFER_BLEND }
2726   { reuse GL_READ_PIXELS }
2727   { reuse GL_READ_PIXELS_FORMAT }
2728   { reuse GL_READ_PIXELS_TYPE }
2729   { reuse GL_TEXTURE_IMAGE_FORMAT }
2730   { reuse GL_TEXTURE_IMAGE_TYPE }
2731   { reuse GL_GET_TEXTURE_IMAGE_FORMAT }
2732   { reuse GL_GET_TEXTURE_IMAGE_TYPE }
2733   { reuse GL_MIPMAP }
2734   { reuse GL_MANUAL_GENERATE_MIPMAP }
2735   { reuse GL_AUTO_GENERATE_MIPMAP }
2736   { reuse GL_COLOR_ENCODING }
2737   { reuse GL_SRGB_READ }
2738   { reuse GL_SRGB_WRITE }
2739   { reuse GL_FILTER }
2740   { reuse GL_VERTEX_TEXTURE }
2741   { reuse GL_TESS_CONTROL_TEXTURE }
2742   { reuse GL_TESS_EVALUATION_TEXTURE }
2743   { reuse GL_GEOMETRY_TEXTURE }
2744   { reuse GL_FRAGMENT_TEXTURE }
2745   { reuse GL_COMPUTE_TEXTURE }
2746   { reuse GL_TEXTURE_SHADOW }
2747   { reuse GL_TEXTURE_GATHER }
2748   { reuse GL_TEXTURE_GATHER_SHADOW }
2749   { reuse GL_SHADER_IMAGE_LOAD }
2750   { reuse GL_SHADER_IMAGE_STORE }
2751   { reuse GL_SHADER_IMAGE_ATOMIC }
2752   { reuse GL_IMAGE_TEXEL_SIZE }
2753   { reuse GL_IMAGE_COMPATIBILITY_CLASS }
2754   { reuse GL_IMAGE_PIXEL_FORMAT }
2755   { reuse GL_IMAGE_PIXEL_TYPE }
2756   { reuse GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST }
2757   { reuse GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST }
2758   { reuse GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE }
2759   { reuse GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE }
2760   { reuse GL_TEXTURE_COMPRESSED_BLOCK_WIDTH }
2761   { reuse GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT }
2762   { reuse GL_TEXTURE_COMPRESSED_BLOCK_SIZE }
2763   { reuse GL_CLEAR_BUFFER }
2764   { reuse GL_TEXTURE_VIEW }
2765   { reuse GL_VIEW_COMPATIBILITY_CLASS }
2766   { reuse GL_FULL_SUPPORT }
2767   { reuse GL_CAVEAT_SUPPORT }
2768   { reuse GL_IMAGE_CLASS_4_X_32 }
2769   { reuse GL_IMAGE_CLASS_2_X_32 }
2770   { reuse GL_IMAGE_CLASS_1_X_32 }
2771   { reuse GL_IMAGE_CLASS_4_X_16 }
2772   { reuse GL_IMAGE_CLASS_2_X_16 }
2773   { reuse GL_IMAGE_CLASS_1_X_16 }
2774   { reuse GL_IMAGE_CLASS_4_X_8 }
2775   { reuse GL_IMAGE_CLASS_2_X_8 }
2776   { reuse GL_IMAGE_CLASS_1_X_8 }
2777   { reuse GL_IMAGE_CLASS_11_11_10 }
2778   { reuse GL_IMAGE_CLASS_10_10_10_2 }
2779   { reuse GL_VIEW_CLASS_128_BITS }
2780   { reuse GL_VIEW_CLASS_96_BITS }
2781   { reuse GL_VIEW_CLASS_64_BITS }
2782   { reuse GL_VIEW_CLASS_48_BITS }
2783   { reuse GL_VIEW_CLASS_32_BITS }
2784   { reuse GL_VIEW_CLASS_24_BITS }
2785   { reuse GL_VIEW_CLASS_16_BITS }
2786   { reuse GL_VIEW_CLASS_8_BITS }
2787   { reuse GL_VIEW_CLASS_S3TC_DXT1_RGB }
2788   { reuse GL_VIEW_CLASS_S3TC_DXT1_RGBA }
2789   { reuse GL_VIEW_CLASS_S3TC_DXT3_RGBA }
2790   { reuse GL_VIEW_CLASS_S3TC_DXT5_RGBA }
2791   { reuse GL_VIEW_CLASS_RGTC1_RED }
2792   { reuse GL_VIEW_CLASS_RGTC2_RG }
2793   { reuse GL_VIEW_CLASS_BPTC_UNORM }
2794   { reuse GL_VIEW_CLASS_BPTC_FLOAT }
2795   { Reuse tokens from ARB_invalidate_subdata (none) }
2796   { Reuse tokens from ARB_multi_draw_indirect (none) }
2797   { Reuse tokens from ARB_program_interface_query }
2798   { reuse GL_UNIFORM }
2799   { reuse GL_UNIFORM_BLOCK }
2800   { reuse GL_PROGRAM_INPUT }
2801   { reuse GL_PROGRAM_OUTPUT }
2802   { reuse GL_BUFFER_VARIABLE }
2803   { reuse GL_SHADER_STORAGE_BLOCK }
2804   { reuse GL_VERTEX_SUBROUTINE }
2805   { reuse GL_TESS_CONTROL_SUBROUTINE }
2806   { reuse GL_TESS_EVALUATION_SUBROUTINE }
2807   { reuse GL_GEOMETRY_SUBROUTINE }
2808   { reuse GL_FRAGMENT_SUBROUTINE }
2809   { reuse GL_COMPUTE_SUBROUTINE }
2810   { reuse GL_VERTEX_SUBROUTINE_UNIFORM }
2811   { reuse GL_TESS_CONTROL_SUBROUTINE_UNIFORM }
2812   { reuse GL_TESS_EVALUATION_SUBROUTINE_UNIFORM }
2813   { reuse GL_GEOMETRY_SUBROUTINE_UNIFORM }
2814   { reuse GL_FRAGMENT_SUBROUTINE_UNIFORM }
2815   { reuse GL_COMPUTE_SUBROUTINE_UNIFORM }
2816   { reuse GL_TRANSFORM_FEEDBACK_VARYING }
2817   { reuse GL_ACTIVE_RESOURCES }
2818   { reuse GL_MAX_NAME_LENGTH }
2819   { reuse GL_MAX_NUM_ACTIVE_VARIABLES }
2820   { reuse GL_MAX_NUM_COMPATIBLE_SUBROUTINES }
2821   { reuse GL_NAME_LENGTH }
2822   { reuse GL_TYPE }
2823   { reuse GL_ARRAY_SIZE }
2824   { reuse GL_OFFSET }
2825   { reuse GL_BLOCK_INDEX }
2826   { reuse GL_ARRAY_STRIDE }
2827   { reuse GL_MATRIX_STRIDE }
2828   { reuse GL_IS_ROW_MAJOR }
2829   { reuse GL_ATOMIC_COUNTER_BUFFER_INDEX }
2830   { reuse GL_BUFFER_BINDING }
2831   { reuse GL_BUFFER_DATA_SIZE }
2832   { reuse GL_NUM_ACTIVE_VARIABLES }
2833   { reuse GL_ACTIVE_VARIABLES }
2834   { reuse GL_REFERENCED_BY_VERTEX_SHADER }
2835   { reuse GL_REFERENCED_BY_TESS_CONTROL_SHADER }
2836   { reuse GL_REFERENCED_BY_TESS_EVALUATION_SHADER }
2837   { reuse GL_REFERENCED_BY_GEOMETRY_SHADER }
2838   { reuse GL_REFERENCED_BY_FRAGMENT_SHADER }
2839   { reuse GL_REFERENCED_BY_COMPUTE_SHADER }
2840   { reuse GL_TOP_LEVEL_ARRAY_SIZE }
2841   { reuse GL_TOP_LEVEL_ARRAY_STRIDE }
2842   { reuse GL_LOCATION }
2843   { reuse GL_LOCATION_INDEX }
2844   { reuse GL_IS_PER_PATCH }
2845   { Reuse tokens from ARB_robust_buffer_access_behavior (none) }
2846   { Reuse tokens from ARB_shader_storage_buffer_object }
2847   { reuse GL_SHADER_STORAGE_BUFFER }
2848   { reuse GL_SHADER_STORAGE_BUFFER_BINDING }
2849   { reuse GL_SHADER_STORAGE_BUFFER_START }
2850   { reuse GL_SHADER_STORAGE_BUFFER_SIZE }
2851   { reuse GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS }
2852   { reuse GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS }
2853   { reuse GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS }
2854   { reuse GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS }
2855   { reuse GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS }
2856   { reuse GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS }
2857   { reuse GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS }
2858   { reuse GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS }
2859   { reuse GL_MAX_SHADER_STORAGE_BLOCK_SIZE }
2860   { reuse GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT }
2861   { reuse GL_SHADER_STORAGE_BARRIER_BIT }
2862   { reuse GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES }
2863   { Reuse tokens from ARB_stencil_texturing }
2864   { reuse GL_DEPTH_STENCIL_TEXTURE_MODE }
2865   { Reuse tokens from ARB_texture_buffer_range }
2866   { reuse GL_TEXTURE_BUFFER_OFFSET }
2867   { reuse GL_TEXTURE_BUFFER_SIZE }
2868   { reuse GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT }
2869   { Reuse tokens from ARB_texture_query_levels (none) }
2870   { Reuse tokens from ARB_texture_storage_multisample (none) }
2871   { Reuse tokens from ARB_texture_view }
2872   { reuse GL_TEXTURE_VIEW_MIN_LEVEL }
2873   { reuse GL_TEXTURE_VIEW_NUM_LEVELS }
2874   { reuse GL_TEXTURE_VIEW_MIN_LAYER }
2875   { reuse GL_TEXTURE_VIEW_NUM_LAYERS }
2876   { reuse GL_TEXTURE_IMMUTABLE_LEVELS }
2877   { Reuse tokens from ARB_vertex_attrib_binding }
2878   { reuse GL_VERTEX_ATTRIB_BINDING }
2879   { reuse GL_VERTEX_ATTRIB_RELATIVE_OFFSET }
2880   { reuse GL_VERTEX_BINDING_DIVISOR }
2881   { reuse GL_VERTEX_BINDING_OFFSET }
2882   { reuse GL_VERTEX_BINDING_STRIDE }
2883   { reuse GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET }
2884   { reuse GL_MAX_VERTEX_ATTRIB_BINDINGS }
2885
2886
2887   // GL_3DFX_multisample
2888   GL_MULTISAMPLE_3DFX = $86B2;
2889   GL_SAMPLE_BUFFERS_3DFX = $86B3;
2890   GL_SAMPLES_3DFX = $86B4;
2891   GL_MULTISAMPLE_BIT_3DFX = $20000000;
2892
2893   // GL_3DFX_texture_compression_FXT1
2894   GL_COMPRESSED_RGB_FXT1_3DFX = $86B0;
2895   GL_COMPRESSED_RGBA_FXT1_3DFX = $86B1;
2896
2897   // GL_APPLE_client_storage
2898   GL_UNPACK_CLIENT_STORAGE_APPLE = $85B2;
2899
2900   // GL_APPLE_element_array
2901   GL_ELEMENT_ARRAY_APPLE = $8A0C;
2902   GL_ELEMENT_ARRAY_TYPE_APPLE = $8A0D;
2903   GL_ELEMENT_ARRAY_POINTER_APPLE = $8A0E;
2904
2905   // GL_APPLE_fence
2906   GL_DRAW_PIXELS_APPLE = $8A0A;
2907   GL_FENCE_APPLE = $8A0B;
2908
2909   // GL_APPLE_specular_vector
2910   GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE = $85B0;
2911
2912   // GL_APPLE_transform_hint
2913   GL_TRANSFORM_HINT_APPLE = $85B1;
2914
2915   // GL_APPLE_vertex_array_object
2916   GL_VERTEX_ARRAY_BINDING_APPLE = $85B5;
2917
2918   // GL_APPLE_vertex_array_range
2919   GL_VERTEX_ARRAY_RANGE_APPLE = $851D;
2920   GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE = $851E;
2921   GL_VERTEX_ARRAY_STORAGE_HINT_APPLE = $851F;
2922   GL_VERTEX_ARRAY_RANGE_POINTER_APPLE = $8521;
2923   GL_STORAGE_CLIENT_APPLE = $85B4;
2924   GL_STORAGE_CACHED_APPLE = $85BE;
2925   GL_STORAGE_SHARED_APPLE = $85BF;
2926
2927   // GL_APPLE_ycbcr_422
2928   GL_YCBCR_422_APPLE = $85B9;
2929   GL_UNSIGNED_SHORT_8_8_APPLE = $85BA;
2930   GL_UNSIGNED_SHORT_8_8_REV_APPLE = $85BB;
2931   GL_RGB_RAW_422_APPLE = $8A51;
2932
2933   // GL_APPLE_texture_range
2934   GL_TEXTURE_RANGE_LENGTH_APPLE = $85B7;
2935   GL_TEXTURE_RANGE_POINTER_APPLE = $85B8;
2936   GL_TEXTURE_STORAGE_HINT_APPLE = $85BC;
2937   GL_STORAGE_PRIVATE_APPLE = $85BD;
2938   { reuse GL_STORAGE_CACHED_APPLE }
2939   { reuse GL_STORAGE_SHARED_APPLE }
2940
2941   // GL_APPLE_float_pixels
2942   GL_HALF_APPLE = $140B;
2943   GL_RGBA_FLOAT32_APPLE = $8814;
2944   GL_RGB_FLOAT32_APPLE = $8815;
2945   GL_ALPHA_FLOAT32_APPLE = $8816;
2946   GL_INTENSITY_FLOAT32_APPLE = $8817;
2947   GL_LUMINANCE_FLOAT32_APPLE = $8818;
2948   GL_LUMINANCE_ALPHA_FLOAT32_APPLE = $8819;
2949   GL_RGBA_FLOAT16_APPLE = $881A;
2950   GL_RGB_FLOAT16_APPLE = $881B;
2951   GL_ALPHA_FLOAT16_APPLE = $881C;
2952   GL_INTENSITY_FLOAT16_APPLE = $881D;
2953   GL_LUMINANCE_FLOAT16_APPLE = $881E;
2954   GL_LUMINANCE_ALPHA_FLOAT16_APPLE = $881F;
2955   GL_COLOR_FLOAT_APPLE = $8A0F;
2956
2957   // GL_APPLE_vertex_program_evaluators
2958   GL_VERTEX_ATTRIB_MAP1_APPLE = $8A00;
2959   GL_VERTEX_ATTRIB_MAP2_APPLE = $8A01;
2960   GL_VERTEX_ATTRIB_MAP1_SIZE_APPLE = $8A02;
2961   GL_VERTEX_ATTRIB_MAP1_COEFF_APPLE = $8A03;
2962   GL_VERTEX_ATTRIB_MAP1_ORDER_APPLE = $8A04;
2963   GL_VERTEX_ATTRIB_MAP1_DOMAIN_APPLE = $8A05;
2964   GL_VERTEX_ATTRIB_MAP2_SIZE_APPLE = $8A06;
2965   GL_VERTEX_ATTRIB_MAP2_COEFF_APPLE = $8A07;
2966   GL_VERTEX_ATTRIB_MAP2_ORDER_APPLE = $8A08;
2967   GL_VERTEX_ATTRIB_MAP2_DOMAIN_APPLE = $8A09;
2968
2969   // GL_APPLE_aux_depth_stencil
2970   GL_AUX_DEPTH_STENCIL_APPLE = $8A14;
2971
2972   // GL_APPLE_object_purgeable
2973   GL_BUFFER_OBJECT_APPLE = $85B3;
2974   GL_RELEASED_APPLE = $8A19;
2975   GL_VOLATILE_APPLE = $8A1A;
2976   GL_RETAINED_APPLE = $8A1B;
2977   GL_UNDEFINED_APPLE = $8A1C;
2978   GL_PURGEABLE_APPLE = $8A1D;
2979
2980   // GL_APPLE_row_bytes
2981   GL_PACK_ROW_BYTES_APPLE = $8A15;
2982   GL_UNPACK_ROW_BYTES_APPLE = $8A16;
2983
2984   // GL_APPLE_rgb_422
2985   { reuse GL_UNSIGNED_SHORT_8_8_APPLE }
2986   { reuse GL_UNSIGNED_SHORT_8_8_REV_APPLE }
2987
2988   // GL_ARB_depth_texture
2989   GL_DEPTH_COMPONENT16_ARB = $81A5;
2990   GL_DEPTH_COMPONENT24_ARB = $81A6;
2991   GL_DEPTH_COMPONENT32_ARB = $81A7;
2992   GL_TEXTURE_DEPTH_SIZE_ARB = $884A;
2993   GL_DEPTH_TEXTURE_MODE_ARB = $884B;
2994
2995   // GL_ARB_fragment_program
2996   GL_FRAGMENT_PROGRAM_ARB = $8804;
2997   GL_PROGRAM_ALU_INSTRUCTIONS_ARB = $8805;
2998   GL_PROGRAM_TEX_INSTRUCTIONS_ARB = $8806;
2999   GL_PROGRAM_TEX_INDIRECTIONS_ARB = $8807;
3000   GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB = $8808;
3001   GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB = $8809;
3002   GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB = $880A;
3003   GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB = $880B;
3004   GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB = $880C;
3005   GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB = $880D;
3006   GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB = $880E;
3007   GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB = $880F;
3008   GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB = $8810;
3009   GL_MAX_TEXTURE_COORDS_ARB = $8871;
3010   GL_MAX_TEXTURE_IMAGE_UNITS_ARB = $8872;
3011
3012   // GL_ARB_imaging
3013   GL_CONSTANT_COLOR_ARB = $8001;
3014   GL_ONE_MINUS_CONSTANT_COLOR = $8002;
3015   GL_CONSTANT_ALPHA = $8003;
3016   GL_ONE_MINUS_CONSTANT_ALPHA = $8004;
3017   GL_BLEND_COLOR = $8005;
3018   GL_FUNC_ADD = $8006;
3019   GL_MIN = $8007;
3020   GL_MAX = $8008;
3021   GL_BLEND_EQUATION = $8009;
3022   GL_FUNC_SUBTRACT = $800A;
3023   GL_FUNC_REVERSE_SUBTRACT = $800B;
3024 {$ifdef DGL_DEPRECATED}
3025   GL_CONVOLUTION_1D = $8010;
3026   GL_CONVOLUTION_2D = $8011;
3027   GL_SEPARABLE_2D = $8012;
3028   GL_CONVOLUTION_BORDER_MODE = $8013;
3029   GL_CONVOLUTION_FILTER_SCALE = $8014;
3030   GL_CONVOLUTION_FILTER_BIAS = $8015;
3031   GL_REDUCE = $8016;
3032   GL_CONVOLUTION_FORMAT = $8017;
3033   GL_CONVOLUTION_WIDTH = $8018;
3034   GL_CONVOLUTION_HEIGHT = $8019;
3035   GL_MAX_CONVOLUTION_WIDTH = $801A;
3036   GL_MAX_CONVOLUTION_HEIGHT = $801B;
3037   GL_POST_CONVOLUTION_RED_SCALE = $801C;
3038   GL_POST_CONVOLUTION_GREEN_SCALE = $801D;
3039   GL_POST_CONVOLUTION_BLUE_SCALE = $801E;
3040   GL_POST_CONVOLUTION_ALPHA_SCALE = $801F;
3041   GL_POST_CONVOLUTION_RED_BIAS = $8020;
3042   GL_POST_CONVOLUTION_GREEN_BIAS = $8021;
3043   GL_POST_CONVOLUTION_BLUE_BIAS = $8022;
3044   GL_POST_CONVOLUTION_ALPHA_BIAS = $8023;
3045   GL_HISTOGRAM = $8024;
3046   GL_PROXY_HISTOGRAM = $8025;
3047   GL_HISTOGRAM_WIDTH = $8026;
3048   GL_HISTOGRAM_FORMAT = $8027;
3049   GL_HISTOGRAM_RED_SIZE = $8028;
3050   GL_HISTOGRAM_GREEN_SIZE = $8029;
3051   GL_HISTOGRAM_BLUE_SIZE = $802A;
3052   GL_HISTOGRAM_ALPHA_SIZE = $802B;
3053   GL_HISTOGRAM_LUMINANCE_SIZE = $802C;
3054   GL_HISTOGRAM_SINK = $802D;
3055   GL_MINMAX = $802E;
3056   GL_MINMAX_FORMAT = $802F;
3057   GL_MINMAX_SINK = $8030;
3058   GL_TABLE_TOO_LARGE = $8031;
3059   GL_COLOR_MATRIX = $80B1;
3060   GL_COLOR_MATRIX_STACK_DEPTH = $80B2;
3061   GL_MAX_COLOR_MATRIX_STACK_DEPTH = $80B3;
3062   GL_POST_COLOR_MATRIX_RED_SCALE = $80B4;
3063   GL_POST_COLOR_MATRIX_GREEN_SCALE = $80B5;
3064   GL_POST_COLOR_MATRIX_BLUE_SCALE = $80B6;
3065   GL_POST_COLOR_MATRIX_ALPHA_SCALE = $80B7;
3066   GL_POST_COLOR_MATRIX_RED_BIAS = $80B8;
3067   GL_POST_COLOR_MATRIX_GREEN_BIAS = $80B9;
3068   GL_POST_COLOR_MATRIX_BLUE_BIAS = $80BA;
3069   GL_POST_COLOR_MATRIX_ALPHA_BIAS = $80BB;
3070   GL_COLOR_TABLE = $80D0;
3071   GL_POST_CONVOLUTION_COLOR_TABLE = $80D1;
3072   GL_POST_COLOR_MATRIX_COLOR_TABLE = $80D2;
3073   GL_PROXY_COLOR_TABLE = $80D3;
3074   GL_PROXY_POST_CONVOLUTION_COLOR_TABLE = $80D4;
3075   GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE = $80D5;
3076   GL_COLOR_TABLE_SCALE = $80D6;
3077   GL_COLOR_TABLE_BIAS = $80D7;
3078   GL_COLOR_TABLE_FORMAT = $80D8;
3079   GL_COLOR_TABLE_WIDTH = $80D9;
3080   GL_COLOR_TABLE_RED_SIZE = $80DA;
3081   GL_COLOR_TABLE_GREEN_SIZE = $80DB;
3082   GL_COLOR_TABLE_BLUE_SIZE = $80DC;
3083   GL_COLOR_TABLE_ALPHA_SIZE = $80DD;
3084   GL_COLOR_TABLE_LUMINANCE_SIZE = $80DE;
3085   GL_COLOR_TABLE_INTENSITY_SIZE = $80DF;
3086   GL_CONSTANT_BORDER = $8151;
3087   GL_REPLICATE_BORDER = $8153;
3088   GL_CONVOLUTION_BORDER_COLOR = $8154;
3089 {$endif}
3090
3091   // GL_ARB_matrix_palette
3092   GL_MATRIX_PALETTE_ARB = $8840;
3093   GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB = $8841;
3094   GL_MAX_PALETTE_MATRICES_ARB = $8842;
3095   GL_CURRENT_PALETTE_MATRIX_ARB = $8843;
3096   GL_MATRIX_INDEX_ARRAY_ARB = $8844;
3097   GL_CURRENT_MATRIX_INDEX_ARB = $8845;
3098   GL_MATRIX_INDEX_ARRAY_SIZE_ARB = $8846;
3099   GL_MATRIX_INDEX_ARRAY_TYPE_ARB = $8847;
3100   GL_MATRIX_INDEX_ARRAY_STRIDE_ARB = $8848;
3101   GL_MATRIX_INDEX_ARRAY_POINTER_ARB = $8849;
3102
3103   // GL_ARB_multisample
3104   GL_MULTISAMPLE_ARB = $809D;
3105   GL_SAMPLE_ALPHA_TO_COVERAGE_ARB = $809E;
3106   GL_SAMPLE_ALPHA_TO_ONE_ARB = $809F;
3107   GL_SAMPLE_COVERAGE_ARB = $80A0;
3108   GL_SAMPLE_BUFFERS_ARB = $80A8;
3109   GL_SAMPLES_ARB = $80A9;
3110   GL_SAMPLE_COVERAGE_VALUE_ARB = $80AA;
3111   GL_SAMPLE_COVERAGE_INVERT_ARB = $80AB;
3112   GL_MULTISAMPLE_BIT_ARB = $20000000;
3113
3114   // GL_ARB_multitexture
3115   GL_TEXTURE0_ARB = $84C0;
3116   GL_TEXTURE1_ARB = $84C1;
3117   GL_TEXTURE2_ARB = $84C2;
3118   GL_TEXTURE3_ARB = $84C3;
3119   GL_TEXTURE4_ARB = $84C4;
3120   GL_TEXTURE5_ARB = $84C5;
3121   GL_TEXTURE6_ARB = $84C6;
3122   GL_TEXTURE7_ARB = $84C7;
3123   GL_TEXTURE8_ARB = $84C8;
3124   GL_TEXTURE9_ARB = $84C9;
3125   GL_TEXTURE10_ARB = $84CA;
3126   GL_TEXTURE11_ARB = $84CB;
3127   GL_TEXTURE12_ARB = $84CC;
3128   GL_TEXTURE13_ARB = $84CD;
3129   GL_TEXTURE14_ARB = $84CE;
3130   GL_TEXTURE15_ARB = $84CF;
3131   GL_TEXTURE16_ARB = $84D0;
3132   GL_TEXTURE17_ARB = $84D1;
3133   GL_TEXTURE18_ARB = $84D2;
3134   GL_TEXTURE19_ARB = $84D3;
3135   GL_TEXTURE20_ARB = $84D4;
3136   GL_TEXTURE21_ARB = $84D5;
3137   GL_TEXTURE22_ARB = $84D6;
3138   GL_TEXTURE23_ARB = $84D7;
3139   GL_TEXTURE24_ARB = $84D8;
3140   GL_TEXTURE25_ARB = $84D9;
3141   GL_TEXTURE26_ARB = $84DA;
3142   GL_TEXTURE27_ARB = $84DB;
3143   GL_TEXTURE28_ARB = $84DC;
3144   GL_TEXTURE29_ARB = $84DD;
3145   GL_TEXTURE30_ARB = $84DE;
3146   GL_TEXTURE31_ARB = $84DF;
3147   GL_ACTIVE_TEXTURE_ARB = $84E0;
3148   GL_CLIENT_ACTIVE_TEXTURE_ARB = $84E1;
3149   GL_MAX_TEXTURE_UNITS_ARB = $84E2;
3150
3151   // GL_ARB_point_parameters
3152   GL_POINT_SIZE_MIN_ARB = $8126;
3153   GL_POINT_SIZE_MAX_ARB = $8127;
3154   GL_POINT_FADE_THRESHOLD_SIZE_ARB = $8128;
3155   GL_POINT_DISTANCE_ATTENUATION_ARB = $8129;
3156
3157   // GL_ARB_shadow
3158   GL_TEXTURE_COMPARE_MODE_ARB = $884C;
3159   GL_TEXTURE_COMPARE_FUNC_ARB = $884D;
3160   GL_COMPARE_R_TO_TEXTURE_ARB = $884E;
3161
3162   // GL_ARB_shadow_ambient
3163   GL_TEXTURE_COMPARE_FAIL_VALUE_ARB = $80BF;
3164
3165   // GL_ARB_sparse_buffer
3166   GL_SPARSE_STORAGE_BIT_ARB = $0400;
3167   GL_SPARSE_BUFFER_PAGE_SIZE_ARB = $82F8;
3168
3169   // GL_ARB_texture_border_clamp
3170   GL_CLAMP_TO_BORDER_ARB = $812D;
3171
3172   // GL_ARB_texture_compression
3173   GL_COMPRESSED_ALPHA_ARB = $84E9;
3174   GL_COMPRESSED_LUMINANCE_ARB = $84EA;
3175   GL_COMPRESSED_LUMINANCE_ALPHA_ARB = $84EB;
3176   GL_COMPRESSED_INTENSITY_ARB = $84EC;
3177   GL_COMPRESSED_RGB_ARB = $84ED;
3178   GL_COMPRESSED_RGBA_ARB = $84EE;
3179   GL_TEXTURE_COMPRESSION_HINT_ARB = $84EF;
3180   GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB = $86A0;
3181   GL_TEXTURE_COMPRESSED_ARB = $86A1;
3182   GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB = $86A2;
3183   GL_COMPRESSED_TEXTURE_FORMATS_ARB = $86A3;
3184
3185   // GL_ARB_texture_cube_map
3186   GL_NORMAL_MAP_ARB = $8511;
3187   GL_REFLECTION_MAP_ARB = $8512;
3188   GL_TEXTURE_CUBE_MAP_ARB = $8513;
3189   GL_TEXTURE_BINDING_CUBE_MAP_ARB = $8514;
3190   GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB = $8515;
3191   GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB = $8516;
3192   GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB = $8517;
3193   GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB = $8518;
3194   GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB = $8519;
3195   GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB = $851A;
3196   GL_PROXY_TEXTURE_CUBE_MAP_ARB = $851B;
3197   GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB = $851C;
3198
3199   // GL_ARB_texture_env_combine
3200   GL_COMBINE_ARB = $8570;
3201   GL_COMBINE_RGB_ARB = $8571;
3202   GL_COMBINE_ALPHA_ARB = $8572;
3203   GL_SOURCE0_RGB_ARB = $8580;
3204   GL_SOURCE1_RGB_ARB = $8581;
3205   GL_SOURCE2_RGB_ARB = $8582;
3206   GL_SOURCE0_ALPHA_ARB = $8588;
3207   GL_SOURCE1_ALPHA_ARB = $8589;
3208   GL_SOURCE2_ALPHA_ARB = $858A;
3209   GL_OPERAND0_RGB_ARB = $8590;
3210   GL_OPERAND1_RGB_ARB = $8591;
3211   GL_OPERAND2_RGB_ARB = $8592;
3212   GL_OPERAND0_ALPHA_ARB = $8598;
3213   GL_OPERAND1_ALPHA_ARB = $8599;
3214   GL_OPERAND2_ALPHA_ARB = $859A;
3215   GL_RGB_SCALE_ARB = $8573;
3216   GL_ADD_SIGNED_ARB = $8574;
3217   GL_INTERPOLATE_ARB = $8575;
3218   GL_SUBTRACT_ARB = $84E7;
3219   GL_CONSTANT_ARB = $8576;
3220   GL_PRIMARY_COLOR_ARB = $8577;
3221   GL_PREVIOUS_ARB = $8578;
3222
3223   // GL_ARB_texture_env_dot3
3224   GL_DOT3_RGB_ARB = $86AE;
3225   GL_DOT3_RGBA_ARB = $86AF;
3226
3227   // GL_ARB_texture_mirrored_repeat
3228   GL_MIRRORED_REPEAT_ARB = $8370;
3229
3230   // GL_ARB_transpose_matrix
3231   GL_TRANSPOSE_MODELVIEW_MATRIX_ARB = $84E3;
3232   GL_TRANSPOSE_PROJECTION_MATRIX_ARB = $84E4;
3233   GL_TRANSPOSE_TEXTURE_MATRIX_ARB = $84E5;
3234   GL_TRANSPOSE_COLOR_MATRIX_ARB = $84E6;
3235
3236   // GL_ARB_vertex_blend
3237   GL_MAX_VERTEX_UNITS_ARB = $86A4;
3238   GL_ACTIVE_VERTEX_UNITS_ARB = $86A5;
3239   GL_WEIGHT_SUM_UNITY_ARB = $86A6;
3240   GL_VERTEX_BLEND_ARB = $86A7;
3241   GL_CURRENT_WEIGHT_ARB = $86A8;
3242   GL_WEIGHT_ARRAY_TYPE_ARB = $86A9;
3243   GL_WEIGHT_ARRAY_STRIDE_ARB = $86AA;
3244   GL_WEIGHT_ARRAY_SIZE_ARB = $86AB;
3245   GL_WEIGHT_ARRAY_POINTER_ARB = $86AC;
3246   GL_WEIGHT_ARRAY_ARB = $86AD;
3247   GL_MODELVIEW0_ARB = $1700;
3248   GL_MODELVIEW1_ARB = $850A;
3249   GL_MODELVIEW2_ARB = $8722;
3250   GL_MODELVIEW3_ARB = $8723;
3251   GL_MODELVIEW4_ARB = $8724;
3252   GL_MODELVIEW5_ARB = $8725;
3253   GL_MODELVIEW6_ARB = $8726;
3254   GL_MODELVIEW7_ARB = $8727;
3255   GL_MODELVIEW8_ARB = $8728;
3256   GL_MODELVIEW9_ARB = $8729;
3257   GL_MODELVIEW10_ARB = $872A;
3258   GL_MODELVIEW11_ARB = $872B;
3259   GL_MODELVIEW12_ARB = $872C;
3260   GL_MODELVIEW13_ARB = $872D;
3261   GL_MODELVIEW14_ARB = $872E;
3262   GL_MODELVIEW15_ARB = $872F;
3263   GL_MODELVIEW16_ARB = $8730;
3264   GL_MODELVIEW17_ARB = $8731;
3265   GL_MODELVIEW18_ARB = $8732;
3266   GL_MODELVIEW19_ARB = $8733;
3267   GL_MODELVIEW20_ARB = $8734;
3268   GL_MODELVIEW21_ARB = $8735;
3269   GL_MODELVIEW22_ARB = $8736;
3270   GL_MODELVIEW23_ARB = $8737;
3271   GL_MODELVIEW24_ARB = $8738;
3272   GL_MODELVIEW25_ARB = $8739;
3273   GL_MODELVIEW26_ARB = $873A;
3274   GL_MODELVIEW27_ARB = $873B;
3275   GL_MODELVIEW28_ARB = $873C;
3276   GL_MODELVIEW29_ARB = $873D;
3277   GL_MODELVIEW30_ARB = $873E;
3278   GL_MODELVIEW31_ARB = $873F;
3279
3280   // GL_ARB_vertex_buffer_object
3281   GL_BUFFER_SIZE_ARB = $8764;
3282   GL_BUFFER_USAGE_ARB = $8765;
3283   GL_ARRAY_BUFFER_ARB = $8892;
3284   GL_ELEMENT_ARRAY_BUFFER_ARB = $8893;
3285   GL_ARRAY_BUFFER_BINDING_ARB = $8894;
3286   GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB = $8895;
3287   GL_VERTEX_ARRAY_BUFFER_BINDING_ARB = $8896;
3288   GL_NORMAL_ARRAY_BUFFER_BINDING_ARB = $8897;
3289   GL_COLOR_ARRAY_BUFFER_BINDING_ARB = $8898;
3290   GL_INDEX_ARRAY_BUFFER_BINDING_ARB = $8899;
3291   GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB = $889A;
3292   GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB = $889B;
3293   GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB = $889C;
3294   GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB = $889D;
3295   GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB = $889E;
3296   GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB = $889F;
3297   GL_READ_ONLY_ARB = $88B8;
3298   GL_WRITE_ONLY_ARB = $88B9;
3299   GL_READ_WRITE_ARB = $88BA;
3300   GL_BUFFER_ACCESS_ARB = $88BB;
3301   GL_BUFFER_MAPPED_ARB = $88BC;
3302   GL_BUFFER_MAP_POINTER_ARB = $88BD;
3303   GL_STREAM_DRAW_ARB = $88E0;
3304   GL_STREAM_READ_ARB = $88E1;
3305   GL_STREAM_COPY_ARB = $88E2;
3306   GL_STATIC_DRAW_ARB = $88E4;
3307   GL_STATIC_READ_ARB = $88E5;
3308   GL_STATIC_COPY_ARB = $88E6;
3309   GL_DYNAMIC_DRAW_ARB = $88E8;
3310   GL_DYNAMIC_READ_ARB = $88E9;
3311   GL_DYNAMIC_COPY_ARB = $88EA;
3312
3313   // GL_ARB_vertex_program
3314   GL_COLOR_SUM_ARB = $8458;
3315   GL_VERTEX_PROGRAM_ARB = $8620;
3316   GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB = $8622;
3317   GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB = $8623;
3318   GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB = $8624;
3319   GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB = $8625;
3320   GL_CURRENT_VERTEX_ATTRIB_ARB = $8626;
3321   GL_PROGRAM_LENGTH_ARB = $8627;
3322   GL_PROGRAM_STRING_ARB = $8628;
3323   GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB = $862E;
3324   GL_MAX_PROGRAM_MATRICES_ARB = $862F;
3325   GL_CURRENT_MATRIX_STACK_DEPTH_ARB = $8640;
3326   GL_CURRENT_MATRIX_ARB = $8641;
3327   GL_VERTEX_PROGRAM_POINT_SIZE_ARB = $8642;
3328   GL_VERTEX_PROGRAM_TWO_SIDE_ARB = $8643;
3329   GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB = $8645;
3330   GL_PROGRAM_ERROR_POSITION_ARB = $864B;
3331   GL_PROGRAM_BINDING_ARB = $8677;
3332   GL_MAX_VERTEX_ATTRIBS_ARB = $8869;
3333   GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB = $886A;
3334   GL_PROGRAM_ERROR_STRING_ARB = $8874;
3335   GL_PROGRAM_FORMAT_ASCII_ARB = $8875;
3336   GL_PROGRAM_FORMAT_ARB = $8876;
3337   GL_PROGRAM_INSTRUCTIONS_ARB = $88A0;
3338   GL_MAX_PROGRAM_INSTRUCTIONS_ARB = $88A1;
3339   GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB = $88A2;
3340   GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB = $88A3;
3341   GL_PROGRAM_TEMPORARIES_ARB = $88A4;
3342   GL_MAX_PROGRAM_TEMPORARIES_ARB = $88A5;
3343   GL_PROGRAM_NATIVE_TEMPORARIES_ARB = $88A6;
3344   GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB = $88A7;
3345   GL_PROGRAM_PARAMETERS_ARB = $88A8;
3346   GL_MAX_PROGRAM_PARAMETERS_ARB = $88A9;
3347   GL_PROGRAM_NATIVE_PARAMETERS_ARB = $88AA;
3348   GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB = $88AB;
3349   GL_PROGRAM_ATTRIBS_ARB = $88AC;
3350   GL_MAX_PROGRAM_ATTRIBS_ARB = $88AD;
3351   GL_PROGRAM_NATIVE_ATTRIBS_ARB = $88AE;
3352   GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB = $88AF;
3353   GL_PROGRAM_ADDRESS_REGISTERS_ARB = $88B0;
3354   GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB = $88B1;
3355   GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB = $88B2;
3356   GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB = $88B3;
3357   GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB = $88B4;
3358   GL_MAX_PROGRAM_ENV_PARAMETERS_ARB = $88B5;
3359   GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB = $88B6;
3360   GL_TRANSPOSE_CURRENT_MATRIX_ARB = $88B7;
3361   GL_MATRIX0_ARB = $88C0;
3362   GL_MATRIX1_ARB = $88C1;
3363   GL_MATRIX2_ARB = $88C2;
3364   GL_MATRIX3_ARB = $88C3;
3365   GL_MATRIX4_ARB = $88C4;
3366   GL_MATRIX5_ARB = $88C5;
3367   GL_MATRIX6_ARB = $88C6;
3368   GL_MATRIX7_ARB = $88C7;
3369   GL_MATRIX8_ARB = $88C8;
3370   GL_MATRIX9_ARB = $88C9;
3371   GL_MATRIX10_ARB = $88CA;
3372   GL_MATRIX11_ARB = $88CB;
3373   GL_MATRIX12_ARB = $88CC;
3374   GL_MATRIX13_ARB = $88CD;
3375   GL_MATRIX14_ARB = $88CE;
3376   GL_MATRIX15_ARB = $88CF;
3377   GL_MATRIX16_ARB = $88D0;
3378   GL_MATRIX17_ARB = $88D1;
3379   GL_MATRIX18_ARB = $88D2;
3380   GL_MATRIX19_ARB = $88D3;
3381   GL_MATRIX20_ARB = $88D4;
3382   GL_MATRIX21_ARB = $88D5;
3383   GL_MATRIX22_ARB = $88D6;
3384   GL_MATRIX23_ARB = $88D7;
3385   GL_MATRIX24_ARB = $88D8;
3386   GL_MATRIX25_ARB = $88D9;
3387   GL_MATRIX26_ARB = $88DA;
3388   GL_MATRIX27_ARB = $88DB;
3389   GL_MATRIX28_ARB = $88DC;
3390   GL_MATRIX29_ARB = $88DD;
3391   GL_MATRIX30_ARB = $88DE;
3392   GL_MATRIX31_ARB = $88DF;
3393
3394   // GL_ARB_draw_buffers
3395   GL_MAX_DRAW_BUFFERS_ARB = $8824;
3396   GL_DRAW_BUFFER0_ARB = $8825;
3397   GL_DRAW_BUFFER1_ARB = $8826;
3398   GL_DRAW_BUFFER2_ARB = $8827;
3399   GL_DRAW_BUFFER3_ARB = $8828;
3400   GL_DRAW_BUFFER4_ARB = $8829;
3401   GL_DRAW_BUFFER5_ARB = $882A;
3402   GL_DRAW_BUFFER6_ARB = $882B;
3403   GL_DRAW_BUFFER7_ARB = $882C;
3404   GL_DRAW_BUFFER8_ARB = $882D;
3405   GL_DRAW_BUFFER9_ARB = $882E;
3406   GL_DRAW_BUFFER10_ARB = $882F;
3407   GL_DRAW_BUFFER11_ARB = $8830;
3408   GL_DRAW_BUFFER12_ARB = $8831;
3409   GL_DRAW_BUFFER13_ARB = $8832;
3410   GL_DRAW_BUFFER14_ARB = $8833;
3411   GL_DRAW_BUFFER15_ARB = $8834;
3412
3413   // GL_ARB_texture_rectangle
3414   GL_TEXTURE_RECTANGLE_ARB = $84F5;
3415   GL_TEXTURE_BINDING_RECTANGLE_ARB = $84F6;
3416   GL_PROXY_TEXTURE_RECTANGLE_ARB = $84F7;
3417   GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB = $84F8;
3418
3419   // GL_ARB_color_buffer_float
3420   GL_RGBA_FLOAT_MODE_ARB = $8820;
3421   GL_CLAMP_VERTEX_COLOR_ARB = $891A;
3422   GL_CLAMP_FRAGMENT_COLOR_ARB = $891B;
3423   GL_CLAMP_READ_COLOR_ARB = $891C;
3424   GL_FIXED_ONLY_ARB = $891D;
3425   WGL_TYPE_RGBA_FLOAT_ARB = $21A0;
3426   GLX_RGBA_FLOAT_TYPE = $20B9;
3427   GLX_RGBA_FLOAT_BIT = $00000004;
3428
3429   // GL_ARB_compute_variable_group_size
3430   GL_MAX_COMPUTE_VARIABLE_GROUP_INVOCATIONS_ARB = $9344;
3431   GL_MAX_COMPUTE_FIXED_GROUP_INVOCATIONS_ARB = $90EB;
3432   GL_MAX_COMPUTE_VARIABLE_GROUP_SIZE_ARB = $9345;
3433   GL_MAX_COMPUTE_FIXED_GROUP_SIZE_ARB = $91BF;
3434
3435   // GL_ARB_half_float_pixel
3436   GL_HALF_FLOAT_ARB = $140B;
3437
3438   // GL_ARB_texture_float
3439   GL_TEXTURE_RED_TYPE_ARB = $8C10;
3440   GL_TEXTURE_GREEN_TYPE_ARB = $8C11;
3441   GL_TEXTURE_BLUE_TYPE_ARB = $8C12;
3442   GL_TEXTURE_ALPHA_TYPE_ARB = $8C13;
3443   GL_TEXTURE_LUMINANCE_TYPE_ARB = $8C14;
3444   GL_TEXTURE_INTENSITY_TYPE_ARB = $8C15;
3445   GL_TEXTURE_DEPTH_TYPE_ARB = $8C16;
3446   GL_UNSIGNED_NORMALIZED_ARB = $8C17;
3447   GL_RGBA32F_ARB = $8814;
3448   GL_RGB32F_ARB = $8815;
3449   GL_ALPHA32F_ARB = $8816;
3450   GL_INTENSITY32F_ARB = $8817;
3451   GL_LUMINANCE32F_ARB = $8818;
3452   GL_LUMINANCE_ALPHA32F_ARB = $8819;
3453   GL_RGBA16F_ARB = $881A;
3454   GL_RGB16F_ARB = $881B;
3455   GL_ALPHA16F_ARB = $881C;
3456   GL_INTENSITY16F_ARB = $881D;
3457   GL_LUMINANCE16F_ARB = $881E;
3458   GL_LUMINANCE_ALPHA16F_ARB = $881F;
3459
3460   // GL_ARB_pixel_buffer_object
3461   GL_PIXEL_PACK_BUFFER_ARB = $88EB;
3462   GL_PIXEL_UNPACK_BUFFER_ARB = $88EC;
3463   GL_PIXEL_PACK_BUFFER_BINDING_ARB = $88ED;
3464   GL_PIXEL_UNPACK_BUFFER_BINDING_ARB = $88EF;
3465
3466   // GL_ARB_depth_buffer_float
3467   GL_DEPTH_COMPONENT32F = $8CAC;
3468   GL_DEPTH32F_STENCIL8 = $8CAD;
3469   GL_FLOAT_32_UNSIGNED_INT_24_8_REV = $8DAD;
3470
3471   // GL_ARB_framebuffer_object
3472   GL_INVALID_FRAMEBUFFER_OPERATION = $0506;
3473   GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING = $8210;
3474   GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE = $8211;
3475   GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE = $8212;
3476   GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE = $8213;
3477   GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE = $8214;
3478   GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE = $8215;
3479   GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE = $8216;
3480   GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE = $8217;
3481   GL_FRAMEBUFFER_DEFAULT = $8218;
3482   GL_FRAMEBUFFER_UNDEFINED = $8219;
3483   GL_DEPTH_STENCIL_ATTACHMENT = $821A;
3484   GL_MAX_RENDERBUFFER_SIZE = $84E8;
3485   GL_DEPTH_STENCIL = $84F9;
3486   GL_UNSIGNED_INT_24_8 = $84FA;
3487   GL_DEPTH24_STENCIL8 = $88F0;
3488   GL_TEXTURE_STENCIL_SIZE = $88F1;
3489   GL_TEXTURE_RED_TYPE = $8C10;
3490   GL_TEXTURE_GREEN_TYPE = $8C11;
3491   GL_TEXTURE_BLUE_TYPE = $8C12;
3492   GL_TEXTURE_ALPHA_TYPE = $8C13;
3493   GL_TEXTURE_DEPTH_TYPE = $8C16;
3494   GL_UNSIGNED_NORMALIZED = $8C17;
3495   GL_FRAMEBUFFER_BINDING = $8CA6;
3496   GL_DRAW_FRAMEBUFFER_BINDING = GL_FRAMEBUFFER_BINDING;
3497   GL_RENDERBUFFER_BINDING = $8CA7;
3498   GL_READ_FRAMEBUFFER = $8CA8;
3499   GL_DRAW_FRAMEBUFFER = $8CA9;
3500   GL_READ_FRAMEBUFFER_BINDING = $8CAA;
3501   GL_RENDERBUFFER_SAMPLES = $8CAB;
3502   GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = $8CD0;
3503   GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = $8CD1;
3504   GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = $8CD2;
3505   GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = $8CD3;
3506   GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER = $8CD4;
3507   GL_FRAMEBUFFER_COMPLETE = $8CD5;
3508   GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT = $8CD6;
3509   GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = $8CD7;
3510   GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER = $8CDB;
3511   GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER = $8CDC;
3512   GL_FRAMEBUFFER_UNSUPPORTED = $8CDD;
3513   GL_MAX_COLOR_ATTACHMENTS = $8CDF;
3514   GL_COLOR_ATTACHMENT0 = $8CE0;
3515   GL_COLOR_ATTACHMENT1 = $8CE1;
3516   GL_COLOR_ATTACHMENT2 = $8CE2;
3517   GL_COLOR_ATTACHMENT3 = $8CE3;
3518   GL_COLOR_ATTACHMENT4 = $8CE4;
3519   GL_COLOR_ATTACHMENT5 = $8CE5;
3520   GL_COLOR_ATTACHMENT6 = $8CE6;
3521   GL_COLOR_ATTACHMENT7 = $8CE7;
3522   GL_COLOR_ATTACHMENT8 = $8CE8;
3523   GL_COLOR_ATTACHMENT9 = $8CE9;
3524   GL_COLOR_ATTACHMENT10 = $8CEA;
3525   GL_COLOR_ATTACHMENT11 = $8CEB;
3526   GL_COLOR_ATTACHMENT12 = $8CEC;
3527   GL_COLOR_ATTACHMENT13 = $8CED;
3528   GL_COLOR_ATTACHMENT14 = $8CEE;
3529   GL_COLOR_ATTACHMENT15 = $8CEF;
3530   GL_DEPTH_ATTACHMENT = $8D00;
3531   GL_STENCIL_ATTACHMENT = $8D20;
3532   GL_FRAMEBUFFER = $8D40;
3533   GL_RENDERBUFFER = $8D41;
3534   GL_RENDERBUFFER_WIDTH = $8D42;
3535   GL_RENDERBUFFER_HEIGHT = $8D43;
3536   GL_RENDERBUFFER_INTERNAL_FORMAT = $8D44;
3537   GL_STENCIL_INDEX1 = $8D46;
3538   GL_STENCIL_INDEX4 = $8D47;
3539   GL_STENCIL_INDEX8 = $8D48;
3540   GL_STENCIL_INDEX16 = $8D49;
3541   GL_RENDERBUFFER_RED_SIZE = $8D50;
3542   GL_RENDERBUFFER_GREEN_SIZE = $8D51;
3543   GL_RENDERBUFFER_BLUE_SIZE = $8D52;
3544   GL_RENDERBUFFER_ALPHA_SIZE = $8D53;
3545   GL_RENDERBUFFER_DEPTH_SIZE = $8D54;
3546   GL_RENDERBUFFER_STENCIL_SIZE = $8D55;
3547   GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE = $8D56;
3548   GL_MAX_SAMPLES = $8D57;
3549 {$ifdef DGL_DEPRECATED}
3550   GL_INDEX = $8222;
3551   GL_TEXTURE_LUMINANCE_TYPE = $8C14;
3552   GL_TEXTURE_INTENSITY_TYPE = $8C15;
3553 {$endif}
3554
3555   // GL_ARB_framebuffer_sRGB
3556   GL_FRAMEBUFFER_SRGB = $8DB9;
3557
3558   // GL_ARB_geometry_shader4
3559   GL_LINES_ADJACENCY_ARB = $000A;
3560   GL_LINE_STRIP_ADJACENCY_ARB = $000B;
3561   GL_TRIANGLES_ADJACENCY_ARB = $000C;
3562   GL_TRIANGLE_STRIP_ADJACENCY_ARB = $000D;
3563   GL_PROGRAM_POINT_SIZE_ARB = $8642;
3564   GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB = $8C29;
3565   GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB = $8DA7;
3566   GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB = $8DA8;
3567   GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB = $8DA9;
3568   GL_GEOMETRY_SHADER_ARB = $8DD9;
3569   GL_GEOMETRY_VERTICES_OUT_ARB = $8DDA;
3570   GL_GEOMETRY_INPUT_TYPE_ARB = $8DDB;
3571   GL_GEOMETRY_OUTPUT_TYPE_ARB = $8DDC;
3572   GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB = $8DDD;
3573   GL_MAX_VERTEX_VARYING_COMPONENTS_ARB = $8DDE;
3574   GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB = $8DDF;
3575   GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB = $8DE0;
3576   GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB = $8DE1;
3577   { reuse GL_MAX_VARYING_COMPONENTS }
3578   { reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER }
3579
3580   // GL_ARB_half_float_vertex
3581   GL_HALF_FLOAT = $140B;
3582
3583   // GL_ARB_instanced_arrays
3584   GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB = $88FE;
3585
3586   // GL_ARB_map_buffer_range
3587   GL_MAP_READ_BIT = $0001;
3588   GL_MAP_WRITE_BIT = $0002;
3589   GL_MAP_INVALIDATE_RANGE_BIT = $0004;
3590   GL_MAP_INVALIDATE_BUFFER_BIT = $0008;
3591   GL_MAP_FLUSH_EXPLICIT_BIT = $0010;
3592   GL_MAP_UNSYNCHRONIZED_BIT = $0020;
3593
3594   // GL_ARB_texture_buffer_object
3595   GL_TEXTURE_BUFFER_ARB = $8C2A;
3596   GL_MAX_TEXTURE_BUFFER_SIZE_ARB = $8C2B;
3597   GL_TEXTURE_BINDING_BUFFER_ARB = $8C2C;
3598   GL_TEXTURE_BUFFER_DATA_STORE_BINDING_ARB = $8C2D;
3599   GL_TEXTURE_BUFFER_FORMAT_ARB = $8C2E;
3600
3601   // GL_ARB_texture_compression_rgtc
3602   GL_COMPRESSED_RED_RGTC1 = $8DBB;
3603   GL_COMPRESSED_SIGNED_RED_RGTC1 = $8DBC;
3604   GL_COMPRESSED_RG_RGTC2 = $8DBD;
3605   GL_COMPRESSED_SIGNED_RG_RGTC2 = $8DBE;
3606
3607   // GL_ARB_texture_rg
3608   GL_RG = $8227;
3609   GL_RG_INTEGER = $8228;
3610   GL_R8 = $8229;
3611   GL_R16 = $822A;
3612   GL_RG8 = $822B;
3613   GL_RG16 = $822C;
3614   GL_R16F = $822D;
3615   GL_R32F = $822E;
3616   GL_RG16F = $822F;
3617   GL_RG32F = $8230;
3618   GL_R8I = $8231;
3619   GL_R8UI = $8232;
3620   GL_R16I = $8233;
3621   GL_R16UI = $8234;
3622   GL_R32I = $8235;
3623   GL_R32UI = $8236;
3624   GL_RG8I = $8237;
3625   GL_RG8UI = $8238;
3626   GL_RG16I = $8239;
3627   GL_RG16UI = $823A;
3628   GL_RG32I = $823B;
3629   GL_RG32UI = $823C;
3630
3631   // GL_ARB_vertex_array_object
3632   GL_VERTEX_ARRAY_BINDING = $85B5;
3633
3634   // GL_ARB_uniform_buffer_object
3635   GL_UNIFORM_BUFFER = $8A11;
3636   GL_UNIFORM_BUFFER_BINDING = $8A28;
3637   GL_UNIFORM_BUFFER_START = $8A29;
3638   GL_UNIFORM_BUFFER_SIZE = $8A2A;
3639   GL_MAX_VERTEX_UNIFORM_BLOCKS = $8A2B;
3640   GL_MAX_GEOMETRY_UNIFORM_BLOCKS = $8A2C;
3641   GL_MAX_FRAGMENT_UNIFORM_BLOCKS = $8A2D;
3642   GL_MAX_COMBINED_UNIFORM_BLOCKS = $8A2E;
3643   GL_MAX_UNIFORM_BUFFER_BINDINGS = $8A2F;
3644   GL_MAX_UNIFORM_BLOCK_SIZE = $8A30;
3645   GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS = $8A31;
3646   GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS = $8A32;
3647   GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS = $8A33;
3648   GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT = $8A34;
3649   GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH = $8A35;
3650   GL_ACTIVE_UNIFORM_BLOCKS = $8A36;
3651   GL_UNIFORM_TYPE = $8A37;
3652   GL_UNIFORM_SIZE = $8A38;
3653   GL_UNIFORM_NAME_LENGTH = $8A39;
3654   GL_UNIFORM_BLOCK_INDEX = $8A3A;
3655   GL_UNIFORM_OFFSET = $8A3B;
3656   GL_UNIFORM_ARRAY_STRIDE = $8A3C;
3657   GL_UNIFORM_MATRIX_STRIDE = $8A3D;
3658   GL_UNIFORM_IS_ROW_MAJOR = $8A3E;
3659   GL_UNIFORM_BLOCK_BINDING = $8A3F;
3660   GL_UNIFORM_BLOCK_DATA_SIZE = $8A40;
3661   GL_UNIFORM_BLOCK_NAME_LENGTH = $8A41;
3662   GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS = $8A42;
3663   GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = $8A43;
3664   GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = $8A44;
3665   GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER = $8A45;
3666   GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = $8A46;
3667   GL_INVALID_INDEX = $FFFFFFFF;
3668
3669   // GL_ARB_compatibility
3670   { ARB_compatibility just defines tokens from core 3.0 }
3671
3672   // GL_ARB_copy_buffer
3673   GL_COPY_READ_BUFFER_BINDING = $8F36;
3674   GL_COPY_READ_BUFFER = GL_COPY_READ_BUFFER_BINDING;
3675   GL_COPY_WRITE_BUFFER_BINDING = $8F37;
3676   GL_COPY_WRITE_BUFFER = GL_COPY_WRITE_BUFFER_BINDING;
3677
3678   // GL_ARB_depth_clamp
3679   GL_DEPTH_CLAMP = $864F;
3680
3681   // GL_ARB_provoking_vertex
3682   GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION = $8E4C;
3683   GL_FIRST_VERTEX_CONVENTION = $8E4D;
3684   GL_LAST_VERTEX_CONVENTION = $8E4E;
3685   GL_PROVOKING_VERTEX = $8E4F;
3686
3687   // GL_ARB_seamless_cube_map
3688   GL_TEXTURE_CUBE_MAP_SEAMLESS = $884F;
3689
3690   // GL_ARB_sync
3691   GL_MAX_SERVER_WAIT_TIMEOUT = $9111;
3692   GL_OBJECT_TYPE = $9112;
3693   GL_SYNC_CONDITION = $9113;
3694   GL_SYNC_STATUS = $9114;
3695   GL_SYNC_FLAGS = $9115;
3696   GL_SYNC_FENCE = $9116;
3697   GL_SYNC_GPU_COMMANDS_COMPLETE = $9117;
3698   GL_UNSIGNALED = $9118;
3699   GL_SIGNALED = $9119;
3700   GL_ALREADY_SIGNALED = $911A;
3701   GL_TIMEOUT_EXPIRED = $911B;
3702   GL_CONDITION_SATISFIED = $911C;
3703   GL_WAIT_FAILED = $911D;
3704   GL_SYNC_FLUSH_COMMANDS_BIT = $00000001;
3705   GL_TIMEOUT_IGNORED = $FFFFFFFFFFFFFFFF;
3706
3707   // GL_ARB_texture_multisample
3708   GL_SAMPLE_POSITION = $8E50;
3709   GL_SAMPLE_MASK = $8E51;
3710   GL_SAMPLE_MASK_VALUE = $8E52;
3711   GL_MAX_SAMPLE_MASK_WORDS = $8E59;
3712   GL_TEXTURE_2D_MULTISAMPLE = $9100;
3713   GL_PROXY_TEXTURE_2D_MULTISAMPLE = $9101;
3714   GL_TEXTURE_2D_MULTISAMPLE_ARRAY = $9102;
3715   GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY = $9103;
3716   GL_TEXTURE_BINDING_2D_MULTISAMPLE = $9104;
3717   GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY = $9105;
3718   GL_TEXTURE_SAMPLES = $9106;
3719   GL_TEXTURE_FIXED_SAMPLE_LOCATIONS = $9107;
3720   GL_SAMPLER_2D_MULTISAMPLE = $9108;
3721   GL_INT_SAMPLER_2D_MULTISAMPLE = $9109;
3722   GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE = $910A;
3723   GL_SAMPLER_2D_MULTISAMPLE_ARRAY = $910B;
3724   GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = $910C;
3725   GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = $910D;
3726   GL_MAX_COLOR_TEXTURE_SAMPLES = $910E;
3727   GL_MAX_DEPTH_TEXTURE_SAMPLES = $910F;
3728   GL_MAX_INTEGER_SAMPLES = $9110;
3729
3730   // GL_ARB_vertex_array_bgra
3731   { reuse GL_BGRA }
3732
3733   // GL_ARB_sample_shading
3734   GL_SAMPLE_SHADING_ARB = $8C36;
3735   GL_MIN_SAMPLE_SHADING_VALUE_ARB = $8C37;
3736
3737   // GL_ARB_texture_cube_map_array
3738   GL_TEXTURE_CUBE_MAP_ARRAY_ARB = $9009;
3739   GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB = $900A;
3740   GL_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB = $900B;
3741   GL_SAMPLER_CUBE_MAP_ARRAY_ARB = $900C;
3742   GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB = $900D;
3743   GL_INT_SAMPLER_CUBE_MAP_ARRAY_ARB = $900E;
3744   GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB = $900F;
3745
3746   // GL_ARB_texture_gather
3747   GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB = $8E5E;
3748   GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB = $8E5F;
3749
3750   // GL_ARB_shading_language_include
3751   GL_SHADER_INCLUDE_ARB = $8DAE;
3752   GL_NAMED_STRING_LENGTH_ARB = $8DE9;
3753   GL_NAMED_STRING_TYPE_ARB = $8DEA;
3754
3755   // GL_ARB_texture_compression_bptc
3756   GL_COMPRESSED_RGBA_BPTC_UNORM_ARB = $8E8C;
3757   GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB = $8E8D;
3758   GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB = $8E8E;
3759   GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB = $8E8F;
3760
3761   // GL_ARB_blend_func_extended
3762   GL_SRC1_COLOR = $88F9;
3763   { reuse GL_SRC1_ALPHA }
3764   GL_ONE_MINUS_SRC1_COLOR = $88FA;
3765   GL_ONE_MINUS_SRC1_ALPHA = $88FB;
3766   GL_MAX_DUAL_SOURCE_DRAW_BUFFERS = $88FC;
3767
3768   // GL_ARB_occlusion_query2
3769   GL_ANY_SAMPLES_PASSED = $8C2F;
3770
3771   // GL_ARB_sampler_objects
3772   GL_SAMPLER_BINDING = $8919;
3773
3774   // GL_ARB_texture_rgb10_a2ui
3775   GL_RGB10_A2UI = $906F;
3776
3777   // GL_ARB_texture_swizzle
3778   GL_TEXTURE_SWIZZLE_R = $8E42;
3779   GL_TEXTURE_SWIZZLE_G = $8E43;
3780   GL_TEXTURE_SWIZZLE_B = $8E44;
3781   GL_TEXTURE_SWIZZLE_A = $8E45;
3782   GL_TEXTURE_SWIZZLE_RGBA = $8E46;
3783
3784   // GL_ARB_SPARSE_TEXTURE
3785   GL_TEXTURE_SPARSE_ARB = $91A6;
3786   GL_VIRTUAL_PAGE_SIZE_INDEX_ARB = $91A7;
3787   GL_NUM_VIRTUAL_PAGE_SIZES_ARB = $91A8;
3788   GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_ARB = $91A9;
3789   GL_NUM_SPARSE_LEVELS_ARB = $91AA;
3790   GL_VIRTUAL_PAGE_SIZE_X_ARB = $9195;
3791   GL_VIRTUAL_PAGE_SIZE_Y_ARB = $9196;
3792   GL_VIRTUAL_PAGE_SIZE_Z_ARB = $9197;
3793   GL_MAX_SPARSE_TEXTURE_SIZE_ARB = $9198;
3794   GL_MAX_SPARSE_3D_TEXTURE_SIZE_ARB = $9199;
3795   GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_ARB = $919A;
3796   GL_MIN_SPARSE_LEVEL_ARB = $919B;
3797
3798   // GL_ARB_timer_query
3799   GL_TIME_ELAPSED = $88BF;
3800   GL_TIMESTAMP = $8E28;
3801
3802   // GL_ARB_vertex_type_2_10_10_10_rev
3803   { reuse GL_UNSIGNED_INT_2_10_10_10_REV }
3804   GL_INT_2_10_10_10_REV = $8D9F;
3805
3806   // GL_ARB_draw_indirect
3807   GL_DRAW_INDIRECT_BUFFER = $8F3F;
3808   GL_DRAW_INDIRECT_BUFFER_BINDING = $8F43;
3809
3810   // GL_ARB_gpu_shader5
3811   GL_GEOMETRY_SHADER_INVOCATIONS = $887F;
3812   GL_MAX_GEOMETRY_SHADER_INVOCATIONS = $8E5A;
3813   GL_MIN_FRAGMENT_INTERPOLATION_OFFSET = $8E5B;
3814   GL_MAX_FRAGMENT_INTERPOLATION_OFFSET = $8E5C;
3815   GL_FRAGMENT_INTERPOLATION_OFFSET_BITS = $8E5D;
3816   { reuse GL_MAX_VERTEX_STREAMS }
3817
3818   // GL_ARB_gpu_shader_fp64
3819   { reuse GL_DOUBLE }
3820   GL_DOUBLE_VEC2 = $8FFC;
3821   GL_DOUBLE_VEC3 = $8FFD;
3822   GL_DOUBLE_VEC4 = $8FFE;
3823   GL_DOUBLE_MAT2 = $8F46;
3824   GL_DOUBLE_MAT3 = $8F47;
3825   GL_DOUBLE_MAT4 = $8F48;
3826   GL_DOUBLE_MAT2x3 = $8F49;
3827   GL_DOUBLE_MAT2x4 = $8F4A;
3828   GL_DOUBLE_MAT3x2 = $8F4B;
3829   GL_DOUBLE_MAT3x4 = $8F4C;
3830   GL_DOUBLE_MAT4x2 = $8F4D;
3831   GL_DOUBLE_MAT4x3 = $8F4E;
3832
3833   // GL_ARB_shader_subroutine
3834   GL_ACTIVE_SUBROUTINES = $8DE5;
3835   GL_ACTIVE_SUBROUTINE_UNIFORMS = $8DE6;
3836   GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS = $8E47;
3837   GL_ACTIVE_SUBROUTINE_MAX_LENGTH = $8E48;
3838   GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH = $8E49;
3839   GL_MAX_SUBROUTINES = $8DE7;
3840   GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS = $8DE8;
3841   GL_NUM_COMPATIBLE_SUBROUTINES = $8E4A;
3842   GL_COMPATIBLE_SUBROUTINES = $8E4B;
3843   { reuse GL_UNIFORM_SIZE }
3844   { reuse GL_UNIFORM_NAME_LENGTH }
3845
3846   // GL_ARB_tessellation_shader
3847   GL_PATCHES = $000E;
3848   GL_PATCH_VERTICES = $8E72;
3849   GL_PATCH_DEFAULT_INNER_LEVEL = $8E73;
3850   GL_PATCH_DEFAULT_OUTER_LEVEL = $8E74;
3851   GL_TESS_CONTROL_OUTPUT_VERTICES = $8E75;
3852   GL_TESS_GEN_MODE = $8E76;
3853   GL_TESS_GEN_SPACING = $8E77;
3854   GL_TESS_GEN_VERTEX_ORDER = $8E78;
3855   GL_TESS_GEN_POINT_MODE = $8E79;
3856   { reuse GL_TRIANGLES }
3857   { reuse GL_QUADS }
3858   GL_ISOLINES = $8E7A;
3859   { reuse GL_EQUAL }
3860   GL_FRACTIONAL_ODD = $8E7B;
3861   GL_FRACTIONAL_EVEN = $8E7C;
3862   { reuse GL_CCW }
3863   { reuse GL_CW }
3864   GL_MAX_PATCH_VERTICES = $8E7D;
3865   GL_MAX_TESS_GEN_LEVEL = $8E7E;
3866   GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS = $8E7F;
3867   GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS = $8E80;
3868   GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS = $8E81;
3869   GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS = $8E82;
3870   GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS = $8E83;
3871   GL_MAX_TESS_PATCH_COMPONENTS = $8E84;
3872   GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS = $8E85;
3873   GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS = $8E86;
3874   GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS = $8E89;
3875   GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS = $8E8A;
3876   GL_MAX_TESS_CONTROL_INPUT_COMPONENTS = $886C;
3877   GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS = $886D;
3878   GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS = $8E1E;
3879   GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS = $8E1F;
3880   GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER = $84F0;
3881   GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER = $84F1;
3882   GL_TESS_EVALUATION_SHADER = $8E87;
3883   GL_TESS_CONTROL_SHADER = $8E88;
3884
3885   // GL_ARB_texture_buffer_object_rgb32
3886   { reuse GL_RGB32F }
3887   { reuse GL_RGB32UI }
3888   { reuse GL_RGB32I }
3889
3890   // GL_ARB_transform_feedback2
3891   GL_TRANSFORM_FEEDBACK = $8E22;
3892   GL_TRANSFORM_FEEDBACK_PAUSED = $8E23;
3893   GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED = GL_TRANSFORM_FEEDBACK_PAUSED;
3894   GL_TRANSFORM_FEEDBACK_ACTIVE = $8E24;
3895   GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE = GL_TRANSFORM_FEEDBACK_ACTIVE;
3896   GL_TRANSFORM_FEEDBACK_BINDING = $8E25;
3897
3898   // GL_ARB_transform_feedback_overflow_query
3899   GL_TRANSFORM_FEEDBACK_OVERFLOW_ARB = $82EC;
3900   GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW_ARB = $82ED;
3901
3902   // GL_ARB_transform_feedback3
3903   GL_MAX_TRANSFORM_FEEDBACK_BUFFERS = $8E70;
3904   GL_MAX_VERTEX_STREAMS = $8E71;
3905
3906   // GL_ARB_ES2_compatibility
3907   GL_FIXED = $140C;
3908   GL_IMPLEMENTATION_COLOR_READ_TYPE = $8B9A;
3909   GL_IMPLEMENTATION_COLOR_READ_FORMAT = $8B9B;
3910   GL_LOW_FLOAT = $8DF0;
3911   GL_MEDIUM_FLOAT = $8DF1;
3912   GL_HIGH_FLOAT = $8DF2;
3913   GL_LOW_INT = $8DF3;
3914   GL_MEDIUM_INT = $8DF4;
3915   GL_HIGH_INT = $8DF5;
3916   GL_SHADER_COMPILER = $8DFA;
3917   GL_NUM_SHADER_BINARY_FORMATS = $8DF9;
3918   GL_MAX_VERTEX_UNIFORM_VECTORS = $8DFB;
3919   GL_MAX_VARYING_VECTORS = $8DFC;
3920   GL_MAX_FRAGMENT_UNIFORM_VECTORS = $8DFD;
3921   GL_RGB565 = $8D62;
3922
3923   // GL_ARB_get_program_binary
3924   GL_PROGRAM_BINARY_RETRIEVABLE_HINT = $8257;
3925   GL_PROGRAM_BINARY_LENGTH = $8741;
3926   GL_NUM_PROGRAM_BINARY_FORMATS = $87FE;
3927   GL_PROGRAM_BINARY_FORMATS = $87FF;
3928
3929   // GL_ARB_separate_shader_objects
3930   GL_VERTEX_SHADER_BIT = $00000001;
3931   GL_FRAGMENT_SHADER_BIT = $00000002;
3932   GL_GEOMETRY_SHADER_BIT = $00000004;
3933   GL_TESS_CONTROL_SHADER_BIT = $00000008;
3934   GL_TESS_EVALUATION_SHADER_BIT = $00000010;
3935   GL_ALL_SHADER_BITS = $FFFFFFFF;
3936   GL_PROGRAM_SEPARABLE = $8258;
3937   GL_ACTIVE_PROGRAM = $8259;
3938   GL_PROGRAM_PIPELINE_BINDING = $825A;
3939
3940   // GL_ARB_vertex_attrib_64bit
3941   { reuse GL_RGB32I }
3942   { reuse GL_DOUBLE_VEC2 }
3943   { reuse GL_DOUBLE_VEC3 }
3944   { reuse GL_DOUBLE_VEC4 }
3945   { reuse GL_DOUBLE_MAT2 }
3946   { reuse GL_DOUBLE_MAT3 }
3947   { reuse GL_DOUBLE_MAT4 }
3948   { reuse GL_DOUBLE_MAT2x3 }
3949   { reuse GL_DOUBLE_MAT2x4 }
3950   { reuse GL_DOUBLE_MAT3x2 }
3951   { reuse GL_DOUBLE_MAT3x4 }
3952   { reuse GL_DOUBLE_MAT4x2 }
3953   { reuse GL_DOUBLE_MAT4x3 }
3954
3955   // GL_ARB_viewport_array
3956   { reuse GL_SCISSOR_BOX }
3957   { reuse GL_VIEWPORT }
3958   { reuse GL_DEPTH_RANGE }
3959   { reuse GL_SCISSOR_TEST }
3960   GL_MAX_VIEWPORTS = $825B;
3961   GL_VIEWPORT_SUBPIXEL_BITS = $825C;
3962   GL_VIEWPORT_BOUNDS_RANGE = $825D;
3963   GL_LAYER_PROVOKING_VERTEX = $825E;
3964   GL_VIEWPORT_INDEX_PROVOKING_VERTEX = $825F;
3965   GL_UNDEFINED_VERTEX = $8260;
3966   { reuse GL_FIRST_VERTEX_CONVENTION }
3967   { reuse GL_LAST_VERTEX_CONVENTION }
3968   { reuse GL_PROVOKING_VERTEX }
3969
3970   // GL_ARB_cl_event
3971   GL_SYNC_CL_EVENT_ARB = $8240;
3972   GL_SYNC_CL_EVENT_COMPLETE_ARB = $8241;
3973
3974   // GL_ARB_debug_output
3975   GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB = $8242;
3976   GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB = $8243;
3977   GL_DEBUG_CALLBACK_FUNCTION_ARB = $8244;
3978   GL_DEBUG_CALLBACK_USER_PARAM_ARB = $8245;
3979   GL_DEBUG_SOURCE_API_ARB = $8246;
3980   GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB = $8247;
3981   GL_DEBUG_SOURCE_SHADER_COMPILER_ARB = $8248;
3982   GL_DEBUG_SOURCE_THIRD_PARTY_ARB = $8249;
3983   GL_DEBUG_SOURCE_APPLICATION_ARB = $824A;
3984   GL_DEBUG_SOURCE_OTHER_ARB = $824B;
3985   GL_DEBUG_TYPE_ERROR_ARB = $824C;
3986   GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB = $824D;
3987   GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB = $824E;
3988   GL_DEBUG_TYPE_PORTABILITY_ARB = $824F;
3989   GL_DEBUG_TYPE_PERFORMANCE_ARB = $8250;
3990   GL_DEBUG_TYPE_OTHER_ARB = $8251;
3991   GL_MAX_DEBUG_MESSAGE_LENGTH_ARB = $9143;
3992   GL_MAX_DEBUG_LOGGED_MESSAGES_ARB = $9144;
3993   GL_DEBUG_LOGGED_MESSAGES_ARB = $9145;
3994   GL_DEBUG_SEVERITY_HIGH_ARB = $9146;
3995   GL_DEBUG_SEVERITY_MEDIUM_ARB = $9147;
3996   GL_DEBUG_SEVERITY_LOW_ARB = $9148;
3997
3998   // GL_ARB_robustness
3999   { reuse GL_NO_ERROR }
4000   GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB = $00000004;
4001   GL_LOSE_CONTEXT_ON_RESET_ARB = $8252;
4002   GL_GUILTY_CONTEXT_RESET_ARB = $8253;
4003   GL_INNOCENT_CONTEXT_RESET_ARB = $8254;
4004   GL_UNKNOWN_CONTEXT_RESET_ARB = $8255;
4005   GL_RESET_NOTIFICATION_STRATEGY_ARB = $8256;
4006   GL_NO_RESET_NOTIFICATION_ARB = $8261;
4007
4008   //  GL_ARB_compressed_texture_pixel_storage
4009   GL_UNPACK_COMPRESSED_BLOCK_WIDTH  = $09127;
4010   GL_UNPACK_COMPRESSED_BLOCK_HEIGHT = $09128;
4011   GL_UNPACK_COMPRESSED_BLOCK_DEPTH  = $09129;
4012   GL_UNPACK_COMPRESSED_BLOCK_SIZE   = $0912A;
4013   GL_PACK_COMPRESSED_BLOCK_WIDTH    = $0912B;
4014   GL_PACK_COMPRESSED_BLOCK_HEIGHT   = $0912C;
4015   GL_PACK_COMPRESSED_BLOCK_DEPTH    = $0912D;
4016   GL_PACK_COMPRESSED_BLOCK_SIZE     = $0912E;
4017
4018   // GL_ARB_internalformat_query
4019   GL_NUM_SAMPLE_COUNTS              = $09380;
4020
4021   // GL_ARB_map_buffer_alignment
4022   GL_MIN_MAP_BUFFER_ALIGNMENT       = $090BC;
4023
4024   // GL_ARB_shader_atomic_counters
4025   GL_ATOMIC_COUNTER_BUFFER          = $92C0;
4026   GL_ATOMIC_COUNTER_BUFFER_BINDING  = $92C1;
4027   GL_ATOMIC_COUNTER_BUFFER_START    = $92C2;
4028   GL_ATOMIC_COUNTER_BUFFER_SIZE     = $92C3;
4029   GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE = $92C4;
4030   GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS = $92C5;
4031   GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES = $92C6;
4032   GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER = $92C7;
4033   GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER = $92C8;
4034   GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER = $92C9;
4035   GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER = $92CA;
4036   GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER = $92CB;
4037   GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS = $92CC;
4038   GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS = $92CD;
4039   GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS = $92CE;
4040   GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS = $92CF;
4041   GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS = $92D0;
4042   GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS = $92D1;
4043   GL_MAX_VERTEX_ATOMIC_COUNTERS     = $92D2;
4044   GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS = $92D3;
4045   GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS = $92D4;
4046   GL_MAX_GEOMETRY_ATOMIC_COUNTERS   = $92D5;
4047   GL_MAX_FRAGMENT_ATOMIC_COUNTERS   = $92D6;
4048   GL_MAX_COMBINED_ATOMIC_COUNTERS   = $92D7;
4049   GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE = $92D8;
4050   GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS = $92DC;
4051   GL_ACTIVE_ATOMIC_COUNTER_BUFFERS  = $92D9;
4052   GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX = $92DA;
4053   GL_UNSIGNED_INT_ATOMIC_COUNTER    = $92DB;
4054
4055   // GL_ARB_shader_image_load_store
4056   GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT = $00000001;
4057   GL_ELEMENT_ARRAY_BARRIER_BIT      = $00000002;
4058   GL_UNIFORM_BARRIER_BIT            = $00000004;
4059   GL_TEXTURE_FETCH_BARRIER_BIT      = $00000008;
4060   GL_SHADER_IMAGE_ACCESS_BARRIER_BIT = $00000020;
4061   GL_COMMAND_BARRIER_BIT            = $00000040;
4062   GL_PIXEL_BUFFER_BARRIER_BIT       = $00000080;
4063   GL_TEXTURE_UPDATE_BARRIER_BIT     = $00000100;
4064   GL_BUFFER_UPDATE_BARRIER_BIT      = $00000200;
4065   GL_FRAMEBUFFER_BARRIER_BIT        = $00000400;
4066   GL_TRANSFORM_FEEDBACK_BARRIER_BIT = $00000800;
4067   GL_ATOMIC_COUNTER_BARRIER_BIT     = $00001000;
4068   GL_ALL_BARRIER_BITS               = $FFFFFFFF;
4069   GL_MAX_IMAGE_UNITS                = $8F38;
4070   GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS = $8F39;
4071   GL_IMAGE_BINDING_NAME             = $8F3A;
4072   GL_IMAGE_BINDING_LEVEL            = $8F3B;
4073   GL_IMAGE_BINDING_LAYERED          = $8F3C;
4074   GL_IMAGE_BINDING_LAYER            = $8F3D;
4075   GL_IMAGE_BINDING_ACCESS           = $8F3E;
4076   GL_IMAGE_1D                       = $904C;
4077   GL_IMAGE_2D                       = $904D;
4078   GL_IMAGE_3D                       = $904E;
4079   GL_IMAGE_2D_RECT                  = $904F;
4080   GL_IMAGE_CUBE                     = $9050;
4081   GL_IMAGE_BUFFER                   = $9051;
4082   GL_IMAGE_1D_ARRAY                 = $9052;
4083   GL_IMAGE_2D_ARRAY                 = $9053;
4084   GL_IMAGE_CUBE_MAP_ARRAY           = $9054;
4085   GL_IMAGE_2D_MULTISAMPLE           = $9055;
4086   GL_IMAGE_2D_MULTISAMPLE_ARRAY     = $9056;
4087   GL_INT_IMAGE_1D                   = $9057;
4088   GL_INT_IMAGE_2D                   = $9058;
4089   GL_INT_IMAGE_3D                   = $9059;
4090   GL_INT_IMAGE_2D_RECT              = $905A;
4091   GL_INT_IMAGE_CUBE                 = $905B;
4092   GL_INT_IMAGE_BUFFER               = $905C;
4093   GL_INT_IMAGE_1D_ARRAY             = $905D;
4094   GL_INT_IMAGE_2D_ARRAY             = $905E;
4095   GL_INT_IMAGE_CUBE_MAP_ARRAY       = $905F;
4096   GL_INT_IMAGE_2D_MULTISAMPLE       = $9060;
4097   GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY = $9061;
4098   GL_UNSIGNED_INT_IMAGE_1D          = $9062;
4099   GL_UNSIGNED_INT_IMAGE_2D          = $9063;
4100   GL_UNSIGNED_INT_IMAGE_3D          = $9064;
4101   GL_UNSIGNED_INT_IMAGE_2D_RECT     = $9065;
4102   GL_UNSIGNED_INT_IMAGE_CUBE        = $9066;
4103   GL_UNSIGNED_INT_IMAGE_BUFFER      = $9067;
4104   GL_UNSIGNED_INT_IMAGE_1D_ARRAY    = $9068;
4105   GL_UNSIGNED_INT_IMAGE_2D_ARRAY    = $9069;
4106   GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY = $906A;
4107   GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE = $906B;
4108   GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY = $906C;
4109   GL_MAX_IMAGE_SAMPLES              = $906D;
4110   GL_IMAGE_BINDING_FORMAT           = $906E;
4111   GL_IMAGE_FORMAT_COMPATIBILITY_TYPE = $90C7;
4112   GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE = $90C8;
4113   GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS = $90C9;
4114   GL_MAX_VERTEX_IMAGE_UNIFORMS      = $90CA;
4115   GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS = $90CB;
4116   GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS = $90CC;
4117   GL_MAX_GEOMETRY_IMAGE_UNIFORMS    = $90CD;
4118   GL_MAX_FRAGMENT_IMAGE_UNIFORMS    = $90CE;
4119   GL_MAX_COMBINED_IMAGE_UNIFORMS    = $90CF;
4120
4121   // GL_ARB_texture_storage
4122   GL_TEXTURE_IMMUTABLE_FORMAT       = $912F;
4123
4124   // 4.3
4125   // GL_KHR_texture_compression_astc_hdr
4126   GL_COMPRESSED_RGBA_ASTC_4x4_KHR = $93B0;
4127   GL_COMPRESSED_RGBA_ASTC_5x4_KHR = $93B1;
4128   GL_COMPRESSED_RGBA_ASTC_5x5_KHR = $93B2;
4129   GL_COMPRESSED_RGBA_ASTC_6x5_KHR = $93B3;
4130   GL_COMPRESSED_RGBA_ASTC_6x6_KHR = $93B4;
4131   GL_COMPRESSED_RGBA_ASTC_8x5_KHR = $93B5;
4132   GL_COMPRESSED_RGBA_ASTC_8x6_KHR = $93B6;
4133   GL_COMPRESSED_RGBA_ASTC_8x8_KHR = $93B7;
4134   GL_COMPRESSED_RGBA_ASTC_105_KHR = $93B8;
4135   GL_COMPRESSED_RGBA_ASTC_106_KHR = $93B9;
4136   GL_COMPRESSED_RGBA_ASTC_108_KHR = $93BA;
4137   GL_COMPRESSED_RGBA_ASTC_110_KHR = $93BB;
4138   GL_COMPRESSED_RGBA_ASTC_12x10_KHR = $93BC;
4139   GL_COMPRESSED_RGBA_ASTC_12x12_KHR = $93BD;
4140   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR = $93D0;
4141   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR = $93D1;
4142   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR = $93D2;
4143   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR = $93D3;
4144   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR = $93D4;
4145   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR = $93D5;
4146   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR = $93D6;
4147   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR = $93D7;
4148   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR = $93D8;
4149   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR = $93D9;
4150   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR = $93DA;
4151   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR = $93DB;
4152   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR = $93DC;
4153   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR = $93DD;
4154   // (4.3) GL_KHR_debug
4155   GL_DEBUG_OUTPUT_SYNCHRONOUS       = $8242;
4156   GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH = $8243;
4157   GL_DEBUG_CALLBACK_FUNCTION        = $8244;
4158   GL_DEBUG_CALLBACK_USER_PARAM      = $8245;
4159   GL_DEBUG_SOURCE_API               = $8246;
4160   GL_DEBUG_SOURCE_WINDOW_SYSTEM     = $8247;
4161   GL_DEBUG_SOURCE_SHADER_COMPILER   = $8248;
4162   GL_DEBUG_SOURCE_THIRD_PARTY       = $8249;
4163   GL_DEBUG_SOURCE_APPLICATION       = $824A;
4164   GL_DEBUG_SOURCE_OTHER             = $824B;
4165   GL_DEBUG_TYPE_ERROR               = $824C;
4166   GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR = $824D;
4167   GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR  = $824E;
4168   GL_DEBUG_TYPE_PORTABILITY         = $824F;
4169   GL_DEBUG_TYPE_PERFORMANCE         = $8250;
4170   GL_DEBUG_TYPE_OTHER               = $8251;
4171   GL_DEBUG_TYPE_MARKER              = $8268;
4172   GL_DEBUG_TYPE_PUSH_GROUP          = $8269;
4173   GL_DEBUG_TYPE_POP_GROUP           = $826A;
4174   GL_DEBUG_SEVERITY_NOTIFICATION    = $826B;
4175   GL_MAX_DEBUG_GROUP_STACK_DEPTH    = $826C;
4176   GL_DEBUG_GROUP_STACK_DEPTH        = $826D;
4177   GL_BUFFER                         = $82E0;
4178   GL_SHADER                         = $82E1;
4179   GL_PROGRAM                        = $82E2;
4180   GL_QUERY                          = $82E3;
4181   GL_PROGRAM_PIPELINE               = $82E4;
4182   GL_SAMPLER                        = $82E6;
4183   GL_DISPLAY_LIST                   = $82E7;
4184   GL_MAX_LABEL_LENGTH               = $82E8;
4185   GL_MAX_DEBUG_MESSAGE_LENGTH       = $9143;
4186   GL_MAX_DEBUG_LOGGED_MESSAGES      = $9144;
4187   GL_DEBUG_LOGGED_MESSAGES          = $9145;
4188   GL_DEBUG_SEVERITY_HIGH            = $9146;
4189   GL_DEBUG_SEVERITY_MEDIUM          = $9147;
4190   GL_DEBUG_SEVERITY_LOW             = $9148;
4191   GL_DEBUG_OUTPUT                   = $92E0;
4192   GL_CONTEXT_FLAG_DEBUG_BIT         = $00000002;
4193   GL_COMPUTE_SHADER                 = $91B9;
4194   GL_MAX_COMPUTE_UNIFORM_BLOCKS     = $91BB;
4195   GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS = $91BC;
4196   GL_MAX_COMPUTE_IMAGE_UNIFORMS     = $91BD;
4197   GL_MAX_COMPUTE_SHARED_MEMORY_SIZE = $8262;
4198   GL_MAX_COMPUTE_UNIFORM_COMPONENTS = $8263;
4199   GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS = $8264;
4200   GL_MAX_COMPUTE_ATOMIC_COUNTERS    = $8265;
4201   GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS = $8266;
4202   GL_MAX_COMPUTE_LOCAL_INVOCATIONS  = $90EB;
4203   GL_MAX_COMPUTE_WORK_GROUP_COUNT   = $91BE;
4204   GL_MAX_COMPUTE_WORK_GROUP_SIZE    = $91BF;
4205   GL_COMPUTE_LOCAL_WORK_SIZE        = $8267;
4206   GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER = $90EC;
4207   GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER = $90ED;
4208   GL_DISPATCH_INDIRECT_BUFFER       = $90EE;
4209   GL_DISPATCH_INDIRECT_BUFFER_BINDING = $90EF;
4210   GL_COMPUTE_SHADER_BIT             = $00000020;
4211   GL_COMPRESSED_RGB8_ETC2           = $9274;
4212   GL_COMPRESSED_SRGB8_ETC2          = $9275;
4213   GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 = $9276;
4214   GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 = $9277;
4215   GL_COMPRESSED_RGBA8_ETC2_EAC      = $9278;
4216   GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC = $9279;
4217   GL_COMPRESSED_R11_EAC             = $9270;
4218   GL_COMPRESSED_SIGNED_R11_EAC      = $9271;
4219   GL_COMPRESSED_RG11_EAC            = $9272;
4220   GL_COMPRESSED_SIGNED_RG11_EAC     = $9273;
4221   GL_PRIMITIVE_RESTART_FIXED_INDEX  = $8D69;
4222   GL_ANY_SAMPLES_PASSED_CONSERVATIVE = $8D6A;
4223   GL_MAX_ELEMENT_INDEX              = $8D6B;
4224       GL_MAX_UNIFORM_LOCATIONS          = $826E;
4225   GL_FRAMEBUFFER_DEFAULT_WIDTH      = $9310;
4226   GL_FRAMEBUFFER_DEFAULT_HEIGHT     = $9311;
4227   GL_FRAMEBUFFER_DEFAULT_LAYERS     = $9312;
4228   GL_FRAMEBUFFER_DEFAULT_SAMPLES    = $9313;
4229   GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS = $9314;
4230   GL_MAX_FRAMEBUFFER_WIDTH          = $9315;
4231   GL_MAX_FRAMEBUFFER_HEIGHT         = $9316;
4232   GL_MAX_FRAMEBUFFER_LAYERS         = $9317;
4233   GL_MAX_FRAMEBUFFER_SAMPLES        = $9318;
4234         GL_INTERNALFORMAT_SUPPORTED       = $826F;
4235   GL_INTERNALFORMAT_PREFERRED       = $8270;
4236   GL_INTERNALFORMAT_RED_SIZE        = $8271;
4237   GL_INTERNALFORMAT_GREEN_SIZE      = $8272;
4238   GL_INTERNALFORMAT_BLUE_SIZE       = $8273;
4239   GL_INTERNALFORMAT_ALPHA_SIZE      = $8274;
4240   GL_INTERNALFORMAT_DEPTH_SIZE      = $8275;
4241   GL_INTERNALFORMAT_STENCIL_SIZE    = $8276;
4242   GL_INTERNALFORMAT_SHARED_SIZE     = $8277;
4243   GL_INTERNALFORMAT_RED_TYPE        = $8278;
4244   GL_INTERNALFORMAT_GREEN_TYPE      = $8279;
4245   GL_INTERNALFORMAT_BLUE_TYPE       = $827A;
4246   GL_INTERNALFORMAT_ALPHA_TYPE      = $827B;
4247   GL_INTERNALFORMAT_DEPTH_TYPE      = $827C;
4248   GL_INTERNALFORMAT_STENCIL_TYPE    = $827D;
4249   GL_MAX_WIDTH                      = $827E;
4250   GL_MAX_HEIGHT                     = $827F;
4251   GL_MAX_DEPTH                      = $8280;
4252   GL_MAX_LAYERS                     = $8281;
4253   GL_MAX_COMBINED_DIMENSIONS        = $8282;
4254   GL_COLOR_COMPONENTS               = $8283;
4255   GL_DEPTH_COMPONENTS               = $8284;
4256   GL_STENCIL_COMPONENTS             = $8285;
4257   GL_COLOR_RENDERABLE               = $8286;
4258   GL_DEPTH_RENDERABLE               = $8287;
4259   GL_STENCIL_RENDERABLE             = $8288;
4260   GL_FRAMEBUFFER_RENDERABLE         = $8289;
4261   GL_FRAMEBUFFER_RENDERABLE_LAYERED = $828A;
4262   GL_FRAMEBUFFER_BLEND              = $828B;
4263   GL_READ_PIXELS                    = $828C;
4264   GL_READ_PIXELS_FORMAT             = $828D;
4265   GL_READ_PIXELS_TYPE               = $828E;
4266   GL_TEXTURE_IMAGE_FORMAT           = $828F;
4267   GL_TEXTURE_IMAGE_TYPE             = $8290;
4268   GL_GET_TEXTURE_IMAGE_FORMAT       = $8291;
4269   GL_GET_TEXTURE_IMAGE_TYPE         = $8292;
4270   GL_MIPMAP                         = $8293;
4271   GL_MANUAL_GENERATE_MIPMAP         = $8294;
4272   GL_AUTO_GENERATE_MIPMAP           = $8295;
4273   GL_COLOR_ENCODING                 = $8296;
4274   GL_SRGB_READ                      = $8297;
4275   GL_SRGB_WRITE                     = $8298;
4276   GL_SRGB_DECODE_ARB                = $8299;
4277   GL_FILTER                         = $829A;
4278   GL_VERTEX_TEXTURE                 = $829B;
4279   GL_TESS_CONTROL_TEXTURE           = $829C;
4280   GL_TESS_EVALUATION_TEXTURE        = $829D;
4281   GL_GEOMETRY_TEXTURE               = $829E;
4282   GL_FRAGMENT_TEXTURE               = $829F;
4283   GL_COMPUTE_TEXTURE                = $82A0;
4284   GL_TEXTURE_SHADOW                 = $82A1;
4285   GL_TEXTURE_GATHER                 = $82A2;
4286   GL_TEXTURE_GATHER_SHADOW          = $82A3;
4287   GL_SHADER_IMAGE_LOAD              = $82A4;
4288   GL_SHADER_IMAGE_STORE             = $82A5;
4289   GL_SHADER_IMAGE_ATOMIC            = $82A6;
4290   GL_IMAGE_TEXEL_SIZE               = $82A7;
4291   GL_IMAGE_COMPATIBILITY_CLASS      = $82A8;
4292   GL_IMAGE_PIXEL_FORMAT             = $82A9;
4293   GL_IMAGE_PIXEL_TYPE               = $82AA;
4294   GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST = $82AC;
4295   GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST = $82AD;
4296   GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE = $82AE;
4297   GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE = $82AF;
4298   GL_TEXTURE_COMPRESSED_BLOCK_WIDTH = $82B1;
4299   GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT = $82B2;
4300   GL_TEXTURE_COMPRESSED_BLOCK_SIZE  = $82B3;
4301   GL_CLEAR_BUFFER                   = $82B4;
4302   GL_TEXTURE_VIEW                   = $82B5;
4303   GL_VIEW_COMPATIBILITY_CLASS       = $82B6;
4304   GL_FULL_SUPPORT                   = $82B7;
4305   GL_CAVEAT_SUPPORT                 = $82B8;
4306   GL_IMAGE_CLASS_4_X_32             = $82B9;
4307   GL_IMAGE_CLASS_2_X_32             = $82BA;
4308   GL_IMAGE_CLASS_1_X_32             = $82BB;
4309   GL_IMAGE_CLASS_4_X_16             = $82BC;
4310   GL_IMAGE_CLASS_2_X_16             = $82BD;
4311   GL_IMAGE_CLASS_1_X_16             = $82BE;
4312   GL_IMAGE_CLASS_4_X_8              = $82BF;
4313   GL_IMAGE_CLASS_2_X_8              = $82C0;
4314   GL_IMAGE_CLASS_1_X_8              = $82C1;
4315   GL_IMAGE_CLASS_11_11_10           = $82C2;
4316   GL_IMAGE_CLASS_10_10_10_2         = $82C3;
4317   GL_VIEW_CLASS_128_BITS            = $82C4;
4318   GL_VIEW_CLASS_96_BITS             = $82C5;
4319   GL_VIEW_CLASS_64_BITS             = $82C6;
4320   GL_VIEW_CLASS_48_BITS             = $82C7;
4321   GL_VIEW_CLASS_32_BITS             = $82C8;
4322   GL_VIEW_CLASS_24_BITS             = $82C9;
4323   GL_VIEW_CLASS_16_BITS             = $82CA;
4324   GL_VIEW_CLASS_8_BITS              = $82CB;
4325   GL_VIEW_CLASS_S3TC_DXT1_RGB       = $82CC;
4326   GL_VIEW_CLASS_S3TC_DXT1_RGBA      = $82CD;
4327   GL_VIEW_CLASS_S3TC_DXT3_RGBA      = $82CE;
4328   GL_VIEW_CLASS_S3TC_DXT5_RGBA      = $82CF;
4329   GL_VIEW_CLASS_RGTC1_RED           = $82D0;
4330   GL_VIEW_CLASS_RGTC2_RG            = $82D1;
4331   GL_VIEW_CLASS_BPTC_UNORM          = $82D2;
4332   GL_VIEW_CLASS_BPTC_FLOAT          = $82D3;
4333   GL_UNIFORM                        = $92E1;
4334   GL_UNIFORM_BLOCK                  = $92E2;
4335   GL_PROGRAM_INPUT                  = $92E3;
4336   GL_PROGRAM_OUTPUT                 = $92E4;
4337   GL_BUFFER_VARIABLE                = $92E5;
4338   GL_SHADER_STORAGE_BLOCK           = $92E6;
4339   GL_VERTEX_SUBROUTINE              = $92E8;
4340   GL_TESS_CONTROL_SUBROUTINE        = $92E9;
4341   GL_TESS_EVALUATION_SUBROUTINE     = $92EA;
4342   GL_GEOMETRY_SUBROUTINE            = $92EB;
4343   GL_FRAGMENT_SUBROUTINE            = $92EC;
4344   GL_COMPUTE_SUBROUTINE             = $92ED;
4345   GL_VERTEX_SUBROUTINE_UNIFORM      = $92EE;
4346   GL_TESS_CONTROL_SUBROUTINE_UNIFORM = $92EF;
4347   GL_TESS_EVALUATION_SUBROUTINE_UNIFORM = $92F0;
4348   GL_GEOMETRY_SUBROUTINE_UNIFORM    = $92F1;
4349   GL_FRAGMENT_SUBROUTINE_UNIFORM    = $92F2;
4350   GL_COMPUTE_SUBROUTINE_UNIFORM     = $92F3;
4351   GL_TRANSFORM_FEEDBACK_VARYING     = $92F4;
4352   GL_ACTIVE_RESOURCES               = $92F5;
4353   GL_MAX_NAME_LENGTH                = $92F6;
4354   GL_MAX_NUM_ACTIVE_VARIABLES       = $92F7;
4355   GL_MAX_NUM_COMPATIBLE_SUBROUTINES = $92F8;
4356   GL_NAME_LENGTH                    = $92F9;
4357   GL_TYPE                           = $92FA;
4358   GL_ARRAY_SIZE                     = $92FB;
4359   GL_OFFSET                         = $92FC;
4360   GL_BLOCK_INDEX                    = $92FD;
4361   GL_ARRAY_STRIDE                   = $92FE;
4362   GL_MATRIX_STRIDE                  = $92FF;
4363   GL_IS_ROW_MAJOR                   = $9300;
4364   GL_ATOMIC_COUNTER_BUFFER_INDEX    = $9301;
4365   GL_BUFFER_BINDING                 = $9302;
4366   GL_BUFFER_DATA_SIZE               = $9303;
4367   GL_NUM_ACTIVE_VARIABLES           = $9304;
4368   GL_ACTIVE_VARIABLES               = $9305;
4369   GL_REFERENCED_BY_VERTEX_SHADER    = $9306;
4370   GL_REFERENCED_BY_TESS_CONTROL_SHADER = $9307;
4371   GL_REFERENCED_BY_TESS_EVALUATION_SHADER = $9308;
4372   GL_REFERENCED_BY_GEOMETRY_SHADER  = $9309;
4373   GL_REFERENCED_BY_FRAGMENT_SHADER  = $930A;
4374   GL_REFERENCED_BY_COMPUTE_SHADER   = $930B;
4375   GL_TOP_LEVEL_ARRAY_SIZE           = $930C;
4376   GL_TOP_LEVEL_ARRAY_STRIDE         = $930D;
4377   GL_LOCATION                       = $930E;
4378   GL_LOCATION_INDEX                 = $930F;
4379   GL_IS_PER_PATCH                   = $92E7;
4380   GL_SHADER_STORAGE_BUFFER          = $90D2;
4381   GL_SHADER_STORAGE_BUFFER_BINDING  = $90D3;
4382   GL_SHADER_STORAGE_BUFFER_START    = $90D4;
4383   GL_SHADER_STORAGE_BUFFER_SIZE     = $90D5;
4384   GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS = $90D6;
4385   GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS = $90D7;
4386   GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS = $90D8;
4387   GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS = $90D9;
4388   GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS = $90DA;
4389   GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS = $90DB;
4390   GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS = $90DC;
4391   GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS = $90DD;
4392   GL_MAX_SHADER_STORAGE_BLOCK_SIZE  = $90DE;
4393   GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT = $90DF;
4394   GL_SHADER_STORAGE_BARRIER_BIT     = $2000;
4395   GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES = GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS;
4396   GL_DEPTH_STENCIL_TEXTURE_MODE     = $90EA;
4397
4398   GL_TEXTURE_BUFFER_OFFSET          = $919D;
4399   GL_TEXTURE_BUFFER_SIZE            = $919E;
4400   GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT = $919F;
4401   GL_TEXTURE_VIEW_MIN_LEVEL         = $82DB;
4402   GL_TEXTURE_VIEW_NUM_LEVELS        = $82DC;
4403   GL_TEXTURE_VIEW_MIN_LAYER         = $82DD;
4404   GL_TEXTURE_VIEW_NUM_LAYERS        = $82DE;
4405   GL_TEXTURE_IMMUTABLE_LEVELS       = $82DF;
4406   GL_VERTEX_ATTRIB_BINDING          = $82D4;
4407   GL_VERTEX_ATTRIB_RELATIVE_OFFSET  = $82D5;
4408   GL_VERTEX_BINDING_DIVISOR         = $82D6;
4409   GL_VERTEX_BINDING_OFFSET          = $82D7;
4410   GL_VERTEX_BINDING_STRIDE          = $82D8;
4411   GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET = $82D9;
4412   GL_MAX_VERTEX_ATTRIB_BINDINGS     = $82DA;
4413
4414   // GL 4.4
4415   GL_MAX_VERTEX_ATTRIB_STRIDE         = $82E5;
4416   GL_MAP_PERSISTENT_BIT               = $0040;
4417   GL_MAP_COHERENT_BIT                 = $0080;
4418   GL_DYNAMIC_STORAGE_BIT              = $0100;
4419   GL_CLIENT_STORAGE_BIT               = $0200;
4420   GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT = $00004000;
4421   GL_BUFFER_IMMUTABLE_STORAGE           = $821F;
4422   GL_BUFFER_STORAGE_FLAGS               = $8220;
4423   GL_CLEAR_TEXTURE                      = $9365;
4424   GL_LOCATION_COMPONENT                 = $934A;
4425   GL_TRANSFORM_FEEDBACK_BUFFER_INDEX    = $934B;
4426   GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE = $934C;
4427   GL_QUERY_BUFFER                       = $9192;
4428   GL_QUERY_BUFFER_BARRIER_BIT           = $00008000;
4429   GL_QUERY_BUFFER_BINDING               = $9193;
4430   GL_QUERY_RESULT_NO_WAIT               = $9194;
4431   GL_MIRROR_CLAMP_TO_EDGE               = $8743;
4432
4433   // GL 4.5
4434   GL_CONTEXT_LOST                   = $0507;
4435   GL_NEGATIVE_ONE_TO_ONE            = $935E;
4436   GL_ZERO_TO_ONE                    = $935F;
4437   GL_CLIP_ORIGIN                    = $935C;
4438   GL_CLIP_DEPTH_MODE                = $935D;
4439   GL_QUERY_WAIT_INVERTED            = $8E17;
4440   GL_QUERY_NO_WAIT_INVERTED         = $8E18;
4441   GL_QUERY_BY_REGION_WAIT_INVERTED  = $8E19;
4442   GL_QUERY_BY_REGION_NO_WAIT_INVERTED = $8E1A;
4443   GL_MAX_CULL_DISTANCES             = $82F9;
4444   GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES = $82FA;
4445   GL_TEXTURE_TARGET                 = $1006;
4446   GL_QUERY_TARGET                   = $82EA;
4447   GL_TEXTURE_BINDING                = $82EB;
4448   GL_GUILTY_CONTEXT_RESET           = $8253;
4449   GL_INNOCENT_CONTEXT_RESET         = $8254;
4450   GL_UNKNOWN_CONTEXT_RESET          = $8255;
4451   GL_RESET_NOTIFICATION_STRATEGY    = $8256;
4452   GL_LOSE_CONTEXT_ON_RESET          = $8252;
4453   GL_NO_RESET_NOTIFICATION          = $8261;
4454   GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT = $00000004;
4455   GL_CONTEXT_RELEASE_BEHAVIOR       = $82FB;
4456   GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH = $82FC;
4457
4458   // GL_ATI_draw_buffers
4459   GL_MAX_DRAW_BUFFERS_ATI = $8824;
4460   GL_DRAW_BUFFER0_ATI = $8825;
4461   GL_DRAW_BUFFER1_ATI = $8826;
4462   GL_DRAW_BUFFER2_ATI = $8827;
4463   GL_DRAW_BUFFER3_ATI = $8828;
4464   GL_DRAW_BUFFER4_ATI = $8829;
4465   GL_DRAW_BUFFER5_ATI = $882A;
4466   GL_DRAW_BUFFER6_ATI = $882B;
4467   GL_DRAW_BUFFER7_ATI = $882C;
4468   GL_DRAW_BUFFER8_ATI = $882D;
4469   GL_DRAW_BUFFER9_ATI = $882E;
4470   GL_DRAW_BUFFER10_ATI = $882F;
4471   GL_DRAW_BUFFER11_ATI = $8830;
4472   GL_DRAW_BUFFER12_ATI = $8831;
4473   GL_DRAW_BUFFER13_ATI = $8832;
4474   GL_DRAW_BUFFER14_ATI = $8833;
4475   GL_DRAW_BUFFER15_ATI = $8834;
4476
4477   // GL_ATI_element_array
4478   GL_ELEMENT_ARRAY_ATI = $8768;
4479   GL_ELEMENT_ARRAY_TYPE_ATI = $8769;
4480   GL_ELEMENT_ARRAY_POINTER_ATI = $876A;
4481
4482   // GL_ATI_envmap_bumpmap
4483   GL_BUMP_ROT_MATRIX_ATI = $8775;
4484   GL_BUMP_ROT_MATRIX_SIZE_ATI = $8776;
4485   GL_BUMP_NUM_TEX_UNITS_ATI = $8777;
4486   GL_BUMP_TEX_UNITS_ATI = $8778;
4487   GL_DUDV_ATI = $8779;
4488   GL_DU8DV8_ATI = $877A;
4489   GL_BUMP_ENVMAP_ATI = $877B;
4490   GL_BUMP_TARGET_ATI = $877C;
4491
4492   // GL_ATI_fragment_shader
4493   GL_FRAGMENT_SHADER_ATI = $8920;
4494   GL_REG_0_ATI = $8921;
4495   GL_REG_1_ATI = $8922;
4496   GL_REG_2_ATI = $8923;
4497   GL_REG_3_ATI = $8924;
4498   GL_REG_4_ATI = $8925;
4499   GL_REG_5_ATI = $8926;
4500   GL_REG_6_ATI = $8927;
4501   GL_REG_7_ATI = $8928;
4502   GL_REG_8_ATI = $8929;
4503   GL_REG_9_ATI = $892A;
4504   GL_REG_10_ATI = $892B;
4505   GL_REG_11_ATI = $892C;
4506   GL_REG_12_ATI = $892D;
4507   GL_REG_13_ATI = $892E;
4508   GL_REG_14_ATI = $892F;
4509   GL_REG_15_ATI = $8930;
4510   GL_REG_16_ATI = $8931;
4511   GL_REG_17_ATI = $8932;
4512   GL_REG_18_ATI = $8933;
4513   GL_REG_19_ATI = $8934;
4514   GL_REG_20_ATI = $8935;
4515   GL_REG_21_ATI = $8936;
4516   GL_REG_22_ATI = $8937;
4517   GL_REG_23_ATI = $8938;
4518   GL_REG_24_ATI = $8939;
4519   GL_REG_25_ATI = $893A;
4520   GL_REG_26_ATI = $893B;
4521   GL_REG_27_ATI = $893C;
4522   GL_REG_28_ATI = $893D;
4523   GL_REG_29_ATI = $893E;
4524   GL_REG_30_ATI = $893F;
4525   GL_REG_31_ATI = $8940;
4526   GL_CON_0_ATI = $8941;
4527   GL_CON_1_ATI = $8942;
4528   GL_CON_2_ATI = $8943;
4529   GL_CON_3_ATI = $8944;
4530   GL_CON_4_ATI = $8945;
4531   GL_CON_5_ATI = $8946;
4532   GL_CON_6_ATI = $8947;
4533   GL_CON_7_ATI = $8948;
4534   GL_CON_8_ATI = $8949;
4535   GL_CON_9_ATI = $894A;
4536   GL_CON_10_ATI = $894B;
4537   GL_CON_11_ATI = $894C;
4538   GL_CON_12_ATI = $894D;
4539   GL_CON_13_ATI = $894E;
4540   GL_CON_14_ATI = $894F;
4541   GL_CON_15_ATI = $8950;
4542   GL_CON_16_ATI = $8951;
4543   GL_CON_17_ATI = $8952;
4544   GL_CON_18_ATI = $8953;
4545   GL_CON_19_ATI = $8954;
4546   GL_CON_20_ATI = $8955;
4547   GL_CON_21_ATI = $8956;
4548   GL_CON_22_ATI = $8957;
4549   GL_CON_23_ATI = $8958;
4550   GL_CON_24_ATI = $8959;
4551   GL_CON_25_ATI = $895A;
4552   GL_CON_26_ATI = $895B;
4553   GL_CON_27_ATI = $895C;
4554   GL_CON_28_ATI = $895D;
4555   GL_CON_29_ATI = $895E;
4556   GL_CON_30_ATI = $895F;
4557   GL_CON_31_ATI = $8960;
4558   GL_MOV_ATI = $8961;
4559   GL_ADD_ATI = $8963;
4560   GL_MUL_ATI = $8964;
4561   GL_SUB_ATI = $8965;
4562   GL_DOT3_ATI = $8966;
4563   GL_DOT4_ATI = $8967;
4564   GL_MAD_ATI = $8968;
4565   GL_LERP_ATI = $8969;
4566   GL_CND_ATI = $896A;
4567   GL_CND0_ATI = $896B;
4568   GL_DOT2_ADD_ATI = $896C;
4569   GL_SECONDARY_INTERPOLATOR_ATI = $896D;
4570   GL_NUM_FRAGMENT_REGISTERS_ATI = $896E;
4571   GL_NUM_FRAGMENT_CONSTANTS_ATI = $896F;
4572   GL_NUM_PASSES_ATI = $8970;
4573   GL_NUM_INSTRUCTIONS_PER_PASS_ATI = $8971;
4574   GL_NUM_INSTRUCTIONS_TOTAL_ATI = $8972;
4575   GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI = $8973;
4576   GL_NUM_LOOPBACK_COMPONENTS_ATI = $8974;
4577   GL_COLOR_ALPHA_PAIRING_ATI = $8975;
4578   GL_SWIZZLE_STR_ATI = $8976;
4579   GL_SWIZZLE_STQ_ATI = $8977;
4580   GL_SWIZZLE_STR_DR_ATI = $8978;
4581   GL_SWIZZLE_STQ_DQ_ATI = $8979;
4582   GL_SWIZZLE_STRQ_ATI = $897A;
4583   GL_SWIZZLE_STRQ_DQ_ATI = $897B;
4584   GL_RED_BIT_ATI = $00000001;
4585   GL_GREEN_BIT_ATI = $00000002;
4586   GL_BLUE_BIT_ATI = $00000004;
4587   GL_2X_BIT_ATI = $00000001;
4588   GL_4X_BIT_ATI = $00000002;
4589   GL_8X_BIT_ATI = $00000004;
4590   GL_HALF_BIT_ATI = $00000008;
4591   GL_QUARTER_BIT_ATI = $00000010;
4592   GL_EIGHTH_BIT_ATI = $00000020;
4593   GL_SATURATE_BIT_ATI = $00000040;
4594   GL_COMP_BIT_ATI = $00000002;
4595   GL_NEGATE_BIT_ATI = $00000004;
4596   GL_BIAS_BIT_ATI = $00000008;
4597
4598   // GL_ATI_pn_triangles
4599   GL_PN_TRIANGLES_ATI = $87F0;
4600   GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI = $87F1;
4601   GL_PN_TRIANGLES_POINT_MODE_ATI = $87F2;
4602   GL_PN_TRIANGLES_NORMAL_MODE_ATI = $87F3;
4603   GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI = $87F4;
4604   GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI = $87F5;
4605   GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI = $87F6;
4606   GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI = $87F7;
4607   GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI = $87F8;
4608
4609   // GL_ATI_separate_stencil
4610   GL_STENCIL_BACK_FUNC_ATI = $8800;
4611   GL_STENCIL_BACK_FAIL_ATI = $8801;
4612   GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI = $8802;
4613   GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI = $8803;
4614
4615   // GL_ATI_text_fragment_shader
4616   GL_TEXT_FRAGMENT_SHADER_ATI = $8200;
4617
4618   // GL_ATI_texture_env_combine3
4619   GL_MODULATE_ADD_ATI = $8744;
4620   GL_MODULATE_SIGNED_ADD_ATI = $8745;
4621   GL_MODULATE_SUBTRACT_ATI = $8746;
4622
4623   // GL_ATI_texture_float
4624   GL_RGBA_FLOAT32_ATI = $8814;
4625   GL_RGB_FLOAT32_ATI = $8815;
4626   GL_ALPHA_FLOAT32_ATI = $8816;
4627   GL_INTENSITY_FLOAT32_ATI = $8817;
4628   GL_LUMINANCE_FLOAT32_ATI = $8818;
4629   GL_LUMINANCE_ALPHA_FLOAT32_ATI = $8819;
4630   GL_RGBA_FLOAT16_ATI = $881A;
4631   GL_RGB_FLOAT16_ATI = $881B;
4632   GL_ALPHA_FLOAT16_ATI = $881C;
4633   GL_INTENSITY_FLOAT16_ATI = $881D;
4634   GL_LUMINANCE_FLOAT16_ATI = $881E;
4635   GL_LUMINANCE_ALPHA_FLOAT16_ATI = $881F;
4636
4637   // GL_ATI_texture_mirror_once
4638   GL_MIRROR_CLAMP_ATI = $8742;
4639   GL_MIRROR_CLAMP_TO_EDGE_ATI = $8743;
4640
4641   // GL_ATI_vertex_array_object
4642   GL_STATIC_ATI = $8760;
4643   GL_DYNAMIC_ATI = $8761;
4644   GL_PRESERVE_ATI = $8762;
4645   GL_DISCARD_ATI = $8763;
4646   GL_OBJECT_BUFFER_SIZE_ATI = $8764;
4647   GL_OBJECT_BUFFER_USAGE_ATI = $8765;
4648   GL_ARRAY_OBJECT_BUFFER_ATI = $8766;
4649   GL_ARRAY_OBJECT_OFFSET_ATI = $8767;
4650
4651   // GL_ATI_vertex_streams
4652   GL_MAX_VERTEX_STREAMS_ATI = $876B;
4653   GL_VERTEX_STREAM0_ATI = $876C;
4654   GL_VERTEX_STREAM1_ATI = $876D;
4655   GL_VERTEX_STREAM2_ATI = $876E;
4656   GL_VERTEX_STREAM3_ATI = $876F;
4657   GL_VERTEX_STREAM4_ATI = $8770;
4658   GL_VERTEX_STREAM5_ATI = $8771;
4659   GL_VERTEX_STREAM6_ATI = $8772;
4660   GL_VERTEX_STREAM7_ATI = $8773;
4661   GL_VERTEX_SOURCE_ATI = $8774;
4662
4663   // GL_ATI_meminfo
4664   GL_VBO_FREE_MEMORY_ATI = $87FB;
4665   GL_TEXTURE_FREE_MEMORY_ATI = $87FC;
4666   GL_RENDERBUFFER_FREE_MEMORY_ATI = $87FD;
4667
4668   // GL_AMD_performance_monitor
4669   GL_COUNTER_TYPE_AMD = $8BC0;
4670   GL_COUNTER_RANGE_AMD = $8BC1;
4671   GL_UNSIGNED_INT64_AMD = $8BC2;
4672   GL_PERCENTAGE_AMD = $8BC3;
4673   GL_PERFMON_RESULT_AVAILABLE_AMD = $8BC4;
4674   GL_PERFMON_RESULT_SIZE_AMD = $8BC5;
4675   GL_PERFMON_RESULT_AMD = $8BC6;
4676
4677   // GL_AMD_vertex_shader_tesselator
4678   GL_SAMPLER_BUFFER_AMD = $9001;
4679   GL_INT_SAMPLER_BUFFER_AMD = $9002;
4680   GL_UNSIGNED_INT_SAMPLER_BUFFER_AMD = $9003;
4681   GL_TESSELLATION_MODE_AMD = $9004;
4682   GL_TESSELLATION_FACTOR_AMD = $9005;
4683   GL_DISCRETE_AMD = $9006;
4684   GL_CONTINUOUS_AMD = $9007;
4685
4686   // GL_AMD_seamless_cubemap_per_texture
4687   { reuse GL_TEXTURE_CUBE_MAP_SEAMLESS }
4688
4689   // GL_AMD_name_gen_delete
4690   GL_DATA_BUFFER_AMD = $9151;
4691   GL_PERFORMANCE_MONITOR_AMD = $9152;
4692   GL_QUERY_OBJECT_AMD = $9153;
4693   GL_VERTEX_ARRAY_OBJECT_AMD = $9154;
4694   GL_SAMPLER_OBJECT_AMD = $9155;
4695
4696   // GL_AMD_debug_output
4697   GL_MAX_DEBUG_LOGGED_MESSAGES_AMD = $9144;
4698   GL_DEBUG_LOGGED_MESSAGES_AMD = $9145;
4699   GL_DEBUG_SEVERITY_HIGH_AMD = $9146;
4700   GL_DEBUG_SEVERITY_MEDIUM_AMD = $9147;
4701   GL_DEBUG_SEVERITY_LOW_AMD = $9148;
4702   GL_DEBUG_CATEGORY_API_ERROR_AMD = $9149;
4703   GL_DEBUG_CATEGORY_WINDOW_SYSTEM_AMD = $914A;
4704   GL_DEBUG_CATEGORY_DEPRECATION_AMD = $914B;
4705   GL_DEBUG_CATEGORY_UNDEFINED_BEHAVIOR_AMD = $914C;
4706   GL_DEBUG_CATEGORY_PERFORMANCE_AMD = $914D;
4707   GL_DEBUG_CATEGORY_SHADER_COMPILER_AMD = $914E;
4708   GL_DEBUG_CATEGORY_APPLICATION_AMD = $914F;
4709   GL_DEBUG_CATEGORY_OTHER_AMD = $9150;
4710
4711   // GL_AMD_depth_clamp_separate
4712   GL_DEPTH_CLAMP_NEAR_AMD = $901E;
4713   GL_DEPTH_CLAMP_FAR_AMD = $901F;
4714
4715   // GL_EXT_422_pixels
4716   GL_422_EXT = $80CC;
4717   GL_422_REV_EXT = $80CD;
4718   GL_422_AVERAGE_EXT = $80CE;
4719   GL_422_REV_AVERAGE_EXT = $80CF;
4720
4721   // GL_EXT_abgr
4722   GL_ABGR_EXT = $8000;
4723
4724   // GL_EXT_bgra
4725   GL_BGR_EXT = $80E0;
4726   GL_BGRA_EXT = $80E1;
4727
4728   // GL_EXT_blend_color
4729   GL_CONSTANT_COLOR_EXT = $8001;
4730   GL_ONE_MINUS_CONSTANT_COLOR_EXT = $8002;
4731   GL_CONSTANT_ALPHA_EXT = $8003;
4732   GL_ONE_MINUS_CONSTANT_ALPHA_EXT = $8004;
4733   GL_BLEND_COLOR_EXT = $8005;
4734
4735   // GL_EXT_blend_func_separate
4736   GL_BLEND_DST_RGB_EXT = $80C8;
4737   GL_BLEND_SRC_RGB_EXT = $80C9;
4738   GL_BLEND_DST_ALPHA_EXT = $80CA;
4739   GL_BLEND_SRC_ALPHA_EXT = $80CB;
4740
4741   // GL_EXT_blend_minmax
4742   GL_FUNC_ADD_EXT = $8006;
4743   GL_MIN_EXT = $8007;
4744   GL_MAX_EXT = $8008;
4745   GL_BLEND_EQUATION_EXT = $8009;
4746
4747   // GL_EXT_blend_subtract
4748   GL_FUNC_SUBTRACT_EXT = $800A;
4749   GL_FUNC_REVERSE_SUBTRACT_EXT = $800B;
4750
4751   // GL_EXT_clip_volume_hint
4752   GL_CLIP_VOLUME_CLIPPING_HINT_EXT = $80F0;
4753
4754   // GL_EXT_cmyka
4755   GL_CMYK_EXT = $800C;
4756   GL_CMYKA_EXT = $800D;
4757   GL_PACK_CMYK_HINT_EXT = $800E;
4758   GL_UNPACK_CMYK_HINT_EXT = $800F;
4759
4760   // GL_EXT_compiled_vertex_array
4761   GL_ARRAY_ELEMENT_LOCK_FIRST_EXT = $81A8;
4762   GL_ARRAY_ELEMENT_LOCK_COUNT_EXT = $81A9;
4763
4764   // GL_EXT_convolution
4765   GL_CONVOLUTION_1D_EXT = $8010;
4766   GL_CONVOLUTION_2D_EXT = $8011;
4767   GL_SEPARABLE_2D_EXT = $8012;
4768   GL_CONVOLUTION_BORDER_MODE_EXT = $8013;
4769   GL_CONVOLUTION_FILTER_SCALE_EXT = $8014;
4770   GL_CONVOLUTION_FILTER_BIAS_EXT = $8015;
4771   GL_REDUCE_EXT = $8016;
4772   GL_CONVOLUTION_FORMAT_EXT = $8017;
4773   GL_CONVOLUTION_WIDTH_EXT = $8018;
4774   GL_CONVOLUTION_HEIGHT_EXT = $8019;
4775   GL_MAX_CONVOLUTION_WIDTH_EXT = $801A;
4776   GL_MAX_CONVOLUTION_HEIGHT_EXT = $801B;
4777   GL_POST_CONVOLUTION_RED_SCALE_EXT = $801C;
4778   GL_POST_CONVOLUTION_GREEN_SCALE_EXT = $801D;
4779   GL_POST_CONVOLUTION_BLUE_SCALE_EXT = $801E;
4780   GL_POST_CONVOLUTION_ALPHA_SCALE_EXT = $801F;
4781   GL_POST_CONVOLUTION_RED_BIAS_EXT = $8020;
4782   GL_POST_CONVOLUTION_GREEN_BIAS_EXT = $8021;
4783   GL_POST_CONVOLUTION_BLUE_BIAS_EXT = $8022;
4784   GL_POST_CONVOLUTION_ALPHA_BIAS_EXT = $8023;
4785
4786   // GL_EXT_coordinate_frame
4787   GL_TANGENT_ARRAY_EXT = $8439;
4788   GL_BINORMAL_ARRAY_EXT = $843A;
4789   GL_CURRENT_TANGENT_EXT = $843B;
4790   GL_CURRENT_BINORMAL_EXT = $843C;
4791   GL_TANGENT_ARRAY_TYPE_EXT = $843E;
4792   GL_TANGENT_ARRAY_STRIDE_EXT = $843F;
4793   GL_BINORMAL_ARRAY_TYPE_EXT = $8440;
4794   GL_BINORMAL_ARRAY_STRIDE_EXT = $8441;
4795   GL_TANGENT_ARRAY_POINTER_EXT = $8442;
4796   GL_BINORMAL_ARRAY_POINTER_EXT = $8443;
4797   GL_MAP1_TANGENT_EXT = $8444;
4798   GL_MAP2_TANGENT_EXT = $8445;
4799   GL_MAP1_BINORMAL_EXT = $8446;
4800   GL_MAP2_BINORMAL_EXT = $8447;
4801
4802   // GL_EXT_cull_vertex
4803   GL_CULL_VERTEX_EXT = $81AA;
4804   GL_CULL_VERTEX_EYE_POSITION_EXT = $81AB;
4805   GL_CULL_VERTEX_OBJECT_POSITION_EXT = $81AC;
4806
4807   // GL_EXT_draw_range_elements
4808   GL_MAX_ELEMENTS_VERTICES_EXT = $80E8;
4809   GL_MAX_ELEMENTS_INDICES_EXT = $80E9;
4810
4811   // GL_EXT_fog_coord
4812   GL_FOG_COORDINATE_SOURCE_EXT = $8450;
4813   GL_FOG_COORDINATE_EXT = $8451;
4814   GL_FRAGMENT_DEPTH_EXT = $8452;
4815   GL_CURRENT_FOG_COORDINATE_EXT = $8453;
4816   GL_FOG_COORDINATE_ARRAY_TYPE_EXT = $8454;
4817   GL_FOG_COORDINATE_ARRAY_STRIDE_EXT = $8455;
4818   GL_FOG_COORDINATE_ARRAY_POINTER_EXT = $8456;
4819   GL_FOG_COORDINATE_ARRAY_EXT = $8457;
4820
4821   // GL_EXT_framebuffer_object
4822   GL_FRAMEBUFFER_EXT = $8D40;
4823   GL_RENDERBUFFER_EXT = $8D41;
4824   GL_STENCIL_INDEX_EXT = $8D45;
4825   GL_STENCIL_INDEX1_EXT = $8D46;
4826   GL_STENCIL_INDEX4_EXT = $8D47;
4827   GL_STENCIL_INDEX8_EXT = $8D48;
4828   GL_STENCIL_INDEX16_EXT = $8D49;
4829   GL_RENDERBUFFER_WIDTH_EXT = $8D42;
4830   GL_RENDERBUFFER_HEIGHT_EXT = $8D43;
4831   GL_RENDERBUFFER_INTERNAL_FORMAT_EXT = $8D44;
4832   GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT = $8CD0;
4833   GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT = $8CD1;
4834   GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT = $8CD2;
4835   GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT = $8CD3;
4836   GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT = $8CD4;
4837   GL_COLOR_ATTACHMENT0_EXT = $8CE0;
4838   GL_COLOR_ATTACHMENT1_EXT = $8CE1;
4839   GL_COLOR_ATTACHMENT2_EXT = $8CE2;
4840   GL_COLOR_ATTACHMENT3_EXT = $8CE3;
4841   GL_COLOR_ATTACHMENT4_EXT = $8CE4;
4842   GL_COLOR_ATTACHMENT5_EXT = $8CE5;
4843   GL_COLOR_ATTACHMENT6_EXT = $8CE6;
4844   GL_COLOR_ATTACHMENT7_EXT = $8CE7;
4845   GL_COLOR_ATTACHMENT8_EXT = $8CE8;
4846   GL_COLOR_ATTACHMENT9_EXT = $8CE9;
4847   GL_COLOR_ATTACHMENT10_EXT = $8CEA;
4848   GL_COLOR_ATTACHMENT11_EXT = $8CEB;
4849   GL_COLOR_ATTACHMENT12_EXT = $8CEC;
4850   GL_COLOR_ATTACHMENT13_EXT = $8CED;
4851   GL_COLOR_ATTACHMENT14_EXT = $8CEE;
4852   GL_COLOR_ATTACHMENT15_EXT = $8CEF;
4853   GL_DEPTH_ATTACHMENT_EXT = $8D00;
4854   GL_STENCIL_ATTACHMENT_EXT = $8D20;
4855   GL_FRAMEBUFFER_COMPLETE_EXT = $8CD5;
4856   GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT = $8CD6;
4857   GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT = $8CD7;
4858   GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT = $8CD8;
4859   GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT = $8CD9;
4860   GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT = $8CDA;
4861   GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT = $8CDB;
4862   GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT = $8CDC;
4863   GL_FRAMEBUFFER_UNSUPPORTED_EXT = $8CDD;
4864   GL_FRAMEBUFFER_STATUS_ERROR_EXT = $8CDE;
4865   GL_FRAMEBUFFER_BINDING_EXT = $8CA6;
4866   GL_RENDERBUFFER_BINDING_EXT = $8CA7;
4867   GL_MAX_COLOR_ATTACHMENTS_EXT = $8CDF;
4868   GL_MAX_RENDERBUFFER_SIZE_EXT = $84E8;
4869   GL_INVALID_FRAMEBUFFER_OPERATION_EXT = $0506;
4870
4871   // GL_EXT_histogram
4872   GL_HISTOGRAM_EXT = $8024;
4873   GL_PROXY_HISTOGRAM_EXT = $8025;
4874   GL_HISTOGRAM_WIDTH_EXT = $8026;
4875   GL_HISTOGRAM_FORMAT_EXT = $8027;
4876   GL_HISTOGRAM_RED_SIZE_EXT = $8028;
4877   GL_HISTOGRAM_GREEN_SIZE_EXT = $8029;
4878   GL_HISTOGRAM_BLUE_SIZE_EXT = $802A;
4879   GL_HISTOGRAM_ALPHA_SIZE_EXT = $802B;
4880   GL_HISTOGRAM_LUMINANCE_SIZE_EXT = $802C;
4881   GL_HISTOGRAM_SINK_EXT = $802D;
4882   GL_MINMAX_EXT = $802E;
4883   GL_MINMAX_FORMAT_EXT = $802F;
4884   GL_MINMAX_SINK_EXT = $8030;
4885   GL_TABLE_TOO_LARGE_EXT = $8031;
4886
4887   // GL_EXT_index_array_formats
4888   GL_IUI_V2F_EXT = $81AD;
4889   GL_IUI_V3F_EXT = $81AE;
4890   GL_IUI_N3F_V2F_EXT = $81AF;
4891   GL_IUI_N3F_V3F_EXT = $81B0;
4892   GL_T2F_IUI_V2F_EXT = $81B1;
4893   GL_T2F_IUI_V3F_EXT = $81B2;
4894   GL_T2F_IUI_N3F_V2F_EXT = $81B3;
4895   GL_T2F_IUI_N3F_V3F_EXT = $81B4;
4896
4897   // GL_EXT_index_func
4898   GL_INDEX_TEST_EXT = $81B5;
4899   GL_INDEX_TEST_FUNC_EXT = $81B6;
4900   GL_INDEX_TEST_REF_EXT = $81B7;
4901
4902   // GL_EXT_index_material
4903   GL_INDEX_MATERIAL_EXT = $81B8;
4904   GL_INDEX_MATERIAL_PARAMETER_EXT = $81B9;
4905   GL_INDEX_MATERIAL_FACE_EXT = $81BA;
4906
4907   // GL_EXT_light_texture
4908   GL_FRAGMENT_MATERIAL_EXT = $8349;
4909   GL_FRAGMENT_NORMAL_EXT = $834A;
4910   GL_FRAGMENT_COLOR_EXT = $834C;
4911   GL_ATTENUATION_EXT = $834D;
4912   GL_SHADOW_ATTENUATION_EXT = $834E;
4913   GL_TEXTURE_APPLICATION_MODE_EXT = $834F;
4914   GL_TEXTURE_LIGHT_EXT = $8350;
4915   GL_TEXTURE_MATERIAL_FACE_EXT = $8351;
4916   GL_TEXTURE_MATERIAL_PARAMETER_EXT = $8352;
4917
4918   // GL_EXT_multisample
4919   GL_MULTISAMPLE_EXT = $809D;
4920   GL_SAMPLE_ALPHA_TO_MASK_EXT = $809E;
4921   GL_SAMPLE_ALPHA_TO_ONE_EXT = $809F;
4922   GL_SAMPLE_MASK_EXT = $80A0;
4923   GL_1PASS_EXT = $80A1;
4924   GL_2PASS_0_EXT = $80A2;
4925   GL_2PASS_1_EXT = $80A3;
4926   GL_4PASS_0_EXT = $80A4;
4927   GL_4PASS_1_EXT = $80A5;
4928   GL_4PASS_2_EXT = $80A6;
4929   GL_4PASS_3_EXT = $80A7;
4930   GL_SAMPLE_BUFFERS_EXT = $80A8;
4931   GL_SAMPLES_EXT = $80A9;
4932   GL_SAMPLE_MASK_VALUE_EXT = $80AA;
4933   GL_SAMPLE_MASK_INVERT_EXT = $80AB;
4934   GL_SAMPLE_PATTERN_EXT = $80AC;
4935   GL_MULTISAMPLE_BIT_EXT = $20000000;
4936
4937   // GL_EXT_packed_pixels
4938   GL_UNSIGNED_BYTE_3_3_2_EXT = $8032;
4939   GL_UNSIGNED_SHORT_4_4_4_4_EXT = $8033;
4940   GL_UNSIGNED_SHORT_5_5_5_1_EXT = $8034;
4941   GL_UNSIGNED_INT_8_8_8_8_EXT = $8035;
4942   GL_UNSIGNED_INT_10_10_10_2_EXT = $8036;
4943
4944   // GL_EXT_paletted_texture
4945   GL_COLOR_INDEX1_EXT = $80E2;
4946   GL_COLOR_INDEX2_EXT = $80E3;
4947   GL_COLOR_INDEX4_EXT = $80E4;
4948   GL_COLOR_INDEX8_EXT = $80E5;
4949   GL_COLOR_INDEX12_EXT = $80E6;
4950   GL_COLOR_INDEX16_EXT = $80E7;
4951   GL_TEXTURE_INDEX_SIZE_EXT = $80ED;
4952
4953   // GL_EXT_pixel_transform
4954   GL_PIXEL_TRANSFORM_2D_EXT = $8330;
4955   GL_PIXEL_MAG_FILTER_EXT = $8331;
4956   GL_PIXEL_MIN_FILTER_EXT = $8332;
4957   GL_PIXEL_CUBIC_WEIGHT_EXT = $8333;
4958   GL_CUBIC_EXT = $8334;
4959   GL_AVERAGE_EXT = $8335;
4960   GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT = $8336;
4961   GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT = $8337;
4962   GL_PIXEL_TRANSFORM_2D_MATRIX_EXT = $8338;
4963
4964   // GL_EXT_point_parameters
4965   GL_POINT_SIZE_MIN_EXT = $8126;
4966   GL_POINT_SIZE_MAX_EXT = $8127;
4967   GL_POINT_FADE_THRESHOLD_SIZE_EXT = $8128;
4968   GL_DISTANCE_ATTENUATION_EXT = $8129;
4969
4970   // GL_EXT_polygon_offset
4971   GL_POLYGON_OFFSET_EXT = $8037;
4972   GL_POLYGON_OFFSET_FACTOR_EXT = $8038;
4973   GL_POLYGON_OFFSET_BIAS_EXT = $8039;
4974
4975   // GL_EXT_rescale_normal
4976   GL_RESCALE_NORMAL_EXT = $803A;
4977
4978   // GL_EXT_secondary_color
4979   GL_COLOR_SUM_EXT = $8458;
4980   GL_CURRENT_SECONDARY_COLOR_EXT = $8459;
4981   GL_SECONDARY_COLOR_ARRAY_SIZE_EXT = $845A;
4982   GL_SECONDARY_COLOR_ARRAY_TYPE_EXT = $845B;
4983   GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT = $845C;
4984   GL_SECONDARY_COLOR_ARRAY_POINTER_EXT = $845D;
4985   GL_SECONDARY_COLOR_ARRAY_EXT = $845E;
4986
4987   // GL_EXT_separate_specular_color
4988   GL_LIGHT_MODEL_COLOR_CONTROL_EXT = $81F8;
4989   GL_SINGLE_COLOR_EXT = $81F9;
4990   GL_SEPARATE_SPECULAR_COLOR_EXT = $81FA;
4991
4992   // GL_EXT_shared_texture_palette
4993   GL_SHARED_TEXTURE_PALETTE_EXT = $81FB;
4994
4995   // GL_EXT_stencil_two_side
4996   GL_STENCIL_TEST_TWO_SIDE_EXT = $8910;
4997   GL_ACTIVE_STENCIL_FACE_EXT = $8911;
4998
4999   // GL_EXT_stencil_wrap
5000   GL_INCR_WRAP_EXT = $8507;
5001   GL_DECR_WRAP_EXT = $8508;
5002
5003   // GL_EXT_texture
5004   GL_ALPHA4_EXT = $803B;
5005   GL_ALPHA8_EXT = $803C;
5006   GL_ALPHA12_EXT = $803D;
5007   GL_ALPHA16_EXT = $803E;
5008   GL_LUMINANCE4_EXT = $803F;
5009   GL_LUMINANCE8_EXT = $8040;
5010   GL_LUMINANCE12_EXT = $8041;
5011   GL_LUMINANCE16_EXT = $8042;
5012   GL_LUMINANCE4_ALPHA4_EXT = $8043;
5013   GL_LUMINANCE6_ALPHA2_EXT = $8044;
5014   GL_LUMINANCE8_ALPHA8_EXT = $8045;
5015   GL_LUMINANCE12_ALPHA4_EXT = $8046;
5016   GL_LUMINANCE12_ALPHA12_EXT = $8047;
5017   GL_LUMINANCE16_ALPHA16_EXT = $8048;
5018   GL_INTENSITY_EXT = $8049;
5019   GL_INTENSITY4_EXT = $804A;
5020   GL_INTENSITY8_EXT = $804B;
5021   GL_INTENSITY12_EXT = $804C;
5022   GL_INTENSITY16_EXT = $804D;
5023   GL_RGB2_EXT = $804E;
5024   GL_RGB4_EXT = $804F;
5025   GL_RGB5_EXT = $8050;
5026   GL_RGB8_EXT = $8051;
5027   GL_RGB10_EXT = $8052;
5028   GL_RGB12_EXT = $8053;
5029   GL_RGB16_EXT = $8054;
5030   GL_RGBA2_EXT = $8055;
5031   GL_RGBA4_EXT = $8056;
5032   GL_RGB5_A1_EXT = $8057;
5033   GL_RGBA8_EXT = $8058;
5034   GL_RGB10_A2_EXT = $8059;
5035   GL_RGBA12_EXT = $805A;
5036   GL_RGBA16_EXT = $805B;
5037   GL_TEXTURE_RED_SIZE_EXT = $805C;
5038   GL_TEXTURE_GREEN_SIZE_EXT = $805D;
5039   GL_TEXTURE_BLUE_SIZE_EXT = $805E;
5040   GL_TEXTURE_ALPHA_SIZE_EXT = $805F;
5041   GL_TEXTURE_LUMINANCE_SIZE_EXT = $8060;
5042   GL_TEXTURE_INTENSITY_SIZE_EXT = $8061;
5043   GL_REPLACE_EXT = $8062;
5044   GL_PROXY_TEXTURE_1D_EXT = $8063;
5045   GL_PROXY_TEXTURE_2D_EXT = $8064;
5046   GL_TEXTURE_TOO_LARGE_EXT = $8065;
5047
5048   // GL_EXT_texture3D
5049   GL_PACK_SKIP_IMAGES_EXT = $806B;
5050   GL_PACK_IMAGE_HEIGHT_EXT = $806C;
5051   GL_UNPACK_SKIP_IMAGES_EXT = $806D;
5052   GL_UNPACK_IMAGE_HEIGHT_EXT = $806E;
5053   GL_TEXTURE_3D_EXT = $806F;
5054   GL_PROXY_TEXTURE_3D_EXT = $8070;
5055   GL_TEXTURE_DEPTH_EXT = $8071;
5056   GL_TEXTURE_WRAP_R_EXT = $8072;
5057   GL_MAX_3D_TEXTURE_SIZE_EXT = $8073;
5058
5059   // GL_EXT_texture_compression_s3tc
5060   GL_COMPRESSED_RGB_S3TC_DXT1_EXT = $83F0;
5061   GL_COMPRESSED_RGBA_S3TC_DXT1_EXT = $83F1;
5062   GL_COMPRESSED_RGBA_S3TC_DXT3_EXT = $83F2;
5063   GL_COMPRESSED_RGBA_S3TC_DXT5_EXT = $83F3;
5064
5065   // GL_EXT_texture_cube_map
5066   GL_NORMAL_MAP_EXT = $8511;
5067   GL_REFLECTION_MAP_EXT = $8512;
5068   GL_TEXTURE_CUBE_MAP_EXT = $8513;
5069   GL_TEXTURE_BINDING_CUBE_MAP_EXT = $8514;
5070   GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT = $8515;
5071   GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT = $8516;
5072   GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT = $8517;
5073   GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT = $8518;
5074   GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT = $8519;
5075   GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT = $851A;
5076   GL_PROXY_TEXTURE_CUBE_MAP_EXT = $851B;
5077   GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT = $851C;
5078
5079   // GL_EXT_texture_edge_clamp
5080   GL_CLAMP_TO_EDGE_EXT = $812F;
5081
5082   // GL_EXT_texture_env_combine
5083   GL_COMBINE_EXT = $8570;
5084   GL_COMBINE_RGB_EXT = $8571;
5085   GL_COMBINE_ALPHA_EXT = $8572;
5086   GL_RGB_SCALE_EXT = $8573;
5087   GL_ADD_SIGNED_EXT = $8574;
5088   GL_INTERPOLATE_EXT = $8575;
5089   GL_CONSTANT_EXT = $8576;
5090   GL_PRIMARY_COLOR_EXT = $8577;
5091   GL_PREVIOUS_EXT = $8578;
5092   GL_SOURCE0_RGB_EXT = $8580;
5093   GL_SOURCE1_RGB_EXT = $8581;
5094   GL_SOURCE2_RGB_EXT = $8582;
5095   GL_SOURCE0_ALPHA_EXT = $8588;
5096   GL_SOURCE1_ALPHA_EXT = $8589;
5097   GL_SOURCE2_ALPHA_EXT = $858A;
5098   GL_OPERAND0_RGB_EXT = $8590;
5099   GL_OPERAND1_RGB_EXT = $8591;
5100   GL_OPERAND2_RGB_EXT = $8592;
5101   GL_OPERAND0_ALPHA_EXT = $8598;
5102   GL_OPERAND1_ALPHA_EXT = $8599;
5103   GL_OPERAND2_ALPHA_EXT = $859A;
5104
5105   // GL_EXT_texture_env_dot3
5106   GL_DOT3_RGB_EXT = $8740;
5107   GL_DOT3_RGBA_EXT = $8741;
5108
5109   // GL_EXT_texture_filter_anisotropic
5110   GL_TEXTURE_MAX_ANISOTROPY_EXT = $84FE;
5111   GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT = $84FF;
5112
5113   // GL_EXT_texture_lod_bias
5114   GL_MAX_TEXTURE_LOD_BIAS_EXT = $84FD;
5115   GL_TEXTURE_FILTER_CONTROL_EXT = $8500;
5116   GL_TEXTURE_LOD_BIAS_EXT = $8501;
5117
5118   // GL_EXT_texture_object
5119   GL_TEXTURE_PRIORITY_EXT = $8066;
5120   GL_TEXTURE_RESIDENT_EXT = $8067;
5121   GL_TEXTURE_1D_BINDING_EXT = $8068;
5122   GL_TEXTURE_2D_BINDING_EXT = $8069;
5123   GL_TEXTURE_3D_BINDING_EXT = $806A;
5124
5125   // GL_EXT_texture_perturb_normal
5126   GL_PERTURB_EXT = $85AE;
5127   GL_TEXTURE_NORMAL_EXT = $85AF;
5128
5129   // GL_EXT_texture_rectangle
5130   GL_TEXTURE_RECTANGLE_EXT = $84F5;
5131   GL_TEXTURE_BINDING_RECTANGLE_EXT = $84F6;
5132   GL_PROXY_TEXTURE_RECTANGLE_EXT = $84F7;
5133   GL_MAX_RECTANGLE_TEXTURE_SIZE_EXT = $84F8;
5134
5135   // GL_EXT_vertex_array
5136   GL_VERTEX_ARRAY_EXT = $8074;
5137   GL_NORMAL_ARRAY_EXT = $8075;
5138   GL_COLOR_ARRAY_EXT = $8076;
5139   GL_INDEX_ARRAY_EXT = $8077;
5140   GL_TEXTURE_COORD_ARRAY_EXT = $8078;
5141   GL_EDGE_FLAG_ARRAY_EXT = $8079;
5142   GL_VERTEX_ARRAY_SIZE_EXT = $807A;
5143   GL_VERTEX_ARRAY_TYPE_EXT = $807B;
5144   GL_VERTEX_ARRAY_STRIDE_EXT = $807C;
5145   GL_VERTEX_ARRAY_COUNT_EXT = $807D;
5146   GL_NORMAL_ARRAY_TYPE_EXT = $807E;
5147   GL_NORMAL_ARRAY_STRIDE_EXT = $807F;
5148   GL_NORMAL_ARRAY_COUNT_EXT = $8080;
5149   GL_COLOR_ARRAY_SIZE_EXT = $8081;
5150   GL_COLOR_ARRAY_TYPE_EXT = $8082;
5151   GL_COLOR_ARRAY_STRIDE_EXT = $8083;
5152   GL_COLOR_ARRAY_COUNT_EXT = $8084;
5153   GL_INDEX_ARRAY_TYPE_EXT = $8085;
5154   GL_INDEX_ARRAY_STRIDE_EXT = $8086;
5155   GL_INDEX_ARRAY_COUNT_EXT = $8087;
5156   GL_TEXTURE_COORD_ARRAY_SIZE_EXT = $8088;
5157   GL_TEXTURE_COORD_ARRAY_TYPE_EXT = $8089;
5158   GL_TEXTURE_COORD_ARRAY_STRIDE_EXT = $808A;
5159   GL_TEXTURE_COORD_ARRAY_COUNT_EXT = $808B;
5160   GL_EDGE_FLAG_ARRAY_STRIDE_EXT = $808C;
5161   GL_EDGE_FLAG_ARRAY_COUNT_EXT = $808D;
5162   GL_VERTEX_ARRAY_POINTER_EXT = $808E;
5163   GL_NORMAL_ARRAY_POINTER_EXT = $808F;
5164   GL_COLOR_ARRAY_POINTER_EXT = $8090;
5165   GL_INDEX_ARRAY_POINTER_EXT = $8091;
5166   GL_TEXTURE_COORD_ARRAY_POINTER_EXT = $8092;
5167   GL_EDGE_FLAG_ARRAY_POINTER_EXT = $8093;
5168
5169   // GL_EXT_vertex_shader
5170   GL_VERTEX_SHADER_EXT = $8780;
5171   GL_VERTEX_SHADER_BINDING_EXT = $8781;
5172   GL_OP_INDEX_EXT = $8782;
5173   GL_OP_NEGATE_EXT = $8783;
5174   GL_OP_DOT3_EXT = $8784;
5175   GL_OP_DOT4_EXT = $8785;
5176   GL_OP_MUL_EXT = $8786;
5177   GL_OP_ADD_EXT = $8787;
5178   GL_OP_MADD_EXT = $8788;
5179   GL_OP_FRAC_EXT = $8789;
5180   GL_OP_MAX_EXT = $878A;
5181   GL_OP_MIN_EXT = $878B;
5182   GL_OP_SET_GE_EXT = $878C;
5183   GL_OP_SET_LT_EXT = $878D;
5184   GL_OP_CLAMP_EXT = $878E;
5185   GL_OP_FLOOR_EXT = $878F;
5186   GL_OP_ROUND_EXT = $8790;
5187   GL_OP_EXP_BASE_2_EXT = $8791;
5188   GL_OP_LOG_BASE_2_EXT = $8792;
5189   GL_OP_POWER_EXT = $8793;
5190   GL_OP_RECIP_EXT = $8794;
5191   GL_OP_RECIP_SQRT_EXT = $8795;
5192   GL_OP_SUB_EXT = $8796;
5193   GL_OP_CROSS_PRODUCT_EXT = $8797;
5194   GL_OP_MULTIPLY_MATRIX_EXT = $8798;
5195   GL_OP_MOV_EXT = $8799;
5196   GL_OUTPUT_VERTEX_EXT = $879A;
5197   GL_OUTPUT_COLOR0_EXT = $879B;
5198   GL_OUTPUT_COLOR1_EXT = $879C;
5199   GL_OUTPUT_TEXTURE_COORD0_EXT = $879D;
5200   GL_OUTPUT_TEXTURE_COORD1_EXT = $879E;
5201   GL_OUTPUT_TEXTURE_COORD2_EXT = $879F;
5202   GL_OUTPUT_TEXTURE_COORD3_EXT = $87A0;
5203   GL_OUTPUT_TEXTURE_COORD4_EXT = $87A1;
5204   GL_OUTPUT_TEXTURE_COORD5_EXT = $87A2;
5205   GL_OUTPUT_TEXTURE_COORD6_EXT = $87A3;
5206   GL_OUTPUT_TEXTURE_COORD7_EXT = $87A4;
5207   GL_OUTPUT_TEXTURE_COORD8_EXT = $87A5;
5208   GL_OUTPUT_TEXTURE_COORD9_EXT = $87A6;
5209   GL_OUTPUT_TEXTURE_COORD10_EXT = $87A7;
5210   GL_OUTPUT_TEXTURE_COORD11_EXT = $87A8;
5211   GL_OUTPUT_TEXTURE_COORD12_EXT = $87A9;
5212   GL_OUTPUT_TEXTURE_COORD13_EXT = $87AA;
5213   GL_OUTPUT_TEXTURE_COORD14_EXT = $87AB;
5214   GL_OUTPUT_TEXTURE_COORD15_EXT = $87AC;
5215   GL_OUTPUT_TEXTURE_COORD16_EXT = $87AD;
5216   GL_OUTPUT_TEXTURE_COORD17_EXT = $87AE;
5217   GL_OUTPUT_TEXTURE_COORD18_EXT = $87AF;
5218   GL_OUTPUT_TEXTURE_COORD19_EXT = $87B0;
5219   GL_OUTPUT_TEXTURE_COORD20_EXT = $87B1;
5220   GL_OUTPUT_TEXTURE_COORD21_EXT = $87B2;
5221   GL_OUTPUT_TEXTURE_COORD22_EXT = $87B3;
5222   GL_OUTPUT_TEXTURE_COORD23_EXT = $87B4;
5223   GL_OUTPUT_TEXTURE_COORD24_EXT = $87B5;
5224   GL_OUTPUT_TEXTURE_COORD25_EXT = $87B6;
5225   GL_OUTPUT_TEXTURE_COORD26_EXT = $87B7;
5226   GL_OUTPUT_TEXTURE_COORD27_EXT = $87B8;
5227   GL_OUTPUT_TEXTURE_COORD28_EXT = $87B9;
5228   GL_OUTPUT_TEXTURE_COORD29_EXT = $87BA;
5229   GL_OUTPUT_TEXTURE_COORD30_EXT = $87BB;
5230   GL_OUTPUT_TEXTURE_COORD31_EXT = $87BC;
5231   GL_OUTPUT_FOG_EXT = $87BD;
5232   GL_SCALAR_EXT = $87BE;
5233   GL_VECTOR_EXT = $87BF;
5234   GL_MATRIX_EXT = $87C0;
5235   GL_VARIANT_EXT = $87C1;
5236   GL_INVARIANT_EXT = $87C2;
5237   GL_LOCAL_CONSTANT_EXT = $87C3;
5238   GL_LOCAL_EXT = $87C4;
5239   GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT = $87C5;
5240   GL_MAX_VERTEX_SHADER_VARIANTS_EXT = $87C6;
5241   GL_MAX_VERTEX_SHADER_INVARIANTS_EXT = $87C7;
5242   GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = $87C8;
5243   GL_MAX_VERTEX_SHADER_LOCALS_EXT = $87C9;
5244   GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT = $87CA;
5245   GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT = $87CB;
5246   GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = $87CC;
5247   GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT = $87CD;
5248   GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT = $87CE;
5249   GL_VERTEX_SHADER_INSTRUCTIONS_EXT = $87CF;
5250   GL_VERTEX_SHADER_VARIANTS_EXT = $87D0;
5251   GL_VERTEX_SHADER_INVARIANTS_EXT = $87D1;
5252   GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = $87D2;
5253   GL_VERTEX_SHADER_LOCALS_EXT = $87D3;
5254   GL_VERTEX_SHADER_OPTIMIZED_EXT = $87D4;
5255   GL_X_EXT = $87D5;
5256   GL_Y_EXT = $87D6;
5257   GL_Z_EXT = $87D7;
5258   GL_W_EXT = $87D8;
5259   GL_NEGATIVE_X_EXT = $87D9;
5260   GL_NEGATIVE_Y_EXT = $87DA;
5261   GL_NEGATIVE_Z_EXT = $87DB;
5262   GL_NEGATIVE_W_EXT = $87DC;
5263   GL_ZERO_EXT = $87DD;
5264   GL_ONE_EXT = $87DE;
5265   GL_NEGATIVE_ONE_EXT = $87DF;
5266   GL_NORMALIZED_RANGE_EXT = $87E0;
5267   GL_FULL_RANGE_EXT = $87E1;
5268   GL_CURRENT_VERTEX_EXT = $87E2;
5269   GL_MVP_MATRIX_EXT = $87E3;
5270   GL_VARIANT_VALUE_EXT = $87E4;
5271   GL_VARIANT_DATATYPE_EXT = $87E5;
5272   GL_VARIANT_ARRAY_STRIDE_EXT = $87E6;
5273   GL_VARIANT_ARRAY_TYPE_EXT = $87E7;
5274   GL_VARIANT_ARRAY_EXT = $87E8;
5275   GL_VARIANT_ARRAY_POINTER_EXT = $87E9;
5276   GL_INVARIANT_VALUE_EXT = $87EA;
5277   GL_INVARIANT_DATATYPE_EXT = $87EB;
5278   GL_LOCAL_CONSTANT_VALUE_EXT = $87EC;
5279   GL_LOCAL_CONSTANT_DATATYPE_EXT = $87ED;
5280
5281   // GL_EXT_vertex_weighting
5282   GL_MODELVIEW0_STACK_DEPTH_EXT = $0BA3;
5283   GL_MODELVIEW1_STACK_DEPTH_EXT = $8502;
5284   GL_MODELVIEW0_MATRIX_EXT = $0BA6;
5285   GL_MODELVIEW1_MATRIX_EXT = $8506;
5286   GL_VERTEX_WEIGHTING_EXT = $8509;
5287   GL_MODELVIEW0_EXT = $1700;
5288   GL_MODELVIEW1_EXT = $850A;
5289   GL_CURRENT_VERTEX_WEIGHT_EXT = $850B;
5290   GL_VERTEX_WEIGHT_ARRAY_EXT = $850C;
5291   GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT = $850D;
5292   GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT = $850E;
5293   GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT = $850F;
5294   GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT = $8510;
5295
5296   // GL_EXT_depth_bounds_test
5297   GL_DEPTH_BOUNDS_TEST_EXT = $8890;
5298   GL_DEPTH_BOUNDS_EXT = $8891;
5299
5300   // GL_EXT_texture_mirror_clamp
5301   GL_MIRROR_CLAMP_EXT = $8742;
5302   GL_MIRROR_CLAMP_TO_EDGE_EXT = $8743;
5303   GL_MIRROR_CLAMP_TO_BORDER_EXT = $8912;
5304
5305   // GL_EXT_blend_equation_separate
5306   GL_BLEND_EQUATION_RGB_EXT = $8009;
5307   GL_BLEND_EQUATION_ALPHA_EXT = $883D;
5308
5309   // GL_EXT_pixel_buffer_object
5310   GL_PIXEL_PACK_BUFFER_EXT = $88EB;
5311   GL_PIXEL_UNPACK_BUFFER_EXT = $88EC;
5312   GL_PIXEL_PACK_BUFFER_BINDING_EXT = $88ED;
5313   GL_PIXEL_UNPACK_BUFFER_BINDING_EXT = $88EF;
5314
5315   // GL_EXT_stencil_clear_tag
5316   GL_STENCIL_TAG_BITS_EXT = $88F2;
5317   GL_STENCIL_CLEAR_TAG_VALUE_EXT = $88F3;
5318
5319   // GL_EXT_packed_depth_stencil
5320   GL_DEPTH_STENCIL_EXT = $84F9;
5321   GL_UNSIGNED_INT_24_8_EXT = $84FA;
5322   GL_DEPTH24_STENCIL8_EXT = $88F0;
5323   GL_TEXTURE_STENCIL_SIZE_EXT = $88F1;
5324
5325   // GL_EXT_texture_sRGB
5326   GL_SRGB_EXT = $8C40;
5327   GL_SRGB8_EXT = $8C41;
5328   GL_SRGB_ALPHA_EXT = $8C42;
5329   GL_SRGB8_ALPHA8_EXT = $8C43;
5330   GL_SLUMINANCE_ALPHA_EXT = $8C44;
5331   GL_SLUMINANCE8_ALPHA8_EXT = $8C45;
5332   GL_SLUMINANCE_EXT = $8C46;
5333   GL_SLUMINANCE8_EXT = $8C47;
5334   GL_COMPRESSED_SRGB_EXT = $8C48;
5335   GL_COMPRESSED_SRGB_ALPHA_EXT = $8C49;
5336   GL_COMPRESSED_SLUMINANCE_EXT = $8C4A;
5337   GL_COMPRESSED_SLUMINANCE_ALPHA_EXT = $8C4B;
5338   GL_COMPRESSED_SRGB_S3TC_DXT1_EXT = $8C4C;
5339   GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT = $8C4D;
5340   GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT = $8C4E;
5341   GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT = $8C4F;
5342
5343   // GL_EXT_framebuffer_blit
5344   GL_READ_FRAMEBUFFER_EXT = $8CA8;
5345   GL_DRAW_FRAMEBUFFER_EXT = $8CA9;
5346   GL_READ_FRAMEBUFFER_BINDING_EXT = GL_FRAMEBUFFER_BINDING_EXT;
5347   GL_DRAW_FRAMEBUFFER_BINDING_EXT = $8CAA;
5348
5349   // GL_EXT_framebuffer_multisample
5350   GL_RENDERBUFFER_SAMPLES_EXT = $8CAB;
5351   GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT = $8D56;
5352   GL_MAX_SAMPLES_EXT = $8D57;
5353
5354   // GL_EXT_timer_query
5355   GL_TIME_ELAPSED_EXT = $88BF;
5356
5357   // GL_EXT_bindable_uniform
5358   GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT = $8DE2;
5359   GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT = $8DE3;
5360   GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT = $8DE4;
5361   GL_MAX_BINDABLE_UNIFORM_SIZE_EXT = $8DED;
5362   GL_UNIFORM_BUFFER_EXT = $8DEE;
5363   GL_UNIFORM_BUFFER_BINDING_EXT = $8DEF;
5364
5365   // GL_EXT_framebuffer_sRGB
5366   GLX_FRAMEBUFFER_SRGB_CAPABLE_EXT = $20B2;
5367   WGL_FRAMEBUFFER_SRGB_CAPABLE_EXT = $20A9;
5368   GL_FRAMEBUFFER_SRGB_EXT = $8DB9;
5369   GL_FRAMEBUFFER_SRGB_CAPABLE_EXT = $8DBA;
5370
5371   // GL_EXT_geometry_shader4
5372   GL_GEOMETRY_SHADER_EXT = $8DD9;
5373   GL_GEOMETRY_VERTICES_OUT_EXT = $8DDA;
5374   GL_GEOMETRY_INPUT_TYPE_EXT = $8DDB;
5375   GL_GEOMETRY_OUTPUT_TYPE_EXT = $8DDC;
5376   GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT = $8C29;
5377   GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT = $8DDD;
5378   GL_MAX_VERTEX_VARYING_COMPONENTS_EXT = $8DDE;
5379   GL_MAX_VARYING_COMPONENTS_EXT = $8B4B;
5380   GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT = $8DDF;
5381   GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT = $8DE0;
5382   GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT = $8DE1;
5383   GL_LINES_ADJACENCY_EXT = $A;
5384   GL_LINE_STRIP_ADJACENCY_EXT = $B;
5385   GL_TRIANGLES_ADJACENCY_EXT = $C;
5386   GL_TRIANGLE_STRIP_ADJACENCY_EXT = $D;
5387   GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT = $8DA8;
5388   GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT = $8DA9;
5389   GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT = $8DA7;
5390   GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT = $8CD4;
5391   GL_PROGRAM_POINT_SIZE_EXT = $8642;
5392
5393   // GL_EXT_gpu_shader4
5394   GL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT = $88FD;
5395   GL_SAMPLER_1D_ARRAY_EXT = $8DC0;
5396   GL_SAMPLER_2D_ARRAY_EXT = $8DC1;
5397   GL_SAMPLER_BUFFER_EXT = $8DC2;
5398   GL_SAMPLER_1D_ARRAY_SHADOW_EXT = $8DC3;
5399   GL_SAMPLER_2D_ARRAY_SHADOW_EXT = $8DC4;
5400   GL_SAMPLER_CUBE_SHADOW_EXT = $8DC5;
5401   GL_UNSIGNED_INT_VEC2_EXT = $8DC6;
5402   GL_UNSIGNED_INT_VEC3_EXT = $8DC7;
5403   GL_UNSIGNED_INT_VEC4_EXT = $8DC8;
5404   GL_INT_SAMPLER_1D_EXT = $8DC9;
5405   GL_INT_SAMPLER_2D_EXT = $8DCA;
5406   GL_INT_SAMPLER_3D_EXT = $8DCB;
5407   GL_INT_SAMPLER_CUBE_EXT = $8DCC;
5408   GL_INT_SAMPLER_2D_RECT_EXT = $8DCD;
5409   GL_INT_SAMPLER_1D_ARRAY_EXT = $8DCE;
5410   GL_INT_SAMPLER_2D_ARRAY_EXT = $8DCF;
5411   GL_INT_SAMPLER_BUFFER_EXT = $8DD0;
5412   GL_UNSIGNED_INT_SAMPLER_1D_EXT = $8DD1;
5413   GL_UNSIGNED_INT_SAMPLER_2D_EXT = $8DD2;
5414   GL_UNSIGNED_INT_SAMPLER_3D_EXT = $8DD3;
5415   GL_UNSIGNED_INT_SAMPLER_CUBE_EXT = $8DD4;
5416   GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT = $8DD5;
5417   GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT = $8DD6;
5418   GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT = $8DD7;
5419   GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT = $8DD8;
5420   GL_MIN_PROGRAM_TEXEL_OFFSET_EXT = $8904;
5421   GL_MAX_PROGRAM_TEXEL_OFFSET_EXT = $8905;
5422
5423   // GL_EXT_packed_float
5424   GL_R11F_G11F_B10F_EXT = $8C3A;
5425   GL_UNSIGNED_INT_10F_11F_11F_REV_EXT = $8C3B;
5426   RGBA_SIGNED_COMPONENTS_EXT = $8C3C;
5427   WGL_TYPE_RGBA_UNSIGNED_FLOAT_EXT = $20A8;
5428   GLX_RGBA_UNSIGNED_FLOAT_TYPE_EXT = $20B1;
5429   GLX_RGBA_UNSIGNED_FLOAT_BIT_EXT = $00000008;
5430
5431   // GL_EXT_texture_array
5432   GL_TEXTURE_1D_ARRAY_EXT = $8C18;
5433   GL_TEXTURE_2D_ARRAY_EXT = $8C1A;
5434   GL_PROXY_TEXTURE_2D_ARRAY_EXT = $8C1B;
5435   GL_PROXY_TEXTURE_1D_ARRAY_EXT = $8C19;
5436   GL_TEXTURE_BINDING_1D_ARRAY_EXT = $8C1C;
5437   GL_TEXTURE_BINDING_2D_ARRAY_EXT = $8C1D;
5438   GL_MAX_ARRAY_TEXTURE_LAYERS_EXT = $88FF;
5439   GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT = $884E;
5440
5441   // GL_EXT_texture_buffer_object
5442   GL_TEXTURE_BUFFER_EXT = $8C2A;
5443   GL_MAX_TEXTURE_BUFFER_SIZE_EXT = $8C2B;
5444   GL_TEXTURE_BINDING_BUFFER_EXT = $8C2C;
5445   GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT = $8C2D;
5446   GL_TEXTURE_BUFFER_FORMAT_EXT = $8C2E;
5447
5448   // GL_EXT_texture_compression_latc
5449   GL_COMPRESSED_LUMINANCE_LATC1_EXT = $8C70;
5450   GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT = $8C71;
5451   GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT = $8C72;
5452   GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT = $8C73;
5453
5454   // GL_EXT_texture_compression_rgtc
5455   GL_COMPRESSED_RED_RGTC1_EXT = $8DBB;
5456   GL_COMPRESSED_SIGNED_RED_RGTC1_EXT = $8DBC;
5457   GL_COMPRESSED_RED_GREEN_RGTC2_EXT = $8DBD;
5458   GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT = $8DBE;
5459
5460   // GL_EXT_texture_integer
5461   GL_RGBA_INTEGER_MODE_EXT = $8D9E;
5462   GL_RGBA32UI_EXT = $8D70;
5463   GL_RGB32UI_EXT = $8D71;
5464   GL_ALPHA32UI_EXT = $8D72;
5465   GL_INTENSITY32UI_EXT = $8D73;
5466   GL_LUMINANCE32UI_EXT = $8D74;
5467   GL_LUMINANCE_ALPHA32UI_EXT = $8D75;
5468   GL_RGBA16UI_EXT = $8D76;
5469   GL_RGB16UI_EXT = $8D77;
5470   GL_ALPHA16UI_EXT = $8D78;
5471   GL_INTENSITY16UI_EXT = $8D79;
5472   GL_LUMINANCE16UI_EXT = $8D7A;
5473   GL_LUMINANCE_ALPHA16UI_EXT = $8D7B;
5474   GL_RGBA8UI_EXT = $8D7C;
5475   GL_RGB8UI_EXT = $8D7D;
5476   GL_ALPHA8UI_EXT = $8D7E;
5477   GL_INTENSITY8UI_EXT = $8D7F;
5478   GL_LUMINANCE8UI_EXT = $8D80;
5479   GL_LUMINANCE_ALPHA8UI_EXT = $8D81;
5480   GL_RGBA32I_EXT = $8D82;
5481   GL_RGB32I_EXT = $8D83;
5482   GL_ALPHA32I_EXT = $8D84;
5483   GL_INTENSITY32I_EXT = $8D85;
5484   GL_LUMINANCE32I_EXT = $8D86;
5485   GL_LUMINANCE_ALPHA32I_EXT = $8D87;
5486   GL_RGBA16I_EXT = $8D88;
5487   GL_RGB16I_EXT = $8D89;
5488   GL_ALPHA16I_EXT = $8D8A;
5489   GL_INTENSITY16I_EXT = $8D8B;
5490   GL_LUMINANCE16I_EXT = $8D8C;
5491   GL_LUMINANCE_ALPHA16I_EXT = $8D8D;
5492   GL_RGBA8I_EXT = $8D8E;
5493   GL_RGB8I_EXT = $8D8F;
5494   GL_ALPHA8I_EXT = $8D90;
5495   GL_INTENSITY8I_EXT = $8D91;
5496   GL_LUMINANCE8I_EXT = $8D92;
5497   GL_LUMINANCE_ALPHA8I_EXT = $8D93;
5498   GL_RED_INTEGER_EXT = $8D94;
5499   GL_GREEN_INTEGER_EXT = $8D95;
5500   GL_BLUE_INTEGER_EXT = $8D96;
5501   GL_ALPHA_INTEGER_EXT = $8D97;
5502   GL_RGB_INTEGER_EXT = $8D98;
5503   GL_RGBA_INTEGER_EXT = $8D99;
5504   GL_BGR_INTEGER_EXT = $8D9A;
5505   GL_BGRA_INTEGER_EXT = $8D9B;
5506   GL_LUMINANCE_INTEGER_EXT = $8D9C;
5507   GL_LUMINANCE_ALPHA_INTEGER_EXT = $8D9D;
5508
5509   // GL_EXT_texture_shared_exponent
5510   GL_RGB9_E5_EXT = $8C3D;
5511   GL_UNSIGNED_INT_5_9_9_9_REV_EXT = $8C3E;
5512   GL_TEXTURE_SHARED_SIZE_EXT = $8C3F;
5513
5514   // GL_EXT_transform_feedback
5515   GL_TRANSFORM_FEEDBACK_BUFFER_EXT = $8C8E;
5516   GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT = $8C84;
5517   GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT = $8C85;
5518   GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT = $8C8F;
5519   GL_INTERLEAVED_ATTRIBS_EXT = $8C8C;
5520   GL_SEPARATE_ATTRIBS_EXT = $8C8D;
5521   GL_PRIMITIVES_GENERATED_EXT = $8C87;
5522   GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT = $8C88;
5523   GL_RASTERIZER_DISCARD_EXT = $8C89;
5524   GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT = $8C8A;
5525   GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT = $8C8B;
5526   GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT = $8C80;
5527   GL_TRANSFORM_FEEDBACK_VARYINGS_EXT = $8C83;
5528   GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT = $8C7F;
5529   GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT = $8C76;
5530
5531   // GL_EXT_direct_state_access
5532   GL_PROGRAM_MATRIX_EXT = $8E2D;
5533   GL_TRANSPOSE_PROGRAM_MATRIX_EXT = $8E2E;
5534   GL_PROGRAM_MATRIX_STACK_DEPTH_EXT = $8E2F;
5535
5536   // GL_EXT_texture_swizzle
5537   GL_TEXTURE_SWIZZLE_R_EXT = $8E42;
5538   GL_TEXTURE_SWIZZLE_G_EXT = $8E43;
5539   GL_TEXTURE_SWIZZLE_B_EXT = $8E44;
5540   GL_TEXTURE_SWIZZLE_A_EXT = $8E45;
5541   GL_TEXTURE_SWIZZLE_RGBA_EXT = $8E46;
5542
5543   // GL_EXT_provoking_vertex
5544   GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT = $8E4C;
5545   GL_FIRST_VERTEX_CONVENTION_EXT = $8E4D;
5546   GL_LAST_VERTEX_CONVENTION_EXT = $8E4E;
5547   GL_PROVOKING_VERTEX_EXT = $8E4F;
5548
5549   // GL_EXT_texture_snorm
5550   GL_ALPHA_SNORM = $9010;
5551   GL_LUMINANCE_SNORM = $9011;
5552   GL_LUMINANCE_ALPHA_SNORM = $9012;
5553   GL_INTENSITY_SNORM = $9013;
5554   GL_ALPHA8_SNORM = $9014;
5555   GL_LUMINANCE8_SNORM = $9015;
5556   GL_LUMINANCE8_ALPHA8_SNORM = $9016;
5557   GL_INTENSITY8_SNORM = $9017;
5558   GL_ALPHA16_SNORM = $9018;
5559   GL_LUMINANCE16_SNORM = $9019;
5560   GL_LUMINANCE16_ALPHA16_SNORM = $901A;
5561   GL_INTENSITY16_SNORM = $901B;
5562   { reuse GL_RED_SNORM }
5563   { reuse GL_RG_SNORM }
5564   { reuse GL_RGB_SNORM }
5565   { reuse GL_RGBA_SNORM }
5566   { reuse GL_R8_SNORM }
5567   { reuse GL_RG8_SNORM }
5568   { reuse GL_RGB8_SNORM }
5569   { reuse GL_RGBA8_SNORM }
5570   { reuse GL_R16_SNORM }
5571   { reuse GL_RG16_SNORM }
5572   { reuse GL_RGB16_SNORM }
5573   { reuse GL_RGBA16_SNORM }
5574   { reuse GL_SIGNED_NORMALIZED }
5575
5576   // GL_EXT_separate_shader_objects
5577   GL_ACTIVE_PROGRAM_EXT = $8B8D;
5578
5579   // GL_EXT_shader_image_load_store
5580   GL_MAX_IMAGE_UNITS_EXT = $8F38;
5581   GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS_EXT = $8F39;
5582   GL_IMAGE_BINDING_NAME_EXT = $8F3A;
5583   GL_IMAGE_BINDING_LEVEL_EXT = $8F3B;
5584   GL_IMAGE_BINDING_LAYERED_EXT = $8F3C;
5585   GL_IMAGE_BINDING_LAYER_EXT = $8F3D;
5586   GL_IMAGE_BINDING_ACCESS_EXT = $8F3E;
5587   GL_IMAGE_1D_EXT = $904C;
5588   GL_IMAGE_2D_EXT = $904D;
5589   GL_IMAGE_3D_EXT = $904E;
5590   GL_IMAGE_2D_RECT_EXT = $904F;
5591   GL_IMAGE_CUBE_EXT = $9050;
5592   GL_IMAGE_BUFFER_EXT = $9051;
5593   GL_IMAGE_1D_ARRAY_EXT = $9052;
5594   GL_IMAGE_2D_ARRAY_EXT = $9053;
5595   GL_IMAGE_CUBE_MAP_ARRAY_EXT = $9054;
5596   GL_IMAGE_2D_MULTISAMPLE_EXT = $9055;
5597   GL_IMAGE_2D_MULTISAMPLE_ARRAY_EXT = $9056;
5598   GL_INT_IMAGE_1D_EXT = $9057;
5599   GL_INT_IMAGE_2D_EXT = $9058;
5600   GL_INT_IMAGE_3D_EXT = $9059;
5601   GL_INT_IMAGE_2D_RECT_EXT = $905A;
5602   GL_INT_IMAGE_CUBE_EXT = $905B;
5603   GL_INT_IMAGE_BUFFER_EXT = $905C;
5604   GL_INT_IMAGE_1D_ARRAY_EXT = $905D;
5605   GL_INT_IMAGE_2D_ARRAY_EXT = $905E;
5606   GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT = $905F;
5607   GL_INT_IMAGE_2D_MULTISAMPLE_EXT = $9060;
5608   GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT = $9061;
5609   GL_UNSIGNED_INT_IMAGE_1D_EXT = $9062;
5610   GL_UNSIGNED_INT_IMAGE_2D_EXT = $9063;
5611   GL_UNSIGNED_INT_IMAGE_3D_EXT = $9064;
5612   GL_UNSIGNED_INT_IMAGE_2D_RECT_EXT = $9065;
5613   GL_UNSIGNED_INT_IMAGE_CUBE_EXT = $9066;
5614   GL_UNSIGNED_INT_IMAGE_BUFFER_EXT = $9067;
5615   GL_UNSIGNED_INT_IMAGE_1D_ARRAY_EXT = $9068;
5616   GL_UNSIGNED_INT_IMAGE_2D_ARRAY_EXT = $9069;
5617   GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT = $906A;
5618   GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_EXT = $906B;
5619   GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT = $906C;
5620   GL_MAX_IMAGE_SAMPLES_EXT = $906D;
5621   GL_IMAGE_BINDING_FORMAT_EXT = $906E;
5622   GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_EXT = $00000001;
5623   GL_ELEMENT_ARRAY_BARRIER_BIT_EXT = $00000002;
5624   GL_UNIFORM_BARRIER_BIT_EXT = $00000004;
5625   GL_TEXTURE_FETCH_BARRIER_BIT_EXT = $00000008;
5626   GL_SHADER_IMAGE_ACCESS_BARRIER_BIT_EXT = $00000020;
5627   GL_COMMAND_BARRIER_BIT_EXT = $00000040;
5628   GL_PIXEL_BUFFER_BARRIER_BIT_EXT = $00000080;
5629   GL_TEXTURE_UPDATE_BARRIER_BIT_EXT = $00000100;
5630   GL_BUFFER_UPDATE_BARRIER_BIT_EXT = $00000200;
5631   GL_FRAMEBUFFER_BARRIER_BIT_EXT = $00000400;
5632   GL_TRANSFORM_FEEDBACK_BARRIER_BIT_EXT = $00000800;
5633   GL_ATOMIC_COUNTER_BARRIER_BIT_EXT = $00001000;
5634   GL_ALL_BARRIER_BITS_EXT = $FFFFFFFF;
5635
5636   // GL_EXT_vertex_attrib_64bit
5637   { reuse GL_DOUBLE }
5638   GL_DOUBLE_VEC2_EXT = $8FFC;
5639   GL_DOUBLE_VEC3_EXT = $8FFD;
5640   GL_DOUBLE_VEC4_EXT = $8FFE;
5641   GL_DOUBLE_MAT2_EXT = $8F46;
5642   GL_DOUBLE_MAT3_EXT = $8F47;
5643   GL_DOUBLE_MAT4_EXT = $8F48;
5644   GL_DOUBLE_MAT2x3_EXT = $8F49;
5645   GL_DOUBLE_MAT2x4_EXT = $8F4A;
5646   GL_DOUBLE_MAT3x2_EXT = $8F4B;
5647   GL_DOUBLE_MAT3x4_EXT = $8F4C;
5648   GL_DOUBLE_MAT4x2_EXT = $8F4D;
5649   GL_DOUBLE_MAT4x3_EXT = $8F4E;
5650
5651   // GL_EXT_texture_sRGB_decode
5652   GL_TEXTURE_SRGB_DECODE_EXT = $8A48;
5653   GL_DECODE_EXT = $8A49;
5654   GL_SKIP_DECODE_EXT = $8A4A;
5655
5656   // GL_NV_texture_multisample
5657   GL_TEXTURE_COVERAGE_SAMPLES_NV    = $9045;
5658   GL_TEXTURE_COLOR_SAMPLES_NV       = $9046;
5659
5660   // GL_AMD_blend_minmax_factor
5661   GL_FACTOR_MIN_AMD                 = $901C;
5662   GL_FACTOR_MAX_AMD                 = $901D;
5663
5664   // GL_AMD_sample_positions
5665   GL_SUBSAMPLE_DISTANCE_AMD         = $883F;
5666
5667   // GL_EXT_x11_sync_object
5668   GL_SYNC_X11_FENCE_EXT             = $90E1;
5669
5670   // GL_EXT_framebuffer_multisample_blit_scaled
5671   GL_SCALED_RESOLVE_FASTEST_EXT     = $90BA;
5672   GL_SCALED_RESOLVE_NICEST_EXT      = $90BB;
5673
5674   // (4.3) GL_NV_path_rendering
5675         GL_PATH_FORMAT_SVG_NV            = $9070;
5676         GL_PATH_FORMAT_PS_NV             = $9071;
5677         GL_STANDARD_FONT_NAME_NV         = $9072;
5678         GL_SYSTEM_FONT_NAME_NV           = $9073;
5679         GL_FILE_NAME_NV                  = $9074;
5680         GL_PATH_STROKE_WIDTH_NV          = $9075;
5681         GL_PATH_END_CAPS_NV              = $9076;
5682         GL_PATH_INITIAL_END_CAP_NV       = $9077;
5683         GL_PATH_TERMINAL_END_CAP_NV      = $9078;
5684         GL_PATH_JOIN_STYLE_NV            = $9079;
5685         GL_PATH_MITER_LIMIT_NV           = $907A;
5686         GL_PATH_DASH_CAPS_NV             = $907B;
5687         GL_PATH_INITIAL_DASH_CAP_NV      = $907C;
5688         GL_PATH_TERMINAL_DASH_CAP_NV     = $907D;
5689         GL_PATH_DASH_OFFSET_NV           = $907E;
5690         GL_PATH_CLIENT_LENGTH_NV         = $907F;
5691         GL_PATH_FILL_MODE_NV             = $9080;
5692         GL_PATH_FILL_MASK_NV             = $9081;
5693         GL_PATH_FILL_COVER_MODE_NV       = $9082;
5694         GL_PATH_STROKE_COVER_MODE_NV     = $9083;
5695         GL_PATH_STROKE_MASK_NV           = $9084;
5696         GL_PATH_SAMPLE_QUALITY_NV        = $9085;
5697         GL_PATH_STROKE_BOUND_NV          = $9086;
5698         GL_PATH_STROKE_OVERSAMPLE_COUNT_NV= $9087;
5699         GL_COUNT_UP_NV                   = $9088;
5700         GL_COUNT_DOWN_NV                 = $9089;
5701         GL_PATH_OBJECT_BOUNDING_BOX_NV   = $908A;
5702         GL_CONVEX_HULL_NV                = $908B;
5703         GL_MULTI_HULLS_NV                = $908C;
5704         GL_BOUNDING_BOX_NV               = $908D;
5705         GL_TRANSLATE_X_NV                = $908E;
5706         GL_TRANSLATE_Y_NV                = $908F;
5707         GL_TRANSLATE_2D_NV               = $9090;
5708         GL_TRANSLATE_3D_NV               = $9091;
5709         GL_AFFINE_2D_NV                  = $9092;
5710         GL_PROJECTIVE_2D_NV              = $9093;
5711         GL_AFFINE_3D_NV                  = $9094;
5712         GL_PROJECTIVE_3D_NV              = $9095;
5713         GL_TRANSPOSE_AFFINE_2D_NV        = $9096;
5714         GL_TRANSPOSE_PROJECTIVE_2D_NV    = $9097;
5715         GL_TRANSPOSE_AFFINE_3D_NV        = $9098;
5716         GL_TRANSPOSE_PROJECTIVE_3D_NV    = $9099;
5717         GL_UTF8_NV                       = $909A;
5718         GL_UTF16_NV                      = $909B;
5719         GL_BOUNDING_BOX_OF_BOUNDING_BOXES_NV= $909C;
5720         GL_PATH_COMMAND_COUNT_NV         = $909D;
5721         GL_PATH_COORD_COUNT_NV           = $909E;
5722   GL_PATH_DASH_ARRAY_COUNT_NV      = $909F;
5723   GL_PATH_COMPUTED_LENGTH_NV       = $90A0;
5724   GL_PATH_FILL_BOUNDING_BOX_NV     = $90A1;
5725   GL_PATH_STROKE_BOUNDING_BOX_NV   = $90A2;
5726   GL_SQUARE_NV                     = $90A3;
5727   GL_ROUND_NV                      = $90A4;
5728   GL_TRIANGULAR_NV                 = $90A5;
5729   GL_BEVEL_NV                      = $90A6;
5730   GL_MITER_REVERT_NV               = $90A7;
5731   GL_MITER_TRUNCATE_NV             = $90A8;
5732   GL_SKIP_MISSING_GLYPH_NV         = $90A9;
5733   GL_USE_MISSING_GLYPH_NV          = $90AA;
5734   GL_PATH_ERROR_POSITION_NV        = $90AB;
5735   GL_PATH_FOG_GEN_MODE_NV          = $90AC;
5736   GL_ACCUM_ADJACENT_PAIRS_NV       = $90AD;
5737   GL_ADJACENT_PAIRS_NV             = $90AE;
5738   GL_FIRST_TO_REST_NV              = $90AF;
5739   GL_PATH_GEN_MODE_NV              = $90B0;
5740   GL_PATH_GEN_COEFF_NV             = $90B1;
5741   GL_PATH_GEN_COLOR_FORMAT_NV      = $90B2;
5742   GL_PATH_GEN_COMPONENTS_NV        = $90B3;
5743   GL_PATH_STENCIL_FUNC_NV          = $90B7;
5744   GL_PATH_STENCIL_REF_NV           = $90B8;
5745   GL_PATH_STENCIL_VALUE_MASK_NV    = $90B9;
5746   GL_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV= $90BD;
5747   GL_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV= $90BE;
5748   GL_PATH_COVER_DEPTH_FUNC_NV      = $90BF;
5749   GL_PATH_DASH_OFFSET_RESET_NV     = $90B4;
5750   GL_MOVE_TO_RESETS_NV             = $90B5;
5751   GL_MOVE_TO_CONTINUES_NV          = $90B6;
5752   GL_CLOSE_PATH_NV                 = $00;
5753   GL_MOVE_TO_NV                    = $02;
5754   GL_RELATIVE_MOVE_TO_NV           = $03;
5755   GL_LINE_TO_NV                    = $04;
5756   GL_RELATIVE_LINE_TO_NV           = $05;
5757   GL_HORIZONTAL_LINE_TO_NV         = $06;
5758   GL_RELATIVE_HORIZONTAL_LINE_TO_NV= $07;
5759   GL_VERTICAL_LINE_TO_NV           = $08;
5760   GL_RELATIVE_VERTICAL_LINE_TO_NV  = $09;
5761   GL_QUADRATIC_CURVE_TO_NV         = $0A;
5762   GL_RELATIVE_QUADRATIC_CURVE_TO_NV= $0B;
5763   GL_CUBIC_CURVE_TO_NV             = $0C;
5764   GL_RELATIVE_CUBIC_CURVE_TO_NV    = $0D;
5765   GL_SMOOTH_QUADRATIC_CURVE_TO_NV  = $0E;
5766   GL_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV= $0F;
5767   GL_SMOOTH_CUBIC_CURVE_TO_NV      = $10;
5768   GL_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV= $11;
5769   GL_SMALL_CCW_ARC_TO_NV           = $12;
5770   GL_RELATIVE_SMALL_CCW_ARC_TO_NV  = $13;
5771   GL_SMALL_CW_ARC_TO_NV            = $14;
5772   GL_RELATIVE_SMALL_CW_ARC_TO_NV   = $15;
5773   GL_LARGE_CCW_ARC_TO_NV           = $16;
5774   GL_RELATIVE_LARGE_CCW_ARC_TO_NV  = $17;
5775   GL_LARGE_CW_ARC_TO_NV            = $18;
5776   GL_RELATIVE_LARGE_CW_ARC_TO_NV   = $19;
5777   GL_RESTART_PATH_NV               = $F0;
5778   GL_DUP_FIRST_CUBIC_CURVE_TO_NV   = $F2;
5779   GL_DUP_LAST_CUBIC_CURVE_TO_NV    = $F4;
5780   GL_RECT_NV                       = $F6;
5781   GL_CIRCULAR_CCW_ARC_TO_NV        = $F8;
5782   GL_CIRCULAR_CW_ARC_TO_NV         = $FA;
5783   GL_CIRCULAR_TANGENT_ARC_TO_NV    = $FC;
5784   GL_ARC_TO_NV                     = $FE;
5785   GL_RELATIVE_ARC_TO_NV            = $FF;
5786   GL_BOLD_BIT_NV                   = $01;
5787   GL_ITALIC_BIT_NV                 = $02;
5788   GL_GLYPH_WIDTH_BIT_NV            = $01;
5789   GL_GLYPH_HEIGHT_BIT_NV           = $02;
5790   GL_GLYPH_HORIZONTAL_BEARING_X_BIT_NV= $04;
5791   GL_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV= $08;
5792   GL_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV= $10;
5793   GL_GLYPH_VERTICAL_BEARING_X_BIT_NV= $20;
5794   GL_GLYPH_VERTICAL_BEARING_Y_BIT_NV= $40;
5795   GL_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV= $80;
5796   GL_GLYPH_HAS_KERNING_NV          = $100;
5797   GL_FONT_X_MIN_BOUNDS_NV          = $00010000;
5798   GL_FONT_Y_MIN_BOUNDS_NV          = $00020000;
5799   GL_FONT_X_MAX_BOUNDS_NV          = $00040000;
5800   GL_FONT_Y_MAX_BOUNDS_NV          = $00080000;
5801   GL_FONT_UNITS_PER_EM_NV          = $00100000;
5802   GL_FONT_ASCENDER_NV              = $00200000;
5803   GL_FONT_DESCENDER_NV             = $00400000;
5804   GL_FONT_HEIGHT_NV                = $00800000;
5805   GL_FONT_MAX_ADVANCE_WIDTH_NV     = $01000000;
5806   GL_FONT_MAX_ADVANCE_HEIGHT_NV    = $02000000;
5807   GL_FONT_UNDERLINE_POSITION_NV    = $04000000;
5808   GL_FONT_UNDERLINE_THICKNESS_NV   = $08000000;
5809   GL_FONT_HAS_KERNING_NV           = $10000000;
5810
5811   // (4.3) GL_AMD_pinned_memory
5812   GL_EXTERNAL_VIRTUAL_MEMORY_BUFFER_AMD= $9160;
5813
5814   // (4.3) GL_AMD_stencil_operation_extended
5815   GL_SET_AMD                       = $874A;
5816   GL_REPLACE_VALUE_AMD             = $874B;
5817   GL_STENCIL_OP_VALUE_AMD          = $874C;
5818   GL_STENCIL_BACK_OP_VALUE_AMD     = $874D;
5819
5820   // (4.3) GL_AMD_vertex_shader_viewport_index
5821
5822   // (4.3) GL_AMD_vertex_shader_layer
5823
5824   // (4.3) GL_NV_bindless_texture
5825
5826   // (4.3) GL_NV_shader_atomic_float
5827
5828   // (4.3) GL_AMD_query_buffer_object
5829   GL_QUERY_BUFFER_AMD              = $9192;
5830   GL_QUERY_BUFFER_BINDING_AMD      = $9193;
5831   GL_QUERY_RESULT_NO_WAIT_AMD      = $9194;
5832
5833   // GL_FfdMaskSGIX
5834   GL_TEXTURE_DEFORMATION_BIT_SGIX = $00000001;
5835   GL_GEOMETRY_DEFORMATION_BIT_SGIX = $00000002;
5836
5837   // GL_HP_convolution_border_modes
5838   GL_IGNORE_BORDER_HP = $8150;
5839   GL_CONSTANT_BORDER_HP = $8151;
5840   GL_REPLICATE_BORDER_HP = $8153;
5841   GL_CONVOLUTION_BORDER_COLOR_HP = $8154;
5842
5843   // GL_HP_image_transform
5844   GL_IMAGE_SCALE_X_HP = $8155;
5845   GL_IMAGE_SCALE_Y_HP = $8156;
5846   GL_IMAGE_TRANSLATE_X_HP = $8157;
5847   GL_IMAGE_TRANSLATE_Y_HP = $8158;
5848   GL_IMAGE_ROTATE_ANGLE_HP = $8159;
5849   GL_IMAGE_ROTATE_ORIGIN_X_HP = $815A;
5850   GL_IMAGE_ROTATE_ORIGIN_Y_HP = $815B;
5851   GL_IMAGE_MAG_FILTER_HP = $815C;
5852   GL_IMAGE_MIN_FILTER_HP = $815D;
5853   GL_IMAGE_CUBIC_WEIGHT_HP = $815E;
5854   GL_CUBIC_HP = $815F;
5855   GL_AVERAGE_HP = $8160;
5856   GL_IMAGE_TRANSFORM_2D_HP = $8161;
5857   GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP = $8162;
5858   GL_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP = $8163;
5859
5860   // GL_HP_occlusion_test
5861   GL_OCCLUSION_TEST_HP = $8165;
5862   GL_OCCLUSION_TEST_RESULT_HP = $8166;
5863
5864   // GL_HP_texture_lighting
5865   GL_TEXTURE_LIGHTING_MODE_HP = $8167;
5866   GL_TEXTURE_POST_SPECULAR_HP = $8168;
5867   GL_TEXTURE_PRE_SPECULAR_HP = $8169;
5868
5869   // GL_IBM_cull_vertex
5870   GL_CULL_VERTEX_IBM = 103050;
5871
5872   // GL_IBM_rasterpos_clip
5873   GL_RASTER_POSITION_UNCLIPPED_IBM = $19262;
5874
5875   // GL_IBM_texture_mirrored_repeat
5876   GL_MIRRORED_REPEAT_IBM = $8370;
5877
5878   // GL_IBM_vertex_array_lists
5879   GL_VERTEX_ARRAY_LIST_IBM = 103070;
5880   GL_NORMAL_ARRAY_LIST_IBM = 103071;
5881   GL_COLOR_ARRAY_LIST_IBM = 103072;
5882   GL_INDEX_ARRAY_LIST_IBM = 103073;
5883   GL_TEXTURE_COORD_ARRAY_LIST_IBM = 103074;
5884   GL_EDGE_FLAG_ARRAY_LIST_IBM = 103075;
5885   GL_FOG_COORDINATE_ARRAY_LIST_IBM = 103076;
5886   GL_SECONDARY_COLOR_ARRAY_LIST_IBM = 103077;
5887   GL_VERTEX_ARRAY_LIST_STRIDE_IBM = 103080;
5888   GL_NORMAL_ARRAY_LIST_STRIDE_IBM = 103081;
5889   GL_COLOR_ARRAY_LIST_STRIDE_IBM = 103082;
5890   GL_INDEX_ARRAY_LIST_STRIDE_IBM = 103083;
5891   GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM = 103084;
5892   GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM = 103085;
5893   GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM = 103086;
5894   GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM = 103087;
5895
5896   // GL_INGR_color_clamp
5897   GL_RED_MIN_CLAMP_INGR = $8560;
5898   GL_GREEN_MIN_CLAMP_INGR = $8561;
5899   GL_BLUE_MIN_CLAMP_INGR = $8562;
5900   GL_ALPHA_MIN_CLAMP_INGR = $8563;
5901   GL_RED_MAX_CLAMP_INGR = $8564;
5902   GL_GREEN_MAX_CLAMP_INGR = $8565;
5903   GL_BLUE_MAX_CLAMP_INGR = $8566;
5904   GL_ALPHA_MAX_CLAMP_INGR = $8567;
5905
5906   // GL_INGR_interlace_read
5907   GL_INTERLACE_READ_INGR = $8568;
5908
5909   // GL_INTEL_parallel_arrays
5910   GL_PARALLEL_ARRAYS_INTEL = $83F4;
5911   GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL = $83F5;
5912   GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL = $83F6;
5913   GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL = $83F7;
5914   GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL = $83F8;
5915
5916   // GL_NV_copy_depth_to_color
5917   GL_DEPTH_STENCIL_TO_RGBA_NV = $886E;
5918   GL_DEPTH_STENCIL_TO_BGRA_NV = $886F;
5919
5920   // GL_NV_depth_clamp
5921   GL_DEPTH_CLAMP_NV = $864F;
5922
5923   // GL_NV_evaluators
5924   GL_EVAL_2D_NV = $86C0;
5925   GL_EVAL_TRIANGULAR_2D_NV = $86C1;
5926   GL_MAP_TESSELLATION_NV = $86C2;
5927   GL_MAP_ATTRIB_U_ORDER_NV = $86C3;
5928   GL_MAP_ATTRIB_V_ORDER_NV = $86C4;
5929   GL_EVAL_FRACTIONAL_TESSELLATION_NV = $86C5;
5930   GL_EVAL_VERTEX_ATTRIB0_NV = $86C6;
5931   GL_EVAL_VERTEX_ATTRIB1_NV = $86C7;
5932   GL_EVAL_VERTEX_ATTRIB2_NV = $86C8;
5933   GL_EVAL_VERTEX_ATTRIB3_NV = $86C9;
5934   GL_EVAL_VERTEX_ATTRIB4_NV = $86CA;
5935   GL_EVAL_VERTEX_ATTRIB5_NV = $86CB;
5936   GL_EVAL_VERTEX_ATTRIB6_NV = $86CC;
5937   GL_EVAL_VERTEX_ATTRIB7_NV = $86CD;
5938   GL_EVAL_VERTEX_ATTRIB8_NV = $86CE;
5939   GL_EVAL_VERTEX_ATTRIB9_NV = $86CF;
5940   GL_EVAL_VERTEX_ATTRIB10_NV = $86D0;
5941   GL_EVAL_VERTEX_ATTRIB11_NV = $86D1;
5942   GL_EVAL_VERTEX_ATTRIB12_NV = $86D2;
5943   GL_EVAL_VERTEX_ATTRIB13_NV = $86D3;
5944   GL_EVAL_VERTEX_ATTRIB14_NV = $86D4;
5945   GL_EVAL_VERTEX_ATTRIB15_NV = $86D5;
5946   GL_MAX_MAP_TESSELLATION_NV = $86D6;
5947   GL_MAX_RATIONAL_EVAL_ORDER_NV = $86D7;
5948
5949   // GL_NV_fence
5950   GL_ALL_COMPLETED_NV = $84F2;
5951   GL_FENCE_STATUS_NV = $84F3;
5952   GL_FENCE_CONDITION_NV = $84F4;
5953
5954   // GL_NV_float_buffer
5955   GL_FLOAT_R_NV = $8880;
5956   GL_FLOAT_RG_NV = $8881;
5957   GL_FLOAT_RGB_NV = $8882;
5958   GL_FLOAT_RGBA_NV = $8883;
5959   GL_FLOAT_R16_NV = $8884;
5960   GL_FLOAT_R32_NV = $8885;
5961   GL_FLOAT_RG16_NV = $8886;
5962   GL_FLOAT_RG32_NV = $8887;
5963   GL_FLOAT_RGB16_NV = $8888;
5964   GL_FLOAT_RGB32_NV = $8889;
5965   GL_FLOAT_RGBA16_NV = $888A;
5966   GL_FLOAT_RGBA32_NV = $888B;
5967   GL_TEXTURE_FLOAT_COMPONENTS_NV = $888C;
5968   GL_FLOAT_CLEAR_COLOR_VALUE_NV = $888D;
5969   GL_FLOAT_RGBA_MODE_NV = $888E;
5970
5971   // GL_NV_fog_distance
5972   GL_FOG_DISTANCE_MODE_NV = $855A;
5973   GL_EYE_RADIAL_NV = $855B;
5974   GL_EYE_PLANE_ABSOLUTE_NV = $855C;
5975
5976   // GL_NV_fragment_program
5977   GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV = $8868;
5978   GL_FRAGMENT_PROGRAM_NV = $8870;
5979   GL_MAX_TEXTURE_COORDS_NV = $8871;
5980   GL_MAX_TEXTURE_IMAGE_UNITS_NV = $8872;
5981   GL_FRAGMENT_PROGRAM_BINDING_NV = $8873;
5982   GL_PROGRAM_ERROR_STRING_NV = $8874;
5983
5984   // GL_NV_half_float
5985   GL_HALF_FLOAT_NV = $140B;
5986
5987   // GL_NV_light_max_exponent
5988   GL_MAX_SHININESS_NV = $8504;
5989   GL_MAX_SPOT_EXPONENT_NV = $8505;
5990
5991   // GL_NV_multisample_filter_hint
5992   GL_MULTISAMPLE_FILTER_HINT_NV = $8534;
5993
5994   // GL_NV_occlusion_query
5995   GL_PIXEL_COUNTER_BITS_NV = $8864;
5996   GL_CURRENT_OCCLUSION_QUERY_ID_NV = $8865;
5997   GL_PIXEL_COUNT_NV = $8866;
5998   GL_PIXEL_COUNT_AVAILABLE_NV = $8867;
5999
6000   // GL_NV_packed_depth_stencil
6001   GL_DEPTH_STENCIL_NV = $84F9;
6002   GL_UNSIGNED_INT_24_8_NV = $84FA;
6003
6004   // GL_NV_pixel_data_range
6005   GL_WRITE_PIXEL_DATA_RANGE_NV = $8878;
6006   GL_READ_PIXEL_DATA_RANGE_NV = $8879;
6007   GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV = $887A;
6008   GL_READ_PIXEL_DATA_RANGE_LENGTH_NV = $887B;
6009   GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV = $887C;
6010   GL_READ_PIXEL_DATA_RANGE_POINTER_NV = $887D;
6011
6012   // GL_NV_point_sprite
6013   GL_POINT_SPRITE_NV = $8861;
6014   GL_COORD_REPLACE_NV = $8862;
6015   GL_POINT_SPRITE_R_MODE_NV = $8863;
6016
6017   // GL_NV_primitive_restart
6018   GL_PRIMITIVE_RESTART_NV = $8558;
6019   GL_PRIMITIVE_RESTART_INDEX_NV = $8559;
6020
6021   // GL_NV_register_combiners
6022   GL_REGISTER_COMBINERS_NV = $8522;
6023   GL_VARIABLE_A_NV = $8523;
6024   GL_VARIABLE_B_NV = $8524;
6025   GL_VARIABLE_C_NV = $8525;
6026   GL_VARIABLE_D_NV = $8526;
6027   GL_VARIABLE_E_NV = $8527;
6028   GL_VARIABLE_F_NV = $8528;
6029   GL_VARIABLE_G_NV = $8529;
6030   GL_CONSTANT_COLOR0_NV = $852A;
6031   GL_CONSTANT_COLOR1_NV = $852B;
6032   GL_PRIMARY_COLOR_NV = $852C;
6033   GL_SECONDARY_COLOR_NV = $852D;
6034   GL_SPARE0_NV = $852E;
6035   GL_SPARE1_NV = $852F;
6036   GL_DISCARD_NV = $8530;
6037   GL_E_TIMES_F_NV = $8531;
6038   GL_SPARE0_PLUS_SECONDARY_COLOR_NV = $8532;
6039   GL_UNSIGNED_IDENTITY_NV = $8536;
6040   GL_UNSIGNED_INVERT_NV = $8537;
6041   GL_EXPAND_NORMAL_NV = $8538;
6042   GL_EXPAND_NEGATE_NV = $8539;
6043   GL_HALF_BIAS_NORMAL_NV = $853A;
6044   GL_HALF_BIAS_NEGATE_NV = $853B;
6045   GL_SIGNED_IDENTITY_NV = $853C;
6046   GL_SIGNED_NEGATE_NV = $853D;
6047   GL_SCALE_BY_TWO_NV = $853E;
6048   GL_SCALE_BY_FOUR_NV = $853F;
6049   GL_SCALE_BY_ONE_HALF_NV = $8540;
6050   GL_BIAS_BY_NEGATIVE_ONE_HALF_NV = $8541;
6051   GL_COMBINER_INPUT_NV = $8542;
6052   GL_COMBINER_MAPPING_NV = $8543;
6053   GL_COMBINER_COMPONENT_USAGE_NV = $8544;
6054   GL_COMBINER_AB_DOT_PRODUCT_NV = $8545;
6055   GL_COMBINER_CD_DOT_PRODUCT_NV = $8546;
6056   GL_COMBINER_MUX_SUM_NV = $8547;
6057   GL_COMBINER_SCALE_NV = $8548;
6058   GL_COMBINER_BIAS_NV = $8549;
6059   GL_COMBINER_AB_OUTPUT_NV = $854A;
6060   GL_COMBINER_CD_OUTPUT_NV = $854B;
6061   GL_COMBINER_SUM_OUTPUT_NV = $854C;
6062   GL_MAX_GENERAL_COMBINERS_NV = $854D;
6063   GL_NUM_GENERAL_COMBINERS_NV = $854E;
6064   GL_COLOR_SUM_CLAMP_NV = $854F;
6065   GL_COMBINER0_NV = $8550;
6066   GL_COMBINER1_NV = $8551;
6067   GL_COMBINER2_NV = $8552;
6068   GL_COMBINER3_NV = $8553;
6069   GL_COMBINER4_NV = $8554;
6070   GL_COMBINER5_NV = $8555;
6071   GL_COMBINER6_NV = $8556;
6072   GL_COMBINER7_NV = $8557;
6073
6074   // GL_NV_register_combiners2
6075   GL_PER_STAGE_CONSTANTS_NV = $8535;
6076
6077   // GL_NV_texgen_emboss
6078   GL_EMBOSS_LIGHT_NV = $855D;
6079   GL_EMBOSS_CONSTANT_NV = $855E;
6080   GL_EMBOSS_MAP_NV = $855F;
6081
6082   // GL_NV_texgen_reflection
6083   GL_NORMAL_MAP_NV = $8511;
6084   GL_REFLECTION_MAP_NV = $8512;
6085
6086   // GL_NV_texture_env_combine4
6087   GL_COMBINE4_NV = $8503;
6088   GL_SOURCE3_RGB_NV = $8583;
6089   GL_SOURCE3_ALPHA_NV = $858B;
6090   GL_OPERAND3_RGB_NV = $8593;
6091   GL_OPERAND3_ALPHA_NV = $859B;
6092
6093   // GL_NV_texture_expand_normal
6094   GL_TEXTURE_UNSIGNED_REMAP_MODE_NV = $888F;
6095
6096   // GL_NV_texture_rectangle
6097   GL_TEXTURE_RECTANGLE_NV = $84F5;
6098   GL_TEXTURE_BINDING_RECTANGLE_NV = $84F6;
6099   GL_PROXY_TEXTURE_RECTANGLE_NV = $84F7;
6100   GL_MAX_RECTANGLE_TEXTURE_SIZE_NV = $84F8;
6101
6102   // GL_NV_texture_shader
6103   GL_OFFSET_TEXTURE_RECTANGLE_NV = $864C;
6104   GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV = $864D;
6105   GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV = $864E;
6106   GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV = $86D9;
6107   GL_UNSIGNED_INT_S8_S8_8_8_NV = $86DA;
6108   GL_UNSIGNED_INT_8_8_S8_S8_REV_NV = $86DB;
6109   GL_DSDT_MAG_INTENSITY_NV = $86DC;
6110   GL_SHADER_CONSISTENT_NV = $86DD;
6111   GL_TEXTURE_SHADER_NV = $86DE;
6112   GL_SHADER_OPERATION_NV = $86DF;
6113   GL_CULL_MODES_NV = $86E0;
6114   GL_OFFSET_TEXTURE_MATRIX_NV = $86E1;
6115   GL_OFFSET_TEXTURE_SCALE_NV = $86E2;
6116   GL_OFFSET_TEXTURE_BIAS_NV = $86E3;
6117   GL_OFFSET_TEXTURE_2D_MATRIX_NV = GL_OFFSET_TEXTURE_MATRIX_NV;
6118   GL_OFFSET_TEXTURE_2D_SCALE_NV = GL_OFFSET_TEXTURE_SCALE_NV;
6119   GL_OFFSET_TEXTURE_2D_BIAS_NV = GL_OFFSET_TEXTURE_BIAS_NV;
6120   GL_PREVIOUS_TEXTURE_INPUT_NV = $86E4;
6121   GL_CONST_EYE_NV = $86E5;
6122   GL_PASS_THROUGH_NV = $86E6;
6123   GL_CULL_FRAGMENT_NV = $86E7;
6124   GL_OFFSET_TEXTURE_2D_NV = $86E8;
6125   GL_DEPENDENT_AR_TEXTURE_2D_NV = $86E9;
6126   GL_DEPENDENT_GB_TEXTURE_2D_NV = $86EA;
6127   GL_DOT_PRODUCT_NV = $86EC;
6128   GL_DOT_PRODUCT_DEPTH_REPLACE_NV = $86ED;
6129   GL_DOT_PRODUCT_TEXTURE_2D_NV = $86EE;
6130   GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV = $86F0;
6131   GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV = $86F1;
6132   GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV = $86F2;
6133   GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV = $86F3;
6134   GL_HILO_NV = $86F4;
6135   GL_DSDT_NV = $86F5;
6136   GL_DSDT_MAG_NV = $86F6;
6137   GL_DSDT_MAG_VIB_NV = $86F7;
6138   GL_HILO16_NV = $86F8;
6139   GL_SIGNED_HILO_NV = $86F9;
6140   GL_SIGNED_HILO16_NV = $86FA;
6141   GL_SIGNED_RGBA_NV = $86FB;
6142   GL_SIGNED_RGBA8_NV = $86FC;
6143   GL_SIGNED_RGB_NV = $86FE;
6144   GL_SIGNED_RGB8_NV = $86FF;
6145   GL_SIGNED_LUMINANCE_NV = $8701;
6146   GL_SIGNED_LUMINANCE8_NV = $8702;
6147   GL_SIGNED_LUMINANCE_ALPHA_NV = $8703;
6148   GL_SIGNED_LUMINANCE8_ALPHA8_NV = $8704;
6149   GL_SIGNED_ALPHA_NV = $8705;
6150   GL_SIGNED_ALPHA8_NV = $8706;
6151   GL_SIGNED_INTENSITY_NV = $8707;
6152   GL_SIGNED_INTENSITY8_NV = $8708;
6153   GL_DSDT8_NV = $8709;
6154   GL_DSDT8_MAG8_NV = $870A;
6155   GL_DSDT8_MAG8_INTENSITY8_NV = $870B;
6156   GL_SIGNED_RGB_UNSIGNED_ALPHA_NV = $870C;
6157   GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV = $870D;
6158   GL_HI_SCALE_NV = $870E;
6159   GL_LO_SCALE_NV = $870F;
6160   GL_DS_SCALE_NV = $8710;
6161   GL_DT_SCALE_NV = $8711;
6162   GL_MAGNITUDE_SCALE_NV = $8712;
6163   GL_VIBRANCE_SCALE_NV = $8713;
6164   GL_HI_BIAS_NV = $8714;
6165   GL_LO_BIAS_NV = $8715;
6166   GL_DS_BIAS_NV = $8716;
6167   GL_DT_BIAS_NV = $8717;
6168   GL_MAGNITUDE_BIAS_NV = $8718;
6169   GL_VIBRANCE_BIAS_NV = $8719;
6170   GL_TEXTURE_BORDER_VALUES_NV = $871A;
6171   GL_TEXTURE_HI_SIZE_NV = $871B;
6172   GL_TEXTURE_LO_SIZE_NV = $871C;
6173   GL_TEXTURE_DS_SIZE_NV = $871D;
6174   GL_TEXTURE_DT_SIZE_NV = $871E;
6175   GL_TEXTURE_MAG_SIZE_NV = $871F;
6176
6177   // GL_NV_texture_shader2
6178   GL_DOT_PRODUCT_TEXTURE_3D_NV = $86EF;
6179
6180   // GL_NV_texture_shader3
6181   GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV = $8850;
6182   GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV = $8851;
6183   GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV = $8852;
6184   GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV = $8853;
6185   GL_OFFSET_HILO_TEXTURE_2D_NV = $8854;
6186   GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV = $8855;
6187   GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV = $8856;
6188   GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV = $8857;
6189   GL_DEPENDENT_HILO_TEXTURE_2D_NV = $8858;
6190   GL_DEPENDENT_RGB_TEXTURE_3D_NV = $8859;
6191   GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV = $885A;
6192   GL_DOT_PRODUCT_PASS_THROUGH_NV = $885B;
6193   GL_DOT_PRODUCT_TEXTURE_1D_NV = $885C;
6194   GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV = $885D;
6195   GL_HILO8_NV = $885E;
6196   GL_SIGNED_HILO8_NV = $885F;
6197   GL_FORCE_BLUE_TO_ONE_NV = $8860;
6198
6199   // GL_NV_vertex_array_range
6200   GL_VERTEX_ARRAY_RANGE_NV = $851D;
6201   GL_VERTEX_ARRAY_RANGE_LENGTH_NV = $851E;
6202   GL_VERTEX_ARRAY_RANGE_VALID_NV = $851F;
6203   GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV = $8520;
6204   GL_VERTEX_ARRAY_RANGE_POINTER_NV = $8521;
6205
6206   // GL_NV_vertex_array_range2
6207   GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV = $8533;
6208
6209   // GL_NV_vertex_program
6210   GL_VERTEX_PROGRAM_NV = $8620;
6211   GL_VERTEX_STATE_PROGRAM_NV = $8621;
6212   GL_ATTRIB_ARRAY_SIZE_NV = $8623;
6213   GL_ATTRIB_ARRAY_STRIDE_NV = $8624;
6214   GL_ATTRIB_ARRAY_TYPE_NV = $8625;
6215   GL_CURRENT_ATTRIB_NV = $8626;
6216   GL_PROGRAM_LENGTH_NV = $8627;
6217   GL_PROGRAM_STRING_NV = $8628;
6218   GL_MODELVIEW_PROJECTION_NV = $8629;
6219   GL_IDENTITY_NV = $862A;
6220   GL_INVERSE_NV = $862B;
6221   GL_TRANSPOSE_NV = $862C;
6222   GL_INVERSE_TRANSPOSE_NV = $862D;
6223   GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV = $862E;
6224   GL_MAX_TRACK_MATRICES_NV = $862F;
6225   GL_MATRIX0_NV = $8630;
6226   GL_MATRIX1_NV = $8631;
6227   GL_MATRIX2_NV = $8632;
6228   GL_MATRIX3_NV = $8633;
6229   GL_MATRIX4_NV = $8634;
6230   GL_MATRIX5_NV = $8635;
6231   GL_MATRIX6_NV = $8636;
6232   GL_MATRIX7_NV = $8637;
6233   GL_CURRENT_MATRIX_STACK_DEPTH_NV = $8640;
6234   GL_CURRENT_MATRIX_NV = $8641;
6235   GL_VERTEX_PROGRAM_POINT_SIZE_NV = $8642;
6236   GL_VERTEX_PROGRAM_TWO_SIDE_NV = $8643;
6237   GL_PROGRAM_PARAMETER_NV = $8644;
6238   GL_ATTRIB_ARRAY_POINTER_NV = $8645;
6239   GL_PROGRAM_TARGET_NV = $8646;
6240   GL_PROGRAM_RESIDENT_NV = $8647;
6241   GL_TRACK_MATRIX_NV = $8648;
6242   GL_TRACK_MATRIX_TRANSFORM_NV = $8649;
6243   GL_VERTEX_PROGRAM_BINDING_NV = $864A;
6244   GL_PROGRAM_ERROR_POSITION_NV = $864B;
6245   GL_VERTEX_ATTRIB_ARRAY0_NV = $8650;
6246   GL_VERTEX_ATTRIB_ARRAY1_NV = $8651;
6247   GL_VERTEX_ATTRIB_ARRAY2_NV = $8652;
6248   GL_VERTEX_ATTRIB_ARRAY3_NV = $8653;
6249   GL_VERTEX_ATTRIB_ARRAY4_NV = $8654;
6250   GL_VERTEX_ATTRIB_ARRAY5_NV = $8655;
6251   GL_VERTEX_ATTRIB_ARRAY6_NV = $8656;
6252   GL_VERTEX_ATTRIB_ARRAY7_NV = $8657;
6253   GL_VERTEX_ATTRIB_ARRAY8_NV = $8658;
6254   GL_VERTEX_ATTRIB_ARRAY9_NV = $8659;
6255   GL_VERTEX_ATTRIB_ARRAY10_NV = $865A;
6256   GL_VERTEX_ATTRIB_ARRAY11_NV = $865B;
6257   GL_VERTEX_ATTRIB_ARRAY12_NV = $865C;
6258   GL_VERTEX_ATTRIB_ARRAY13_NV = $865D;
6259   GL_VERTEX_ATTRIB_ARRAY14_NV = $865E;
6260   GL_VERTEX_ATTRIB_ARRAY15_NV = $865F;
6261   GL_MAP1_VERTEX_ATTRIB0_4_NV = $8660;
6262   GL_MAP1_VERTEX_ATTRIB1_4_NV = $8661;
6263   GL_MAP1_VERTEX_ATTRIB2_4_NV = $8662;
6264   GL_MAP1_VERTEX_ATTRIB3_4_NV = $8663;
6265   GL_MAP1_VERTEX_ATTRIB4_4_NV = $8664;
6266   GL_MAP1_VERTEX_ATTRIB5_4_NV = $8665;
6267   GL_MAP1_VERTEX_ATTRIB6_4_NV = $8666;
6268   GL_MAP1_VERTEX_ATTRIB7_4_NV = $8667;
6269   GL_MAP1_VERTEX_ATTRIB8_4_NV = $8668;
6270   GL_MAP1_VERTEX_ATTRIB9_4_NV = $8669;
6271   GL_MAP1_VERTEX_ATTRIB10_4_NV = $866A;
6272   GL_MAP1_VERTEX_ATTRIB11_4_NV = $866B;
6273   GL_MAP1_VERTEX_ATTRIB12_4_NV = $866C;
6274   GL_MAP1_VERTEX_ATTRIB13_4_NV = $866D;
6275   GL_MAP1_VERTEX_ATTRIB14_4_NV = $866E;
6276   GL_MAP1_VERTEX_ATTRIB15_4_NV = $866F;
6277   GL_MAP2_VERTEX_ATTRIB0_4_NV = $8670;
6278   GL_MAP2_VERTEX_ATTRIB1_4_NV = $8671;
6279   GL_MAP2_VERTEX_ATTRIB2_4_NV = $8672;
6280   GL_MAP2_VERTEX_ATTRIB3_4_NV = $8673;
6281   GL_MAP2_VERTEX_ATTRIB4_4_NV = $8674;
6282   GL_MAP2_VERTEX_ATTRIB5_4_NV = $8675;
6283   GL_MAP2_VERTEX_ATTRIB6_4_NV = $8676;
6284   GL_MAP2_VERTEX_ATTRIB7_4_NV = $8677;
6285   GL_MAP2_VERTEX_ATTRIB8_4_NV = $8678;
6286   GL_MAP2_VERTEX_ATTRIB9_4_NV = $8679;
6287   GL_MAP2_VERTEX_ATTRIB10_4_NV = $867A;
6288   GL_MAP2_VERTEX_ATTRIB11_4_NV = $867B;
6289   GL_MAP2_VERTEX_ATTRIB12_4_NV = $867C;
6290   GL_MAP2_VERTEX_ATTRIB13_4_NV = $867D;
6291   GL_MAP2_VERTEX_ATTRIB14_4_NV = $867E;
6292   GL_MAP2_VERTEX_ATTRIB15_4_NV = $867F;
6293
6294   // GL_NV_fragment_program2 and GL_NV_vertex_program2_option
6295   GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV = $88F4;
6296   GL_MAX_PROGRAM_CALL_DEPTH_NV = $88F5;
6297
6298   // GL_NV_fragment_program2
6299   GL_MAX_PROGRAM_IF_DEPTH_NV = $88F6;
6300   GL_MAX_PROGRAM_LOOP_DEPTH_NV = $88F7;
6301   GL_MAX_PROGRAM_LOOP_COUNT_NV = $88F8;
6302
6303   // GL_NV_vertex_program3
6304   MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB = $8B4C;
6305
6306   // GL_NV_depth_buffer_float
6307   GL_FLOAT_32_UNSIGNED_INT_24_8_REV_NV = $8DAD;
6308   GL_DEPTH_BUFFER_FLOAT_MODE_NV = $8DAF;
6309
6310   // GL_NV_framebuffer_multisample_coverage
6311   GL_RENDERBUFFER_COVERAGE_SAMPLES_NV = $8CAB;
6312   GL_RENDERBUFFER_COLOR_SAMPLES_NV = $8E10;
6313
6314   // GL_NV_geometry_program4
6315   GL_GEOMETRY_PROGRAM_NV = $8C26;
6316   GL_MAX_PROGRAM_OUTPUT_VERTICES_NV = $8C27;
6317   GL_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV = $8C28;
6318
6319   // GL_NV_gpu_program4
6320   GL_PROGRAM_ATTRIB_COMPONENTS_NV = $8906;
6321   GL_PROGRAM_RESULT_COMPONENTS_NV = $8907;
6322   GL_MAX_PROGRAM_ATTRIB_COMPONENTS_NV = $8908;
6323   GL_MAX_PROGRAM_RESULT_COMPONENTS_NV = $8909;
6324   GL_MAX_PROGRAM_GENERIC_ATTRIBS_NV = $8DA5;
6325   GL_MAX_PROGRAM_GENERIC_RESULTS_NV = $8DA6;
6326
6327   // GL_NV_parameter_buffer_object
6328   GL_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV = $8DA0;
6329   GL_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV = $8DA1;
6330   GL_VERTEX_PROGRAM_PARAMETER_BUFFER_NV = $8DA2;
6331   GL_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV = $8DA3;
6332   GL_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV = $8DA4;
6333
6334   // GL_NV_transform_feedback
6335   GL_TRANSFORM_FEEDBACK_BUFFER_NV = $8C8E;
6336   GL_TRANSFORM_FEEDBACK_BUFFER_START_NV = $8C84;
6337   GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV = $8C85;
6338   GL_TRANSFORM_FEEDBACK_RECORD_NV = $8C86;
6339   GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV = $8C8F;
6340   GL_INTERLEAVED_ATTRIBS_NV = $8C8C;
6341   GL_SEPARATE_ATTRIBS_NV = $8C8D;
6342   GL_PRIMITIVES_GENERATED_NV = $8C87;
6343   GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV = $8C88;
6344   GL_RASTERIZER_DISCARD_NV = $8C89;
6345   GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_NV = $8C8A;
6346   GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV = $8C8B;
6347   GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV = $8C80;
6348   GL_TRANSFORM_FEEDBACK_ATTRIBS_NV = $8C7E;
6349   GL_ACTIVE_VARYINGS_NV = $8C81;
6350   GL_ACTIVE_VARYING_MAX_LENGTH_NV = $8C82;
6351   GL_TRANSFORM_FEEDBACK_VARYINGS_NV = $8C83;
6352   GL_TRANSFORM_FEEDBACK_BUFFER_MODE_NV = $8C7F;
6353   GL_BACK_PRIMARY_COLOR_NV = $8C77;
6354   GL_BACK_SECONDARY_COLOR_NV = $8C78;
6355   GL_TEXTURE_COORD_NV = $8C79;
6356   GL_CLIP_DISTANCE_NV = $8C7A;
6357   GL_VERTEX_ID_NV = $8C7B;
6358   GL_PRIMITIVE_ID_NV = $8C7C;
6359   GL_GENERIC_ATTRIB_NV = $8C7D;
6360   GL_LAYER_NV = $8DAA;
6361   GL_NEXT_BUFFER_NV = -2;
6362   GL_SKIP_COMPONENTS4_NV = -3;
6363   GL_SKIP_COMPONENTS3_NV = -4;
6364   GL_SKIP_COMPONENTS2_NV = -5;
6365   GL_SKIP_COMPONENTS1_NV = -6;
6366
6367   // GL_NV_conditional_render
6368   GL_QUERY_WAIT_NV = $8E13;
6369   GL_QUERY_NO_WAIT_NV = $8E14;
6370   GL_QUERY_BY_REGION_WAIT_NV = $8E15;
6371   GL_QUERY_BY_REGION_NO_WAIT_NV = $8E16;
6372
6373   // GL_NV_present_video
6374   GL_FRAME_NV = $8E26;
6375   GL_FIELDS_NV = $8E27;
6376   GL_CURRENT_TIME_NV = $8E28;
6377   GL_NUM_FILL_STREAMS_NV = $8E29;
6378   GL_PRESENT_TIME_NV = $8E2A;
6379   GL_PRESENT_DURATION_NV = $8E2B;
6380
6381   // GL_NV_explicit_multisample
6382   GL_SAMPLE_POSITION_NV = $8E50;
6383   GL_SAMPLE_MASK_NV = $8E51;
6384   GL_SAMPLE_MASK_VALUE_NV = $8E52;
6385   GL_TEXTURE_BINDING_RENDERBUFFER_NV = $8E53;
6386   GL_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV = $8E54;
6387   GL_TEXTURE_RENDERBUFFER_NV = $8E55;
6388   GL_SAMPLER_RENDERBUFFER_NV = $8E56;
6389   GL_INT_SAMPLER_RENDERBUFFER_NV = $8E57;
6390   GL_UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV = $8E58;
6391   GL_MAX_SAMPLE_MASK_WORDS_NV = $8E59;
6392
6393   // GL_NV_transform_feedback2
6394   GL_TRANSFORM_FEEDBACK_NV = $8E22;
6395   GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV = $8E23;
6396   GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV = $8E24;
6397   GL_TRANSFORM_FEEDBACK_BINDING_NV = $8E25;
6398
6399   // GL_NV_video_capture
6400   GL_VIDEO_BUFFER_NV = $9020;
6401   GL_VIDEO_BUFFER_BINDING_NV = $9021;
6402   GL_FIELD_UPPER_NV = $9022;
6403   GL_FIELD_LOWER_NV = $9023;
6404   GL_NUM_VIDEO_CAPTURE_STREAMS_NV = $9024;
6405   GL_NEXT_VIDEO_CAPTURE_BUFFER_STATUS_NV = $9025;
6406   GL_VIDEO_CAPTURE_TO_422_SUPPORTED_NV = $9026;
6407   GL_LAST_VIDEO_CAPTURE_STATUS_NV = $9027;
6408   GL_VIDEO_BUFFER_PITCH_NV = $9028;
6409   GL_VIDEO_COLOR_CONVERSION_MATRIX_NV = $9029;
6410   GL_VIDEO_COLOR_CONVERSION_MAX_NV = $902A;
6411   GL_VIDEO_COLOR_CONVERSION_MIN_NV = $902B;
6412   GL_VIDEO_COLOR_CONVERSION_OFFSET_NV = $902C;
6413   GL_VIDEO_BUFFER_INTERNAL_FORMAT_NV = $902D;
6414   GL_PARTIAL_SUCCESS_NV = $902E;
6415   GL_SUCCESS_NV = $902F;
6416   GL_FAILURE_NV = $9030;
6417   GL_YCBYCR8_422_NV = $9031;
6418   GL_YCBAYCR8A_4224_NV = $9032;
6419   GL_Z6Y10Z6CB10Z6Y10Z6CR10_422_NV = $9033;
6420   GL_Z6Y10Z6CB10Z6A10Z6Y10Z6CR10Z6A10_4224_NV = $9034;
6421   GL_Z4Y12Z4CB12Z4Y12Z4CR12_422_NV = $9035;
6422   GL_Z4Y12Z4CB12Z4A12Z4Y12Z4CR12Z4A12_4224_NV = $9036;
6423   GL_Z4Y12Z4CB12Z4CR12_444_NV = $9037;
6424   GL_VIDEO_CAPTURE_FRAME_WIDTH_NV = $9038;
6425   GL_VIDEO_CAPTURE_FRAME_HEIGHT_NV = $9039;
6426   GL_VIDEO_CAPTURE_FIELD_UPPER_HEIGHT_NV = $903A;
6427   GL_VIDEO_CAPTURE_FIELD_LOWER_HEIGHT_NV = $903B;
6428   GL_VIDEO_CAPTURE_SURFACE_ORIGIN_NV = $903C;
6429
6430   // GL_NV_shader_buffer_load
6431   GL_BUFFER_GPU_ADDRESS_NV = $8F1D;
6432   GL_GPU_ADDRESS_NV = $8F34;
6433   GL_MAX_SHADER_BUFFER_ADDRESS_NV = $8F35;
6434
6435   // GL_NV_vertex_buffer_unified_memory
6436   GL_VERTEX_ATTRIB_ARRAY_UNIFIED_NV = $8F1E;
6437   GL_ELEMENT_ARRAY_UNIFIED_NV = $8F1F;
6438   GL_VERTEX_ATTRIB_ARRAY_ADDRESS_NV = $8F20;
6439   GL_VERTEX_ARRAY_ADDRESS_NV = $8F21;
6440   GL_NORMAL_ARRAY_ADDRESS_NV = $8F22;
6441   GL_COLOR_ARRAY_ADDRESS_NV = $8F23;
6442   GL_INDEX_ARRAY_ADDRESS_NV = $8F24;
6443   GL_TEXTURE_COORD_ARRAY_ADDRESS_NV = $8F25;
6444   GL_EDGE_FLAG_ARRAY_ADDRESS_NV = $8F26;
6445   GL_SECONDARY_COLOR_ARRAY_ADDRESS_NV = $8F27;
6446   GL_FOG_COORD_ARRAY_ADDRESS_NV = $8F28;
6447   GL_ELEMENT_ARRAY_ADDRESS_NV = $8F29;
6448   GL_VERTEX_ATTRIB_ARRAY_LENGTH_NV = $8F2A;
6449   GL_VERTEX_ARRAY_LENGTH_NV = $8F2B;
6450   GL_NORMAL_ARRAY_LENGTH_NV = $8F2C;
6451   GL_COLOR_ARRAY_LENGTH_NV = $8F2D;
6452   GL_INDEX_ARRAY_LENGTH_NV = $8F2E;
6453   GL_TEXTURE_COORD_ARRAY_LENGTH_NV = $8F2F;
6454   GL_EDGE_FLAG_ARRAY_LENGTH_NV = $8F30;
6455   GL_SECONDARY_COLOR_ARRAY_LENGTH_NV = $8F31;
6456   GL_FOG_COORD_ARRAY_LENGTH_NV = $8F32;
6457   GL_ELEMENT_ARRAY_LENGTH_NV = $8F33;
6458   GL_DRAW_INDIRECT_UNIFIED_NV = $8F40;
6459   GL_DRAW_INDIRECT_ADDRESS_NV = $8F41;
6460   GL_DRAW_INDIRECT_LENGTH_NV = $8F42;
6461
6462   // GL_NV_gpu_program5
6463   GL_MAX_GEOMETRY_PROGRAM_INVOCATIONS_NV = $8E5A;
6464   GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_NV = $8E5B;
6465   GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_NV = $8E5C;
6466   GL_FRAGMENT_PROGRAM_INTERPOLATION_OFFSET_BITS_NV = $8E5D;
6467   GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_NV = $8E5E;
6468   GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_NV = $8E5F;
6469   GL_MAX_PROGRAM_SUBROUTINE_PARAMETERS_NV = $8F44;
6470   GL_MAX_PROGRAM_SUBROUTINE_NUM_NV = $8F45;
6471
6472   // GL_NV_gpu_shader5
6473   GL_INT64_NV = $140E;
6474   GL_UNSIGNED_INT64_NV = $140F;
6475   GL_INT8_NV = $8FE0;
6476   GL_INT8_VEC2_NV = $8FE1;
6477   GL_INT8_VEC3_NV = $8FE2;
6478   GL_INT8_VEC4_NV = $8FE3;
6479   GL_INT16_NV = $8FE4;
6480   GL_INT16_VEC2_NV = $8FE5;
6481   GL_INT16_VEC3_NV = $8FE6;
6482   GL_INT16_VEC4_NV = $8FE7;
6483   GL_INT64_VEC2_NV = $8FE9;
6484   GL_INT64_VEC3_NV = $8FEA;
6485   GL_INT64_VEC4_NV = $8FEB;
6486   GL_UNSIGNED_INT8_NV = $8FEC;
6487   GL_UNSIGNED_INT8_VEC2_NV = $8FED;
6488   GL_UNSIGNED_INT8_VEC3_NV = $8FEE;
6489   GL_UNSIGNED_INT8_VEC4_NV = $8FEF;
6490   GL_UNSIGNED_INT16_NV = $8FF0;
6491   GL_UNSIGNED_INT16_VEC2_NV = $8FF1;
6492   GL_UNSIGNED_INT16_VEC3_NV = $8FF2;
6493   GL_UNSIGNED_INT16_VEC4_NV = $8FF3;
6494   GL_UNSIGNED_INT64_VEC2_NV = $8FF5;
6495   GL_UNSIGNED_INT64_VEC3_NV = $8FF6;
6496   GL_UNSIGNED_INT64_VEC4_NV = $8FF7;
6497   GL_FLOAT16_NV = $8FF8;
6498   GL_FLOAT16_VEC2_NV = $8FF9;
6499   GL_FLOAT16_VEC3_NV = $8FFA;
6500   GL_FLOAT16_VEC4_NV = $8FFB;
6501   { reuse GL_PATCHES }
6502
6503   // GL_NV_shader_buffer_store
6504   GL_SHADER_GLOBAL_ACCESS_BARRIER_BIT_NV = $00000010;
6505   { reuse GL_READ_WRITE }
6506   { reuse GL_WRITE_ONLY }
6507
6508   // GL_NV_tessellation_program5
6509   GL_MAX_PROGRAM_PATCH_ATTRIBS_NV = $86D8;
6510   GL_TESS_CONTROL_PROGRAM_NV = $891E;
6511   GL_TESS_EVALUATION_PROGRAM_NV = $891F;
6512   GL_TESS_CONTROL_PROGRAM_PARAMETER_BUFFER_NV = $8C74;
6513   GL_TESS_EVALUATION_PROGRAM_PARAMETER_BUFFER_NV = $8C75;
6514
6515   // GL_NV_vertex_attrib_integer_64bit
6516   { reuse GL_INT64_NV }
6517   { reuse GL_UNSIGNED_INT64_NV }
6518
6519   // GL_NV_multisample_coverage
6520   GL_COVERAGE_SAMPLES_NV = $80A9;
6521   GL_COLOR_SAMPLES_NV = $8E20;
6522
6523   // GL_NV_vdpau_interop
6524   GL_SURFACE_STATE_NV = $86EB;
6525   GL_SURFACE_REGISTERED_NV = $86FD;
6526   GL_SURFACE_MAPPED_NV = $8700;
6527   GL_WRITE_DISCARD_NV = $88BE;
6528
6529   // GL_OML_interlace
6530   GL_INTERLACE_OML = $8980;
6531   GL_INTERLACE_READ_OML = $8981;
6532
6533   // GL_OML_resample
6534   GL_PACK_RESAMPLE_OML = $8984;
6535   GL_UNPACK_RESAMPLE_OML = $8985;
6536   GL_RESAMPLE_REPLICATE_OML = $8986;
6537   GL_RESAMPLE_ZERO_FILL_OML = $8987;
6538   GL_RESAMPLE_AVERAGE_OML = $8988;
6539   GL_RESAMPLE_DECIMATE_OML = $8989;
6540
6541   // GL_OML_subsample
6542   GL_FORMAT_SUBSAMPLE_24_24_OML = $8982;
6543   GL_FORMAT_SUBSAMPLE_244_244_OML = $8983;
6544
6545   // GL_PGI_misc_hints
6546   GL_PREFER_DOUBLEBUFFER_HINT_PGI = $1A1F8;
6547   GL_CONSERVE_MEMORY_HINT_PGI = $1A1FD;
6548   GL_RECLAIM_MEMORY_HINT_PGI = $1A1FE;
6549   GL_NATIVE_GRAPHICS_HANDLE_PGI = $1A202;
6550   GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI = $1A203;
6551   GL_NATIVE_GRAPHICS_END_HINT_PGI = $1A204;
6552   GL_ALWAYS_FAST_HINT_PGI = $1A20C;
6553   GL_ALWAYS_SOFT_HINT_PGI = $1A20D;
6554   GL_ALLOW_DRAW_OBJ_HINT_PGI = $1A20E;
6555   GL_ALLOW_DRAW_WIN_HINT_PGI = $1A20F;
6556   GL_ALLOW_DRAW_FRG_HINT_PGI = $1A210;
6557   GL_ALLOW_DRAW_MEM_HINT_PGI = $1A211;
6558   GL_STRICT_DEPTHFUNC_HINT_PGI = $1A216;
6559   GL_STRICT_LIGHTING_HINT_PGI = $1A217;
6560   GL_STRICT_SCISSOR_HINT_PGI = $1A218;
6561   GL_FULL_STIPPLE_HINT_PGI = $1A219;
6562   GL_CLIP_NEAR_HINT_PGI = $1A220;
6563   GL_CLIP_FAR_HINT_PGI = $1A221;
6564   GL_WIDE_LINE_HINT_PGI = $1A222;
6565   GL_BACK_NORMALS_HINT_PGI = $1A223;
6566
6567   // GL_PGI_vertex_hints
6568   GL_VERTEX_DATA_HINT_PGI = $1A22A;
6569   GL_VERTEX_CONSISTENT_HINT_PGI = $1A22B;
6570   GL_MATERIAL_SIDE_HINT_PGI = $1A22C;
6571   GL_MAX_VERTEX_HINT_PGI = $1A22D;
6572   GL_COLOR3_BIT_PGI = $00010000;
6573   GL_COLOR4_BIT_PGI = $00020000;
6574   GL_EDGEFLAG_BIT_PGI = $00040000;
6575   GL_INDEX_BIT_PGI = $00080000;
6576   GL_MAT_AMBIENT_BIT_PGI = $00100000;
6577   GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI = $00200000;
6578   GL_MAT_DIFFUSE_BIT_PGI = $00400000;
6579   GL_MAT_EMISSION_BIT_PGI = $00800000;
6580   GL_MAT_COLOR_INDEXES_BIT_PGI = $01000000;
6581   GL_MAT_SHININESS_BIT_PGI = $02000000;
6582   GL_MAT_SPECULAR_BIT_PGI = $04000000;
6583   GL_NORMAL_BIT_PGI = $08000000;
6584   GL_TEXCOORD1_BIT_PGI = $10000000;
6585   GL_TEXCOORD2_BIT_PGI = $20000000;
6586   GL_TEXCOORD3_BIT_PGI = $40000000;
6587   GL_TEXCOORD4_BIT_PGI = $80000000;
6588   GL_VERTEX23_BIT_PGI = $00000004;
6589   GL_VERTEX4_BIT_PGI = $00000008;
6590
6591   // GL_REND_screen_coordinates
6592   GL_SCREEN_COORDINATES_REND = $8490;
6593   GL_INVERTED_SCREEN_W_REND = $8491;
6594
6595   // GL_S3_s3tc
6596   GL_RGB_S3TC = $83A0;
6597   GL_RGB4_S3TC = $83A1;
6598   GL_RGBA_S3TC = $83A2;
6599   GL_RGBA4_S3TC = $83A3;
6600
6601   // GL_SGIS_detail_texture
6602   GL_DETAIL_TEXTURE_2D_SGIS = $8095;
6603   GL_DETAIL_TEXTURE_2D_BINDING_SGIS = $8096;
6604   GL_LINEAR_DETAIL_SGIS = $8097;
6605   GL_LINEAR_DETAIL_ALPHA_SGIS = $8098;
6606   GL_LINEAR_DETAIL_COLOR_SGIS = $8099;
6607   GL_DETAIL_TEXTURE_LEVEL_SGIS = $809A;
6608   GL_DETAIL_TEXTURE_MODE_SGIS = $809B;
6609   GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS = $809C;
6610
6611   // GL_SGIS_fog_function
6612   GL_FOG_FUNC_SGIS = $812A;
6613   GL_FOG_FUNC_POINTS_SGIS = $812B;
6614   GL_MAX_FOG_FUNC_POINTS_SGIS = $812C;
6615
6616   // GL_SGIS_generate_mipmap
6617   GL_GENERATE_MIPMAP_SGIS = $8191;
6618   GL_GENERATE_MIPMAP_HINT_SGIS = $8192;
6619
6620   // GL_SGIS_multisample
6621   GL_MULTISAMPLE_SGIS = $809D;
6622   GL_SAMPLE_ALPHA_TO_MASK_SGIS = $809E;
6623   GL_SAMPLE_ALPHA_TO_ONE_SGIS = $809F;
6624   GL_SAMPLE_MASK_SGIS = $80A0;
6625   GL_1PASS_SGIS = $80A1;
6626   GL_2PASS_0_SGIS = $80A2;
6627   GL_2PASS_1_SGIS = $80A3;
6628   GL_4PASS_0_SGIS = $80A4;
6629   GL_4PASS_1_SGIS = $80A5;
6630   GL_4PASS_2_SGIS = $80A6;
6631   GL_4PASS_3_SGIS = $80A7;
6632   GL_SAMPLE_BUFFERS_SGIS = $80A8;
6633   GL_SAMPLES_SGIS = $80A9;
6634   GL_SAMPLE_MASK_VALUE_SGIS = $80AA;
6635   GL_SAMPLE_MASK_INVERT_SGIS = $80AB;
6636   GL_SAMPLE_PATTERN_SGIS = $80AC;
6637
6638   // GL_SGIS_pixel_texture
6639   GL_PIXEL_TEXTURE_SGIS = $8353;
6640   GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS = $8354;
6641   GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS = $8355;
6642   GL_PIXEL_GROUP_COLOR_SGIS = $8356;
6643
6644   // GL_SGIS_point_line_texgen
6645   GL_EYE_DISTANCE_TO_POINT_SGIS = $81F0;
6646   GL_OBJECT_DISTANCE_TO_POINT_SGIS = $81F1;
6647   GL_EYE_DISTANCE_TO_LINE_SGIS = $81F2;
6648   GL_OBJECT_DISTANCE_TO_LINE_SGIS = $81F3;
6649   GL_EYE_POINT_SGIS = $81F4;
6650   GL_OBJECT_POINT_SGIS = $81F5;
6651   GL_EYE_LINE_SGIS = $81F6;
6652   GL_OBJECT_LINE_SGIS = $81F7;
6653
6654   // GL_SGIS_point_parameters
6655   GL_POINT_SIZE_MIN_SGIS = $8126;
6656   GL_POINT_SIZE_MAX_SGIS = $8127;
6657   GL_POINT_FADE_THRESHOLD_SIZE_SGIS = $8128;
6658   GL_DISTANCE_ATTENUATION_SGIS = $8129;
6659
6660   // GL_SGIS_sharpen_texture
6661   GL_LINEAR_SHARPEN_SGIS = $80AD;
6662   GL_LINEAR_SHARPEN_ALPHA_SGIS = $80AE;
6663   GL_LINEAR_SHARPEN_COLOR_SGIS = $80AF;
6664   GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS = $80B0;
6665
6666   // GL_SGIS_texture4D
6667   GL_PACK_SKIP_VOLUMES_SGIS = $8130;
6668   GL_PACK_IMAGE_DEPTH_SGIS = $8131;
6669   GL_UNPACK_SKIP_VOLUMES_SGIS = $8132;
6670   GL_UNPACK_IMAGE_DEPTH_SGIS = $8133;
6671   GL_TEXTURE_4D_SGIS = $8134;
6672   GL_PROXY_TEXTURE_4D_SGIS = $8135;
6673   GL_TEXTURE_4DSIZE_SGIS = $8136;
6674   GL_TEXTURE_WRAP_Q_SGIS = $8137;
6675   GL_MAX_4D_TEXTURE_SIZE_SGIS = $8138;
6676   GL_TEXTURE_4D_BINDING_SGIS = $814F;
6677
6678   // GL_SGIS_texture_color_mask
6679   GL_TEXTURE_COLOR_WRITEMASK_SGIS = $81EF;
6680
6681   // GL_SGIS_texture_edge_clamp
6682   GL_CLAMP_TO_EDGE_SGIS = $812F;
6683
6684   // GL_SGIS_texture_filter4
6685   GL_FILTER4_SGIS = $8146;
6686   GL_TEXTURE_FILTER4_SIZE_SGIS = $8147;
6687
6688   // GL_SGIS_texture_lod
6689   GL_TEXTURE_MIN_LOD_SGIS = $813A;
6690   GL_TEXTURE_MAX_LOD_SGIS = $813B;
6691   GL_TEXTURE_BASE_LEVEL_SGIS = $813C;
6692   GL_TEXTURE_MAX_LEVEL_SGIS = $813D;
6693
6694   // GL_SGIS_texture_select
6695   GL_DUAL_ALPHA4_SGIS = $8110;
6696   GL_DUAL_ALPHA8_SGIS = $8111;
6697   GL_DUAL_ALPHA12_SGIS = $8112;
6698   GL_DUAL_ALPHA16_SGIS = $8113;
6699   GL_DUAL_LUMINANCE4_SGIS = $8114;
6700   GL_DUAL_LUMINANCE8_SGIS = $8115;
6701   GL_DUAL_LUMINANCE12_SGIS = $8116;
6702   GL_DUAL_LUMINANCE16_SGIS = $8117;
6703   GL_DUAL_INTENSITY4_SGIS = $8118;
6704   GL_DUAL_INTENSITY8_SGIS = $8119;
6705   GL_DUAL_INTENSITY12_SGIS = $811A;
6706   GL_DUAL_INTENSITY16_SGIS = $811B;
6707   GL_DUAL_LUMINANCE_ALPHA4_SGIS = $811C;
6708   GL_DUAL_LUMINANCE_ALPHA8_SGIS = $811D;
6709   GL_QUAD_ALPHA4_SGIS = $811E;
6710   GL_QUAD_ALPHA8_SGIS = $811F;
6711   GL_QUAD_LUMINANCE4_SGIS = $8120;
6712   GL_QUAD_LUMINANCE8_SGIS = $8121;
6713   GL_QUAD_INTENSITY4_SGIS = $8122;
6714   GL_QUAD_INTENSITY8_SGIS = $8123;
6715   GL_DUAL_TEXTURE_SELECT_SGIS = $8124;
6716   GL_QUAD_TEXTURE_SELECT_SGIS = $8125;
6717
6718   // GL_SGIX_async
6719   GL_ASYNC_MARKER_SGIX = $8329;
6720
6721   // GL_SGIX_async_histogram
6722   GL_ASYNC_HISTOGRAM_SGIX = $832C;
6723   GL_MAX_ASYNC_HISTOGRAM_SGIX = $832D;
6724
6725   // GL_SGIX_async_pixel
6726   GL_ASYNC_TEX_IMAGE_SGIX = $835C;
6727   GL_ASYNC_DRAW_PIXELS_SGIX = $835D;
6728   GL_ASYNC_READ_PIXELS_SGIX = $835E;
6729   GL_MAX_ASYNC_TEX_IMAGE_SGIX = $835F;
6730   GL_MAX_ASYNC_DRAW_PIXELS_SGIX = $8360;
6731   GL_MAX_ASYNC_READ_PIXELS_SGIX = $8361;
6732
6733   // GL_SGIX_blend_alpha_minmax
6734   GL_ALPHA_MIN_SGIX = $8320;
6735   GL_ALPHA_MAX_SGIX = $8321;
6736
6737   // GL_SGIX_calligraphic_fragment
6738   GL_CALLIGRAPHIC_FRAGMENT_SGIX = $8183;
6739
6740   // GL_SGIX_clipmap
6741   GL_LINEAR_CLIPMAP_LINEAR_SGIX = $8170;
6742   GL_TEXTURE_CLIPMAP_CENTER_SGIX = $8171;
6743   GL_TEXTURE_CLIPMAP_FRAME_SGIX = $8172;
6744   GL_TEXTURE_CLIPMAP_OFFSET_SGIX = $8173;
6745   GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX = $8174;
6746   GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX = $8175;
6747   GL_TEXTURE_CLIPMAP_DEPTH_SGIX = $8176;
6748   GL_MAX_CLIPMAP_DEPTH_SGIX = $8177;
6749   GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX = $8178;
6750   GL_NEAREST_CLIPMAP_NEAREST_SGIX = $844D;
6751   GL_NEAREST_CLIPMAP_LINEAR_SGIX = $844E;
6752   GL_LINEAR_CLIPMAP_NEAREST_SGIX = $844F;
6753
6754   // GL_SGIX_convolution_accuracy
6755   GL_CONVOLUTION_HINT_SGIX = $8316;
6756
6757   // GL_SGIX_depth_texture
6758   GL_DEPTH_COMPONENT16_SGIX = $81A5;
6759   GL_DEPTH_COMPONENT24_SGIX = $81A6;
6760   GL_DEPTH_COMPONENT32_SGIX = $81A7;
6761
6762   // GL_SGIX_fog_offset
6763   GL_FOG_OFFSET_SGIX = $8198;
6764   GL_FOG_OFFSET_VALUE_SGIX = $8199;
6765
6766   // GL_SGIX_fog_scale
6767   GL_FOG_SCALE_SGIX = $81FC;
6768   GL_FOG_SCALE_VALUE_SGIX = $81FD;
6769
6770   // GL_SGIX_fragment_lighting
6771   GL_FRAGMENT_LIGHTING_SGIX = $8400;
6772   GL_FRAGMENT_COLOR_MATERIAL_SGIX = $8401;
6773   GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX = $8402;
6774   GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX = $8403;
6775   GL_MAX_FRAGMENT_LIGHTS_SGIX = $8404;
6776   GL_MAX_ACTIVE_LIGHTS_SGIX = $8405;
6777   GL_CURRENT_RASTER_NORMAL_SGIX = $8406;
6778   GL_LIGHT_ENV_MODE_SGIX = $8407;
6779   GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX = $8408;
6780   GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX = $8409;
6781   GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX = $840A;
6782   GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX = $840B;
6783   GL_FRAGMENT_LIGHT0_SGIX = $840C;
6784   GL_FRAGMENT_LIGHT1_SGIX = $840D;
6785   GL_FRAGMENT_LIGHT2_SGIX = $840E;
6786   GL_FRAGMENT_LIGHT3_SGIX = $840F;
6787   GL_FRAGMENT_LIGHT4_SGIX = $8410;
6788   GL_FRAGMENT_LIGHT5_SGIX = $8411;
6789   GL_FRAGMENT_LIGHT6_SGIX = $8412;
6790   GL_FRAGMENT_LIGHT7_SGIX = $8413;
6791
6792   // GL_SGIX_framezoom
6793   GL_FRAMEZOOM_SGIX = $818B;
6794   GL_FRAMEZOOM_FACTOR_SGIX = $818C;
6795   GL_MAX_FRAMEZOOM_FACTOR_SGIX = $818D;
6796
6797   // GL_SGIX_impact_pixel_texture
6798   GL_PIXEL_TEX_GEN_Q_CEILING_SGIX = $8184;
6799   GL_PIXEL_TEX_GEN_Q_ROUND_SGIX = $8185;
6800   GL_PIXEL_TEX_GEN_Q_FLOOR_SGIX = $8186;
6801   GL_PIXEL_TEX_GEN_ALPHA_REPLACE_SGIX = $8187;
6802   GL_PIXEL_TEX_GEN_ALPHA_NO_REPLACE_SGIX = $8188;
6803   GL_PIXEL_TEX_GEN_ALPHA_LS_SGIX = $8189;
6804   GL_PIXEL_TEX_GEN_ALPHA_MS_SGIX = $818A;
6805
6806   // GL_SGIX_instruments
6807   GL_INSTRUMENT_BUFFER_POINTER_SGIX = $8180;
6808   GL_INSTRUMENT_MEASUREMENTS_SGIX = $8181;
6809
6810   // GL_SGIX_interlace
6811   GL_INTERLACE_SGIX = $8094;
6812
6813   // GL_SGIX_ir_instrument1
6814   GL_IR_INSTRUMENT1_SGIX = $817F;
6815
6816   // GL_SGIX_list_priority
6817   GL_LIST_PRIORITY_SGIX = $8182;
6818
6819   // GL_SGIX_pixel_texture
6820   GL_PIXEL_TEX_GEN_SGIX = $8139;
6821   GL_PIXEL_TEX_GEN_MODE_SGIX = $832B;
6822
6823   // GL_SGIX_pixel_tiles
6824   GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX = $813E;
6825   GL_PIXEL_TILE_CACHE_INCREMENT_SGIX = $813F;
6826   GL_PIXEL_TILE_WIDTH_SGIX = $8140;
6827   GL_PIXEL_TILE_HEIGHT_SGIX = $8141;
6828   GL_PIXEL_TILE_GRID_WIDTH_SGIX = $8142;
6829   GL_PIXEL_TILE_GRID_HEIGHT_SGIX = $8143;
6830   GL_PIXEL_TILE_GRID_DEPTH_SGIX = $8144;
6831   GL_PIXEL_TILE_CACHE_SIZE_SGIX = $8145;
6832
6833   // GL_SGIX_polynomial_ffd
6834   GL_GEOMETRY_DEFORMATION_SGIX = $8194;
6835   GL_TEXTURE_DEFORMATION_SGIX = $8195;
6836   GL_DEFORMATIONS_MASK_SGIX = $8196;
6837   GL_MAX_DEFORMATION_ORDER_SGIX = $8197;
6838
6839   // GL_SGIX_reference_plane
6840   GL_REFERENCE_PLANE_SGIX = $817D;
6841   GL_REFERENCE_PLANE_EQUATION_SGIX = $817E;
6842
6843   // GL_SGIX_resample
6844   GL_PACK_RESAMPLE_SGIX = $842C;
6845   GL_UNPACK_RESAMPLE_SGIX = $842D;
6846   GL_RESAMPLE_REPLICATE_SGIX = $842E;
6847   GL_RESAMPLE_ZERO_FILL_SGIX = $842F;
6848   GL_RESAMPLE_DECIMATE_SGIX = $8430;
6849
6850   // GL_SGIX_scalebias_hint
6851   GL_SCALEBIAS_HINT_SGIX = $8322;
6852
6853   // GL_SGIX_shadow
6854   GL_TEXTURE_COMPARE_SGIX = $819A;
6855   GL_TEXTURE_COMPARE_OPERATOR_SGIX = $819B;
6856   GL_TEXTURE_LEQUAL_R_SGIX = $819C;
6857   GL_TEXTURE_GEQUAL_R_SGIX = $819D;
6858
6859   // GL_SGIX_shadow_ambient
6860   GL_SHADOW_AMBIENT_SGIX = $80BF;
6861
6862   // GL_SGIX_sprite
6863   GL_SPRITE_SGIX = $8148;
6864   GL_SPRITE_MODE_SGIX = $8149;
6865   GL_SPRITE_AXIS_SGIX = $814A;
6866   GL_SPRITE_TRANSLATION_SGIX = $814B;
6867   GL_SPRITE_AXIAL_SGIX = $814C;
6868   GL_SPRITE_OBJECT_ALIGNED_SGIX = $814D;
6869   GL_SPRITE_EYE_ALIGNED_SGIX = $814E;
6870
6871   // GL_SGIX_subsample
6872   GL_PACK_SUBSAMPLE_RATE_SGIX = $85A0;
6873   GL_UNPACK_SUBSAMPLE_RATE_SGIX = $85A1;
6874   GL_PIXEL_SUBSAMPLE_4444_SGIX = $85A2;
6875   GL_PIXEL_SUBSAMPLE_2424_SGIX = $85A3;
6876   GL_PIXEL_SUBSAMPLE_4242_SGIX = $85A4;
6877
6878   // GL_SGIX_texture_add_env
6879   GL_TEXTURE_ENV_BIAS_SGIX = $80BE;
6880
6881   // GL_SGIX_texture_coordinate_clamp
6882   GL_TEXTURE_MAX_CLAMP_S_SGIX = $8369;
6883   GL_TEXTURE_MAX_CLAMP_T_SGIX = $836A;
6884   GL_TEXTURE_MAX_CLAMP_R_SGIX = $836B;
6885
6886   // GL_SGIX_texture_lod_bias
6887   GL_TEXTURE_LOD_BIAS_S_SGIX = $818E;
6888   GL_TEXTURE_LOD_BIAS_T_SGIX = $818F;
6889   GL_TEXTURE_LOD_BIAS_R_SGIX = $8190;
6890
6891   // GL_SGIX_texture_multi_buffer
6892   GL_TEXTURE_MULTI_BUFFER_HINT_SGIX = $812E;
6893
6894   // GL_SGIX_texture_scale_bias
6895   GL_POST_TEXTURE_FILTER_BIAS_SGIX = $8179;
6896   GL_POST_TEXTURE_FILTER_SCALE_SGIX = $817A;
6897   GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX = $817B;
6898   GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX = $817C;
6899
6900   // GL_SGIX_vertex_preclip
6901   GL_VERTEX_PRECLIP_SGIX = $83EE;
6902   GL_VERTEX_PRECLIP_HINT_SGIX = $83EF;
6903
6904   // GL_SGIX_ycrcb
6905   GL_YCRCB_422_SGIX = $81BB;
6906   GL_YCRCB_444_SGIX = $81BC;
6907
6908   // GL_SGIX_ycrcba
6909   GL_YCRCB_SGIX = $8318;
6910   GL_YCRCBA_SGIX = $8319;
6911
6912   // GL_SGI_color_matrix
6913   GL_COLOR_MATRIX_SGI = $80B1;
6914   GL_COLOR_MATRIX_STACK_DEPTH_SGI = $80B2;
6915   GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI = $80B3;
6916   GL_POST_COLOR_MATRIX_RED_SCALE_SGI = $80B4;
6917   GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI = $80B5;
6918   GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI = $80B6;
6919   GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI = $80B7;
6920   GL_POST_COLOR_MATRIX_RED_BIAS_SGI = $80B8;
6921   GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI = $80B9;
6922   GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI = $80BA;
6923   GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI = $80BB;
6924
6925   // GL_SGI_color_table
6926   GL_COLOR_TABLE_SGI = $80D0;
6927   GL_POST_CONVOLUTION_COLOR_TABLE_SGI = $80D1;
6928   GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI = $80D2;
6929   GL_PROXY_COLOR_TABLE_SGI = $80D3;
6930   GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI = $80D4;
6931   GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI = $80D5;
6932   GL_COLOR_TABLE_SCALE_SGI = $80D6;
6933   GL_COLOR_TABLE_BIAS_SGI = $80D7;
6934   GL_COLOR_TABLE_FORMAT_SGI = $80D8;
6935   GL_COLOR_TABLE_WIDTH_SGI = $80D9;
6936   GL_COLOR_TABLE_RED_SIZE_SGI = $80DA;
6937   GL_COLOR_TABLE_GREEN_SIZE_SGI = $80DB;
6938   GL_COLOR_TABLE_BLUE_SIZE_SGI = $80DC;
6939   GL_COLOR_TABLE_ALPHA_SIZE_SGI = $80DD;
6940   GL_COLOR_TABLE_LUMINANCE_SIZE_SGI = $80DE;
6941   GL_COLOR_TABLE_INTENSITY_SIZE_SGI = $80DF;
6942
6943   // GL_SGI_depth_pass_instrument
6944   GL_DEPTH_PASS_INSTRUMENT_SGIX = $8310;
6945   GL_DEPTH_PASS_INSTRUMENT_COUNTERS_SGIX = $8311;
6946   GL_DEPTH_PASS_INSTRUMENT_MAX_SGIX = $8312;
6947
6948   // GL_SGI_texture_color_table
6949   GL_TEXTURE_COLOR_TABLE_SGI = $80BC;
6950   GL_PROXY_TEXTURE_COLOR_TABLE_SGI = $80BD;
6951
6952   // GL_SUNX_constant_data
6953   GL_UNPACK_CONSTANT_DATA_SUNX = $81D5;
6954   GL_TEXTURE_CONSTANT_DATA_SUNX = $81D6;
6955
6956   // GL_SUN_convolution_border_modes
6957   GL_WRAP_BORDER_SUN = $81D4;
6958
6959   // GL_SUN_global_alpha
6960   GL_GLOBAL_ALPHA_SUN = $81D9;
6961   GL_GLOBAL_ALPHA_FACTOR_SUN = $81DA;
6962
6963   // GL_SUN_mesh_array
6964   GL_QUAD_MESH_SUN = $8614;
6965   GL_TRIANGLE_MESH_SUN = $8615;
6966
6967   // GL_SUN_slice_accum
6968   GL_SLICE_ACCUM_SUN = $85CC;
6969
6970   // GL_SUN_triangle_list
6971   GL_RESTART_SUN = $0001;
6972   GL_REPLACE_MIDDLE_SUN = $0002;
6973   GL_REPLACE_OLDEST_SUN = $0003;
6974   GL_TRIANGLE_LIST_SUN = $81D7;
6975   GL_REPLACEMENT_CODE_SUN = $81D8;
6976   GL_REPLACEMENT_CODE_ARRAY_SUN = $85C0;
6977   GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN = $85C1;
6978   GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN = $85C2;
6979   GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN = $85C3;
6980   GL_R1UI_V3F_SUN = $85C4;
6981   GL_R1UI_C4UB_V3F_SUN = $85C5;
6982   GL_R1UI_C3F_V3F_SUN = $85C6;
6983   GL_R1UI_N3F_V3F_SUN = $85C7;
6984   GL_R1UI_C4F_N3F_V3F_SUN = $85C8;
6985   GL_R1UI_T2F_V3F_SUN = $85C9;
6986   GL_R1UI_T2F_N3F_V3F_SUN = $85CA;
6987   GL_R1UI_T2F_C4F_N3F_V3F_SUN = $85CB;
6988
6989   // GL_WIN_phong_shading
6990   GL_PHONG_WIN = $80EA;
6991   GL_PHONG_HINT_WIN = $80EB;
6992
6993   // GL_WIN_specular_fog
6994   GL_FOG_SPECULAR_TEXTURE_WIN = $80EC;
6995
6996   // GL_ARB_vertex_shader
6997   GL_VERTEX_SHADER_ARB = $8B31;
6998   GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB = $8B4A;
6999   GL_MAX_VARYING_FLOATS_ARB = $8B4B;
7000   GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB = $8B4C;
7001   GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB = $8B4D;
7002   GL_OBJECT_ACTIVE_ATTRIBUTES_ARB = $8B89;
7003   GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB = $8B8A;
7004
7005   // GL_KHR_blend_equation_advanced
7006   GL_MULTIPLY_KHR = $9294;
7007   GL_SCREEN_KHR = $9295;
7008   GL_OVERLAY_KHR = $9296;
7009   GL_DARKEN_KHR = $9297;
7010   GL_LIGHTEN_KHR = $9298;
7011   GL_COLORDODGE_KHR = $9299;
7012   GL_COLORBURN_KHR = $929A;
7013   GL_HARDLIGHT_KHR = $929B;
7014   GL_SOFTLIGHT_KHR = $929C;
7015   GL_DIFFERENCE_KHR = $929E;
7016   GL_EXCLUSION_KHR = $92A0;
7017   GL_HSL_HUE_KHR = $92AD;
7018   GL_HSL_SATURATION_KHR = $92AE;
7019   GL_HSL_COLOR_KHR = $92AF;
7020   GL_HSL_LUMINOSITY_KHR = $92B0;
7021
7022   // GL_KHR_blend_equation_advanced_coherent
7023   GL_BLEND_ADVANCED_COHERENT_KHR = $9285;
7024
7025   // GL_KHR_robustness
7026   GL_CONTEXT_ROBUST_ACCESS = $90F3;
7027
7028   // GL_ARB_fragment_shader
7029   GL_FRAGMENT_SHADER_ARB = $8B30;
7030   GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB = $8B49; // 1.4
7031   GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB = $8B8B; // 1.4
7032
7033   // GL_ARB_occlusion_query
7034   GL_SAMPLES_PASSED_ARB = $8914;
7035   GL_QUERY_COUNTER_BITS_ARB = $8864;
7036   GL_CURRENT_QUERY_ARB = $8865;
7037   GL_QUERY_RESULT_ARB = $8866;
7038   GL_QUERY_RESULT_AVAILABLE_ARB = $8867;
7039
7040   // GL_ARB_pipeline_statistics_query
7041   GL_VERTICES_SUBMITTED_ARB         = $82EE;
7042   GL_PRIMITIVES_SUBMITTED_ARB       = $82EF;
7043   GL_VERTEX_SHADER_INVOCATIONS_ARB  = $82F0;
7044   GL_TESS_CONTROL_SHADER_PATCHES_ARB = $82F1;
7045   GL_TESS_EVALUATION_SHADER_INVOCATIONS_ARB = $82F2;
7046   GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED_ARB = $82F3;
7047   GL_FRAGMENT_SHADER_INVOCATIONS_ARB = $82F4;
7048   GL_COMPUTE_SHADER_INVOCATIONS_ARB = $82F5;
7049   GL_CLIPPING_INPUT_PRIMITIVES_ARB  = $82F6;
7050   GL_CLIPPING_OUTPUT_PRIMITIVES_ARB = $82F7;
7051
7052   // GL_ARB_point_sprite
7053   GL_POINT_SPRITE_ARB = $8861;
7054   GL_COORD_REPLACE_ARB = $8862;
7055
7056   // GL_ARB_shading_language_100
7057   GL_SHADING_LANGUAGE_VERSION_ARB = $8B8C; // 1.4
7058
7059   // GL_ARB_shader_objects
7060   GL_PROGRAM_OBJECT_ARB = $8B40;
7061
7062   GL_OBJECT_TYPE_ARB = $8B4E;
7063   GL_OBJECT_SUBTYPE_ARB = $8B4F;
7064   GL_OBJECT_DELETE_STATUS_ARB = $8B80;
7065   GL_OBJECT_COMPILE_STATUS_ARB = $8B81;
7066   GL_OBJECT_LINK_STATUS_ARB = $8B82;
7067   GL_OBJECT_VALIDATE_STATUS_ARB = $8B83;
7068   GL_OBJECT_INFO_LOG_LENGTH_ARB = $8B84;
7069   GL_OBJECT_ATTACHED_OBJECTS_ARB = $8B85;
7070   GL_OBJECT_ACTIVE_UNIFORMS_ARB = $8B86;
7071   GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB = $8B87;
7072   GL_OBJECT_SHADER_SOURCE_LENGTH_ARB = $8B88;
7073
7074   GL_SHADER_OBJECT_ARB = $8B48;
7075
7076   GL_FLOAT_VEC2_ARB = $8B50;
7077   GL_FLOAT_VEC3_ARB = $8B51;
7078   GL_FLOAT_VEC4_ARB = $8B52;
7079   GL_INT_VEC2_ARB = $8B53;
7080   GL_INT_VEC3_ARB = $8B54;
7081   GL_INT_VEC4_ARB = $8B55;
7082   GL_BOOL_ARB = $8B56;
7083   GL_BOOL_VEC2_ARB = $8B57;
7084   GL_BOOL_VEC3_ARB = $8B58;
7085   GL_BOOL_VEC4_ARB = $8B59;
7086   GL_FLOAT_MAT2_ARB = $8B5A;
7087   GL_FLOAT_MAT3_ARB = $8B5B;
7088   GL_FLOAT_MAT4_ARB = $8B5C;
7089   GL_SAMPLER_1D_ARB = $8B5D;
7090   GL_SAMPLER_2D_ARB = $8B5E;
7091   GL_SAMPLER_3D_ARB = $8B5F;
7092   GL_SAMPLER_CUBE_ARB = $8B60;
7093   GL_SAMPLER_1D_SHADOW_ARB = $8B61;
7094   GL_SAMPLER_2D_SHADOW_ARB = $8B62;
7095   GL_SAMPLER_2D_RECT_ARB = $8B63;
7096   GL_SAMPLER_2D_RECT_SHADOW_ARB = $8B64;
7097
7098   // WGL_3DFX_multisample
7099   WGL_SAMPLE_BUFFERS_3DFX = $2060;
7100   WGL_SAMPLES_3DFX = $2061;
7101
7102   // WGL_ARB_buffer_region
7103   WGL_FRONT_COLOR_BUFFER_BIT_ARB = $00000001;
7104   WGL_BACK_COLOR_BUFFER_BIT_ARB = $00000002;
7105   WGL_DEPTH_BUFFER_BIT_ARB = $00000004;
7106   WGL_STENCIL_BUFFER_BIT_ARB = $00000008;
7107
7108   // WGL_ARB_context_flush_control
7109   WGL_CONTEXT_RELEASE_BEHAVIOR_ARB = $2097;
7110   WGL_CONTEXT_RELEASE_BEHAVIOR_NONE_ARB = 0;
7111   WGL_CONTEXT_RELEASE_BEHAVIOR_FLUSH_ARB = $2098;
7112
7113   // WGL_ARB_make_current_read
7114   ERROR_INVALID_PIXEL_TYPE_ARB = $2043;
7115   ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB = $2054;
7116
7117   // WGL_ARB_multisample
7118   WGL_SAMPLE_BUFFERS_ARB = $2041;
7119   WGL_SAMPLES_ARB = $2042;
7120
7121   // WGL_ARB_pbuffer
7122   WGL_DRAW_TO_PBUFFER_ARB = $202D;
7123   WGL_MAX_PBUFFER_PIXELS_ARB = $202E;
7124   WGL_MAX_PBUFFER_WIDTH_ARB = $202F;
7125   WGL_MAX_PBUFFER_HEIGHT_ARB = $2030;
7126   WGL_PBUFFER_LARGEST_ARB = $2033;
7127   WGL_PBUFFER_WIDTH_ARB = $2034;
7128   WGL_PBUFFER_HEIGHT_ARB = $2035;
7129   WGL_PBUFFER_LOST_ARB = $2036;
7130
7131   // WGL_ARB_pixel_format
7132   WGL_NUMBER_PIXEL_FORMATS_ARB = $2000;
7133   WGL_DRAW_TO_WINDOW_ARB = $2001;
7134   WGL_DRAW_TO_BITMAP_ARB = $2002;
7135   WGL_ACCELERATION_ARB = $2003;
7136   WGL_NEED_PALETTE_ARB = $2004;
7137   WGL_NEED_SYSTEM_PALETTE_ARB = $2005;
7138   WGL_SWAP_LAYER_BUFFERS_ARB = $2006;
7139   WGL_SWAP_METHOD_ARB = $2007;
7140   WGL_NUMBER_OVERLAYS_ARB = $2008;
7141   WGL_NUMBER_UNDERLAYS_ARB = $2009;
7142   WGL_TRANSPARENT_ARB = $200A;
7143   WGL_TRANSPARENT_RED_VALUE_ARB = $2037;
7144   WGL_TRANSPARENT_GREEN_VALUE_ARB = $2038;
7145   WGL_TRANSPARENT_BLUE_VALUE_ARB = $2039;
7146   WGL_TRANSPARENT_ALPHA_VALUE_ARB = $203A;
7147   WGL_TRANSPARENT_INDEX_VALUE_ARB = $203B;
7148   WGL_SHARE_DEPTH_ARB = $200C;
7149   WGL_SHARE_STENCIL_ARB = $200D;
7150   WGL_SHARE_ACCUM_ARB = $200E;
7151   WGL_SUPPORT_GDI_ARB = $200F;
7152   WGL_SUPPORT_OPENGL_ARB = $2010;
7153   WGL_DOUBLE_BUFFER_ARB = $2011;
7154   WGL_STEREO_ARB = $2012;
7155   WGL_PIXEL_TYPE_ARB = $2013;
7156   WGL_COLOR_BITS_ARB = $2014;
7157   WGL_RED_BITS_ARB = $2015;
7158   WGL_RED_SHIFT_ARB = $2016;
7159   WGL_GREEN_BITS_ARB = $2017;
7160   WGL_GREEN_SHIFT_ARB = $2018;
7161   WGL_BLUE_BITS_ARB = $2019;
7162   WGL_BLUE_SHIFT_ARB = $201A;
7163   WGL_ALPHA_BITS_ARB = $201B;
7164   WGL_ALPHA_SHIFT_ARB = $201C;
7165   WGL_ACCUM_BITS_ARB = $201D;
7166   WGL_ACCUM_RED_BITS_ARB = $201E;
7167   WGL_ACCUM_GREEN_BITS_ARB = $201F;
7168   WGL_ACCUM_BLUE_BITS_ARB = $2020;
7169   WGL_ACCUM_ALPHA_BITS_ARB = $2021;
7170   WGL_DEPTH_BITS_ARB = $2022;
7171   WGL_STENCIL_BITS_ARB = $2023;
7172   WGL_AUX_BUFFERS_ARB = $2024;
7173   WGL_NO_ACCELERATION_ARB = $2025;
7174   WGL_GENERIC_ACCELERATION_ARB = $2026;
7175   WGL_FULL_ACCELERATION_ARB = $2027;
7176   WGL_SWAP_EXCHANGE_ARB = $2028;
7177   WGL_SWAP_COPY_ARB = $2029;
7178   WGL_SWAP_UNDEFINED_ARB = $202A;
7179   WGL_TYPE_RGBA_ARB = $202B;
7180   WGL_TYPE_COLORINDEX_ARB = $202C;
7181
7182   // WGL_ARB_pixel_format_float
7183   WGL_RGBA_FLOAT_MODE_ARB = $8820;
7184   WGL_CLAMP_VERTEX_COLOR_ARB = $891A;
7185   WGL_CLAMP_FRAGMENT_COLOR_ARB = $891B;
7186   WGL_CLAMP_READ_COLOR_ARB = $891C;
7187   WGL_FIXED_ONLY_ARB = $891D;
7188
7189   // WGL_ARB_render_texture
7190   WGL_BIND_TO_TEXTURE_RGB_ARB = $2070;
7191   WGL_BIND_TO_TEXTURE_RGBA_ARB = $2071;
7192   WGL_TEXTURE_FORMAT_ARB = $2072;
7193   WGL_TEXTURE_TARGET_ARB = $2073;
7194   WGL_MIPMAP_TEXTURE_ARB = $2074;
7195   WGL_TEXTURE_RGB_ARB = $2075;
7196   WGL_TEXTURE_RGBA_ARB = $2076;
7197   WGL_NO_TEXTURE_ARB = $2077;
7198   WGL_TEXTURE_CUBE_MAP_ARB = $2078;
7199   WGL_TEXTURE_1D_ARB = $2079;
7200   WGL_TEXTURE_2D_ARB = $207A;
7201   WGL_MIPMAP_LEVEL_ARB = $207B;
7202   WGL_CUBE_MAP_FACE_ARB = $207C;
7203   WGL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB = $207D;
7204   WGL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB = $207E;
7205   WGL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB = $207F;
7206   WGL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB = $2080;
7207   WGL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB = $2081;
7208   WGL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB = $2082;
7209   WGL_FRONT_LEFT_ARB = $2083;
7210   WGL_FRONT_RIGHT_ARB = $2084;
7211   WGL_BACK_LEFT_ARB = $2085;
7212   WGL_BACK_RIGHT_ARB = $2086;
7213   WGL_AUX0_ARB = $2087;
7214   WGL_AUX1_ARB = $2088;
7215   WGL_AUX2_ARB = $2089;
7216   WGL_AUX3_ARB = $208A;
7217   WGL_AUX4_ARB = $208B;
7218   WGL_AUX5_ARB = $208C;
7219   WGL_AUX6_ARB = $208D;
7220   WGL_AUX7_ARB = $208E;
7221   WGL_AUX8_ARB = $208F;
7222   WGL_AUX9_ARB = $2090;
7223
7224   // WGL_ARB_robustness_application_isolation
7225   WGL_CONTEXT_RESET_ISOLATION_BIT_ARB = $00000008;
7226
7227   // WGL_ARB_create_context
7228   WGL_CONTEXT_DEBUG_BIT_ARB = $00000001;
7229   WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB = $00000002;
7230   WGL_CONTEXT_MAJOR_VERSION_ARB = $2091;
7231   WGL_CONTEXT_MINOR_VERSION_ARB = $2092;
7232   WGL_CONTEXT_LAYER_PLANE_ARB = $2093;
7233   WGL_CONTEXT_FLAGS_ARB = $2094;
7234   ERROR_INVALID_VERSION_ARB = $2095;
7235
7236   // WGL_ARB_create_context_profile
7237   WGL_CONTEXT_PROFILE_MASK_ARB = $9126;
7238   WGL_CONTEXT_CORE_PROFILE_BIT_ARB = $00000001;
7239   WGL_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB = $00000002;
7240   ERROR_INVALID_PROFILE_ARB = $2096;
7241
7242   // WGL_ARB_framebuffer_sRGB
7243   WGL_FRAMEBUFFER_SRGB_CAPABLE_ARB = $20A9;
7244
7245   // WGL_ARB_create_context_robustness
7246   WGL_CONTEXT_ROBUST_ACCESS_BIT_ARB = $00000004;
7247   WGL_LOSE_CONTEXT_ON_RESET_ARB = $8252;
7248   WGL_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB = $8256;
7249   WGL_NO_RESET_NOTIFICATION_ARB = $8261;
7250
7251   // WGL_ATI_pixel_format_float
7252   WGL_TYPE_RGBA_FLOAT_ATI = $21A0;
7253   GL_TYPE_RGBA_FLOAT_ATI = $8820;
7254   GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI = $8835;
7255
7256   // WGL_AMD_gpu_association
7257   WGL_GPU_VENDOR_AMD = $1F00;
7258   WGL_GPU_RENDERER_STRING_AMD = $1F01;
7259   WGL_GPU_OPENGL_VERSION_STRING_AMD = $1F02;
7260   WGL_GPU_FASTEST_TARGET_GPUS_AMD = $21A2;
7261   WGL_GPU_RAM_AMD = $21A3;
7262   WGL_GPU_CLOCK_AMD = $21A4;
7263   WGL_GPU_NUM_PIPES_AMD = $21A5;
7264   WGL_GPU_NUM_SIMD_AMD = $21A6;
7265   WGL_GPU_NUM_RB_AMD = $21A7;
7266   WGL_GPU_NUM_SPI_AMD = $21A8;
7267
7268   // WGL_EXT_depth_float
7269   WGL_DEPTH_FLOAT_EXT = $2040;
7270
7271   // WGL_EXT_make_current_read
7272   ERROR_INVALID_PIXEL_TYPE_EXT = $2043;
7273
7274   // WGL_EXT_multisample
7275   WGL_SAMPLE_BUFFERS_EXT = $2041;
7276   WGL_SAMPLES_EXT = $2042;
7277
7278   // WGL_EXT_pbuffer
7279   WGL_DRAW_TO_PBUFFER_EXT = $202D;
7280   WGL_MAX_PBUFFER_PIXELS_EXT = $202E;
7281   WGL_MAX_PBUFFER_WIDTH_EXT = $202F;
7282   WGL_MAX_PBUFFER_HEIGHT_EXT = $2030;
7283   WGL_OPTIMAL_PBUFFER_WIDTH_EXT = $2031;
7284   WGL_OPTIMAL_PBUFFER_HEIGHT_EXT = $2032;
7285   WGL_PBUFFER_LARGEST_EXT = $2033;
7286   WGL_PBUFFER_WIDTH_EXT = $2034;
7287   WGL_PBUFFER_HEIGHT_EXT = $2035;
7288
7289   // WGL_EXT_pixel_format
7290   WGL_NUMBER_PIXEL_FORMATS_EXT = $2000;
7291   WGL_DRAW_TO_WINDOW_EXT = $2001;
7292   WGL_DRAW_TO_BITMAP_EXT = $2002;
7293   WGL_ACCELERATION_EXT = $2003;
7294   WGL_NEED_PALETTE_EXT = $2004;
7295   WGL_NEED_SYSTEM_PALETTE_EXT = $2005;
7296   WGL_SWAP_LAYER_BUFFERS_EXT = $2006;
7297   WGL_SWAP_METHOD_EXT = $2007;
7298   WGL_NUMBER_OVERLAYS_EXT = $2008;
7299   WGL_NUMBER_UNDERLAYS_EXT = $2009;
7300   WGL_TRANSPARENT_EXT = $200A;
7301   WGL_TRANSPARENT_VALUE_EXT = $200B;
7302   WGL_SHARE_DEPTH_EXT = $200C;
7303   WGL_SHARE_STENCIL_EXT = $200D;
7304   WGL_SHARE_ACCUM_EXT = $200E;
7305   WGL_SUPPORT_GDI_EXT = $200F;
7306   WGL_SUPPORT_OPENGL_EXT = $2010;
7307   WGL_DOUBLE_BUFFER_EXT = $2011;
7308   WGL_STEREO_EXT = $2012;
7309   WGL_PIXEL_TYPE_EXT = $2013;
7310   WGL_COLOR_BITS_EXT = $2014;
7311   WGL_RED_BITS_EXT = $2015;
7312   WGL_RED_SHIFT_EXT = $2016;
7313   WGL_GREEN_BITS_EXT = $2017;
7314   WGL_GREEN_SHIFT_EXT = $2018;
7315   WGL_BLUE_BITS_EXT = $2019;
7316   WGL_BLUE_SHIFT_EXT = $201A;
7317   WGL_ALPHA_BITS_EXT = $201B;
7318   WGL_ALPHA_SHIFT_EXT = $201C;
7319   WGL_ACCUM_BITS_EXT = $201D;
7320   WGL_ACCUM_RED_BITS_EXT = $201E;
7321   WGL_ACCUM_GREEN_BITS_EXT = $201F;
7322   WGL_ACCUM_BLUE_BITS_EXT = $2020;
7323   WGL_ACCUM_ALPHA_BITS_EXT = $2021;
7324   WGL_DEPTH_BITS_EXT = $2022;
7325   WGL_STENCIL_BITS_EXT = $2023;
7326   WGL_AUX_BUFFERS_EXT = $2024;
7327   WGL_NO_ACCELERATION_EXT = $2025;
7328   WGL_GENERIC_ACCELERATION_EXT = $2026;
7329   WGL_FULL_ACCELERATION_EXT = $2027;
7330   WGL_SWAP_EXCHANGE_EXT = $2028;
7331   WGL_SWAP_COPY_EXT = $2029;
7332   WGL_SWAP_UNDEFINED_EXT = $202A;
7333   WGL_TYPE_RGBA_EXT = $202B;
7334   WGL_TYPE_COLORINDEX_EXT = $202C;
7335
7336   // WGL_I3D_digital_video_control
7337   WGL_DIGITAL_VIDEO_CURSOR_ALPHA_FRAMEBUFFER_I3D = $2050;
7338   WGL_DIGITAL_VIDEO_CURSOR_ALPHA_VALUE_I3D = $2051;
7339   WGL_DIGITAL_VIDEO_CURSOR_INCLUDED_I3D = $2052;
7340   WGL_DIGITAL_VIDEO_GAMMA_CORRECTED_I3D = $2053;
7341
7342   // WGL_I3D_gamma
7343   WGL_GAMMA_TABLE_SIZE_I3D = $204E;
7344   WGL_GAMMA_EXCLUDE_DESKTOP_I3D = $204F;
7345
7346   // WGL_I3D_genlock
7347   WGL_GENLOCK_SOURCE_MULTIVIEW_I3D = $2044;
7348   WGL_GENLOCK_SOURCE_EXTENAL_SYNC_I3D = $2045;
7349   WGL_GENLOCK_SOURCE_EXTENAL_FIELD_I3D = $2046;
7350   WGL_GENLOCK_SOURCE_EXTENAL_TTL_I3D = $2047;
7351   WGL_GENLOCK_SOURCE_DIGITAL_SYNC_I3D = $2048;
7352   WGL_GENLOCK_SOURCE_DIGITAL_FIELD_I3D = $2049;
7353   WGL_GENLOCK_SOURCE_EDGE_FALLING_I3D = $204A;
7354   WGL_GENLOCK_SOURCE_EDGE_RISING_I3D = $204B;
7355   WGL_GENLOCK_SOURCE_EDGE_BOTH_I3D = $204C;
7356
7357   // WGL_I3D_image_buffer
7358   WGL_IMAGE_BUFFER_MIN_ACCESS_I3D = $00000001;
7359   WGL_IMAGE_BUFFER_LOCK_I3D = $00000002;
7360
7361   // WGL_NV_float_buffer
7362   WGL_FLOAT_COMPONENTS_NV = $20B0;
7363   WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_R_NV = $20B1;
7364   WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RG_NV = $20B2;
7365   WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGB_NV = $20B3;
7366   WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGBA_NV = $20B4;
7367   WGL_TEXTURE_FLOAT_R_NV = $20B5;
7368   WGL_TEXTURE_FLOAT_RG_NV = $20B6;
7369   WGL_TEXTURE_FLOAT_RGB_NV = $20B7;
7370   WGL_TEXTURE_FLOAT_RGBA_NV = $20B8;
7371
7372   // WGL_NV_render_depth_texture
7373   WGL_BIND_TO_TEXTURE_DEPTH_NV = $20A3;
7374   WGL_BIND_TO_TEXTURE_RECTANGLE_DEPTH_NV = $20A4;
7375   WGL_DEPTH_TEXTURE_FORMAT_NV = $20A5;
7376   WGL_TEXTURE_DEPTH_COMPONENT_NV = $20A6;
7377   WGL_DEPTH_COMPONENT_NV = $20A7;
7378
7379   // WGL_NV_render_texture_rectangle
7380   WGL_BIND_TO_TEXTURE_RECTANGLE_RGB_NV = $20A0;
7381   WGL_BIND_TO_TEXTURE_RECTANGLE_RGBA_NV = $20A1;
7382   WGL_TEXTURE_RECTANGLE_NV = $20A2;
7383
7384   // WGL_NV_present_video
7385   WGL_NUM_VIDEO_SLOTS_NV = $20F0;
7386
7387   // WGL_NV_video_output
7388   WGL_BIND_TO_VIDEO_RGB_NV = $20C0;
7389   WGL_BIND_TO_VIDEO_RGBA_NV = $20C1;
7390   WGL_BIND_TO_VIDEO_RGB_AND_DEPTH_NV = $20C2;
7391   WGL_VIDEO_OUT_COLOR_NV = $20C3;
7392   WGL_VIDEO_OUT_ALPHA_NV = $20C4;
7393   WGL_VIDEO_OUT_DEPTH_NV = $20C5;
7394   WGL_VIDEO_OUT_COLOR_AND_ALPHA_NV = $20C6;
7395   WGL_VIDEO_OUT_COLOR_AND_DEPTH_NV = $20C7;
7396   WGL_VIDEO_OUT_FRAME = $20C8;
7397   WGL_VIDEO_OUT_FIELD_1 = $20C9;
7398   WGL_VIDEO_OUT_FIELD_2 = $20CA;
7399   WGL_VIDEO_OUT_STACKED_FIELDS_1_2 = $20CB;
7400   WGL_VIDEO_OUT_STACKED_FIELDS_2_1 = $20CC;
7401
7402   // WGL_NV_gpu_affinity
7403   WGL_ERROR_INCOMPATIBLE_AFFINITY_MASKS_NV = $20D0;
7404   WGL_ERROR_MISSING_AFFINITY_MASK_NV = $20D1;
7405
7406   // WGL_NV_video_capture
7407   WGL_UNIQUE_ID_NV = $20CE;
7408   WGL_NUM_VIDEO_CAPTURE_SLOTS_NV = $20CF;
7409
7410   // WGL_NV_multisample_coverage
7411   WGL_COVERAGE_SAMPLES_NV = $2042;
7412   WGL_COLOR_SAMPLES_NV = $20B9;
7413
7414   // WGL_EXT_create_context_es2_profile
7415   WGL_CONTEXT_ES2_PROFILE_BIT_EXT = $00000004;
7416
7417   // WGL_NV_DX_interop
7418   WGL_ACCESS_READ_ONLY_NV        = $00000000;
7419   WGL_ACCESS_READ_WRITE_NV       = $00000001;
7420   WGL_ACCESS_WRITE_DISCARD_NV    = $00000002;
7421
7422   // WIN_draw_range_elements
7423   GL_MAX_ELEMENTS_VERTICES_WIN = $80E8;
7424   GL_MAX_ELEMENTS_INDICES_WIN = $80E9;
7425
7426   // GLX 1.1 and later:
7427   GLX_VENDOR = 1;
7428   GLX_VERSION = 2;
7429   GLX_EXTENSIONS = 3;
7430
7431   GLX_USE_GL = 1;
7432   GLX_BUFFER_SIZE = 2;
7433   GLX_LEVEL = 3;
7434   GLX_RGBA = 4;
7435   GLX_DOUBLEBUFFER = 5;
7436   GLX_STEREO = 6;
7437   GLX_AUX_BUFFERS = 7;
7438   GLX_RED_SIZE = 8;
7439   GLX_GREEN_SIZE = 9;
7440   GLX_BLUE_SIZE = 10;
7441   GLX_ALPHA_SIZE = 11;
7442   GLX_DEPTH_SIZE = 12;
7443   GLX_STENCIL_SIZE = 13;
7444   GLX_ACCUM_RED_SIZE = 14;
7445   GLX_ACCUM_GREEN_SIZE = 15;
7446   GLX_ACCUM_BLUE_SIZE = 16;
7447   GLX_ACCUM_ALPHA_SIZE = 17;
7448
7449   // GLX_VERSION_1_3
7450   GLX_WINDOW_BIT = $00000001;
7451   GLX_PIXMAP_BIT = $00000002;
7452   GLX_PBUFFER_BIT = $00000004;
7453   GLX_RGBA_BIT = $00000001;
7454   GLX_COLOR_INDEX_BIT = $00000002;
7455   GLX_PBUFFER_CLOBBER_MASK = $08000000;
7456   GLX_FRONT_LEFT_BUFFER_BIT = $00000001;
7457   GLX_FRONT_RIGHT_BUFFER_BIT = $00000002;
7458   GLX_BACK_LEFT_BUFFER_BIT = $00000004;
7459   GLX_BACK_RIGHT_BUFFER_BIT = $00000008;
7460   GLX_AUX_BUFFERS_BIT = $00000010;
7461   GLX_DEPTH_BUFFER_BIT = $00000020;
7462   GLX_STENCIL_BUFFER_BIT = $00000040;
7463   GLX_ACCUM_BUFFER_BIT = $00000080;
7464   GLX_CONFIG_CAVEAT = $20;
7465   GLX_X_VISUAL_TYPE = $22;
7466   GLX_TRANSPARENT_TYPE = $23;
7467   GLX_TRANSPARENT_INDEX_VALUE = $24;
7468   GLX_TRANSPARENT_RED_VALUE = $25;
7469   GLX_TRANSPARENT_GREEN_VALUE = $26;
7470   GLX_TRANSPARENT_BLUE_VALUE = $27;
7471   GLX_TRANSPARENT_ALPHA_VALUE = $28;
7472   GLX_DONT_CARE = $FFFFFFFF;
7473   GLX_NONE = $8000;
7474   GLX_SLOW_CONFIG = $8001;
7475   GLX_TRUE_COLOR = $8002;
7476   GLX_DIRECT_COLOR = $8003;
7477   GLX_PSEUDO_COLOR = $8004;
7478   GLX_STATIC_COLOR = $8005;
7479   GLX_GRAY_SCALE = $8006;
7480   GLX_STATIC_GRAY = $8007;
7481   GLX_TRANSPARENT_RGB = $8008;
7482   GLX_TRANSPARENT_INDEX = $8009;
7483   GLX_VISUAL_ID = $800B;
7484   GLX_SCREEN = $800C;
7485   GLX_NON_CONFORMANT_CONFIG = $800D;
7486   GLX_DRAWABLE_TYPE = $8010;
7487   GLX_RENDER_TYPE = $8011;
7488   GLX_X_RENDERABLE = $8012;
7489   GLX_FBCONFIG_ID = $8013;
7490   GLX_RGBA_TYPE = $8014;
7491   GLX_COLOR_INDEX_TYPE = $8015;
7492   GLX_MAX_PBUFFER_WIDTH = $8016;
7493   GLX_MAX_PBUFFER_HEIGHT = $8017;
7494   GLX_MAX_PBUFFER_PIXELS = $8018;
7495   GLX_PRESERVED_CONTENTS = $801B;
7496   GLX_LARGEST_PBUFFER = $801C;
7497   GLX_WIDTH = $801D;
7498   GLX_HEIGHT = $801E;
7499   GLX_EVENT_MASK = $801F;
7500   GLX_DAMAGED = $8020;
7501   GLX_SAVED = $8021;
7502   GLX_WINDOW = $8022;
7503   GLX_PBUFFER = $8023;
7504   GLX_PBUFFER_HEIGHT = $8040;
7505   GLX_PBUFFER_WIDTH = $8041;
7506
7507   // GLX_VERSION_1_4
7508   GLX_SAMPLE_BUFFERS = 100000;
7509   GLX_SAMPLES = 100001;
7510
7511   // GLX_ARB_multisample
7512   GLX_SAMPLE_BUFFERS_ARB = 100000;
7513   GLX_SAMPLES_ARB = 100001;
7514
7515   // GLX_ARB_robustness_application_isolation
7516   GLX_CONTEXT_RESET_ISOLATION_BIT_ARB = $00000008;
7517
7518   // GLX_ARB_fbconfig_float
7519   GLX_RGBA_FLOAT_TYPE_ARB = $20B9;
7520   GLX_RGBA_FLOAT_BIT_ARB = $00000004;
7521
7522   // GLX_ARB_context_flush_control
7523   GLX_CONTEXT_RELEASE_BEHAVIOR_ARB = $2097;
7524   GLX_CONTEXT_RELEASE_BEHAVIOR_NONE_ARB = 0;
7525   GLX_CONTEXT_RELEASE_BEHAVIOR_FLUSH_ARB = $2098;
7526
7527   // GLX_ARB_create_context
7528   GLX_CONTEXT_DEBUG_BIT_ARB = $00000001;
7529   GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB = $00000002;
7530   GLX_CONTEXT_MAJOR_VERSION_ARB = $2091;
7531   GLX_CONTEXT_MINOR_VERSION_ARB = $2092;
7532   GLX_CONTEXT_FLAGS_ARB = $2094;
7533
7534   // GLX_ARB_create_context_profile
7535   GLX_CONTEXT_CORE_PROFILE_BIT_ARB = $00000001;
7536   GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB = $00000002;
7537   GLX_CONTEXT_PROFILE_MASK_ARB = $9126;
7538
7539   // GLX_ARB_vertex_buffer_object
7540   GLX_CONTEXT_ALLOW_BUFFER_BYTE_ORDER_MISMATCH_ARB = $2095;
7541
7542   // GLX_ARB_framebuffer_sRGB
7543   GLX_FRAMEBUFFER_SRGB_CAPABLE_ARB = $20B2;
7544
7545   // GLX_ARB_create_context_robustness
7546   GLX_CONTEXT_ROBUST_ACCESS_BIT_ARB = $00000004;
7547   GLX_LOSE_CONTEXT_ON_RESET_ARB = $8252;
7548   GLX_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB = $8256;
7549   GLX_NO_RESET_NOTIFICATION_ARB = $8261;
7550
7551   // GLX_EXT_visual_info
7552   GLX_X_VISUAL_TYPE_EXT = $22;
7553   GLX_TRANSPARENT_TYPE_EXT = $23;
7554   GLX_TRANSPARENT_INDEX_VALUE_EXT = $24;
7555   GLX_TRANSPARENT_RED_VALUE_EXT = $25;
7556   GLX_TRANSPARENT_GREEN_VALUE_EXT = $26;
7557   GLX_TRANSPARENT_BLUE_VALUE_EXT = $27;
7558   GLX_TRANSPARENT_ALPHA_VALUE_EXT = $28;
7559   GLX_NONE_EXT = $8000;
7560   GLX_TRUE_COLOR_EXT = $8002;
7561   GLX_DIRECT_COLOR_EXT = $8003;
7562   GLX_PSEUDO_COLOR_EXT = $8004;
7563   GLX_STATIC_COLOR_EXT = $8005;
7564   GLX_GRAY_SCALE_EXT = $8006;
7565   GLX_STATIC_GRAY_EXT = $8007;
7566   GLX_TRANSPARENT_RGB_EXT = $8008;
7567   GLX_TRANSPARENT_INDEX_EXT = $8009;
7568
7569   // GLX_EXT_visual_rating
7570   GLX_VISUAL_CAVEAT_EXT = $20;
7571   GLX_SLOW_VISUAL_EXT = $8001;
7572   GLX_NON_CONFORMANT_VISUAL_EXT = $800D;
7573   (* reuse GLX_NONE_EXT *)
7574
7575   // GLX_EXT_import_context
7576   GLX_SHARE_CONTEXT_EXT = $800A;
7577   GLX_VISUAL_ID_EXT = $800B;
7578   GLX_SCREEN_EXT = $800C;
7579
7580   // GLX_EXT_fbconfig_packed_float
7581 //  GLX_RGBA_UNSIGNED_FLOAT_TYPE_EXT = $20B1;
7582 //  GLX_RGBA_UNSIGNED_FLOAT_BIT_EXT = $00000008;
7583
7584   // GLX_EXT_framebuffer_sRGB
7585 //  GLX_FRAMEBUFFER_SRGB_CAPABLE_EXT = $20B2;
7586
7587   // GLX_EXT_texture_from_pixmap
7588   GLX_TEXTURE_1D_BIT_EXT = $00000001;
7589   GLX_TEXTURE_2D_BIT_EXT = $00000002;
7590   GLX_TEXTURE_RECTANGLE_BIT_EXT = $00000004;
7591   GLX_BIND_TO_TEXTURE_RGB_EXT = $20D0;
7592   GLX_BIND_TO_TEXTURE_RGBA_EXT = $20D1;
7593   GLX_BIND_TO_MIPMAP_TEXTURE_EXT = $20D2;
7594   GLX_BIND_TO_TEXTURE_TARGETS_EXT = $20D3;
7595   GLX_Y_INVERTED_EXT = $20D4;
7596   GLX_TEXTURE_FORMAT_EXT = $20D5;
7597   GLX_TEXTURE_TARGET_EXT = $20D6;
7598   GLX_MIPMAP_TEXTURE_EXT = $20D7;
7599   GLX_TEXTURE_FORMAT_NONE_EXT = $20D8;
7600   GLX_TEXTURE_FORMAT_RGB_EXT = $20D9;
7601   GLX_TEXTURE_FORMAT_RGBA_EXT = $20DA;
7602   GLX_TEXTURE_1D_EXT = $20DB;
7603   GLX_TEXTURE_2D_EXT = $20DC;
7604   GLX_TEXTURE_RECTANGLE_EXT = $20DD;
7605   GLX_FRONT_LEFT_EXT = $20DE;
7606   GLX_FRONT_RIGHT_EXT = $20DF;
7607   GLX_BACK_LEFT_EXT = $20E0;
7608   GLX_BACK_RIGHT_EXT = $20E1;
7609   GLX_FRONT_EXT = GLX_FRONT_LEFT_EXT;
7610   GLX_BACK_EXT = GLX_BACK_LEFT_EXT;
7611   GLX_AUX0_EXT = $20E2;
7612   GLX_AUX1_EXT = $20E3;
7613   GLX_AUX2_EXT = $20E4;
7614   GLX_AUX3_EXT = $20E5;
7615   GLX_AUX4_EXT = $20E6;
7616   GLX_AUX5_EXT = $20E7;
7617   GLX_AUX6_EXT = $20E8;
7618   GLX_AUX7_EXT = $20E9;
7619   GLX_AUX8_EXT = $20EA;
7620   GLX_AUX9_EXT = $20EB;
7621
7622   // GLX_EXT_swap_control
7623   GLX_SWAP_INTERVAL_EXT = $20F1;
7624   GLX_MAX_SWAP_INTERVAL_EXT = $20F2;
7625
7626   // GLX_EXT_create_context_es2_profile
7627   GLX_CONTEXT_ES2_PROFILE_BIT_EXT = $00000004;
7628
7629   // GL_EXT_Late_Swaps
7630   GLX_LATE_SWAPS_TEAR_EXT         = $20F3;
7631
7632   // GLU
7633   GLU_INVALID_ENUM = 100900;
7634   GLU_INVALID_VALUE = 100901;
7635   GLU_OUT_OF_MEMORY = 100902;
7636   GLU_INCOMPATIBLE_GL_VERSION = 100903;
7637   GLU_VERSION = 100800;
7638   GLU_EXTENSIONS = 100801;
7639   GLU_TRUE = GL_TRUE;
7640   GLU_FALSE = GL_FALSE;
7641   GLU_SMOOTH = 100000;
7642   GLU_FLAT = 100001;
7643   GLU_NONE = 100002;
7644   GLU_POINT = 100010;
7645   GLU_LINE = 100011;
7646   GLU_FILL = 100012;
7647   GLU_SILHOUETTE = 100013;
7648   GLU_OUTSIDE = 100020;
7649   GLU_INSIDE = 100021;
7650   GLU_TESS_MAX_COORD = 1.0E150;
7651   GLU_TESS_WINDING_RULE = 100140;
7652   GLU_TESS_BOUNDARY_ONLY = 100141;
7653   GLU_TESS_TOLERANCE = 100142;
7654   GLU_TESS_WINDING_ODD = 100130;
7655   GLU_TESS_WINDING_NONZERO = 100131;
7656   GLU_TESS_WINDING_POSITIVE = 100132;
7657   GLU_TESS_WINDING_NEGATIVE = 100133;
7658   GLU_TESS_WINDING_ABS_GEQ_TWO = 100134;
7659   GLU_TESS_BEGIN = 100100; // TGLUTessBeginProc
7660   GLU_TESS_VERTEX = 100101; // TGLUTessVertexProc
7661   GLU_TESS_END = 100102; // TGLUTessEndProc
7662   GLU_TESS_ERROR = 100103; // TGLUTessErrorProc
7663   GLU_TESS_EDGE_FLAG = 100104; // TGLUTessEdgeFlagProc
7664   GLU_TESS_COMBINE = 100105; // TGLUTessCombineProc
7665   GLU_TESS_BEGIN_DATA = 100106; // TGLUTessBeginDataProc
7666   GLU_TESS_VERTEX_DATA = 100107; // TGLUTessVertexDataProc
7667   GLU_TESS_END_DATA = 100108; // TGLUTessEndDataProc
7668   GLU_TESS_ERROR_DATA = 100109; // TGLUTessErrorDataProc
7669   GLU_TESS_EDGE_FLAG_DATA = 100110; // TGLUTessEdgeFlagDataProc
7670   GLU_TESS_COMBINE_DATA = 100111; // TGLUTessCombineDataProc
7671   GLU_TESS_ERROR1 = 100151;
7672   GLU_TESS_ERROR2 = 100152;
7673   GLU_TESS_ERROR3 = 100153;
7674   GLU_TESS_ERROR4 = 100154;
7675   GLU_TESS_ERROR5 = 100155;
7676   GLU_TESS_ERROR6 = 100156;
7677   GLU_TESS_ERROR7 = 100157;
7678   GLU_TESS_ERROR8 = 100158;
7679   GLU_TESS_MISSING_BEGIN_POLYGON = GLU_TESS_ERROR1;
7680   GLU_TESS_MISSING_BEGIN_CONTOUR = GLU_TESS_ERROR2;
7681   GLU_TESS_MISSING_END_POLYGON = GLU_TESS_ERROR3;
7682   GLU_TESS_MISSING_END_CONTOUR = GLU_TESS_ERROR4;
7683   GLU_TESS_COORD_TOO_LARGE = GLU_TESS_ERROR5;
7684   GLU_TESS_NEED_COMBINE_CALLBACK = GLU_TESS_ERROR6;
7685   GLU_AUTO_LOAD_MATRIX = 100200;
7686   GLU_CULLING = 100201;
7687   GLU_SAMPLING_TOLERANCE = 100203;
7688   GLU_DISPLAY_MODE = 100204;
7689   GLU_PARAMETRIC_TOLERANCE = 100202;
7690   GLU_SAMPLING_METHOD = 100205;
7691   GLU_U_STEP = 100206;
7692   GLU_V_STEP = 100207;
7693   GLU_PATH_LENGTH = 100215;
7694   GLU_PARAMETRIC_ERROR = 100216;
7695   GLU_DOMAIN_DISTANCE = 100217;
7696   GLU_MAP1_TRIM_2 = 100210;
7697   GLU_MAP1_TRIM_3 = 100211;
7698   GLU_OUTLINE_POLYGON = 100240;
7699   GLU_OUTLINE_PATCH = 100241;
7700   GLU_NURBS_ERROR1 = 100251;
7701   GLU_NURBS_ERROR2 = 100252;
7702   GLU_NURBS_ERROR3 = 100253;
7703   GLU_NURBS_ERROR4 = 100254;
7704   GLU_NURBS_ERROR5 = 100255;
7705   GLU_NURBS_ERROR6 = 100256;
7706   GLU_NURBS_ERROR7 = 100257;
7707   GLU_NURBS_ERROR8 = 100258;
7708   GLU_NURBS_ERROR9 = 100259;
7709   GLU_NURBS_ERROR10 = 100260;
7710   GLU_NURBS_ERROR11 = 100261;
7711   GLU_NURBS_ERROR12 = 100262;
7712   GLU_NURBS_ERROR13 = 100263;
7713   GLU_NURBS_ERROR14 = 100264;
7714   GLU_NURBS_ERROR15 = 100265;
7715   GLU_NURBS_ERROR16 = 100266;
7716   GLU_NURBS_ERROR17 = 100267;
7717   GLU_NURBS_ERROR18 = 100268;
7718   GLU_NURBS_ERROR19 = 100269;
7719   GLU_NURBS_ERROR20 = 100270;
7720   GLU_NURBS_ERROR21 = 100271;
7721   GLU_NURBS_ERROR22 = 100272;
7722   GLU_NURBS_ERROR23 = 100273;
7723   GLU_NURBS_ERROR24 = 100274;
7724   GLU_NURBS_ERROR25 = 100275;
7725   GLU_NURBS_ERROR26 = 100276;
7726   GLU_NURBS_ERROR27 = 100277;
7727   GLU_NURBS_ERROR28 = 100278;
7728   GLU_NURBS_ERROR29 = 100279;
7729   GLU_NURBS_ERROR30 = 100280;
7730   GLU_NURBS_ERROR31 = 100281;
7731   GLU_NURBS_ERROR32 = 100282;
7732   GLU_NURBS_ERROR33 = 100283;
7733   GLU_NURBS_ERROR34 = 100284;
7734   GLU_NURBS_ERROR35 = 100285;
7735   GLU_NURBS_ERROR36 = 100286;
7736   GLU_NURBS_ERROR37 = 100287;
7737   GLU_CW = 100120;
7738   GLU_CCW = 100121;
7739   GLU_INTERIOR = 100122;
7740   GLU_EXTERIOR = 100123;
7741   GLU_UNKNOWN = 100124;
7742   GLU_BEGIN = GLU_TESS_BEGIN;
7743   GLU_VERTEX = GLU_TESS_VERTEX;
7744   GLU_END = GLU_TESS_END;
7745   GLU_ERROR = GLU_TESS_ERROR;
7746   GLU_EDGE_FLAG = GLU_TESS_EDGE_FLAG;
7747
7748 type
7749   // GL_VERSION_1_0
7750   TglCullFace = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7751   TglFrontFace = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7752   TglHint = procedure(target: GLenum; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7753   TglLineWidth = procedure(width: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7754   TglPointSize = procedure(size: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7755   TglPolygonMode = procedure(face: GLenum; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7756   TglScissor = procedure(x: GLint; y: GLint; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7757   TglTexParameterf = procedure(target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7758   TglTexParameterfv = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7759   TglTexParameteri = procedure(target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7760   TglTexParameteriv = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7761   TglTexImage1D = procedure(target: GLenum; level: GLint; internalformat: GLint; width: GLsizei; border: GLint; format: GLenum; _type: GLenum; const pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7762   TglTexImage2D = procedure(target: GLenum; level: GLint; internalformat: GLint; width: GLsizei; height: GLsizei; border: GLint; format: GLenum; _type: GLenum; const pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7763   TglDrawBuffer = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7764   TglClear = procedure(mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7765   TglClearColor = procedure(red: GLclampf; green: GLclampf; blue: GLclampf; alpha: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7766   TglClearStencil = procedure(s: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7767   TglClearDepth = procedure(depth: GLclampd); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7768   TglStencilMask = procedure(mask: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7769   TglColorMask = procedure(red: GLboolean; green: GLboolean; blue: GLboolean; alpha: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7770   TglDepthMask = procedure(flag: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7771   TglDisable = procedure(cap: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7772   TglEnable = procedure(cap: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7773   TglFinish = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7774   TglFlush = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7775   TglBlendFunc = procedure(sfactor: GLenum; dfactor: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7776   TglLogicOp = procedure(opcode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7777   TglStencilFunc = procedure(func: GLenum; ref: GLint; mask: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7778   TglStencilOp = procedure(fail: GLenum; zfail: GLenum; zpass: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7779   TglDepthFunc = procedure(func: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7780   TglPixelStoref = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7781   TglPixelStorei = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7782   TglReadBuffer = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7783   TglReadPixels = procedure(x: GLint; y: GLint; width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7784   TglGetBooleanv = procedure(pname: GLenum; params: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7785   TglGetDoublev = procedure(pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7786   TglGetError = function(): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7787   TglGetFloatv = procedure(pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7788   TglGetIntegerv = procedure(pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7789   TglGetString = function(name: GLenum): PAnsiChar; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7790   TglGetTexImage = procedure(target: GLenum; level: GLint; format: GLenum; _type: GLenum; pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7791   TglGetTexParameteriv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7792   TglGetTexParameterfv = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7793   TglGetTexLevelParameterfv = procedure(target: GLenum; level: GLint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7794   TglGetTexLevelParameteriv = procedure(target: GLenum; level: GLint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7795   TglIsEnabled = function(cap: GLenum): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7796   TglDepthRange = procedure(zNear: GLclampd; zFar: GLclampd); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7797   TglViewport = procedure(x: GLint; y: GLint; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7798
7799   // GL_VERSION_1_1
7800   TglDrawArrays = procedure(mode: GLenum; first: GLint; count: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7801   TglDrawElements = procedure(mode: GLenum; count: GLsizei; _type: GLenum; const indices: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7802   TglGetPointerv = procedure(pname: GLenum; params: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7803   TglPolygonOffset = procedure(factor: GLfloat; units: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7804   TglCopyTexImage1D = procedure(target: GLenum; level: GLint; internalFormat: GLenum; x: GLint; y: GLint; width: GLsizei; border: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7805   TglCopyTexImage2D = procedure(target: GLenum; level: GLint; internalFormat: GLenum; x: GLint; y: GLint; width: GLsizei; height: GLsizei; border: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7806   TglCopyTexSubImage1D = procedure(target: GLenum; level: GLint; xoffset: GLint; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7807   TglCopyTexSubImage2D = procedure(target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; x: GLint; y: GLint; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7808   TglTexSubImage1D = procedure(target: GLenum; level: GLint; xoffset: GLint; width: GLsizei; format: GLenum; _type: GLenum; const pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7809   TglTexSubImage2D = procedure(target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; const pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7810   TglBindTexture = procedure(target: GLenum; texture: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7811   TglDeleteTextures = procedure(n: GLsizei; const textures: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7812   TglGenTextures = procedure(n: GLsizei; textures: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7813
7814 {$ifdef DGL_DEPRECATED}
7815   TglAccum = procedure(op: GLenum; value: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7816   TglAlphaFunc = procedure(func: GLenum; ref: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7817   TglAreTexturesResident = function(n: GLsizei; const textures: PGLuint; residences: PGLboolean): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7818   TglArrayElement = procedure(i: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7819   TglBegin = procedure(mode: GLenum); {$IFNDEF CLR}{$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}{$ENDIF}
7820   TglBitmap = procedure(width: GLsizei; height: GLsizei; xorig: GLfloat; yorig: GLfloat; xmove: GLfloat; ymove: GLfloat; const bitmap: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7821   TglCallList = procedure(list: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7822   TglCallLists = procedure(n: GLsizei; _type: GLenum; const lists: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7823   TglClearAccum = procedure(red: GLfloat; green: GLfloat; blue: GLfloat; alpha: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7824   TglClearIndex = procedure(c: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7825   TglClipPlane = procedure(plane: GLenum; const equation: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7826   TglColor3b = procedure(red: GLbyte; green: GLbyte; blue: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7827   TglColor3bv = procedure(const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7828   TglColor3d = procedure(red: GLdouble; green: GLdouble; blue: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7829   TglColor3dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7830   TglColor3f = procedure(red: GLfloat; green: GLfloat; blue: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7831   TglColor3fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7832   TglColor3i = procedure(red: GLint; green: GLint; blue: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7833   TglColor3iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7834   TglColor3s = procedure(red: GLshort; green: GLshort; blue: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7835   TglColor3sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7836   TglColor3ub = procedure(red: GLubyte; green: GLubyte; blue: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7837   TglColor3ubv = procedure(const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7838   TglColor3ui = procedure(red: GLuint; green: GLuint; blue: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7839   TglColor3uiv = procedure(const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7840   TglColor3us = procedure(red: GLushort; green: GLushort; blue: GLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7841   TglColor3usv = procedure(const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7842   TglColor4b = procedure(red: GLbyte; green: GLbyte; blue: GLbyte; alpha: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7843   TglColor4bv = procedure(const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7844   TglColor4d = procedure(red: GLdouble; green: GLdouble; blue: GLdouble; alpha: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7845   TglColor4dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7846   TglColor4f = procedure(red: GLfloat; green: GLfloat; blue: GLfloat; alpha: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7847   TglColor4fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7848   TglColor4i = procedure(red: GLint; green: GLint; blue: GLint; alpha: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7849   TglColor4iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7850   TglColor4s = procedure(red: GLshort; green: GLshort; blue: GLshort; alpha: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7851   TglColor4sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7852   TglColor4ub = procedure(red: GLubyte; green: GLubyte; blue: GLubyte; alpha: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7853   TglColor4ubv = procedure(const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7854   TglColor4ui = procedure(red: GLuint; green: GLuint; blue: GLuint; alpha: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7855   TglColor4uiv = procedure(const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7856   TglColor4us = procedure(red: GLushort; green: GLushort; blue: GLushort; alpha: GLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7857   TglColor4usv = procedure(const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7858   TglColorMaterial = procedure(face: GLenum; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7859   TglColorPointer = procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7860   TglCopyPixels = procedure(x: GLint; y: GLint; width: GLsizei; height: GLsizei; _type: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7861   TglDeleteLists = procedure(list: GLuint; range: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7862   TglDisableClientState = procedure(_array: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7863   TglDrawPixels = procedure(width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; const pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7864   TglEdgeFlag = procedure(flag: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7865   TglEdgeFlagPointer = procedure(stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7866   TglEdgeFlagv = procedure(const flag: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7867   TglEnableClientState = procedure(_array: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7868   TglEnd = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7869   TglEndList = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7870   TglEvalCoord1d = procedure(u: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7871   TglEvalCoord1dv = procedure(const u: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7872   TglEvalCoord1f = procedure(u: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7873   TglEvalCoord1fv = procedure(const u: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7874   TglEvalCoord2d = procedure(u: GLdouble; v: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7875   TglEvalCoord2dv = procedure(const u: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7876   TglEvalCoord2f = procedure(u: GLfloat; v: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7877   TglEvalCoord2fv = procedure(const u: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7878   TglEvalMesh1 = procedure(mode: GLenum; i1: GLint; i2: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7879   TglEvalMesh2 = procedure(mode: GLenum; i1: GLint; i2: GLint; j1: GLint; j2: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7880   TglEvalPoint1 = procedure(i: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7881   TglEvalPoint2 = procedure(i: GLint; j: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7882   TglFeedbackBuffer = procedure(size: GLsizei; _type: GLenum; buffer: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7883   TglFogf = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7884   TglFogfv = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7885   TglFogi = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7886   TglFogiv = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7887   TglFrustum = procedure(left: GLdouble; right: GLdouble; bottom: GLdouble; top: GLdouble; zNear: GLdouble; zFar: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7888   TglGenLists = function(range: GLsizei): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7889   TglGetClipPlane = procedure(plane: GLenum; equation: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7890   TglGetLightfv = procedure(light: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7891   TglGetLightiv = procedure(light: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7892   TglGetMapdv = procedure(target: GLenum; query: GLenum; v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7893   TglGetMapfv = procedure(target: GLenum; query: GLenum; v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7894   TglGetMapiv = procedure(target: GLenum; query: GLenum; v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7895   TglGetMaterialfv = procedure(face: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7896   TglGetMaterialiv = procedure(face: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7897   TglGetPixelMapfv = procedure(map: GLenum; values: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7898   TglGetPixelMapuiv = procedure(map: GLenum; values: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7899   TglGetPixelMapusv = procedure(map: GLenum; values: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7900   TglGetPolygonStipple = procedure(mask: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7901   TglGetTexEnvfv = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7902   TglGetTexEnviv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7903   TglGetTexGendv = procedure(coord: GLenum; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7904   TglGetTexGenfv = procedure(coord: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7905   TglGetTexGeniv = procedure(coord: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7906   TglIndexMask = procedure(mask: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7907   TglIndexPointer = procedure(_type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7908   TglIndexd = procedure(c: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7909   TglIndexdv = procedure(const c: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7910   TglIndexf = procedure(c: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7911   TglIndexfv = procedure(const c: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7912   TglIndexi = procedure(c: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7913   TglIndexiv = procedure(const c: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7914   TglIndexs = procedure(c: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7915   TglIndexsv = procedure(const c: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7916   TglIndexub = procedure(c: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7917   TglIndexubv = procedure(const c: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7918   TglInitNames = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7919   TglInterleavedArrays = procedure(format: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7920   TglIsList = function(list: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7921   TglIsTexture = function(texture: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7922   TglLightModelf = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7923   TglLightModelfv = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7924   TglLightModeli = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7925   TglLightModeliv = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7926   TglLightf = procedure(light: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7927   TglLightfv = procedure(light: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7928   TglLighti = procedure(light: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7929   TglLightiv = procedure(light: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7930   TglLineStipple = procedure(factor: GLint; pattern: GLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7931   TglListBase = procedure(base: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7932   TglLoadIdentity = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7933   TglLoadMatrixd = procedure(const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7934   TglLoadMatrixf = procedure(const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7935   TglLoadName = procedure(name: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7936   TglMap1d = procedure(target: GLenum; u1: GLdouble; u2: GLdouble; stride: GLint; order: GLint; const points: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7937   TglMap1f = procedure(target: GLenum; u1: GLfloat; u2: GLfloat; stride: GLint; order: GLint; const points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7938   TglMap2d = procedure(target: GLenum; u1: GLdouble; u2: GLdouble; ustride: GLint; uorder: GLint; v1: GLdouble; v2: GLdouble; vstride: GLint; vorder: GLint; const points: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7939   TglMap2f = procedure(target: GLenum; u1: GLfloat; u2: GLfloat; ustride: GLint; uorder: GLint; v1: GLfloat; v2: GLfloat; vstride: GLint; vorder: GLint; const points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7940   TglMapGrid1d = procedure(un: GLint; u1: GLdouble; u2: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7941   TglMapGrid1f = procedure(un: GLint; u1: GLfloat; u2: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7942   TglMapGrid2d = procedure(un: GLint; u1: GLdouble; u2: GLdouble; vn: GLint; v1: GLdouble; v2: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7943   TglMapGrid2f = procedure(un: GLint; u1: GLfloat; u2: GLfloat; vn: GLint; v1: GLfloat; v2: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7944   TglMaterialf = procedure(face: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7945   TglMaterialfv = procedure(face: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7946   TglMateriali = procedure(face: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7947   TglMaterialiv = procedure(face: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7948   TglMatrixMode = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7949   TglMultMatrixd = procedure(const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7950   TglMultMatrixf = procedure(const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7951   TglNewList = procedure(list: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7952   TglNormal3b = procedure(nx: GLbyte; ny: GLbyte; nz: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7953   TglNormal3bv = procedure(const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7954   TglNormal3d = procedure(nx: GLdouble; ny: GLdouble; nz: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7955   TglNormal3dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7956   TglNormal3f = procedure(nx: GLfloat; ny: GLfloat; nz: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7957   TglNormal3fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7958   TglNormal3i = procedure(nx: GLint; ny: GLint; nz: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7959   TglNormal3iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7960   TglNormal3s = procedure(nx: GLshort; ny: GLshort; nz: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7961   TglNormal3sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7962   TglNormalPointer = procedure(_type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7963   TglOrtho = procedure(left: GLdouble; right: GLdouble; bottom: GLdouble; top: GLdouble; zNear: GLdouble; zFar: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7964   TglPassThrough = procedure(token: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7965   TglPixelMapfv = procedure(map: GLenum; mapsize: GLsizei; const values: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7966   TglPixelMapuiv = procedure(map: GLenum; mapsize: GLsizei; const values: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7967   TglPixelMapusv = procedure(map: GLenum; mapsize: GLsizei; const values: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7968   TglPixelTransferf = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7969   TglPixelTransferi = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7970   TglPixelZoom = procedure(xfactor: GLfloat; yfactor: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7971   TglPolygonStipple = procedure(const mask: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7972   TglPopAttrib = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7973   TglPopClientAttrib = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7974   TglPopMatrix = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7975   TglPopName = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7976   TglPrioritizeTextures = procedure(n: GLsizei; const textures: PGLuint; const priorities: PGLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7977   TglPushAttrib = procedure(mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7978   TglPushClientAttrib = procedure(mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7979   TglPushMatrix = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7980   TglPushName = procedure(name: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7981   TglRasterPos2d = procedure(x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7982   TglRasterPos2dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7983   TglRasterPos2f = procedure(x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7984   TglRasterPos2fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7985   TglRasterPos2i = procedure(x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7986   TglRasterPos2iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7987   TglRasterPos2s = procedure(x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7988   TglRasterPos2sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7989   TglRasterPos3d = procedure(x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7990   TglRasterPos3dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7991   TglRasterPos3f = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7992   TglRasterPos3fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7993   TglRasterPos3i = procedure(x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7994   TglRasterPos3iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7995   TglRasterPos3s = procedure(x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7996   TglRasterPos3sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7997   TglRasterPos4d = procedure(x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7998   TglRasterPos4dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7999   TglRasterPos4f = procedure(x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8000   TglRasterPos4fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8001   TglRasterPos4i = procedure(x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8002   TglRasterPos4iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8003   TglRasterPos4s = procedure(x: GLshort; y: GLshort; z: GLshort; w: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8004   TglRasterPos4sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8005   TglRectd = procedure(x1: GLdouble; y1: GLdouble; x2: GLdouble; y2: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8006   TglRectdv = procedure(const v1: PGLdouble; const v2: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8007   TglRectf = procedure(x1: GLfloat; y1: GLfloat; x2: GLfloat; y2: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8008   TglRectfv = procedure(const v1: PGLfloat; const v2: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8009   TglRecti = procedure(x1: GLint; y1: GLint; x2: GLint; y2: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8010   TglRectiv = procedure(const v1: PGLint; const v2: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8011   TglRects = procedure(x1: GLshort; y1: GLshort; x2: GLshort; y2: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8012   TglRectsv = procedure(const v1: PGLshort; const v2: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8013   TglRenderMode = function(mode: GLenum): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8014   TglRotated = procedure(angle: GLdouble; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8015   TglRotatef = procedure(angle: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8016   TglScaled = procedure(x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8017   TglScalef = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8018   TglSelectBuffer = procedure(size: GLsizei; buffer: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8019   TglShadeModel = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8020   TglTexCoord1d = procedure(s: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8021   TglTexCoord1dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8022   TglTexCoord1f = procedure(s: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8023   TglTexCoord1fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8024   TglTexCoord1i = procedure(s: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8025   TglTexCoord1iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8026   TglTexCoord1s = procedure(s: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8027   TglTexCoord1sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8028   TglTexCoord2d = procedure(s: GLdouble; t: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8029   TglTexCoord2dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8030   TglTexCoord2f = procedure(s: GLfloat; t: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8031   TglTexCoord2fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8032   TglTexCoord2i = procedure(s: GLint; t: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8033   TglTexCoord2iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8034   TglTexCoord2s = procedure(s: GLshort; t: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8035   TglTexCoord2sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8036   TglTexCoord3d = procedure(s: GLdouble; t: GLdouble; r: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8037   TglTexCoord3dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8038   TglTexCoord3f = procedure(s: GLfloat; t: GLfloat; r: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8039   TglTexCoord3fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8040   TglTexCoord3i = procedure(s: GLint; t: GLint; r: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8041   TglTexCoord3iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8042   TglTexCoord3s = procedure(s: GLshort; t: GLshort; r: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8043   TglTexCoord3sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8044   TglTexCoord4d = procedure(s: GLdouble; t: GLdouble; r: GLdouble; q: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8045   TglTexCoord4dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8046   TglTexCoord4f = procedure(s: GLfloat; t: GLfloat; r: GLfloat; q: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8047   TglTexCoord4fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8048   TglTexCoord4i = procedure(s: GLint; t: GLint; r: GLint; q: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8049   TglTexCoord4iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8050   TglTexCoord4s = procedure(s: GLshort; t: GLshort; r: GLshort; q: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8051   TglTexCoord4sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8052   TglTexCoordPointer = procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8053   TglTexEnvf = procedure(target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8054   TglTexEnvfv = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8055   TglTexEnvi = procedure(target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8056   TglTexEnviv = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8057   TglTexGend = procedure(coord: GLenum; pname: GLenum; param: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8058   TglTexGendv = procedure(coord: GLenum; pname: GLenum; const params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8059   TglTexGenf = procedure(coord: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8060   TglTexGenfv = procedure(coord: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8061   TglTexGeni = procedure(coord: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8062   TglTexGeniv = procedure(coord: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8063
8064
8065   TglTranslated = procedure(x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8066   TglTranslatef = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8067   TglVertex2d = procedure(x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8068   TglVertex2dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8069   TglVertex2f = procedure(x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8070   TglVertex2fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8071   TglVertex2i = procedure(x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8072   TglVertex2iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8073   TglVertex2s = procedure(x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8074   TglVertex2sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8075   TglVertex3d = procedure(x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8076   TglVertex3dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8077   TglVertex3f = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8078   TglVertex3fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8079   TglVertex3i = procedure(x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8080   TglVertex3iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8081   TglVertex3s = procedure(x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8082   TglVertex3sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8083   TglVertex4d = procedure(x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8084   TglVertex4dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8085   TglVertex4f = procedure(x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8086   TglVertex4fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8087   TglVertex4i = procedure(x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8088   TglVertex4iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8089   TglVertex4s = procedure(x: GLshort; y: GLshort; z: GLshort; w: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8090   TglVertex4sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8091   TglVertexPointer = procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8092 {$endif}
8093
8094   // GL_VERSION_1_2
8095   TglBlendColor = procedure(red: GLclampf; green: GLclampf; blue: GLclampf; alpha: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8096   TglBlendEquation = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8097   TglDrawRangeElements = procedure(mode: GLenum; start: GLuint; _end: GLuint; count: GLsizei; _type: GLenum; const indices: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8098   TglTexImage3D = procedure(target: GLenum; level: GLint; internalformat: GLint; width: GLsizei; height: GLsizei; depth: GLsizei; border: GLint; format: GLenum; _type: GLenum; const pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8099   TglTexSubImage3D = procedure(target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; zoffset: GLint; width: GLsizei; height: GLsizei; depth: GLsizei; format: GLenum; _type: GLenum; const pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8100   TglCopyTexSubImage3D = procedure(target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; zoffset: GLint; x: GLint; y: GLint; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8101 {$ifdef DGL_DEPRECATED}
8102   TglColorTable = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; format: GLenum; _type: GLenum; const table: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8103   TglColorTableParameterfv = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8104   TglColorTableParameteriv = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8105   TglCopyColorTable = procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8106   TglGetColorTable = procedure(target: GLenum; format: GLenum; _type: GLenum; table: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8107   TglGetColorTableParameterfv = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8108   TglGetColorTableParameteriv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8109   TglColorSubTable = procedure(target: GLenum; start: GLsizei; count: GLsizei; format: GLenum; _type: GLenum; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8110   TglCopyColorSubTable = procedure(target: GLenum; start: GLsizei; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8111   TglConvolutionFilter1D = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; format: GLenum; _type: GLenum; const image: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8112   TglConvolutionFilter2D = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; const image: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8113   TglConvolutionParameterf = procedure(target: GLenum; pname: GLenum; params: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8114   TglConvolutionParameterfv = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8115   TglConvolutionParameteri = procedure(target: GLenum; pname: GLenum; params: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8116   TglConvolutionParameteriv = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8117   TglCopyConvolutionFilter1D = procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8118   TglCopyConvolutionFilter2D = procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8119   TglGetConvolutionFilter = procedure(target: GLenum; format: GLenum; _type: GLenum; image: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8120   TglGetConvolutionParameterfv = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8121   TglGetConvolutionParameteriv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8122   TglGetSeparableFilter = procedure(target: GLenum; format: GLenum; _type: GLenum; row: PGLvoid; column: PGLvoid; span: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8123   TglSeparableFilter2D = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; const row: PGLvoid; const column: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8124   TglGetHistogram = procedure(target: GLenum; reset: GLboolean; format: GLenum; _type: GLenum; values: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8125   TglGetHistogramParameterfv = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8126   TglGetHistogramParameteriv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8127   TglGetMinmax = procedure(target: GLenum; reset: GLboolean; format: GLenum; _type: GLenum; values: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8128   TglGetMinmaxParameterfv = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8129   TglGetMinmaxParameteriv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8130   TglHistogram = procedure(target: GLenum; width: GLsizei; internalformat: GLenum; sink: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8131   TglMinmax = procedure(target: GLenum; internalformat: GLenum; sink: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8132   TglResetHistogram = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8133   TglResetMinmax = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8134 {$endif}
8135
8136   // GL_VERSION_1_3
8137   TglActiveTexture = procedure(texture: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8138   TglSampleCoverage = procedure(value: GLclampf; invert: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8139   TglCompressedTexImage3D = procedure(target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; height: GLsizei; depth: GLsizei; border: GLint; imageSize: GLsizei; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8140   TglCompressedTexImage2D = procedure(target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; height: GLsizei; border: GLint; imageSize: GLsizei; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8141   TglCompressedTexImage1D = procedure(target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; border: GLint; imageSize: GLsizei; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8142   TglCompressedTexSubImage3D = procedure(target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; zoffset: GLint; width: GLsizei; height: GLsizei; depth: GLsizei; format: GLenum; imageSize: GLsizei; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8143   TglCompressedTexSubImage2D = procedure(target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; width: GLsizei; height: GLsizei; format: GLenum; imageSize: GLsizei; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8144   TglCompressedTexSubImage1D = procedure(target: GLenum; level: GLint; xoffset: GLint; width: GLsizei; format: GLenum; imageSize: GLsizei; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8145   TglGetCompressedTexImage = procedure(target: GLenum; level: GLint; img: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8146 {$ifdef DGL_DEPRECATED}
8147   TglClientActiveTexture = procedure(texture: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8148   TglMultiTexCoord1d = procedure(target: GLenum; s: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8149   TglMultiTexCoord1dv = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8150   TglMultiTexCoord1f = procedure(target: GLenum; s: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8151   TglMultiTexCoord1fv = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8152   TglMultiTexCoord1i = procedure(target: GLenum; s: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8153   TglMultiTexCoord1iv = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8154   TglMultiTexCoord1s = procedure(target: GLenum; s: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8155   TglMultiTexCoord1sv = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8156   TglMultiTexCoord2d = procedure(target: GLenum; s: GLdouble; t: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8157   TglMultiTexCoord2dv = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8158   TglMultiTexCoord2f = procedure(target: GLenum; s: GLfloat; t: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8159   TglMultiTexCoord2fv = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8160   TglMultiTexCoord2i = procedure(target: GLenum; s: GLint; t: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8161   TglMultiTexCoord2iv = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8162   TglMultiTexCoord2s = procedure(target: GLenum; s: GLshort; t: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8163   TglMultiTexCoord2sv = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8164   TglMultiTexCoord3d = procedure(target: GLenum; s: GLdouble; t: GLdouble; r: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8165   TglMultiTexCoord3dv = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8166   TglMultiTexCoord3f = procedure(target: GLenum; s: GLfloat; t: GLfloat; r: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8167   TglMultiTexCoord3fv = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8168   TglMultiTexCoord3i = procedure(target: GLenum; s: GLint; t: GLint; r: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8169   TglMultiTexCoord3iv = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8170   TglMultiTexCoord3s = procedure(target: GLenum; s: GLshort; t: GLshort; r: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8171   TglMultiTexCoord3sv = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8172   TglMultiTexCoord4d = procedure(target: GLenum; s: GLdouble; t: GLdouble; r: GLdouble; q: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8173   TglMultiTexCoord4dv = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8174   TglMultiTexCoord4f = procedure(target: GLenum; s: GLfloat; t: GLfloat; r: GLfloat; q: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8175   TglMultiTexCoord4fv = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8176   TglMultiTexCoord4i = procedure(target: GLenum; s: GLint; t: GLint; r: GLint; q: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8177   TglMultiTexCoord4iv = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8178   TglMultiTexCoord4s = procedure(target: GLenum; s: GLshort; t: GLshort; r: GLshort; q: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8179   TglMultiTexCoord4sv = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8180   TglLoadTransposeMatrixf = procedure(const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8181   TglLoadTransposeMatrixd = procedure(const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8182   TglMultTransposeMatrixf = procedure(const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8183   TglMultTransposeMatrixd = procedure(const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8184 {$endif}
8185
8186   // GL_VERSION_1_4
8187   TglBlendFuncSeparate = procedure(sfactorRGB: GLenum; dfactorRGB: GLenum; sfactorAlpha: GLenum; dfactorAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8188   TglMultiDrawArrays = procedure(mode: GLenum; const first: PGLint; const count: PGLsizei; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8189   TglMultiDrawElements = procedure(mode: GLenum; const count: PGLsizei; _type: GLenum; const indices: PGLvoid; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8190   TglPointParameterf = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8191   TglPointParameterfv = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8192   TglPointParameteri = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8193   TglPointParameteriv = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8194 {$ifdef DGL_DEPRECATED}
8195   TglFogCoordf = procedure(coord: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8196   TglFogCoordfv = procedure(const coord: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8197   TglFogCoordd = procedure(coord: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8198   TglFogCoorddv = procedure(const coord: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8199   TglFogCoordPointer = procedure(_type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8200   TglSecondaryColor3b = procedure(red: GLbyte; green: GLbyte; blue: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8201   TglSecondaryColor3bv = procedure(const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8202   TglSecondaryColor3d = procedure(red: GLdouble; green: GLdouble; blue: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8203   TglSecondaryColor3dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8204   TglSecondaryColor3f = procedure(red: GLfloat; green: GLfloat; blue: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8205   TglSecondaryColor3fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8206   TglSecondaryColor3i = procedure(red: GLint; green: GLint; blue: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8207   TglSecondaryColor3iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8208   TglSecondaryColor3s = procedure(red: GLshort; green: GLshort; blue: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8209   TglSecondaryColor3sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8210   TglSecondaryColor3ub = procedure(red: GLubyte; green: GLubyte; blue: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8211   TglSecondaryColor3ubv = procedure(const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8212   TglSecondaryColor3ui = procedure(red: GLuint; green: GLuint; blue: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8213   TglSecondaryColor3uiv = procedure(const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8214   TglSecondaryColor3us = procedure(red: GLushort; green: GLushort; blue: GLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8215   TglSecondaryColor3usv = procedure(const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8216   TglSecondaryColorPointer = procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8217   TglWindowPos2d = procedure(x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8218   TglWindowPos2dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8219   TglWindowPos2f = procedure(x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8220   TglWindowPos2fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8221   TglWindowPos2i = procedure(x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8222   TglWindowPos2iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8223   TglWindowPos2s = procedure(x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8224   TglWindowPos2sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8225   TglWindowPos3d = procedure(x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8226   TglWindowPos3dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8227   TglWindowPos3f = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8228   TglWindowPos3fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8229   TglWindowPos3i = procedure(x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8230   TglWindowPos3iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8231   TglWindowPos3s = procedure(x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8232   TglWindowPos3sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8233 {$endif}
8234
8235   // GL_VERSION_1_5
8236   TglGenQueries = procedure(n: GLsizei; ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8237   TglDeleteQueries = procedure(n: GLsizei; const ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8238   TglIsQuery = function(id: GLuint): boolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8239   TglBeginQuery = procedure(target: GLenum; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8240   TglEndQuery = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8241   TglGetQueryiv = procedure(target, pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8242   TglGetQueryObjectiv = procedure(id: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8243   TglGetQueryObjectuiv = procedure(id: GLuint; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8244   TglBindBuffer = procedure(target: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8245   TglDeleteBuffers = procedure(n: GLsizei; const buffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8246   TglGenBuffers = procedure(n: GLsizei; buffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8247   TglIsBuffer = function(buffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8248   TglBufferData = procedure(target: GLenum; size: GLsizeiptr; const data: PGLvoid; usage: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8249   TglBufferSubData = procedure(target: GLenum; offset: GLintptr; size: GLsizeiptr; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8250   TglGetBufferSubData = procedure(target: GLenum; offset: GLintptr; size: GLsizeiptr; data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8251   TglMapBuffer = function(target: GLenum; access: GLenum): PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8252   TglUnmapBuffer = function(target: GLenum): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8253   TglGetBufferParameteriv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8254   TglGetBufferPointerv = procedure(target: GLenum; pname: GLenum; params: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8255
8256   // GL_VERSION_2_0
8257   TglBlendEquationSeparate = procedure(modeRGB: GLenum; modeAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8258   TglDrawBuffers = procedure(n: GLsizei; const bufs: PGLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8259   TglStencilOpSeparate = procedure(face: GLenum; sfail: GLenum; dpfail: GLenum; dppass: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8260   TglStencilFuncSeparate = procedure(face: GLenum; func: GLenum; ref: GLint; mask: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8261   TglStencilMaskSeparate = procedure(face: GLenum; mask: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8262   TglAttachShader = procedure(programObj, shaderObj: GLhandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8263   TglBindAttribLocation = procedure(programObj: GLhandle; index: GLuint; name: PGLChar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8264   TglCompileShader = procedure(shaderObj: GLhandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8265   TglCreateProgram = function: GLhandle; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8266   TglCreateShader = function(shaderType: GLenum): GLhandle; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8267   TglDeleteProgram = procedure(programObj: GLhandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8268   TglDeleteShader = procedure(shaderObj: GLhandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8269   TglDetachShader = procedure(programObj, shaderObj: GLhandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8270   TglDisableVertexAttribArray = procedure(index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8271   TglEnableVertexAttribArray = procedure(index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8272   TglGetActiveAttrib = procedure(programObj: GLhandle; index: GLuint; maxlength: GLsizei; var length: GLint; var size: GLint; var _type: GLenum; name: PGLChar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8273   TglGetActiveUniform = procedure(programObj: GLhandle; index: GLuint; maxLength: GLsizei; var length: GLsizei; var size: GLint; var _type: GLenum; name: PGLChar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8274   TglGetAttachedShaders = procedure(programObj: GLhandle; MaxCount: GLsizei; var Count: GLint; shaders: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8275   TglGetAttribLocation = function(programObj: GLhandle; char: PGLChar): glint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8276   TglGetProgramiv = procedure(programObj: GLhandle; pname: GLenum; params: PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8277   TglGetProgramInfoLog = procedure(programObj: GLHandle; maxLength: glsizei; length: PGLSizei; infoLog: PGLChar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8278   TglGetShaderiv = procedure(shaderObj: GLhandle; pname: GLenum; params: PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8279   TglGetShaderInfoLog = procedure(shaderObj: GLHandle; maxLength: glsizei; length: PGLSizei; infoLog: PGLChar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8280   TglGetShaderSource = procedure(shaderObj: GLhandle; maxlength: GLsizei; var length: GLsizei; source: PGLChar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8281   TglGetUniformLocation = function(programObj: GLhandle; const char: PGLChar): glint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8282   TglGetUniformfv = procedure(programObj: GLhandle; location: GLint; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8283   TglGetUniformiv = procedure(programObj: GLhandle; location: GLint; params: PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8284   TglGetVertexAttribfv = procedure(index: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8285   TglGetVertexAttribiv = procedure(index: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8286   TglGetVertexAttribPointerv = procedure(index: GLuint; pname: GLenum; _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8287   TglIsProgram = function(programObj: GLhandle) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8288   TglIsShader = function(shaderObj: GLhandle) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8289   TglLinkProgram = procedure(programObj: GLHandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8290   TglShaderSource = procedure(shaderObj: GLHandle; count: glsizei; const _string: PPGLChar; lengths: pglint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8291   TglUseProgram = procedure(programObj: GLhandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8292   TglUniform1f = procedure(location: GLint; v0: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8293   TglUniform2f = procedure(location: GLint; v0, v1: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8294   TglUniform3f = procedure(location: GLint; v0, v1, v2: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8295   TglUniform4f = procedure(location: GLint; v0, v1, v2, v3: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8296   TglUniform1i = procedure(location: GLint; v0: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8297   TglUniform2i = procedure(location: GLint; v0, v1: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8298   TglUniform3i = procedure(location: GLint; v0, v1, v2: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8299   TglUniform4i = procedure(location: GLint; v0, v1, v2, v3: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8300   TglUniform1fv = procedure(location: GLint; count: GLsizei; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8301   TglUniform2fv = procedure(location: GLint; count: GLsizei; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8302   TglUniform3fv = procedure(location: GLint; count: GLsizei; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8303   TglUniform4fv = procedure(location: GLint; count: GLsizei; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8304   TglUniform1iv = procedure(location: GLint; count: GLsizei; value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8305   TglUniform2iv = procedure(location: GLint; count: GLsizei; value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8306   TglUniform3iv = procedure(location: GLint; count: GLsizei; value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8307   TglUniform4iv = procedure(location: GLint; count: GLsizei; value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8308   TglUniformMatrix2fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8309   TglUniformMatrix3fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8310   TglUniformMatrix4fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8311   TglValidateProgram = procedure(programObj: GLhandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8312   TglVertexAttrib1d = procedure(index: GLuint; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8313   TglVertexAttrib1dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8314   TglVertexAttrib1f = procedure(index: GLuint; x: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8315   TglVertexAttrib1fv = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8316   TglVertexAttrib1s = procedure(index: GLuint; x: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8317   TglVertexAttrib1sv = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8318   TglVertexAttrib2d = procedure(index: GLuint; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8319   TglVertexAttrib2dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8320   TglVertexAttrib2f = procedure(index: GLuint; x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8321   TglVertexAttrib2fv = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8322   TglVertexAttrib2s = procedure(index: GLuint; x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8323   TglVertexAttrib2sv = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8324   TglVertexAttrib3d = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8325   TglVertexAttrib3dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8326   TglVertexAttrib3f = procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8327   TglVertexAttrib3fv = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8328   TglVertexAttrib3s = procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8329   TglVertexAttrib3sv = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8330   TglVertexAttrib4Nbv = procedure(index: GLuint; const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8331   TglVertexAttrib4Niv = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8332   TglVertexAttrib4Nsv = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8333   TglVertexAttrib4Nub = procedure(index: GLuint; x: GLubyte; y: GLubyte; z: GLubyte; w: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8334   TglVertexAttrib4Nubv = procedure(index: GLuint; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8335   TglVertexAttrib4Nuiv = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8336   TglVertexAttrib4Nusv = procedure(index: GLuint; const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8337   TglVertexAttrib4bv = procedure(index: GLuint; const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8338   TglVertexAttrib4d = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8339   TglVertexAttrib4dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8340   TglVertexAttrib4f = procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8341   TglVertexAttrib4fv = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8342   TglVertexAttrib4iv = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8343   TglVertexAttrib4s = procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort; w: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8344   TglVertexAttrib4sv = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8345   TglVertexAttrib4ubv = procedure(index: GLuint; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8346   TglVertexAttrib4uiv = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8347   TglVertexAttrib4usv = procedure(index: GLuint; const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8348   TglVertexAttribPointer = procedure(index: GLuint; size: GLint; _type: GLenum; normalized: GLboolean; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8349
8350   // GL_VERSION_2_1
8351   TglUniformMatrix2x3fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8352   TglUniformMatrix3x2fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8353   TglUniformMatrix2x4fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8354   TglUniformMatrix4x2fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8355   TglUniformMatrix3x4fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8356   TglUniformMatrix4x3fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8357
8358   // GL_VERSION_3_0
8359   { OpenGL 3.0 also reuses entry points from these extensions: }
8360   { ARB_framebuffer_object }
8361   { ARB_map_buffer_range }
8362   { ARB_vertex_array_object }
8363   TglColorMaski = procedure(index_: GLuint; r: GLboolean; g: GLboolean; b: GLboolean; a: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8364   TglGetBooleani_v = procedure(target: GLenum; index_: GLuint; data: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8365   TglGetIntegeri_v = procedure(target: GLenum; index_: GLuint; data: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8366   TglEnablei = procedure(target: GLenum; index_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8367   TglDisablei = procedure(target: GLenum; index_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8368   TglIsEnabledi = function(target: GLenum; index_: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8369   TglBeginTransformFeedback = procedure(primitiveMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8370   TglEndTransformFeedback = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8371   TglBindBufferRange = procedure(target: GLenum; index_: GLuint; buffer: GLuint; offset: GLintptr; size: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8372   TglBindBufferBase = procedure(target: GLenum; index_: GLuint; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8373   TglTransformFeedbackVaryings = procedure(program_: GLuint; count: GLsizei; const varyings: PPGLchar; bufferMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8374   TglGetTransformFeedbackVarying = procedure(program_: GLuint; index_: GLuint; bufSize: GLsizei; length: PGLsizei; size: PGLsizei; type_: PGLsizei; name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8375   TglClampColor = procedure(targe: GLenum; clamp: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8376   TglBeginConditionalRender = procedure(id: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8377   TglEndConditionalRender = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8378   TglVertexAttribIPointer = procedure(index_: GLuint; size: GLint; type_: GLenum; stride: GLsizei; const pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8379   TglGetVertexAttribIiv = procedure(index_: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8380   TglGetVertexAttribIuiv = procedure(index_: GLuint; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8381   TglVertexAttribI1i = procedure(index_: GLuint; x: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8382   TglVertexAttribI2i = procedure(index_: GLuint; x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8383   TglVertexAttribI3i = procedure(index_: GLuint; x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8384   TglVertexAttribI4i = procedure(index_: GLuint; x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8385   TglVertexAttribI1ui = procedure(index_: GLuint; x: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8386   TglVertexAttribI2ui = procedure(index_: GLuint; x: GLuint; y: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8387   TglVertexAttribI3ui = procedure(index_: GLuint; x: GLuint; y: GLuint; z: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8388   TglVertexAttribI4ui = procedure(index_: GLuint; x: GLuint; y: GLuint; z: GLuint; w: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8389   TglVertexAttribI1iv = procedure(index_: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8390   TglVertexAttribI2iv = procedure(index_: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8391   TglVertexAttribI3iv = procedure(index_: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8392   TglVertexAttribI4iv = procedure(index_: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8393   TglVertexAttribI1uiv = procedure(index_: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8394   TglVertexAttribI2uiv = procedure(index_: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8395   TglVertexAttribI3uiv = procedure(index_: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8396   TglVertexAttribI4uiv = procedure(index_: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8397   TglVertexAttribI4bv = procedure(index_: GLuint; const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8398   TglVertexAttribI4sv = procedure(index_: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8399   TglVertexAttribI4ubv = procedure(index_: GLuint; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8400   TglVertexAttribI4usv = procedure(index_: GLuint; const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8401   TglGetUniformuiv = procedure(program_: GLuint; location: GLint; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8402   TglBindFragDataLocation = procedure(program_: GLuint; color: GLuint; const name: PGLChar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8403   TglGetFragDataLocation = function(program_: GLuint; const name: PGLChar): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8404   TglUniform1ui = procedure(location: GLint; v0: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8405   TglUniform2ui = procedure(location: GLint; v0: GLuint; v1: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8406   TglUniform3ui = procedure(location: GLint; v0: GLuint; v1: GLuint; v2: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8407   TglUniform4ui = procedure(location: GLint; v0: GLuint; v1: GLuint; v2: GLuint; v3: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8408   TglUniform1uiv = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8409   TglUniform2uiv = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8410   TglUniform3uiv = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8411   TglUniform4uiv = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8412   TglTexParameterIiv = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8413   TglTexParameterIuiv = procedure(target: GLenum; pname: GLenum; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8414   TglGetTexParameterIiv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8415   TglGetTexParameterIuiv = procedure(target: GLenum; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8416   TglClearBufferiv = procedure(buffer: GLenum; drawbuffer: GLint; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8417   TglClearBufferuiv = procedure(buffer: GLenum; drawbuffer: GLint; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8418   TglClearBufferfv = procedure(buffer: GLenum; drawbuffer: GLint; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8419   TglClearBufferfi = procedure(buffer: GLenum; drawbuffer: GLint; depth: GLfloat; stencil: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8420   TglGetStringi = function(name: GLenum; index: GLuint): PGLubyte; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8421
8422   // GL_VERSION_2_1
8423   TglEnableVertexArrayEXT = procedure(vaobj: GLuint; array_: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8424   TglEnableVertexArrayAttribEXT = procedure(vaobj: GLuint; index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8425   TglVertexArrayVertexAttribOffsetEXT = procedure(vaobj: GLuint; buffer: GLuint; index: GLuint; size: GLint; type_: GLenum; normalized: GLboolean; stride: GLsizei; offset: GLintptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8426
8427   // GL_VERSION_3_1
8428   { OpenGL 3.1 also reuses entry points from these extensions: }
8429   { ARB_copy_buffer }
8430   { ARB_uniform_buffer_object }
8431   TglDrawArraysInstanced = procedure(mode: GLenum; first: GLint; count: GLsizei; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8432   TglDrawElementsInstanced = procedure(mode: GLenum; count: GLsizei; type_: GLenum; const indices: PGLvoid; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8433   TglTexBuffer = procedure(target: GLenum; internalformat: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8434   TglPrimitiveRestartIndex = procedure(index_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8435
8436   // GL_VERSION_3_2
8437   { OpenGL 3.2 also reuses entry points from these extensions: }
8438   { ARB_draw_elements_base_vertex }
8439   { ARB_provoking_vertex }
8440   { ARB_sync }
8441   { ARB_texture_multisample }
8442   TglGetInteger64i_v = procedure(target: GLenum; index_: GLuint; data: PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8443   TglGetBufferParameteri64v = procedure(target: GLenum; pname: GLenum; params: PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8444   TglFramebufferTexture = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8445 //  TglFramebufferTextureFace = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; face: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8446
8447   // GL_VERSION_3_3
8448   { OpenGL 3.3 also reuses entry points from these extensions: }
8449   { ARB_blend_func_extended }
8450   { ARB_sampler_objects }
8451   { ARB_explicit_attrib_location, but it has none }
8452   { ARB_occlusion_query2 (no entry points) }
8453   { ARB_shader_bit_encoding (no entry points) }
8454   { ARB_texture_rgb10_a2ui (no entry points) }
8455   { ARB_texture_swizzle (no entry points) }
8456   { ARB_timer_query }
8457   { ARB_vertex_type_2_10_10_10_rev }
8458   TglVertexAttribDivisor = procedure(index: GLuint; divisor: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8459
8460   // GL_VERSION_4_0
8461   { OpenGL 4.0 also reuses entry points from these extensions: }
8462   { ARB_texture_query_lod (no entry points) }
8463   { ARB_draw_indirect }
8464   { ARB_gpu_shader5 (no entry points) }
8465   { ARB_gpu_shader_fp64 }
8466   { ARB_shader_subroutine }
8467   { ARB_tessellation_shader }
8468   { ARB_texture_buffer_object_rgb32 (no entry points) }
8469   { ARB_texture_cube_map_array (no entry points) }
8470   { ARB_texture_gather (no entry points) }
8471   { ARB_transform_feedback2 }
8472   { ARB_transform_feedback3 }
8473   TglMinSampleShading = procedure(value: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8474   TglBlendEquationi = procedure(buf: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8475   TglBlendEquationSeparatei = procedure(buf: GLuint; modeRGB: GLenum; modeAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8476   TglBlendFunci = procedure(buf: GLuint; src: GLenum; dst: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8477   TglBlendFuncSeparatei = procedure(buf: GLuint; srcRGB: GLenum; dstRGB: GLenum; srcAlpha: GLenum; dstAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8478
8479   // GL_VERSION_4_1
8480   { OpenGL 4.1 also reuses entry points from these extensions: }
8481   { ARB_ES2_compatibility }
8482   { ARB_get_program_binary }
8483   { ARB_separate_shader_objects }
8484   { ARB_shader_precision (no entry points) }
8485   { ARB_vertex_attrib_64bit }
8486   { ARB_viewport_array }
8487
8488   // GL_3DFX_tbuffer
8489   TglTbufferMask3DFX = procedure(mask: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8490
8491   // GL_APPLE_element_array
8492   TglElementPointerAPPLE = procedure(_type: GLenum; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8493   TglDrawElementArrayAPPLE = procedure(mode: GLenum; first: GLint; count: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8494   TglDrawRangeElementArrayAPPLE = procedure(mode: GLenum; start: GLuint; _end: GLuint; first: GLint; count: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8495   TglMultiDrawElementArrayAPPLE = procedure(mode: GLenum; const first: PGLint; const count: PGLsizei; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8496   TglMultiDrawRangeElementArrayAPPLE = procedure(mode: GLenum; start: GLuint; _end: GLuint; const first: PGLint; const count: PGLsizei; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8497
8498   // GL_APPLE_fence
8499   TglGenFencesAPPLE = procedure(n: GLsizei; fences: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8500   TglDeleteFencesAPPLE = procedure(n: GLsizei; const fences: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8501   TglSetFenceAPPLE = procedure(fence: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8502   TglIsFenceAPPLE = function(fence: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8503   TglTestFenceAPPLE = function(fence: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8504   TglFinishFenceAPPLE = procedure(fence: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8505   TglTestObjectAPPLE = function(_object: GLenum; name: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8506   TglFinishObjectAPPLE = procedure(_object: GLenum; name: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8507
8508   // GL_APPLE_vertex_array_object
8509   TglBindVertexArrayAPPLE = procedure(_array: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8510   TglDeleteVertexArraysAPPLE = procedure(n: GLsizei; const arrays: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8511   TglGenVertexArraysAPPLE = procedure(n: GLsizei; const arrays: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8512   TglIsVertexArrayAPPLE = function(_array: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8513
8514   // GL_APPLE_vertex_array_range
8515   TglVertexArrayRangeAPPLE = procedure(length: GLsizei; _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8516   TglFlushVertexArrayRangeAPPLE = procedure(length: GLsizei; _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8517   TglVertexArrayParameteriAPPLE = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8518
8519   // GL_APPLE_texture_range
8520   TglTextureRangeAPPLE = procedure(target: GLenum; length: GLsizei; const Pointer_: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8521   TglGetTexParameterPointervAPPLE = procedure(target: GLenum; pname: GLenum; params: PPGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8522
8523   // GL_APPLE_vertex_program_evaluators
8524   TglEnableVertexAttribAPPLE = procedure(index_: GLuint; pname: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8525   TglDisableVertexAttribAPPLE = procedure(index_: GLuint; pname: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8526   TglIsVertexAttribEnabledAPPLE = function(index_: GLuint; pname: GLenum): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8527   TglMapVertexAttrib1dAPPLE = procedure(index_: GLuint; size: GLuint; u1: GLdouble; u2: GLdouble; stride: GLint; order: GLint; const points: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8528   TglMapVertexAttrib1fAPPLE = procedure(index_: GLuint; size: GLuint; u1: GLfloat; u2: GLfloat; stride: GLint; order: GLint; const points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8529   TglMapVertexAttrib2dAPPLE = procedure(index_: GLuint; size: GLuint; u1: GLdouble; u2: GLdouble; ustride: GLint; uorder: GLint; v1: GLdouble; v2: GLdouble; vstride: GLint; vorder: GLint; const points: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8530   TglMapVertexAttrib2fAPPLE = procedure(index_: GLuint; size: GLuint; u1: GLfloat; u2: GLfloat; ustride: GLint; order: GLint; v1: GLfloat; v2: GLfloat; vstride: GLint; vorder: GLint; const points: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8531
8532   // GL_APPLE_object_purgeable
8533   TglObjectPurgeableAPPLE = function(objectType: GLenum; name: GLuint; option: GLenum): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8534   TglObjectUnpurgeableAPPLE = function(objectType: GLenum; name: GLuint; option: GLenum): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8535   TglGetObjectParameterivAPPLE = procedure(objectType: GLenum; name: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8536
8537   // GL_ARB_matrix_palette
8538   TglCurrentPaletteMatrixARB = procedure(index: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8539   TglMatrixIndexubvARB = procedure(size: GLint; const indices: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8540   TglMatrixIndexusvARB = procedure(size: GLint; const indices: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8541   TglMatrixIndexuivARB = procedure(size: GLint; const indices: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8542   TglMatrixIndexPointerARB = procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8543
8544   // GL_ARB_multisample
8545   TglSampleCoverageARB = procedure(value: GLclampf; invert: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8546
8547   // GL_ARB_multitexture
8548   TglActiveTextureARB = procedure(texture: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8549   TglClientActiveTextureARB = procedure(texture: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8550   TglMultiTexCoord1dARB = procedure(target: GLenum; s: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8551   TglMultiTexCoord1dvARB = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8552   TglMultiTexCoord1fARB = procedure(target: GLenum; s: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8553   TglMultiTexCoord1fvARB = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8554   TglMultiTexCoord1iARB = procedure(target: GLenum; s: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8555   TglMultiTexCoord1ivARB = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8556   TglMultiTexCoord1sARB = procedure(target: GLenum; s: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8557   TglMultiTexCoord1svARB = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8558   TglMultiTexCoord2dARB = procedure(target: GLenum; s: GLdouble; t: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8559   TglMultiTexCoord2dvARB = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8560   TglMultiTexCoord2fARB = procedure(target: GLenum; s: GLfloat; t: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8561   TglMultiTexCoord2fvARB = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8562   TglMultiTexCoord2iARB = procedure(target: GLenum; s: GLint; t: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8563   TglMultiTexCoord2ivARB = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8564   TglMultiTexCoord2sARB = procedure(target: GLenum; s: GLshort; t: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8565   TglMultiTexCoord2svARB = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8566   TglMultiTexCoord3dARB = procedure(target: GLenum; s: GLdouble; t: GLdouble; r: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8567   TglMultiTexCoord3dvARB = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8568   TglMultiTexCoord3fARB = procedure(target: GLenum; s: GLfloat; t: GLfloat; r: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8569   TglMultiTexCoord3fvARB = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8570   TglMultiTexCoord3iARB = procedure(target: GLenum; s: GLint; t: GLint; r: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8571   TglMultiTexCoord3ivARB = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8572   TglMultiTexCoord3sARB = procedure(target: GLenum; s: GLshort; t: GLshort; r: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8573   TglMultiTexCoord3svARB = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8574   TglMultiTexCoord4dARB = procedure(target: GLenum; s: GLdouble; t: GLdouble; r: GLdouble; q: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8575   TglMultiTexCoord4dvARB = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8576   TglMultiTexCoord4fARB = procedure(target: GLenum; s: GLfloat; t: GLfloat; r: GLfloat; q: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8577   TglMultiTexCoord4fvARB = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8578   TglMultiTexCoord4iARB = procedure(target: GLenum; s: GLint; t: GLint; r: GLint; q: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8579   TglMultiTexCoord4ivARB = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8580   TglMultiTexCoord4sARB = procedure(target: GLenum; s: GLshort; t: GLshort; r: GLshort; q: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8581   TglMultiTexCoord4svARB = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8582
8583   // GL_ARB_point_parameters
8584   TglPointParameterfARB = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8585   TglPointParameterfvARB = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8586
8587   // GL_ARB_texture_compression
8588   TglCompressedTexImage3DARB = procedure(target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; height: GLsizei; depth: GLsizei; border: GLint; imageSize: GLsizei; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8589   TglCompressedTexImage2DARB = procedure(target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; height: GLsizei; border: GLint; imageSize: GLsizei; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8590   TglCompressedTexImage1DARB = procedure(target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; border: GLint; imageSize: GLsizei; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8591   TglCompressedTexSubImage3DARB = procedure(target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; zoffset: GLint; width: GLsizei; height: GLsizei; depth: GLsizei; format: GLenum; imageSize: GLsizei; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8592   TglCompressedTexSubImage2DARB = procedure(target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; width: GLsizei; height: GLsizei; format: GLenum; imageSize: GLsizei; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8593   TglCompressedTexSubImage1DARB = procedure(target: GLenum; level: GLint; xoffset: GLint; width: GLsizei; format: GLenum; imageSize: GLsizei; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8594   TglGetCompressedTexImageARB = procedure(target: GLenum; level: GLint; img: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8595
8596   // GL_ARB_transpose_matrix
8597   TglLoadTransposeMatrixfARB = procedure(const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8598   TglLoadTransposeMatrixdARB = procedure(const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8599   TglMultTransposeMatrixfARB = procedure(const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8600   TglMultTransposeMatrixdARB = procedure(const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8601
8602   // GL_ARB_vertex_blend
8603   TglWeightbvARB = procedure(size: GLint; const weights: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8604   TglWeightsvARB = procedure(size: GLint; const weights: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8605   TglWeightivARB = procedure(size: GLint; const weights: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8606   TglWeightfvARB = procedure(size: GLint; const weights: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8607   TglWeightdvARB = procedure(size: GLint; const weights: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8608   TglWeightubvARB = procedure(size: GLint; const weights: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8609   TglWeightusvARB = procedure(size: GLint; const weights: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8610   TglWeightuivARB = procedure(size: GLint; const weights: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8611   TglWeightPointerARB = procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8612   TglVertexBlendARB = procedure(count: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8613
8614   // GL_ARB_vertex_buffer_object
8615   TglBindBufferARB = procedure(target: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8616   TglDeleteBuffersARB = procedure(n: GLsizei; const buffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8617   TglGenBuffersARB = procedure(n: GLsizei; buffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8618   TglIsBufferARB = function(buffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8619   TglBufferDataARB = procedure(target: GLenum; size: GLsizeiptrARB; const data: PGLvoid; usage: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8620   TglBufferSubDataARB = procedure(target: GLenum; offset: GLintptrARB; size: GLsizeiptrARB; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8621   TglGetBufferSubDataARB = procedure(target: GLenum; offset: GLintptrARB; size: GLsizeiptrARB; data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8622   TglMapBufferARB = function(target: GLenum; access: GLenum): PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8623   TglUnmapBufferARB = function(target: GLenum): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8624   TglGetBufferParameterivARB = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8625   TglGetBufferPointervARB = procedure(target: GLenum; pname: GLenum; params: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8626
8627   // GL_ARB_vertex_program
8628   TglVertexAttrib1dARB = procedure(index: GLuint; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8629   TglVertexAttrib1dvARB = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8630   TglVertexAttrib1fARB = procedure(index: GLuint; x: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8631   TglVertexAttrib1fvARB = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8632   TglVertexAttrib1sARB = procedure(index: GLuint; x: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8633   TglVertexAttrib1svARB = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8634   TglVertexAttrib2dARB = procedure(index: GLuint; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8635   TglVertexAttrib2dvARB = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8636   TglVertexAttrib2fARB = procedure(index: GLuint; x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8637   TglVertexAttrib2fvARB = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8638   TglVertexAttrib2sARB = procedure(index: GLuint; x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8639   TglVertexAttrib2svARB = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8640   TglVertexAttrib3dARB = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8641   TglVertexAttrib3dvARB = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8642   TglVertexAttrib3fARB = procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8643   TglVertexAttrib3fvARB = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8644   TglVertexAttrib3sARB = procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8645   TglVertexAttrib3svARB = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8646   TglVertexAttrib4NbvARB = procedure(index: GLuint; const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8647   TglVertexAttrib4NivARB = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8648   TglVertexAttrib4NsvARB = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8649   TglVertexAttrib4NubARB = procedure(index: GLuint; x: GLubyte; y: GLubyte; z: GLubyte; w: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8650   TglVertexAttrib4NubvARB = procedure(index: GLuint; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8651   TglVertexAttrib4NuivARB = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8652   TglVertexAttrib4NusvARB = procedure(index: GLuint; const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8653   TglVertexAttrib4bvARB = procedure(index: GLuint; const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8654   TglVertexAttrib4dARB = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8655   TglVertexAttrib4dvARB = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8656   TglVertexAttrib4fARB = procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8657   TglVertexAttrib4fvARB = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8658   TglVertexAttrib4ivARB = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8659   TglVertexAttrib4sARB = procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort; w: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8660   TglVertexAttrib4svARB = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8661   TglVertexAttrib4ubvARB = procedure(index: GLuint; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8662   TglVertexAttrib4uivARB = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8663   TglVertexAttrib4usvARB = procedure(index: GLuint; const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8664   TglVertexAttribPointerARB = procedure(index: GLuint; size: GLint; _type: GLenum; normalized: GLboolean; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8665   TglEnableVertexAttribArrayARB = procedure(index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8666   TglDisableVertexAttribArrayARB = procedure(index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8667   TglProgramStringARB = procedure(target: GLenum; format: GLenum; len: GLsizei; const _string: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8668   TglBindProgramARB = procedure(target: GLenum; _program: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8669   TglDeleteProgramsARB = procedure(n: GLsizei; const programs: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8670   TglGenProgramsARB = procedure(n: GLsizei; programs: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8671   TglProgramEnvParameter4dARB = procedure(target: GLenum; index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8672   TglProgramEnvParameter4dvARB = procedure(target: GLenum; index: GLuint; const params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8673   TglProgramEnvParameter4fARB = procedure(target: GLenum; index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8674   TglProgramEnvParameter4fvARB = procedure(target: GLenum; index: GLuint; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8675   TglProgramLocalParameter4dARB = procedure(target: GLenum; index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8676   TglProgramLocalParameter4dvARB = procedure(target: GLenum; index: GLuint; const params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8677   TglProgramLocalParameter4fARB = procedure(target: GLenum; index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8678   TglProgramLocalParameter4fvARB = procedure(target: GLenum; index: GLuint; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8679   TglGetProgramEnvParameterdvARB = procedure(target: GLenum; index: GLuint; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8680   TglGetProgramEnvParameterfvARB = procedure(target: GLenum; index: GLuint; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8681   TglGetProgramLocalParameterdvARB = procedure(target: GLenum; index: GLuint; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8682   TglGetProgramLocalParameterfvARB = procedure(target: GLenum; index: GLuint; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8683   TglGetProgramivARB = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8684   TglGetProgramStringARB = procedure(target: GLenum; pname: GLenum; _string: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8685   TglGetVertexAttribdvARB = procedure(index: GLuint; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8686   TglGetVertexAttribfvARB = procedure(index: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8687   TglGetVertexAttribivARB = procedure(index: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8688   TglGetVertexAttribPointervARB = procedure(index: GLuint; pname: GLenum; _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8689   TglIsProgramARB = function(_program: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8690
8691   // GL_ARB_window_pos
8692   TglWindowPos2dARB = procedure(x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8693   TglWindowPos2dvARB = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8694   TglWindowPos2fARB = procedure(x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8695   TglWindowPos2fvARB = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8696   TglWindowPos2iARB = procedure(x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8697   TglWindowPos2ivARB = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8698   TglWindowPos2sARB = procedure(x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8699   TglWindowPos2svARB = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8700   TglWindowPos3dARB = procedure(x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8701   TglWindowPos3dvARB = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8702   TglWindowPos3fARB = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8703   TglWindowPos3fvARB = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8704   TglWindowPos3iARB = procedure(x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8705   TglWindowPos3ivARB = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8706   TglWindowPos3sARB = procedure(x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8707   TglWindowPos3svARB = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8708
8709   // GL_ARB_draw_buffers
8710   TglDrawBuffersARB = procedure(n: GLsizei; bufs: PGLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8711
8712   // GL_ARB_color_buffer_float
8713   TglClampColorARB = procedure(target: GLenum; clamp: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8714
8715   // GL_ARB_vertex_shader
8716   TglGetActiveAttribARB = procedure(programobj: GLhandleARB; index: GLuint; maxLength: GLsizei; var length: GLsizei; var size: GLint; var _type: GLenum; name: PGLcharARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8717   TglGetAttribLocationARB = function(programObj: GLhandleARB; const char: PGLcharARB): glint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8718   TglBindAttribLocationARB = procedure(programObj: GLhandleARB; index: GLuint; const name: PGLcharARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8719
8720   // GL_ARB_shader_objects
8721   TglDeleteObjectARB = procedure(Obj: GLHandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8722   TglGetHandleARB = function(pname: GlEnum): GLHandleARB; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8723   TglDetachObjectARB = procedure(container, attached: GLHandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8724   TglCreateShaderObjectARB = function(shaderType: glenum): GLHandleARB; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8725   TglShaderSourceARB = procedure(shaderObj: GLHandleARB; count: glsizei; const _string: PPGLCharARB; lengths: pglint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8726   TglCompileShaderARB = procedure(shaderObj: GLHandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8727   TglCreateProgramObjectARB = function: GLHandleARB; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8728   TglAttachObjectARB = procedure(programObj, shaderObj: GLhandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8729   TglLinkProgramARB = procedure(programObj: GLHandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8730   TglUseProgramObjectARB = procedure(programObj: GLHandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8731   TglValidateProgramARB = procedure(programObj: GLhandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8732   TglUniform1fARB = procedure(location: glint; v0: glfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8733   TglUniform2fARB = procedure(location: glint; v0, v1: glfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8734   TglUniform3fARB = procedure(location: glint; v0, v1, v2: glfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8735   TglUniform4fARB = procedure(location: glint; v0, v1, v2, v3: glfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8736   TglUniform1iARB = procedure(location: glint; v0: glint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8737   TglUniform2iARB = procedure(location: glint; v0, v1: glint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8738   TglUniform3iARB = procedure(location: glint; v0, v1, v2: glint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8739   TglUniform4iARB = procedure(location: glint; v0, v1, v2, v3: glint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8740   TglUniform1fvARB = procedure(location: glint; count: GLsizei; value: pglfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8741   TglUniform2fvARB = procedure(location: glint; count: GLsizei; value: pglfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8742   TglUniform3fvARB = procedure(location: glint; count: GLsizei; value: pglfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8743   TglUniform4fvARB = procedure(location: glint; count: GLsizei; value: pglfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8744   TglUniform1ivARB = procedure(location: glint; count: GLsizei; value: pglint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8745   TglUniform2ivARB = procedure(location: glint; count: GLsizei; value: pglint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8746   TglUniform3ivARB = procedure(location: glint; count: GLsizei; value: pglint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8747   TglUniform4ivARB = procedure(location: glint; count: GLsizei; value: pglint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8748   TglUniformMatrix2fvARB = procedure(location: glint; count: glsizei; transpose: glboolean; value: pglfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8749   TglUniformMatrix3fvARB = procedure(location: glint; count: glsizei; transpose: glboolean; value: pglfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8750   TglUniformMatrix4fvARB = procedure(location: glint; count: glsizei; transpose: glboolean; value: pglfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8751   TglGetObjectParameterfvARB = procedure(Obj: GLHandleARB; pname: GLEnum; params: PGLFloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8752   TglGetObjectParameterivARB = procedure(Obj: GLHandleARB; pname: GLEnum; params: PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8753   TglGetInfoLogARB = procedure(shaderObj: GLHandleARB; maxLength: glsizei; var length: glint; infoLog: PGLcharARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8754   TglGetAttachedObjectsARB = procedure(programobj: GLhandleARB; maxCount: GLsizei; var count: GLsizei; objects: PGLhandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8755   TglGetUniformLocationARB = function(programObj: GLhandleARB; const char: PGLcharARB): glint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8756   TglGetActiveUniformARB = procedure(programobj: GLhandleARB; index: GLuint; maxLength: GLsizei; var length: GLsizei; var size: GLint; var _type: GLenum; name: PGLcharARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8757   TglGetUniformfvARB = procedure(programObj: GLhandleARB; location: GLint; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8758   TglGetUniformivARB = procedure(programObj: GLhandleARB; location: GLint; params: PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8759   TglGetShaderSourceARB = procedure(shader: GLhandleARB; maxLength: GLsizei; var length: GLsizei; source: PGLcharARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8760
8761   // GL_ARB_Occlusion_Query
8762   TglGenQueriesARB = procedure(n: GLsizei; ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8763   TglDeleteQueriesARB = procedure(n: GLsizei; const ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8764   TglIsQueryARB = function(id: GLuint): boolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8765   TglBeginQueryARB = procedure(target: GLenum; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8766   TglEndQueryARB = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8767   TglGetQueryivARB = procedure(target, pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8768   TglGetQueryObjectivARB = procedure(id: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8769   TglGetQueryObjectuivARB = procedure(id: GLuint; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8770
8771   // GL_ARB_draw_instanced
8772   TglDrawArraysInstancedARB = procedure(mode: GLenum; first: GLint; count: GLsizei; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8773   TglDrawElementsInstancedARB = procedure(mode: GLenum; count: GLsizei; type_: GLenum; const indices: PGLvoid; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8774
8775   // GL_ARB_framebuffer_object
8776   TglIsRenderbuffer = function(renderbuffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8777   TglBindRenderbuffer = procedure(target: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8778   TglDeleteRenderbuffers = procedure(n: GLsizei; const renderbuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8779   TglGenRenderbuffers = procedure(n: GLsizei; renderbuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8780   TglRenderbufferStorage = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8781   TglGetRenderbufferParameteriv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8782   TglIsFramebuffer = function(framebuffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8783   TglBindFramebuffer = procedure(target: GLenum; framebuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8784   TglDeleteFramebuffers = procedure(n: GLsizei; const framebuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8785   TglGenFramebuffers = procedure(n: GLsizei; framebuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8786   TglCheckFramebufferStatus = function(target: GLenum): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8787   TglFramebufferTexture1D = procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8788   TglFramebufferTexture2D = procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8789   TglFramebufferTexture3D = procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint; zoffset: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8790   TglFramebufferRenderbuffer = procedure(target: GLenum; attachment: GLenum; renderbuffertarget: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8791   TglGetFramebufferAttachmentParameteriv = procedure(target: GLenum; attachment: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8792   TglGenerateMipmap = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8793   TglBlitFramebuffer = procedure(srcX0: GLint; srcY0: GLint; srcX1: GLint; srcY1: GLint; dstX0: GLint; dstY0: GLint; dstX1: GLint; dstY1: GLint; mask: GLbitfield; filter: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8794   TglRenderbufferStorageMultisample = procedure(target: GLenum; samples: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8795   TglFramebufferTextureLayer = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; layer: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8796
8797   // GL_ARB_geometry_shader4
8798   TglProgramParameteriARB = procedure(program_: GLuint; pname: GLenum; value: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8799   TglFramebufferTextureARB = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8800   TglFramebufferTextureLayerARB = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; layer: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8801   TglFramebufferTextureFaceARB = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; face: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8802
8803   // GL_ARB_instanced_arrays
8804   TglVertexAttribDivisorARB = procedure(index_: GLuint; divisor: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8805
8806   // GL_ARB_map_buffer_range
8807   TglMapBufferRange = function(target: GLenum; offset: GLintptr; length: GLsizeiptr; access: GLbitfield): PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8808   TglFlushMappedBufferRange = procedure(target: GLenum; offset: GLintptr; length: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8809
8810   // GL_ARB_texture_buffer_object
8811   TglTexBufferARB = procedure(target: GLenum; internalformat: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8812
8813   // GL_ARB_vertex_array_object
8814   TglBindVertexArray = procedure(array_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8815   TglDeleteVertexArrays = procedure(n: GLsizei; const arrays: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8816   TglGenVertexArrays = procedure(n: GLsizei; arrays: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8817   TglIsVertexArray = function(array_: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8818
8819   // GL_ARB_uniform_buffer_object
8820   TglGetUniformIndices = procedure(program_: GLuint; uniformCount: GLsizei; const uniformNames: PPGLchar; uniformIndices: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8821   TglGetActiveUniformsiv = procedure(program_: GLuint; uniformCount: GLsizei; const uniformIndices: PGLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8822   TglGetActiveUniformName = procedure(program_: GLuint; uniformIndex: GLuint; bufSize: GLsizei; length: PGLsizei; uniformName: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8823   TglGetUniformBlockIndex = function(program_: GLuint; const uniformBlockName: PGLchar): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8824   TglGetActiveUniformBlockiv = procedure(program_: GLuint; uniformBlockIndex: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8825   TglGetActiveUniformBlockName = procedure(program_: GLuint; uniformBlockIndex: GLuint; bufSize: GLsizei; length: PGLsizei; uniformBlockName: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8826   TglUniformBlockBinding = procedure(program_: GLuint; uniformBlockIndex: GLuint; uniformBlockBinding: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8827
8828   // GL_ARB_copy_buffer
8829   TglCopyBufferSubData = procedure(readTarget: GLenum; writeTarget: GLenum; readOffset: GLintptr; writeOffset: GLintptr; size: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8830
8831   // GL_ARB_draw_elements_base_vertex
8832   TglDrawElementsBaseVertex = procedure(mode: GLenum; count: GLsizei; type_: GLenum; const indices: PGLvoid; basevertex: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8833   TglDrawRangeElementsBaseVertex = procedure(mode: GLenum; start: GLuint; end_: GLuint; count: GLsizei; type_: GLenum; const indices: PGLvoid; basevertex: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8834   TglDrawElementsInstancedBaseVertex = procedure(mode: GLenum; count: GLsizei; type_: GLenum; const indices: PGLvoid; primcount: GLsizei; basevertex: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8835   TglMultiDrawElementsBaseVertex = procedure(mode: GLenum; const count: PGLsizei; type_: GLenum; const indices: PPGLvoid; primcount: GLsizei; const basevertex: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8836
8837   // GL_ARB_provoking_vertex
8838   TglProvokingVertex = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8839
8840   // GL_ARB_sync
8841   TglFenceSync = function(condition: GLenum; flags: GLbitfield): GLsync; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8842   TglIsSync = function(sync: GLsync): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8843   TglDeleteSync = procedure(sync: GLsync); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8844   TglClientWaitSync = function(sync: GLsync; flags: GLbitfield; timeout: GLuint64): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8845   TglWaitSync = procedure(sync: GLsync; flags: GLbitfield; timeout: GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8846   TglGetInteger64v = procedure(pname: GLenum; params: PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8847   TglGetSynciv = procedure(sync: GLsync; pname: GLenum; butSize: GLsizei; length: PGLsizei; values: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8848
8849   // GL_ARB_texture_multisample
8850   TglTexImage2DMultisample = procedure(target: GLenum; samples: GLsizei; internalformat: GLint; width: GLsizei; height: GLsizei; fixedsamplelocations: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8851   TglTexImage3DMultisample = procedure(target: GLenum; samples: GLsizei; internalformat: GLint; width: GLsizei; height: GLsizei; depth: GLsizei; fixedsamplelocations: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8852   TglGetMultisamplefv = procedure(pname: GLenum; index_: GLuint; val: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8853   TglSampleMaski = procedure(index_: GLuint; mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8854
8855   // GL_ARB_draw_buffers_blend
8856   TglBlendEquationiARB = procedure(buf: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8857   TglBlendEquationSeparateiARB = procedure(buf: GLuint; modeRGB: GLenum; modeAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8858   TglBlendFunciARB = procedure(buf: GLuint; src: GLenum; dst: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8859   TglBlendFuncSeparateiARB = procedure(buf: GLuint; srcRGB: GLenum; dstRGB: GLenum; srcAlpha: GLenum; dstAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8860
8861   // GL_ARB_sample_shading
8862   TglMinSampleShadingARB = procedure(value: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8863
8864   // GL_ARB_shading_language_include
8865   TglNamedStringARB = procedure(type_: GLenum; namelen: GLint; const name: PGLchar; stringlen: GLint; const string_: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8866   TglDeleteNamedStringARB = procedure(namelen: GLint; const name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8867   TglCompileShaderIncludeARB = procedure (shader: GLuint; count: GLsizei; const path: PPGLchar; const length: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8868   TglIsNamedStringARB = function(namelen: GLint; const name: PGLchar): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8869   TglGetNamedStringARB = procedure(namelen: GLint; const name: PGLchar; bufSize: GLsizei; stringlen: GLint; string_: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8870   TglGetNamedStringivARB = procedure(namelen: GLint; const name: PGLchar; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8871
8872   // GL_ARB_blend_func_extended
8873   TglBindFragDataLocationIndexed = procedure(program_: GLuint; colorNumber: GLuint; index: GLuint; const name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8874   TglGetFragDataIndex = function(program_: GLuint; const name: PGLchar): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8875
8876   // GL_ARB_sampler_objects
8877   TglGenSamplers = procedure(count: GLsizei; samplers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8878   TglDeleteSamplers = procedure(count: GLsizei; const samplers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8879   TglIsSampler = function(sampler: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8880   TglBindSampler = procedure(unit_: GLuint; sampler: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8881   TglSamplerParameteri = procedure(sampler: GLuint; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8882   TglSamplerParameteriv = procedure(sampler: GLuint; pname: GLenum; const param: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8883   TglSamplerParameterf = procedure(sampler: GLuint; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8884   TglSamplerParameterfv = procedure(sampler: GLuint; pname: GLenum; const param: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8885   TglSamplerParameterIiv = procedure(sampler: GLuint; pname: GLenum; const param: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8886   TglSamplerParameterIuiv = procedure(sampler: GLuint; pname: GLenum; const param: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8887   TglGetSamplerParameteriv = procedure(sampler: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8888   TglGetSamplerParameterIiv = procedure(sampler: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8889   TglGetSamplerParameterfv = procedure(sampler: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8890   TglGetSamplerParameterIuiv = procedure(sampler: GLuint; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8891
8892   // GL_ARB_timer_query
8893   TglQueryCounter = procedure(id: GLuint; target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8894   TglGetQueryObjecti64v = procedure(id: GLuint; pname: GLenum; params: PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8895   TglGetQueryObjectui64v = procedure(id: GLuint; pname: GLenum; params: PGLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8896
8897   // GL_ARB_vertex_type_2_10_10_10_rev
8898   TglVertexP2ui = procedure(type_: GLenum; value: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8899   TglVertexP2uiv = procedure(type_: GLenum; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8900   TglVertexP3ui = procedure(type_: GLenum; value: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8901   TglVertexP3uiv = procedure(type_: GLenum; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8902   TglVertexP4ui = procedure(type_: GLenum; value: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8903   TglVertexP4uiv = procedure(type_: GLenum; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8904   TglTexCoordP1ui = procedure(type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8905   TglTexCoordP1uiv = procedure(type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8906   TglTexCoordP2ui = procedure(type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8907   TglTexCoordP2uiv = procedure(type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8908   TglTexCoordP3ui = procedure(type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8909   TglTexCoordP3uiv = procedure(type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8910   TglTexCoordP4ui = procedure(type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8911   TglTexCoordP4uiv = procedure(type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8912   TglMultiTexCoordP1ui = procedure(texture: GLenum; type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8913   TglMultiTexCoordP1uiv = procedure(texture: GLenum; type_: GLenum; const coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8914   TglMultiTexCoordP2ui = procedure(texture: GLenum; type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8915   TglMultiTexCoordP2uiv = procedure(texture: GLenum; type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8916   TglMultiTexCoordP3ui = procedure(texture: GLenum; type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8917   TglMultiTexCoordP3uiv = procedure(texture: GLenum; type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8918   TglMultiTexCoordP4ui = procedure(texture: GLenum; type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8919   TglMultiTexCoordP4uiv = procedure(texture: GLenum; type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8920   TglNormalP3ui = procedure(type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8921   TglNormalP3uiv = procedure(type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8922   TglColorP3ui = procedure(type_: GLenum; color: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8923   TglColorP3uiv = procedure(type_: GLenum; const color: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8924   TglColorP4ui = procedure(type_: GLenum; color: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8925   TglColorP4uiv = procedure(type_: GLenum; const color: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8926   TglSecondaryColorP3ui = procedure(type_: GLenum; color: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8927   TglSecondaryColorP3uiv = procedure(type_: GLenum; const color: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8928   TglVertexAttribP1ui = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; value: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8929   TglVertexAttribP1uiv = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8930   TglVertexAttribP2ui = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; value: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8931   TglVertexAttribP2uiv = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8932   TglVertexAttribP3ui = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; value: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8933   TglVertexAttribP3uiv = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8934   TglVertexAttribP4ui = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; value: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8935   TglVertexAttribP4uiv = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8936
8937   // GL_ARB_draw_indirect
8938   TglDrawArraysIndirect = procedure(mode: GLenum; const indirect: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8939   TglDrawElementsIndirect = procedure(mode: GLenum; type_: GLenum; const indirect: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8940
8941   // GL_ARB_gpu_shader_fp64
8942   TglUniform1d = procedure(location: GLint; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8943   TglUniform2d = procedure(location: GLint; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8944   TglUniform3d = procedure(location: GLint; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8945   TglUniform4d = procedure(location: GLint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8946   TglUniform1dv = procedure(location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8947   TglUniform2dv = procedure(location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8948   TglUniform3dv = procedure(location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8949   TglUniform4dv = procedure(location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8950   TglUniformMatrix2dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8951   TglUniformMatrix3dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8952   TglUniformMatrix4dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8953   TglUniformMatrix2x3dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8954   TglUniformMatrix2x4dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8955   TglUniformMatrix3x2dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8956   TglUniformMatrix3x4dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8957   TglUniformMatrix4x2dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8958   TglUniformMatrix4x3dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8959   TglGetUniformdv = procedure(program_: GLuint; location: GLint; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8960
8961   // GL_ARB_shader_subroutine
8962   TglGetSubroutineUniformLocation = function(program_: GLuint; shadertype: GLenum; const name: PGLchar): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8963   TglGetSubroutineIndex = function(program_: GLuint; shadertype: GLenum; const name: PGLchar): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8964   TglGetActiveSubroutineUniformiv = procedure(program_: GLuint; shadertype: GLenum; index: GLuint; pname: GLenum; values: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8965   TglGetActiveSubroutineUniformName = procedure(program_: GLuint; shadertype: GLenum; index: GLuint; bufsize: GLsizei; length: PGLsizei; name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8966   TglGetActiveSubroutineName = procedure(program_: GLuint; shadertype: GLenum; index: GLuint; bufsize: GLsizei; length: PGLsizei; name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8967   TglUniformSubroutinesuiv = procedure(shadertype: GLenum; count: GLsizei; const indices: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8968   TglGetUniformSubroutineuiv = procedure(shadertype: GLenum; location: GLint; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8969   TglGetProgramStageiv = procedure(program_: GLuint; shadertype: GLenum; pname: GLenum; values: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8970
8971   // GL_ARB_tessellation_shader
8972   TglPatchParameteri = procedure(pname: GLenum; value: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8973   TglPatchParameterfv = procedure(pname: GLenum; const values: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8974
8975   // GL_ARB_transform_feedback2
8976   TglBindTransformFeedback = procedure(target: GLenum; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8977   TglDeleteTransformFeedbacks = procedure(n: GLsizei; const ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8978   TglGenTransformFeedbacks = procedure(n: GLsizei; ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8979   TglIsTransformFeedback = function(id: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8980   TglPauseTransformFeedback = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8981   TglResumeTransformFeedback = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8982   TglDrawTransformFeedback = procedure(mode: GLenum; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8983
8984   // GL_ARB_transform_feedback3
8985   TglDrawTransformFeedbackStream = procedure(mode: GLenum; id: GLuint; stream: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8986   TglBeginQueryIndexed = procedure(target: GLenum; index: GLuint; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8987   TglEndQueryIndexed = procedure(target: GLenum; index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8988   TglGetQueryIndexediv = procedure(target: GLenum; index: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8989
8990   // GL_ARB_ES2_compatibility
8991   TglReleaseShaderCompiler = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8992   TglShaderBinary = procedure(count: GLsizei; const shaders: PGLuint; binaryformat: GLenum; const binary: PGLvoid; length: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8993   TglGetShaderPrecisionFormat = procedure(shadertype: GLenum; precisiontype: GLenum; range: PGLint; precision: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8994   TglDepthRangef = procedure(n: GLclampf; f: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8995   TglClearDepthf = procedure(d: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8996
8997   // GL_ARB_get_program_binary
8998   TglGetProgramBinary = procedure(program_: GLuint; bufSize: GLsizei; length: PGLsizei; binaryFormat: PGLenum; binary: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8999   TglProgramBinary = procedure(program_: GLuint; binaryFormat: GLenum; const binary: PGLvoid; length: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9000   TglProgramParameteri = procedure(program_: GLuint; pname: GLenum; value: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9001
9002   // GL_ARB_separate_shader_objects
9003   TglUseProgramStages = procedure(pipeline: GLuint; stages: GLbitfield; program_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9004   TglActiveShaderProgram = procedure(pipeline: GLuint; program_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9005   TglCreateShaderProgramv = function(type_: GLenum; count: GLsizei; const strings: PPGLchar): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9006   TglBindProgramPipeline = procedure(pipeline: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9007   TglDeleteProgramPipelines = procedure(n: GLsizei; const pipelines: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9008   TglGenProgramPipelines = procedure(n: GLsizei; pipelines: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9009   TglIsProgramPipeline = function(pipeline: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9010   TglGetProgramPipelineiv = procedure(pipeline: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9011   TglProgramUniform1i = procedure(program_: GLuint; location: GLint; v0: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9012   TglProgramUniform1iv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9013   TglProgramUniform1f = procedure(program_: GLuint; location: GLint; v0: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9014   TglProgramUniform1fv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9015   TglProgramUniform1d = procedure(program_: GLuint; location: GLint; v0: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9016   TglProgramUniform1dv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9017   TglProgramUniform1ui = procedure(program_: GLuint; location: GLint; v0: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9018   TglProgramUniform1uiv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9019   TglProgramUniform2i = procedure(program_: GLuint; location: GLint; v0: GLint; v1: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9020   TglProgramUniform2iv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9021   TglProgramUniform2f = procedure(program_: GLuint; location: GLint; v0: GLfloat; v1: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9022   TglProgramUniform2fv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9023   TglProgramUniform2d = procedure(program_: GLuint; location: GLint; v0: GLdouble; v1: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9024   TglProgramUniform2dv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9025   TglProgramUniform2ui = procedure(program_: GLuint; location: GLint; v0: GLuint; v1: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9026   TglProgramUniform2uiv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9027   TglProgramUniform3i = procedure(program_: GLuint; location: GLint; v0: GLint; v1: GLint; v2: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9028   TglProgramUniform3iv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9029   TglProgramUniform3f = procedure(program_: GLuint; location: GLint; v0: GLfloat; v1: GLfloat; v2: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9030   TglProgramUniform3fv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9031   TglProgramUniform3d = procedure(program_: GLuint; location: GLint; v0: GLdouble; v1: GLdouble; v2: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9032   TglProgramUniform3dv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9033   TglProgramUniform3ui = procedure(program_: GLuint; location: GLint; v0: GLuint; v1: GLuint; v2: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9034   TglProgramUniform3uiv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9035   TglProgramUniform4i = procedure(program_: GLuint; location: GLint; v0: GLint; v1: GLint; v2: GLint; v3: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9036   TglProgramUniform4iv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9037   TglProgramUniform4f = procedure(program_: GLuint; location: GLint; v0: GLfloat; v1: GLfloat; v2: GLfloat; v3: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9038   TglProgramUniform4fv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9039   TglProgramUniform4d = procedure(program_: GLuint; location: GLint; v0: GLdouble; v1: GLdouble; v2: GLdouble; v3: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9040   TglProgramUniform4dv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9041   TglProgramUniform4ui = procedure(program_: GLuint; location: GLint; v0: GLuint; v1: GLuint; v2: GLuint; v3: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9042   TglProgramUniform4uiv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9043   TglProgramUniformMatrix2fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9044   TglProgramUniformMatrix3fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9045   TglProgramUniformMatrix4fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9046   TglProgramUniformMatrix2dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9047   TglProgramUniformMatrix3dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9048   TglProgramUniformMatrix4dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9049   TglProgramUniformMatrix2x3fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9050   TglProgramUniformMatrix3x2fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9051   TglProgramUniformMatrix2x4fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9052   TglProgramUniformMatrix4x2fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9053   TglProgramUniformMatrix3x4fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9054   TglProgramUniformMatrix4x3fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9055   TglProgramUniformMatrix2x3dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9056   TglProgramUniformMatrix3x2dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9057   TglProgramUniformMatrix2x4dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9058   TglProgramUniformMatrix4x2dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9059   TglProgramUniformMatrix3x4dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9060   TglProgramUniformMatrix4x3dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9061   TglValidateProgramPipeline = procedure(pipeline: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9062   TglGetProgramPipelineInfoLog = procedure(pipeline: GLuint; bufSize: GLsizei; length: PGLsizei; infoLog: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9063
9064   // GL_ARB_vertex_attrib_64bit
9065   TglVertexAttribL1d = procedure(index: GLuint; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9066   TglVertexAttribL2d = procedure(index: GLuint; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9067   TglVertexAttribL3d = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9068   TglVertexAttribL4d = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9069   TglVertexAttribL1dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9070   TglVertexAttribL2dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9071   TglVertexAttribL3dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9072   TglVertexAttribL4dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9073   TglVertexAttribLPointer = procedure(index: GLuint; size: GLint; type_: GLenum; stride: GLsizei; const pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9074   TglGetVertexAttribLdv = procedure(index: GLuint; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9075
9076   // GL_ARB_viewport_array
9077   TglViewportArrayv = procedure(first: GLuint; count: GLsizei; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9078   TglViewportIndexedf = procedure(index: GLuint; x: GLfloat; y: GLfloat; w: GLfloat; h: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9079   TglViewportIndexedfv = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9080   TglScissorArrayv = procedure(first: GLuint; count: GLsizei; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9081   TglScissorIndexed = procedure(index: GLuint; left: GLint; bottom: GLint; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9082   TglScissorIndexedv = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9083   TglDepthRangeArrayv = procedure(first: GLuint; count: GLsizei; const v: PGLclampd); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9084   TglDepthRangeIndexed = procedure(index: GLuint; n: GLclampd; f: GLclampd); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9085   TglGetFloati_v = procedure(target: GLenum; index: GLuint; data: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9086   TglGetDoublei_v = procedure(target: GLenum; index: GLuint; data: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9087
9088   // GL 4.2
9089
9090   // GL_ARB_base_instance
9091   TglDrawArraysInstancedBaseInstance = procedure(mode : GLenum; first : GLint; count :GLsizei; primcount : GLsizei; baseinstance : GLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9092   TglDrawElementsInstancedBaseInstance = procedure(mode : GLEnum; count : GLsizei; _type : GLenum; const indices : PGLVoid; primcount : GLsizei; baseinstance : GLUInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9093   TglDrawElementsInstancedBaseVertexBaseInstance = procedure(mode : GLEnum; count : GLsizei; _type : GLenum; const indices : PGLVoid; primcount :GLsizei; basevertex : GLint; baseinstance : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9094
9095   // GL_ARB_transform_feedback_instanced
9096   TglDrawTransformFeedbackInstanced = procedure(mode : GLenum; id : GLuint; primcount : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9097   TglDrawTransformFeedbackStreamInstanced = procedure(mode : GLenum; id : GLUInt; stream : GLUint; primcount : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9098
9099   // GL_ARB_internalformat_query
9100   TglGetInternalformativ = procedure(target : GLenum; internalformat : GLenum; pname : GLenum; bufSize : GLsizei; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9101
9102   // GL_ARB_shader_atomic_counters
9103   TglGetActiveAtomicCounterBufferiv = procedure(_program : GLuint; bufferIndex : GLuint; pname : GLenum; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9104
9105   /// GL_ARB_shader_image_load_store
9106   TglBindImageTexture = procedure(_unit : GLuint; texture : GLuint; level :GLint; layered : GLboolean; layer : GLint; access : GLenum; format : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9107   TglMemoryBarrier = procedure(barriers : GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9108
9109   // GL_ARB_texture_storage
9110   TglTexStorage1D = procedure(target : GLenum; levels :GLsizei; internalformat : GLenum; width : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9111   TglTexStorage2D = procedure(target : GLenum; levels :GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9112   TglTexStorage3D = procedure(target : GLenum; levels :GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; depth : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9113   TglTextureStorage1DEXT = procedure(texture : GLuint; target : GLenum; levels :GLsizei; internalformat : GLenum; width : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9114   TglTextureStorage2DEXT = procedure(texture : GLuint; target : GLenum; levels :GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9115   TglTextureStorage3DEXT = procedure(texture : GLuint; target : GLenum; levels :GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; depth : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9116
9117
9118   // GL 4.3
9119
9120   // GL_KHR_debug
9121   TglDebugMessageControl = procedure(source : GLenum; type_ : GLenum; severity : TGLenum; count : GLsizei; const ids : PGLUInt; enabled : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9122   TglDebugMessageInsert = procedure(source : GLenum;  type_ : GLenum; id : GLuint; sverity : GLenum; length : GLsizei; const buf : PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9123   TglDebugMessageCallback = procedure(callback : TGLDEBUGPROC; const userParam : Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9124   TglGetDebugMessageLog = function(count : GLuint; bufsize : GLsizei; sources : PGLenum; types : PGLenum; ids : PGLuint; sverities : PGLenum; lengths : PGLSizei; messagelog : PGLchar) : GLUInt; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9125   TglPushDebugGroup = procedure(source : GLenum; id : GLuint; length : GLsizei; const message_ : PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9126   TglPopDebugGroup = procedure; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9127   TglObjectLabel = procedure(identifier : GLenum; name : GLuint; length : GLsizei; const label_ : PGLCHar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9128   TglGetObjectLabel = procedure(identifier : GLenum; name : GLuint; bufsize : GLsizei; length : PGLsizei; label_ : PGLCHar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9129   TglObjectPtrLabel = procedure(const ptr : Pointer; length : GLsizei; const label_ : PGLCHar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9130   TglGetObjectPtrLabel = procedure(const ptr : Pointer; bufSize : GLsizei; length : PGLsizei; label_ : PGLCHar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9131
9132   // GL_ARB_clear_buffer_object
9133   TglClearBufferData = procedure(target : GLenum; internalformat : GLenum; format : GLEnum; type_ : GLEnum; const data : Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9134   TglClearBufferSubData = procedure(target : GLenum; internalformat : GLenum; offset : GLintptr; size : GLsizeiptr; format : GLenum; type_ : GLenum; const data : Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9135   TglClearNamedBufferDataEXT = procedure(buffer : GLuint; internalformat : GLenum; format : GLEnum; type_ : GLEnum; const data : Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9136   TglClearNamedBufferSubDataEXT = procedure(buffer : GLuint; internalformat : GLenum; format : GLenum; type_ : GLenum; offset : GLsizeiptr; size : GLsizeiptr; const data : Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9137
9138   // GL_ARB_compute_shader
9139   TglDispatchCompute = procedure(num_groups_x : GLuint; num_groups_y : GLuint; num_groups_z : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9140   TglDispatchComputeIndirect = procedure(indirect : GLintptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9141
9142   // GL_ARB_copy_image
9143   TglCopyImageSubData = procedure(srcName : GLUInt; srcTarget : GLenum; srcLevel : GLint; srcX : GLint; srcY : GLint; srcZ : GLint; dstName : GLUInt; dstTarget : GLEnum; dstLevel : GLInt; dstX : GLInt; dstY : GLint; dstZ : GLint; srcWidth : GLsizei; srcHeight : GLsizei; srcDepth : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9144
9145   // GL_ARB_debug_group
9146   // ARB_debug_group reuses entry points from KHR_debug
9147
9148   // GL_ARB_debug_label
9149   // ARB_debug_label reuses entry points from KHR_debug
9150
9151   // GL_ARB_debug_output2
9152
9153   // GL_ARB_ES3_compatibility
9154
9155   // GL_ARB_explicit_uniform_location
9156
9157   // GL_ARB_fragment_layer_viewport
9158
9159   // GL_ARB_framebuffer_no_attachments
9160   TglFramebufferParameteri = procedure(target : GLenum; pname : GLenum; param : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9161   TglGetFramebufferParameteriv = procedure(target : GLenum; pname : GLenum; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9162   TglNamedFramebufferParameteriEXT = procedure(framebuffer : GLUInt; pname : GLenum; param : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9163   TglGetNamedFramebufferParameterivEXT = procedure(framebuffer : GLUInt; pname : GLenum; param : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9164
9165   // GL_ARB_internalformat_query2
9166   TglGetInternalformati64v = procedure(target : GLenum; internalformat : GLenum; pname : GLenum; bufSize : GLsizei; params : PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9167
9168   // GL_ARB_invalidate_subdata
9169   TglInvalidateTexSubImage = procedure(texture : GLuint; level : GLint; xoffset : GLint; yoffset : GLint; zoffset : GLint; width : GLsizei; height : GLsizei; depth : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9170   TglInvalidateTexImage = procedure(texture : GLuint; level : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9171   TglInvalidateBufferSubData = procedure(buffer : GLuint; offset : GLintptr; length : GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9172   TglInvalidateBufferData = procedure(buffer : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9173   TglInvalidateFramebuffer = procedure(target : GLenum; numAttachments : GLsizei; const attachments : PGLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9174   TglInvalidateSubFramebuffer = procedure(target : GLenum; numAttachments : GLsizei; const attachments : PGLenum; x : GLint; y : GLint; width : GLsizei; height : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9175
9176   // GL_ARB_multi_draw_indirect
9177   TglMultiDrawArraysIndirect = procedure(mode : GLenum; const indirect : Pointer; drawcount : GLsizei; stride : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9178   TglMultiDrawElementsIndirect = procedure(mode : GLenum; type_ : GLenum; const indirect : Pointer; drawcount : GLsizei; stride : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9179
9180   // GL_ARB_program_interface_query
9181   TglGetProgramInterfaceiv = procedure(program_ : GLUInt;programInterface : GLenum; pname : GLenum; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9182   TglGetProgramResourceIndex = function(program_ : GLUInt;programInterface : GLenum; const name : PGLchar) : GLUInt; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9183   TglGetProgramResourceName = procedure(program_ : GLUInt;programInterface : GLenum; index : GLuint; bufSize : GLsizei; length : PGLsizei; name : PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9184   TglGetProgramResourceiv = procedure(program_ : GLUInt;programInterface : GLenum; index : GLuint; propCount : GLsizei; const props : PGLenum; bufSize : GLsizei; length : PGLsizei; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9185   TglGetProgramResourceLocation = function(program_ : GLUInt;programInterface : GLenum; const name : PGLchar) : GLInt; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9186   TglGetProgramResourceLocationIndex = function(program_ : GLUInt;programInterface : GLenum; const name : PGLchar) : GLInt; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9187
9188   // GL_ARB_robust_buffer_access_behavior
9189
9190   // GL_ARB_shader_image_size
9191
9192   // GL_ARB_shader_storage_buffer_object
9193   TglShaderStorageBlockBinding = procedure(program_ : GLuint; storageBlockIndex : GLuint; storageBlockBinding : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9194
9195   // GL_ARB_stencil_texturing
9196
9197   // GL_ARB_texture_buffer_range
9198   TglTexBufferRange = procedure(target : GLenum; internalformat : GLenum; buffer : GLuint; offset :GLintptr; size : GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9199   TglTextureBufferRangeEXT = procedure(texture : GLuint; target : GLenum; internalformat : GLenum; buffer : GLuint; offset : GLintptr; size : GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9200
9201   // GL_ARB_texture_query_levels
9202
9203   // GL_ARB_texture_storage_multisample
9204   TglTexStorage2DMultisample = procedure(target : GLenum; samples : GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; fixedsamplelocations : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9205   TglTexStorage3DMultisample = procedure(target : GLenum; samples : GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; depth : GLsizei; fixedsamplelocations : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9206   TglTextureStorage2DMultisampleEXT = procedure(texture : GLuint; target : GLenum; samples : GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; fixedsamplelocations : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9207   TglTextureStorage3DMultisampleEXT = procedure(texture : GLuint; target : GLenum; samples : GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; depth : GLsizei; fixedsamplelocations : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9208
9209   // GL 4.4
9210
9211   TglBufferStorage = procedure(target : GLenum; size : GLsizeiptr; const data : pointer; flags : GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9212   TglClearTexImage = procedure(texture : GLuint; level : GLint; format : GLenum; _type : GLenum; const data : Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9213   TglClearTexSubImage = procedure(texture : GLuint; level : GLint; xoffset : GLint; yoffset : GLint; zoffset : GLint; width : GLsizei; height : GLsizei; depth : GLsizei; format : GLenum; _type : GLenum; const Data : Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9214   TglBindBuffersBase = procedure(target : GLenum; first : GLuint; count : GLsizei; const buffers : PGLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9215   TglBindBuffersRange = procedure(target : GLenum; first : GLuint; count : GLsizei; const buffers : PGLuint; const offsets : GLintptr; const sizes : GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9216   TglBindTextures = procedure(first : GLuint; count : GLsizei; const textures : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9217   TglBindSamplers = procedure(first : GLuint; count : GLsizei; const samplers : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9218   TglBindImageTextures = procedure(first : GLuint; count : GLsizei; const textures : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9219   TglBindVertexBuffers = procedure(first : GLuint; count : GLsizei; const buffers : GLuint; const offsets : GLintptr; const strides : PGLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9220   TglTexPageCommitmentARB = procedure(target : glenum; level : glint; xoffset : glint; yoffset : glint; zoffset : glint; width : glsizei; height : glsizei; depth : glsizei; resident : glboolean);  {$IFDEF DGL_WIN} stdcall; {$ELSE}cdecl; {$ENDIF}
9221
9222   // GL 4.5
9223   TglClipControl = procedure(origin : GLenum; depth : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9224   TglCreateTransformFeedbacks = procedure(n : GLsizei; ids : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9225   TglTransformFeedbackBufferBase = procedure (xfb : GLuint; index : GLuint; buffer : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9226   TglTransformFeedbackBufferRange = procedure (xfb : GLuint; index : GLuint; buffer : GLuint; offset : GLintptr; size : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9227   TglGetTransformFeedbackiv = procedure (xfb : GLuint; pname : GLenum; param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9228   TglGetTransformFeedbacki_v = procedure (xfb : GLuint; pname : GLenum; index : GLuint; param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9229   TglGetTransformFeedbacki64_v = procedure (xfb : GLuint; pname : GLenum; index : GLuint; param : PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9230   TglCreateBuffers = procedure (n : GLsizei; buffers : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9231   TglNamedBufferStorage = procedure (buffer : GLuint; size : GLsizei; const data : PGLVoid; flags : GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9232   TglNamedBufferData = procedure (buffer : GLuint; size : GLsizei; const data : PGLVoid; usage : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9233   TglNamedBufferSubData = procedure (buffer : GLuint; offset : GLintptr; size : GLsizei; data : PGLVoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9234   TglCopyNamedBufferSubData = procedure (readBuffer : GLuint; writeBuffer : GLuint; readOffset : GLintptr; writeOffset : GLintptr; size : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9235   TglClearNamedBufferData = procedure (buffer : GLuint; internalformat : GLenum; format : GLenum; _type : GLenum; data : PGLVoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9236   TglClearNamedBufferSubData = procedure (buffer : GLuint; internalformat : GLenum; offset : GLintptr; size : GLsizei; format : GLenum; _type : GLenum; data : PGLVoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9237   TglMapNamedBuffer = function(buffer : GLuint; access : GLenum) : PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9238   TglMapNamedBufferRange = function(buffer : GLuint; offset : GLintptr; length : GLsizei; access : GLbitfield) : PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9239   TglUnmapNamedBuffer = function(buffer : GLuint) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9240   TglFlushMappedNamedBufferRange = procedure (buffer : GLuint; offset : GLintptr; length : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9241   TglGetNamedBufferParameteriv = procedure (buffer : GLuint; pname : GLenum; param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9242   TglGetNamedBufferParameteri64v = procedure (buffer : GLuint; pname : GLenum; param : PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9243   TglGetNamedBufferPointerv = procedure (buffer : GLuint; pname : GLenum; params : PGLVoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9244   TglGetNamedBufferSubData = procedure (buffer : GLuint; offset : GLintptr; size : GLsizei; data : PGLVoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9245   TglCreateFramebuffers = procedure (n : GLsizei; framebuffers : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9246   TglNamedFramebufferRenderbuffer = procedure (framebuffer : GLuint; attachment : GLenum ; renderbuffertarget : GLEnum; renderbuffer : GLUInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9247   TglNamedFramebufferParameteri = procedure (framebuffer : GLuint; pname : GLenum; param : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9248   TglNamedFramebufferTexture = procedure (framebuffer : GLuint; attachment : GLenum; texture : GLuint; level : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9249   TglNamedFramebufferTextureLayer = procedure (framebuffer : GLuint; attachment : GLenum; texture : GLuint; level : GLint; layer : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9250   TglNamedFramebufferDrawBuffer = procedure (framebuffer : GLuint; buf : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9251   TglNamedFramebufferDrawBuffers = procedure (framebuffer : GLuint; n : GLsizei; bufs : PGLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9252   TglNamedFramebufferReadBuffer = procedure (framebuffer : GLuint; src : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9253   TglInvalidateNamedFramebufferData = procedure (framebuffer : GLuint; numAttachments : GLSizei; attachments : PGLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9254   TglInvalidateNamedFramebufferSubData = procedure (framebuffer : GLuint; numAttachments : GLSizei; attachments : PGLEnum; x : GLint; y : GLint; width : GLsizei; height : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9255   TglClearNamedFramebufferiv = procedure (framebuffer : GLuint; buffer : GLenum; drawbuffer : GLint; value : PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9256   TglClearNamedFramebufferuiv = procedure (framebuffer : GLuint; buffer : GLenum; drawbuffer : GLint; value : PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9257   TglClearNamedFramebufferfv = procedure (framebuffer : GLuint; buffer : GLenum; drawbuffer : GLint; value : PGLFloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9258   TglClearNamedFramebufferfi = procedure (framebuffer : GLuint; buffer : GLenum; const depth : GLfloat; stencil : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9259   TglBlitNamedFramebuffer = procedure (readFramebuffer : GLuint; drawFramebuffer : GLuint; srcX0 : GLint; srcY0 : GLint; srcX1 : GLint; srcY1 : GLint; dstX0 : GLint; dstY0 : GLint; dstX1 : GLint; dstY1 : GLint ; mask : GLbitfield; filter : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9260   TglCheckNamedFramebufferStatus = function(framebuffer : GLuint; target : GLenum) : GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9261   TglGetNamedFramebufferParameteriv = procedure (framebuffer : GLuint; pname : GLenum; param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9262   TglGetNamedFramebufferAttachmentParameteriv = procedure (framebuffer : GLuint; attachment : GLenum; pname : GLenum; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9263   TglCreateRenderbuffers = procedure (n : GLsizei; renderbuffers : PGLUInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9264   TglNamedRenderbufferStorage = procedure (renderbuffer : GLUInt; internalformat : GLenum ; width : GLsizei; height : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9265   TglNamedRenderbufferStorageMultisample = procedure (renderbuffer : GLUInt; samples : GLSizei; internalformat : GLenum ; width : GLSizei; height : GLSizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9266   TglGetNamedRenderbufferParameteriv = procedure (renderbuffer : GLUInt; pname : GLenum; param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9267   TglCreateTextures = procedure (target : GLenum ; n : GLsizei; textures : PGLUInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9268   TglTextureBuffer = procedure (texture : GLuint; internalformat : GLenum; buffer : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9269   TglTextureBufferRange = procedure (texture : GLuint; internalformat : GLenum; buffer : GLuint; offset : GLintptr; size : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9270   TglTextureStorage1D = procedure (texture : GLuint; levels : GLsizei; internalformat : GLenum; width : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9271   TglTextureStorage2D = procedure (texture : GLuint; levels : GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9272   TglTextureStorage3D = procedure (texture : GLuint; levels : GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; depth : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9273   TglTextureStorage2DMultisample = procedure (texture : GLuint; samples : GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; fixedsamplelocations : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9274   TglTextureStorage3DMultisample = procedure (texture : GLuint; samples : GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; depth : GLsizei; fixedsamplelocations : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9275   TglTextureSubImage1D = procedure (texture : GLuint; level : GLint; xoffset : GLint; width : GLsizei; format : GLenum; _type : GLenum; pixels : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9276   TglTextureSubImage2D = procedure (texture : GLuint; level : GLint; xoffset : GLint; yoffset : GLint; width : GLsizei; height : GLsizei; format : GLenum; _type : GLenum; pixels : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9277   TglTextureSubImage3D = procedure (texture : GLuint; level : GLint; xoffset : GLint; yoffset : GLint; zoffset : GLint; width : GLsizei; height : GLsizei; depth : GLsizei; format : GLenum; _type : GLenum; pixels : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9278   TglCompressedTextureSubImage1D = procedure (texture : GLuint; level : GLint; xoffset : GLint; width : GLsizei; format : GLenum; imageSize : GLsizei; data : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9279   TglCompressedTextureSubImage2D = procedure (texture : GLuint; level : GLint; xoffset : GLint; yoffset : GLint; width : GLsizei; height : GLsizei; format : GLenum; mageSize : GLsizei; data : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9280   TglCompressedTextureSubImage3D = procedure (texture : GLuint; level : GLint; xoffset : GLint; yoffset : GLint; zoffset : GLint; width : GLsizei; height : GLsizei; depth : GLsizei; format : GLenum; imageSize : GLsizei; data : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9281   TglCopyTextureSubImage1D = procedure (texture : GLuint; level : GLint ; xoffset : GLint; x : GLint; y : GLint; width : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9282   TglCopyTextureSubImage2D = procedure (texture : GLuint; level : GLint ; xoffset : GLint; yoffset : GLint; x : GLint; y : GLint; width : GLsizei; height : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9283   TglCopyTextureSubImage3D = procedure (texture : GLuint; level : GLint ; xoffset : GLint; yoffset : GLint; zoffset : GLint; x : GLint; y : GLint; width : GLsizei; height : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9284   TglTextureParameterf = procedure (texture : GLuint; pname : GLenum; param : GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9285   TglTextureParameterfv = procedure (texture : GLuint; pname : GLenum; const param : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9286   TglTextureParameteri = procedure (texture : GLuint; pname : GLenum; param : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9287   TglTextureParameterIiv = procedure (texture : GLuint; pname : GLenum; const params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9288   TglTextureParameterIuiv = procedure (texture : GLuint; pname : GLenum; const params : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9289   TglTextureParameteriv = procedure (texture : GLuint; pname : GLenum; const param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9290   TglGenerateTextureMipmap = procedure(texture : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9291   TglBindTextureUnit = procedure (_unit : GLuint; texture : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9292   TglGetTextureImage = procedure (texture : GLuint; level : GLint ; format : GLenum; _type : GLenum; bufSize : GLsizei; pixels : PGLVoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9293   TglGetCompressedTextureImage = procedure (texture : GLuint; level : GLint; bufSize : GLSizei; pixels : PGLVoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9294   TglGetTextureLevelParameterfv = procedure (texture : GLuint; level : GLint; pname : GLenum; params : PGLFloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9295   TglGetTextureLevelParameteriv = procedure (texture : GLuint; level : GLint; pname : GLenum; param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9296   TglGetTextureParameterfv = procedure (texture : GLuint; pname : GLenum; params : PGLFloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9297   TglGetTextureParameterIiv = procedure (texture : GLuint; pname : GLenum; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9298   TglGetTextureParameterIuiv = procedure (texture : GLuint; pname : GLenum; params : PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9299   TglGetTextureParameteriv = procedure (texture : GLuint; pname : GLenum; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9300   TglCreateVertexArrays = procedure (n : GLsizei; arrays : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9301   TglDisableVertexArrayAttrib = procedure (vaobj : GLuint; index : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9302   TglEnableVertexArrayAttrib = procedure (vaobj : GLuint; index : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9303   TglVertexArrayElementBuffer = procedure (vaobj : GLuint; buffer : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9304   TglVertexArrayVertexBuffer = procedure (vaobj : GLuint; bindingindex : GLuint; buffer : GLuint; offset : GLintptr; stride : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9305   TglVertexArrayVertexBuffers = procedure (vaobj : GLuint; first : GLuint; count : GLsizei; const buffers : PGLuint; const offsets : PGLintptr; const strides : PGLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9306   TglVertexArrayAttribBinding = procedure (vaobj : GLuint; attribindex : GLuint; bindingindex : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9307   TglVertexArrayAttribFormat = procedure(vaobj : GLuint; attribindex : GLuint; size : GLint; _type : GLenum; normalized : GLboolean; relativeoffset : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9308   TglVertexArrayAttribIFormat = procedure (vaobj : GLuint; attribindex : GLuint; size : GLint; _type : GLenum; relativeoffset : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9309   TglVertexArrayAttribLFormat = procedure (vaobj : GLuint; attribindex : GLuint; size : GLint; _type : GLenum; relativeoffset : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9310   TglVertexArrayBindingDivisor = procedure (vaobj : GLuint; bindingindex : GLuint; divisor : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9311   TglGetVertexArrayiv = procedure (vaobj : GLuint; pname : GLenum; param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9312   TglGetVertexArrayIndexediv = procedure (vaobj : GLuint; index : GLuint; pname : GLenum; param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9313   TglGetVertexArrayIndexed64iv = procedure (vaobj : GLuint; index : GLuint; pname : GLenum; param : PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9314   TglCreateSamplers = procedure (n : GLsizei; samplers : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9315   TglCreateProgramPipelines = procedure (n : GLsizei; pipelines : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9316   TglCreateQueries = procedure (target : GLenum; n : GLsizei; ids : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9317   TglMemoryBarrierByRegion = procedure (barriers : GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9318   TglGetTextureSubImage = procedure (texture : GLuint; level : GLint ; xoffset : GLint; yoffset : GLint; zoffset : GLint; width : GLsizei; height : GLsizei; depth : GLsizei; format : GLenum; _type : GLenum; bufSize : GLsizei; pixels : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9319   TglGetCompressedTextureSubImage = procedure (texture : GLuint; level : GLint ; xoffset : GLint; yoffset : GLint; zoffset : GLint; width : GLsizei; height : GLsizei; depth : GLsizei; bufSize : GLsizei; pixels : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9320   TglGetGraphicsResetStatus = function : GLEnum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9321   TglGetnCompressedTexImage = procedure (target : GLenum; lod : GLint; bufSize : GLsizei; pixels : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9322   TglGetnTexImage = procedure (target : GLenum; level : GLint; format : GLenum; _type : GLenum; bufSize : GLSizei; pixels : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9323   TglGetnUniformdv = procedure (_program : GLuint; location : GLint; bufSize : GLsizei; params : PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9324   TglGetnUniformfv = procedure (_program : GLuint; location : GLint; bufSize : GLsizei; params : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9325   TglGetnUniformiv = procedure (_program : GLuint; location : GLint; bufSize : GLsizei; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9326   TglGetnUniformuiv = procedure (_program : GLuint; location : GLint; bufSize : GLsizei; params : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9327   TglReadnPixels = procedure (x : GLint; y : GLint; width : GLsizei; height : GLsizei; format : GLenum; _type : GLenum; bufSize : GLsizei; data : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9328   TglGetnMapdv = procedure (target : GLenum; query : GLenum; bufSize : GLsizei; v : PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9329   TglGetnMapfv = procedure (target : GLenum; query : GLenum; bufSize : GLsizei; v : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9330   TglGetnMapiv = procedure (target : GLenum; query : GLenum; bufSize : GLsizei; v : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9331   TglGetnPixelMapfv = procedure (map : GLenum; bufSize : GLsizei; values : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9332   TglGetnPixelMapuiv = procedure (map : GLenum; bufSize : GLsizei; values : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9333   TglGetnPixelMapusv = procedure (map : GLenum; bufSize : GLsizei; values : PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9334   TglGetnPolygonStipple = procedure (bufSize : GLsizei; pattern : PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9335   TglGetnColorTable = procedure (target : GLenum; format : GLenum; _type : GLenum; bufSize : GLsizei; table : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9336   TglGetnConvolutionFilter = procedure (target : GLenum; format : GLenum; _type : GLenum; bufSize : GLsizei; image : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9337   TglGetnSeparableFilter = procedure (target : GLenum; format : GLenum; _type : GLenum; rowBufSize : GLsizei; row : PGLvoid; columnBufSize : GLsizei; column : PGLvoid; span : PGLVoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9338   TglGetnHistogram = procedure (target : GLenum; reset : GLboolean; format : GLenum; _type : GLenum; bufSize : GLsizei; values : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9339   TglGetnMinmax = procedure (target : GLenum; reset : GLboolean; format : GLenum; _type : GLenum; bufSize : GLsizei; values : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9340   TglTextureBarrier = procedure; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9341
9342   // GL_ARB_sparse_buffer
9343   TglBufferPageCommitmentARB = procedure (target : GLenum; offset : GLintptr; size : GLsizei; commit : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9344   TglNamedBufferPageCommitmentEXT = procedure (buffer : GLuint; offset : GLintptr; size : GLsizei; commit : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9345   TglNamedBufferPageCommitmentARB = procedure (buffer : GLuint; offset : GLintptr; size : GLsizei; commit : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9346
9347   // GL_KHR_blend_equation_advanced
9348   TglBlendBarrierKHR = procedure; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9349
9350   // GL_ARB_texture_view
9351   TglTextureView = procedure(texture : GLuint; target : GLenum; origtexture : GLuint; internalformat : GLenum; minlevel : GLuint; numlevels : GLuint; minlayer : GLuint; numlayers : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9352
9353   // GL_ARB_vertex_attrib_binding
9354   TglBindVertexBuffer = procedure(bindingindex : GLuint; buffer : GLuint; offset : GLintptr; stride : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9355   TglVertexAttribFormat = procedure(attribindex : GLuint; size : GLInt; type_ : GLEnum; normalized : GLboolean; relativeoffset : GLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9356   TglVertexAttribIFormat = procedure(attribindex : GLuint; size : GLInt; type_ : GLEnum; relativeoffset : GLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9357   TglVertexAttribLFormat = procedure(attribindex : GLuint; size : GLInt; type_ : GLEnum; relativeoffset : GLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9358   TglVertexAttribBinding = procedure(attribindex : GLuint; bindingindex : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9359   TglVertexBindingDivisor = procedure(bindingindex : GLuint; divisor : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9360   TglVertexArrayBindVertexBufferEXT = procedure(vaobj : GLuint; bindingindex : GLuint; buffer : GLuint; offset : GLintptr; stride : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9361   TglVertexArrayVertexAttribFormatEXT = procedure(vaobj : GLuint; attribindex : GLuint; size : GLInt; type_ : GLEnum; normalized : GLboolean; relativeoffset : GLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9362   TglVertexArrayVertexAttribIFormatEXT = procedure(vaobj : GLuint; attribindex : GLuint; size : GLInt; type_ : GLEnum; relativeoffset : GLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9363   TglVertexArrayVertexAttribLFormatEXT = procedure(vaobj : GLuint; attribindex : GLuint; size : GLInt; type_ : GLEnum; relativeoffset : GLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9364   TglVertexArrayVertexAttribBindingEXT = procedure(vaobj : GLuint; attribindex : GLuint; bindingindex : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9365   TglVertexArrayVertexBindingDivisorEXT = procedure(vaobj : GLuint; bindingindex : GLuint; divisor : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9366
9367   // GL_ARB_robustness_isolation
9368
9369   //
9370
9371   // GL_ARB_cl_event
9372   TglCreateSyncFromCLeventARB = function(context: p_cl_context; event: p_cl_event; flags: GLbitfield): GLsync; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9373
9374   // GL_ARB_debug_output
9375   TglDebugMessageControlARB = procedure(source: GLenum; type_: GLenum; severity: GLenum; count: GLsizei; const ids: PGLuint; enabled: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9376   TglDebugMessageInsertARB = procedure(source: GLenum; type_: GLenum; id: GLuint; severity: GLenum; length: GLsizei; const buf: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9377   TglDebugMessageCallbackARB = procedure(callback: TglDebugProcARB; const userParam: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9378   TglGetDebugMessageLogARB = function(count: GLuint; bufsize: GLsizei; sources: PGLenum; types: PGLenum; ids: PGLuint; severities: PGLenum; lengths: PGLsizei; messageLog: PGLchar): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9379
9380   // GL_ARB_robustness
9381   TglGetGraphicsResetStatusARB = function(): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9382   TglGetnMapdvARB = procedure(target: GLenum; query: GLenum; bufSize: GLsizei; v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9383   TglGetnMapfvARB = procedure(target: GLenum; query: GLenum; bufSize: GLsizei; v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9384   TglGetnMapivARB = procedure(target: GLenum; query: GLenum; bufSize: GLsizei; v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9385   TglGetnPixelMapfvARB = procedure(map: GLenum; bufSize: GLsizei; values: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9386   TglGetnPixelMapuivARB = procedure(map: GLenum; bufSize: GLsizei; values: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9387   TglGetnPixelMapusvARB = procedure(map: GLenum; bufSize: GLsizei; values: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9388   TglGetnPolygonStippleARB = procedure(bufSize: GLsizei; pattern: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9389   TglGetnColorTableARB = procedure(target: GLenum; format: GLenum; type_: GLenum; bufSize: GLsizei; table: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9390   TglGetnConvolutionFilterARB = procedure(target: GLenum; format: GLenum; type_: GLenum; bufSize: GLsizei; image: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9391   TglGetnSeparableFilterARB = procedure(target: GLenum; format: GLenum; type_: GLenum; rowBufSize: GLsizei; row: PGLvoid; columnBufSize: GLsizei; column: PGLvoid; span: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9392   TglGetnHistogramARB = procedure(target: GLenum; reset: GLboolean; format: GLenum; type_: GLenum; bufSize: GLsizei; values: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9393   TglGetnMinmaxARB = procedure(target: GLenum; reset: GLboolean; format: GLenum; type_: GLenum; bufSize: GLsizei; values: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9394   TglGetnTexImageARB = procedure(target: GLenum; level: GLint; format: GLenum; type_: GLenum; bufSize: GLsizei; img: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9395   TglReadnPixelsARB = procedure(x: GLint; y: GLint; width: GLsizei; height: GLsizei; format: GLenum; type_: GLenum; bufSize: GLsizei; data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9396   TglGetnCompressedTexImageARB = procedure(target: GLenum; lod: GLint; bufSize: GLsizei; img: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9397   TglGetnUniformfvARB = procedure(program_: GLuint; location: GLint; bufSize: GLsizei; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9398   TglGetnUniformivARB = procedure(program_: GLuint; location: GLint; bufSize: GLsizei; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9399   TglGetnUniformuivARB = procedure(program_: GLuint; location: GLint; bufSize: GLsizei; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9400   TglGetnUniformdvARB = procedure(program_: GLuint; location: GLint; bufSize: GLsizei; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9401
9402   // GL_ATI_draw_buffers
9403   TglDrawBuffersATI = procedure(n: GLsizei; const bufs: PGLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9404
9405   // GL_ATI_element_array
9406   TglElementPointerATI = procedure(_type: GLenum; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9407   TglDrawElementArrayATI = procedure(mode: GLenum; count: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9408   TglDrawRangeElementArrayATI = procedure(mode: GLenum; start: GLuint; _end: GLuint; count: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9409
9410   // GL_ATI_envmap_bumpmap
9411   TglTexBumpParameterivATI = procedure(pname: GLenum; const param: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9412   TglTexBumpParameterfvATI = procedure(pname: GLenum; const param: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9413   TglGetTexBumpParameterivATI = procedure(pname: GLenum; param: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9414   TglGetTexBumpParameterfvATI = procedure(pname: GLenum; param: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9415
9416   // GL_ATI_fragment_shader
9417   TglGenFragmentShadersATI = function(range: GLuint): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9418   TglBindFragmentShaderATI = procedure(id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9419   TglDeleteFragmentShaderATI = procedure(id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9420   TglBeginFragmentShaderATI = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9421   TglEndFragmentShaderATI = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9422   TglPassTexCoordATI = procedure(dst: GLuint; coord: GLuint; swizzle: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9423   TglSampleMapATI = procedure(dst: GLuint; interp: GLuint; swizzle: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9424   TglColorFragmentOp1ATI = procedure(op: GLenum; dst: GLuint; dstMask: GLuint; dstMod: GLuint; arg1: GLuint; arg1Rep: GLuint; arg1Mod: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9425   TglColorFragmentOp2ATI = procedure(op: GLenum; dst: GLuint; dstMask: GLuint; dstMod: GLuint; arg1: GLuint; arg1Rep: GLuint; arg1Mod: GLuint; arg2: GLuint; arg2Rep: GLuint; arg2Mod: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9426   TglColorFragmentOp3ATI = procedure(op: GLenum; dst: GLuint; dstMask: GLuint; dstMod: GLuint; arg1: GLuint; arg1Rep: GLuint; arg1Mod: GLuint; arg2: GLuint; arg2Rep: GLuint; arg2Mod: GLuint; arg3: GLuint; arg3Rep: GLuint; arg3Mod: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9427   TglAlphaFragmentOp1ATI = procedure(op: GLenum; dst: GLuint; dstMod: GLuint; arg1: GLuint; arg1Rep: GLuint; arg1Mod: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9428   TglAlphaFragmentOp2ATI = procedure(op: GLenum; dst: GLuint; dstMod: GLuint; arg1: GLuint; arg1Rep: GLuint; arg1Mod: GLuint; arg2: GLuint; arg2Rep: GLuint; arg2Mod: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9429   TglAlphaFragmentOp3ATI = procedure(op: GLenum; dst: GLuint; dstMod: GLuint; arg1: GLuint; arg1Rep: GLuint; arg1Mod: GLuint; arg2: GLuint; arg2Rep: GLuint; arg2Mod: GLuint; arg3: GLuint; arg3Rep: GLuint; arg3Mod: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9430   TglSetFragmentShaderConstantATI = procedure(dst: GLuint; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9431
9432   // GL_ATI_map_object_buffer
9433   TglMapObjectBufferATI = function(buffer: GLuint): PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9434   TglUnmapObjectBufferATI = procedure(buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9435
9436   // GL_ATI_pn_triangles
9437   TglPNTrianglesiATI = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9438   TglPNTrianglesfATI = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9439
9440   // GL_ATI_separate_stencil
9441   TglStencilOpSeparateATI = procedure(face: GLenum; sfail: GLenum; dpfail: GLenum; dppass: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9442   TglStencilFuncSeparateATI = procedure(frontfunc: GLenum; backfunc: GLenum; ref: GLint; mask: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9443
9444   // GL_ATI_vertex_array_object
9445   TglNewObjectBufferATI = function(size: GLsizei; const _pointer: PGLvoid; usage: GLenum): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9446   TglIsObjectBufferATI = function(buffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9447   TglUpdateObjectBufferATI = procedure(buffer: GLuint; offset: GLuint; size: GLsizei; const _pointer: PGLvoid; preserve: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9448   TglGetObjectBufferfvATI = procedure(buffer: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9449   TglGetObjectBufferivATI = procedure(buffer: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9450   TglFreeObjectBufferATI = procedure(buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9451   TglArrayObjectATI = procedure(_array: GLenum; size: GLint; _type: GLenum; stride: GLsizei; buffer: GLuint; offset: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9452   TglGetArrayObjectfvATI = procedure(_array: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9453   TglGetArrayObjectivATI = procedure(_array: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9454   TglVariantArrayObjectATI = procedure(id: GLuint; _type: GLenum; stride: GLsizei; buffer: GLuint; offset: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9455   TglGetVariantArrayObjectfvATI = procedure(id: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9456   TglGetVariantArrayObjectivATI = procedure(id: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9457
9458   // GL_ATI_vertex_attrib_array_object
9459   TglVertexAttribArrayObjectATI = procedure(index: GLuint; size: GLint; _type: GLenum; normalized: GLboolean; stride: GLsizei; buffer: GLuint; offset: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9460   TglGetVertexAttribArrayObjectfvATI = procedure(index: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9461   TglGetVertexAttribArrayObjectivATI = procedure(index: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9462
9463   // GL_ATI_vertex_streams
9464   TglVertexStream1sATI = procedure(stream: GLenum; x: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9465   TglVertexStream1svATI = procedure(stream: GLenum; const coords: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9466   TglVertexStream1iATI = procedure(stream: GLenum; x: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9467   TglVertexStream1ivATI = procedure(stream: GLenum; const coords: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9468   TglVertexStream1fATI = procedure(stream: GLenum; x: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9469   TglVertexStream1fvATI = procedure(stream: GLenum; const coords: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9470   TglVertexStream1dATI = procedure(stream: GLenum; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9471   TglVertexStream1dvATI = procedure(stream: GLenum; const coords: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9472   TglVertexStream2sATI = procedure(stream: GLenum; x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9473   TglVertexStream2svATI = procedure(stream: GLenum; const coords: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9474   TglVertexStream2iATI = procedure(stream: GLenum; x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9475   TglVertexStream2ivATI = procedure(stream: GLenum; const coords: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9476   TglVertexStream2fATI = procedure(stream: GLenum; x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9477   TglVertexStream2fvATI = procedure(stream: GLenum; const coords: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9478   TglVertexStream2dATI = procedure(stream: GLenum; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9479   TglVertexStream2dvATI = procedure(stream: GLenum; const coords: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9480   TglVertexStream3sATI = procedure(stream: GLenum; x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9481   TglVertexStream3svATI = procedure(stream: GLenum; const coords: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9482   TglVertexStream3iATI = procedure(stream: GLenum; x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9483   TglVertexStream3ivATI = procedure(stream: GLenum; const coords: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9484   TglVertexStream3fATI = procedure(stream: GLenum; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9485   TglVertexStream3fvATI = procedure(stream: GLenum; const coords: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9486   TglVertexStream3dATI = procedure(stream: GLenum; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9487   TglVertexStream3dvATI = procedure(stream: GLenum; const coords: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9488   TglVertexStream4sATI = procedure(stream: GLenum; x: GLshort; y: GLshort; z: GLshort; w: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9489   TglVertexStream4svATI = procedure(stream: GLenum; const coords: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9490   TglVertexStream4iATI = procedure(stream: GLenum; x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9491   TglVertexStream4ivATI = procedure(stream: GLenum; const coords: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9492   TglVertexStream4fATI = procedure(stream: GLenum; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9493   TglVertexStream4fvATI = procedure(stream: GLenum; const coords: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9494   TglVertexStream4dATI = procedure(stream: GLenum; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9495   TglVertexStream4dvATI = procedure(stream: GLenum; const coords: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9496   TglNormalStream3bATI = procedure(stream: GLenum; nx: GLbyte; ny: GLbyte; nz: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9497   TglNormalStream3bvATI = procedure(stream: GLenum; const coords: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9498   TglNormalStream3sATI = procedure(stream: GLenum; nx: GLshort; ny: GLshort; nz: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9499   TglNormalStream3svATI = procedure(stream: GLenum; const coords: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9500   TglNormalStream3iATI = procedure(stream: GLenum; nx: GLint; ny: GLint; nz: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9501   TglNormalStream3ivATI = procedure(stream: GLenum; const coords: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9502   TglNormalStream3fATI = procedure(stream: GLenum; nx: GLfloat; ny: GLfloat; nz: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9503   TglNormalStream3fvATI = procedure(stream: GLenum; const coords: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9504   TglNormalStream3dATI = procedure(stream: GLenum; nx: GLdouble; ny: GLdouble; nz: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9505   TglNormalStream3dvATI = procedure(stream: GLenum; const coords: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9506   TglClientActiveVertexStreamATI = procedure(stream: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9507   TglVertexBlendEnviATI = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9508   TglVertexBlendEnvfATI = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9509
9510   // GL_AMD_performance_monitor
9511   TglGetPerfMonitorGroupsAMD = procedure(numGroups: PGLint; groupsSize: GLsizei; groups: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9512   TglGetPerfMonitorCountersAMD = procedure(group: GLuint; numCounters: PGLint; maxActiveCouters: PGLint; counterSize: GLsizei; counters: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9513   TglGetPerfMonitorGroupStringAMD = procedure(group: GLuint; bufSize: GLsizei; length: PGLsizei; groupString: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9514   TglGetPerfMonitorCounterStringAMD = procedure(group: GLuint; counter: GLuint; bufSize: GLsizei; length: PGLsizei; counterString: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9515   TglGetPerfMonitorCounterInfoAMD = procedure(group: GLuint; counter: GLuint; pname: GLenum; data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9516   TglGenPerfMonitorsAMD = procedure(n: GLsizei; monitors: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9517   TglDeletePerfMonitorsAMD = procedure(n: GLsizei; monitors: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9518   TglSelectPerfMonitorCountersAMD = procedure(monitor: GLuint; enable: GLboolean; group: GLuint; numCounters: GLint; counterList: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9519   TglBeginPerfMonitorAMD = procedure(monitor: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9520   TglEndPerfMonitorAMD = procedure(monitor: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9521   TglGetPerfMonitorCounterDataAMD = procedure(monitor: GLuint; pname: GLenum; dataSize: GLsizei; data: PGLuint; bytesWritten: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9522
9523   // GL_AMD_vertex_shader_tesselator
9524   TglTessellationFactorAMD = procedure(factor: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9525   TglTessellationModeAMD = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9526
9527   // GL_AMD_draw_buffers_blend
9528   TglBlendFuncIndexedAMD = procedure(buf: GLuint; src: GLenum; dst: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9529   TglBlendFuncSeparateIndexedAMD = procedure(buf: GLuint; srcRGB: GLenum; dstRGB: GLenum; srcAlpha: GLenum; dstAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9530   TglBlendEquationIndexedAMD = procedure(buf: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9531   TglBlendEquationSeparateIndexedAMD = procedure(buf: GLuint; modeRGB: GLenum; modeAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9532
9533   // GL_AMD_name_gen_delete
9534   TglGenNamesAMD = procedure(identifier: GLenum; num: GLuint; names: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9535   TglDeleteNamesAMD = procedure(identifier: GLenum; num: GLuint; const names: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9536   TglIsNameAMD = function(identifier: GLenum; name: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9537
9538   // GL_AMD_debug_output
9539   TglDebugMessageEnableAMD = procedure(category: GLenum; severity: GLenum; count: GLsizei; const ids: PGLuint; enabled: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9540   TglDebugMessageInsertAMD = procedure(category: GLenum; severity: GLenum; id: GLuint; length: GLsizei; const buf: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9541   TglDebugMessageCallbackAMD = procedure(callback: TGLDebugProcAMD; userParam: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9542   TglGetDebugMessageLogAMD = function(count: GLuint; bufsize: GLsizei; categories: PGLenum; severities: PGLuint; ids: PGLuint; lengths: PGLsizei; message: PGLchar): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9543
9544   // GL_EXT_blend_color
9545   TglBlendColorEXT = procedure(red: GLclampf; green: GLclampf; blue: GLclampf; alpha: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9546
9547   // GL_EXT_blend_func_separate
9548   TglBlendFuncSeparateEXT = procedure(sfactorRGB: GLenum; dfactorRGB: GLenum; sfactorAlpha: GLenum; dfactorAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9549
9550   // GL_EXT_blend_minmax
9551   TglBlendEquationEXT = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9552
9553   // GL_EXT_color_subtable
9554   TglColorSubTableEXT = procedure(target: GLenum; start: GLsizei; count: GLsizei; format: GLenum; _type: GLenum; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9555   TglCopyColorSubTableEXT = procedure(target: GLenum; start: GLsizei; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9556
9557   // GL_EXT_compiled_vertex_array
9558   TglLockArraysEXT = procedure(first: GLint; count: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9559   TglUnlockArraysEXT = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9560
9561   // GL_EXT_convolution
9562   TglConvolutionFilter1DEXT = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; format: GLenum; _type: GLenum; const image: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9563   TglConvolutionFilter2DEXT = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; const image: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9564   TglConvolutionParameterfEXT = procedure(target: GLenum; pname: GLenum; params: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9565   TglConvolutionParameterfvEXT = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9566   TglConvolutionParameteriEXT = procedure(target: GLenum; pname: GLenum; params: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9567   TglConvolutionParameterivEXT = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9568   TglCopyConvolutionFilter1DEXT = procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9569   TglCopyConvolutionFilter2DEXT = procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9570   TglGetConvolutionFilterEXT = procedure(target: GLenum; format: GLenum; _type: GLenum; image: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9571   TglGetConvolutionParameterfvEXT = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9572   TglGetConvolutionParameterivEXT = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9573   TglGetSeparableFilterEXT = procedure(target: GLenum; format: GLenum; _type: GLenum; row: PGLvoid; column: PGLvoid; span: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9574   TglSeparableFilter2DEXT = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; const row: PGLvoid; const column: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9575
9576   // GL_EXT_coordinate_frame
9577   TglTangent3bEXT = procedure(tx: GLbyte; ty: GLbyte; tz: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9578   TglTangent3bvEXT = procedure(const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9579   TglTangent3dEXT = procedure(tx: GLdouble; ty: GLdouble; tz: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9580   TglTangent3dvEXT = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9581   TglTangent3fEXT = procedure(tx: GLfloat; ty: GLfloat; tz: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9582   TglTangent3fvEXT = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9583   TglTangent3iEXT = procedure(tx: GLint; ty: GLint; tz: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9584   TglTangent3ivEXT = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9585   TglTangent3sEXT = procedure(tx: GLshort; ty: GLshort; tz: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9586   TglTangent3svEXT = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9587   TglBinormal3bEXT = procedure(bx: GLbyte; by: GLbyte; bz: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9588   TglBinormal3bvEXT = procedure(const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9589   TglBinormal3dEXT = procedure(bx: GLdouble; by: GLdouble; bz: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9590   TglBinormal3dvEXT = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9591   TglBinormal3fEXT = procedure(bx: GLfloat; by: GLfloat; bz: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9592   TglBinormal3fvEXT = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9593   TglBinormal3iEXT = procedure(bx: GLint; by: GLint; bz: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9594   TglBinormal3ivEXT = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9595   TglBinormal3sEXT = procedure(bx: GLshort; by: GLshort; bz: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9596   TglBinormal3svEXT = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9597   TglTangentPointerEXT = procedure(_type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9598   TglBinormalPointerEXT = procedure(_type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9599
9600   // GL_EXT_copy_texture
9601   TglCopyTexImage1DEXT = procedure(target: GLenum; level: GLint; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei; border: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9602   TglCopyTexImage2DEXT = procedure(target: GLenum; level: GLint; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei; height: GLsizei; border: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9603   TglCopyTexSubImage1DEXT = procedure(target: GLenum; level: GLint; xoffset: GLint; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9604   TglCopyTexSubImage2DEXT = procedure(target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; x: GLint; y: GLint; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9605   TglCopyTexSubImage3DEXT = procedure(target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; zoffset: GLint; x: GLint; y: GLint; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9606
9607   // GL_EXT_cull_vertex
9608   TglCullParameterdvEXT = procedure(pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9609   TglCullParameterfvEXT = procedure(pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9610
9611   // GL_EXT_draw_range_elements
9612   TglDrawRangeElementsEXT = procedure(mode: GLenum; start: GLuint; _end: GLuint; count: GLsizei; _type: GLenum; const indices: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9613
9614   // GL_EXT_fog_coord
9615   TglFogCoordfEXT = procedure(coord: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9616   TglFogCoordfvEXT = procedure(const coord: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9617   TglFogCoorddEXT = procedure(coord: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9618   TglFogCoorddvEXT = procedure(const coord: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9619   TglFogCoordPointerEXT = procedure(_type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9620
9621   // GL_EXT_framebuffer_object
9622   TglIsRenderbufferEXT = function(renderbuffer: GLuint): Boolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9623   TglBindRenderbufferEXT = procedure(target: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9624   TglDeleteRenderbuffersEXT = procedure(n: GLsizei; const renderbuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9625   TglGenRenderbuffersEXT = procedure(n: GLsizei; renderbuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9626   TglRenderbufferStorageEXT = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9627   TglGetRenderbufferParameterivEXT = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9628   TglIsFramebufferEXT = function(framebuffer: GLuint): Boolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9629   TglBindFramebufferEXT = procedure(target: GLenum; framebuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9630   TglDeleteFramebuffersEXT = procedure(n: GLsizei; const framebuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9631   TglGenFramebuffersEXT = procedure(n: GLsizei; framebuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9632   TglCheckFramebufferStatusEXT = function(target: GLenum): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9633   TglFramebufferTexture1DEXT = procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9634   TglFramebufferTexture2DEXT = procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9635   TglFramebufferTexture3DEXT = procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint; zoffset: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9636   TglFramebufferRenderbufferEXT = procedure(target: GLenum; attachment: GLenum; renderbuffertarget: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9637   TglGetFramebufferAttachmentParameterivEXT = procedure(target: GLenum; attachment: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9638   TglGenerateMipmapEXT = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9639
9640   // GL_EXT_histogram
9641   TglGetHistogramEXT = procedure(target: GLenum; reset: GLboolean; format: GLenum; _type: GLenum; values: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9642   TglGetHistogramParameterfvEXT = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9643   TglGetHistogramParameterivEXT = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9644   TglGetMinmaxEXT = procedure(target: GLenum; reset: GLboolean; format: GLenum; _type: GLenum; values: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9645   TglGetMinmaxParameterfvEXT = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9646   TglGetMinmaxParameterivEXT = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9647   TglHistogramEXT = procedure(target: GLenum; width: GLsizei; internalformat: GLenum; sink: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9648   TglMinmaxEXT = procedure(target: GLenum; internalformat: GLenum; sink: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9649   TglResetHistogramEXT = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9650   TglResetMinmaxEXT = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9651
9652   // GL_EXT_index_func
9653   TglIndexFuncEXT = procedure(func: GLenum; ref: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9654
9655   // GL_EXT_index_material
9656   TglIndexMaterialEXT = procedure(face: GLenum; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9657
9658   // GL_EXT_light_texture
9659   TglApplyTextureEXT = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9660   TglTextureLightEXT = procedure(pname: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9661   TglTextureMaterialEXT = procedure(face: GLenum; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9662
9663   // GL_EXT_multi_draw_arrays
9664   TglMultiDrawArraysEXT = procedure(mode: GLenum; const first: PGLint; const count: PGLsizei; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9665   TglMultiDrawElementsEXT = procedure(mode: GLenum; const count: PGLsizei; _type: GLenum; const indices: PGLvoid; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9666
9667   // GL_EXT_multisample
9668   TglSampleMaskEXT = procedure(value: GLclampf; invert: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9669   TglSamplePatternEXT = procedure(pattern: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9670
9671   // GL_EXT_paletted_texture
9672   TglColorTableEXT = procedure(target: GLenum; internalFormat: GLenum; width: GLsizei; format: GLenum; _type: GLenum; const table: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9673   TglGetColorTableEXT = procedure(target: GLenum; format: GLenum; _type: GLenum; data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9674   TglGetColorTableParameterivEXT = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9675   TglGetColorTableParameterfvEXT = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9676
9677   // GL_EXT_pixel_transform
9678   TglPixelTransformParameteriEXT = procedure(target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9679   TglPixelTransformParameterfEXT = procedure(target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9680   TglPixelTransformParameterivEXT = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9681   TglPixelTransformParameterfvEXT = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9682
9683   // GL_EXT_point_parameters
9684   TglPointParameterfEXT = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9685   TglPointParameterfvEXT = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9686
9687   // GL_EXT_polygon_offset
9688   TglPolygonOffsetEXT = procedure(factor: GLfloat; bias: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9689
9690   // GL_EXT_secondary_color
9691   TglSecondaryColor3bEXT = procedure(red: GLbyte; green: GLbyte; blue: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9692   TglSecondaryColor3bvEXT = procedure(const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9693   TglSecondaryColor3dEXT = procedure(red: GLdouble; green: GLdouble; blue: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9694   TglSecondaryColor3dvEXT = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9695   TglSecondaryColor3fEXT = procedure(red: GLfloat; green: GLfloat; blue: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9696   TglSecondaryColor3fvEXT = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9697   TglSecondaryColor3iEXT = procedure(red: GLint; green: GLint; blue: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9698   TglSecondaryColor3ivEXT = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9699   TglSecondaryColor3sEXT = procedure(red: GLshort; green: GLshort; blue: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9700   TglSecondaryColor3svEXT = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9701   TglSecondaryColor3ubEXT = procedure(red: GLubyte; green: GLubyte; blue: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9702   TglSecondaryColor3ubvEXT = procedure(const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9703   TglSecondaryColor3uiEXT = procedure(red: GLuint; green: GLuint; blue: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9704   TglSecondaryColor3uivEXT = procedure(const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9705   TglSecondaryColor3usEXT = procedure(red: GLushort; green: GLushort; blue: GLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9706   TglSecondaryColor3usvEXT = procedure(const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9707   TglSecondaryColorPointerEXT = procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9708
9709   // GL_EXT_stencil_two_side
9710   TglActiveStencilFaceEXT = procedure(face: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9711
9712   // GL_EXT_subtexture
9713   TglTexSubImage1DEXT = procedure(target: GLenum; level: GLint; xoffset: GLint; width: GLsizei; format: GLenum; _type: GLenum; const pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9714   TglTexSubImage2DEXT = procedure(target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; const pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9715
9716   // GL_EXT_texture3D
9717   TglTexImage3DEXT = procedure(target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; height: GLsizei; depth: GLsizei; border: GLint; format: GLenum; _type: GLenum; const pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9718   TglTexSubImage3DEXT = procedure(target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; zoffset: GLint; width: GLsizei; height: GLsizei; depth: GLsizei; format: GLenum; _type: GLenum; const pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9719
9720   // GL_EXT_texture_object
9721   TglAreTexturesResidentEXT = function(n: GLsizei; const textures: PGLuint; residences: PGLboolean): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9722   TglBindTextureEXT = procedure(target: GLenum; texture: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9723   TglDeleteTexturesEXT = procedure(n: GLsizei; const textures: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9724   TglGenTexturesEXT = procedure(n: GLsizei; textures: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9725   TglIsTextureEXT = function(texture: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9726   TglPrioritizeTexturesEXT = procedure(n: GLsizei; const textures: PGLuint; const priorities: PGLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9727
9728   // GL_EXT_texture_perturb_normal
9729   TglTextureNormalEXT = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9730
9731   // GL_EXT_vertex_array
9732   TglArrayElementEXT = procedure(i: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9733   TglColorPointerEXT = procedure(size: GLint; _type: GLenum; stride: GLsizei; count: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9734   TglDrawArraysEXT = procedure(mode: GLenum; first: GLint; count: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9735   TglEdgeFlagPointerEXT = procedure(stride: GLsizei; count: GLsizei; const _pointer: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9736   TglGetPointervEXT = procedure(pname: GLenum; params: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9737   TglIndexPointerEXT = procedure(_type: GLenum; stride: GLsizei; count: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9738   TglNormalPointerEXT = procedure(_type: GLenum; stride: GLsizei; count: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9739   TglTexCoordPointerEXT = procedure(size: GLint; _type: GLenum; stride: GLsizei; count: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9740   TglVertexPointerEXT = procedure(size: GLint; _type: GLenum; stride: GLsizei; count: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9741
9742   // GL_EXT_vertex_shader
9743   TglBeginVertexShaderEXT = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9744   TglEndVertexShaderEXT = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9745   TglBindVertexShaderEXT = procedure(id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9746   TglGenVertexShadersEXT = function(range: GLuint): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9747   TglDeleteVertexShaderEXT = procedure(id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9748   TglShaderOp1EXT = procedure(op: GLenum; res: GLuint; arg1: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9749   TglShaderOp2EXT = procedure(op: GLenum; res: GLuint; arg1: GLuint; arg2: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9750   TglShaderOp3EXT = procedure(op: GLenum; res: GLuint; arg1: GLuint; arg2: GLuint; arg3: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9751   TglSwizzleEXT = procedure(res: GLuint; _in: GLuint; outX: GLenum; outY: GLenum; outZ: GLenum; outW: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9752   TglWriteMaskEXT = procedure(res: GLuint; _in: GLuint; outX: GLenum; outY: GLenum; outZ: GLenum; outW: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9753   TglInsertComponentEXT = procedure(res: GLuint; src: GLuint; num: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9754   TglExtractComponentEXT = procedure(res: GLuint; src: GLuint; num: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9755   TglGenSymbolsEXT = function(datatype: GLenum; storagetype: GLenum; range: GLenum; components: GLuint): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9756   TglSetInvariantEXT = procedure(id: GLuint; _type: GLenum; const addr: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9757   TglSetLocalConstantEXT = procedure(id: GLuint; _type: GLenum; const addr: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9758   TglVariantbvEXT = procedure(id: GLuint; const addr: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9759   TglVariantsvEXT = procedure(id: GLuint; const addr: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9760   TglVariantivEXT = procedure(id: GLuint; const addr: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9761   TglVariantfvEXT = procedure(id: GLuint; const addr: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9762   TglVariantdvEXT = procedure(id: GLuint; const addr: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9763   TglVariantubvEXT = procedure(id: GLuint; const addr: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9764   TglVariantusvEXT = procedure(id: GLuint; const addr: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9765   TglVariantuivEXT = procedure(id: GLuint; const addr: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9766   TglVariantPointerEXT = procedure(id: GLuint; _type: GLenum; stride: GLuint; const addr: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9767   TglEnableVariantClientStateEXT = procedure(id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9768   TglDisableVariantClientStateEXT = procedure(id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9769   TglBindLightParameterEXT = function(light: GLenum; value: GLenum): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9770   TglBindMaterialParameterEXT = function(face: GLenum; value: GLenum): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9771   TglBindTexGenParameterEXT = function(_unit: GLenum; coord: GLenum; value: GLenum): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9772   TglBindTextureUnitParameterEXT = function(_unit: GLenum; value: GLenum): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9773   TglBindParameterEXT = function(value: GLenum): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9774   TglIsVariantEnabledEXT = function(id: GLuint; cap: GLenum): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9775   TglGetVariantBooleanvEXT = procedure(id: GLuint; value: GLenum; data: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9776   TglGetVariantIntegervEXT = procedure(id: GLuint; value: GLenum; data: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9777   TglGetVariantFloatvEXT = procedure(id: GLuint; value: GLenum; data: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9778   TglGetVariantPointervEXT = procedure(id: GLuint; value: GLenum; data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9779   TglGetInvariantBooleanvEXT = procedure(id: GLuint; value: GLenum; data: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9780   TglGetInvariantIntegervEXT = procedure(id: GLuint; value: GLenum; data: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9781   TglGetInvariantFloatvEXT = procedure(id: GLuint; value: GLenum; data: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9782   TglGetLocalConstantBooleanvEXT = procedure(id: GLuint; value: GLenum; data: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9783   TglGetLocalConstantIntegervEXT = procedure(id: GLuint; value: GLenum; data: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9784   TglGetLocalConstantFloatvEXT = procedure(id: GLuint; value: GLenum; data: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9785
9786   // GL_EXT_vertex_weighting
9787   TglVertexWeightfEXT = procedure(weight: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9788   TglVertexWeightfvEXT = procedure(const weight: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9789   TglVertexWeightPointerEXT = procedure(size: GLsizei; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9790
9791   // GL_EXT_stencil_clear_tag
9792   TglStencilClearTagEXT = procedure(stencilTagBits: GLsizei; stencilClearTag: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9793
9794   // GL_EXT_framebuffer_blit
9795   TglBlitFramebufferEXT = procedure(srcX0: GLint; srcY0: GLint; srcX1: GLint; srcY1: GLint; dstX0: GLint; dstY0: GLint; dstX1: GLint; dstY1: GLint; mask: GLbitfield; filter: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9796
9797   // GL_EXT_framebuffer_multisample
9798   TglRenderbufferStorageMultisampleEXT = procedure(target: GLenum; samples: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9799
9800   // GL_EXT_timer_query
9801   TglGetQueryObjecti64vEXT = procedure(id: GLuint; pname: GLenum; params: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9802   TglGetQueryObjectui64vEXT = procedure(id: GLuint; pname: GLenum; params: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9803
9804   // GL_EXT_gpu_program_parameters
9805   TglProgramEnvParameters4fvEXT = procedure(target: GLenum; index: GLuint; count: GLsizei; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9806   TglProgramLocalParameters4fvEXT = procedure(target: GLenum; index: GLuint; count: GLsizei; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9807
9808   // GL_EXT_bindable_uniform
9809   TglUniformBufferEXT = procedure(_program: GLuint; location: GLint; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9810   TglGetUniformBufferSizeEXT = function(_program: GLuint; location: GLint): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9811   TglGetUniformOffsetEXT = function(_program: GLuint; location: GLint): GLintptr; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9812
9813   // GL_EXT_draw_buffers2
9814   TglColorMaskIndexedEXT = procedure(buf: GLuint; r: GLboolean; g: GLboolean; b: GLboolean; a: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9815   TglGetBooleanIndexedvEXT = procedure(value: GLenum; index: GLuint; data: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9816   TglGetIntegerIndexedvEXT = procedure(value: GLenum; index: GLuint; data: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9817   TglEnableIndexedEXT = procedure(target: GLenum; index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9818   TglDisableIndexedEXT = procedure(target: GLenum; index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9819   TglIsEnabledIndexedEXT = function(target: GLenum; index: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9820
9821   // GL_EXT_draw_instanced
9822   TglDrawArraysInstancedEXT = procedure(mode: GLenum; first: GLint; count: GLsizei; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9823   TglDrawElementsInstancedEXT = procedure(mode: GLenum; count: GLsizei; _type: GLenum; const indices: Pointer; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9824
9825   // GL_EXT_geometry_shader4
9826   TglProgramParameteriEXT = procedure (_program: GLuint; pname: GLenum; value: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9827   TglFramebufferTextureEXT = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9828
9829   TglFramebufferTextureFaceEXT = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; face: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9830
9831   // GL_EXT_gpu_shader4
9832   TglVertexAttribI1iEXT = procedure(index: GLuint; x: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9833   TglVertexAttribI2iEXT = procedure(index: GLuint; x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9834   TglVertexAttribI3iEXT = procedure(index: GLuint; x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9835   TglVertexAttribI4iEXT = procedure(index: GLuint; x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9836   TglVertexAttribI1uiEXT = procedure(index: GLuint; x: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9837   TglVertexAttribI2uiEXT = procedure(index: GLuint; x: GLuint; y: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9838   TglVertexAttribI3uiEXT = procedure(index: GLuint; x: GLuint; y: GLuint; z: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9839   TglVertexAttribI4uiEXT = procedure(index: GLuint; x: GLuint; y: GLuint; z: GLuint; w: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9840   TglVertexAttribI1ivEXT = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9841   TglVertexAttribI2ivEXT = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9842   TglVertexAttribI3ivEXT = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9843   TglVertexAttribI4ivEXT = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9844   TglVertexAttribI1uivEXT = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9845   TglVertexAttribI2uivEXT = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9846   TglVertexAttribI3uivEXT = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9847   TglVertexAttribI4uivEXT = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9848   TglVertexAttribI4bvEXT = procedure(index: GLuint; const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9849   TglVertexAttribI4svEXT = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9850   TglVertexAttribI4ubvEXT = procedure(index: GLuint; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9851   TglVertexAttribI4usvEXT = procedure(index: GLuint; const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9852   TglVertexAttribIPointerEXT = procedure(index: GLuint; size: GLint; _type: GLenum; stride: GLsizei; const _pointer: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9853   TglGetVertexAttribIivEXT = procedure(index: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9854   TglGetVertexAttribIuivEXT = procedure(index: GLuint; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9855   TglUniform1uiEXT = procedure(location: GLint; v0: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9856   TglUniform2uiEXT = procedure(location: GLint; v0: GLuint; v1: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9857   TglUniform3uiEXT = procedure(location: GLint; v0: GLuint; v1: GLuint; v2: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9858   TglUniform4uiEXT = procedure(location: GLint; v0: GLuint; v1: GLuint; v2: GLuint; v3: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9859   TglUniform1uivEXT = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9860   TglUniform2uivEXT = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9861   TglUniform3uivEXT = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9862   TglUniform4uivEXT = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9863   TglGetUniformuivEXT = procedure(_program: GLuint; location: GLint; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9864   TglBindFragDataLocationEXT = procedure(_program: GLuint; colorNumber: GLuint; const name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9865   TglGetFragDataLocationEXT = function(_program: GLuint; const name: PGLchar): GLint;
9866
9867   // GL_EXT_texture_array
9868   TglFramebufferTextureLayerEXT = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; layer: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9869
9870   // GL_EXT_texture_buffer_object
9871   TglTexBufferEXT = procedure(target: GLenum; internalformat: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9872
9873   // GL_EXT_texture_integer
9874   TglClearColorIiEXT = procedure(r: GLint; g: GLint; b: GLint; a: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9875   TglClearColorIuiEXT = procedure(r: GLuint; g: GLuint; b: GLuint; a: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9876   TglTexParameterIivEXT = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9877   TglTexParameterIuivEXT = procedure(target: GLenum; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9878   TglGetTexParameterIivEXT = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9879   TglGetTexParameterIiuvEXT = procedure(target: GLenum; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9880
9881   // GL_HP_image_transform
9882   TglImageTransformParameteriHP = procedure(target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9883   TglImageTransformParameterfHP = procedure(target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9884   TglImageTransformParameterivHP = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9885   TglImageTransformParameterfvHP = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9886   TglGetImageTransformParameterivHP = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9887   TglGetImageTransformParameterfvHP = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9888
9889   // GL_EXT_depth_bounds_test
9890   TglDepthBoundsEXT = procedure(zmin: GLclampd; zmax: GLclampd); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9891
9892   // GL_EXT_blend_equation_separate
9893   TglBlendEquationSeparateEXT = procedure(modeRGB: GLenum; modeAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9894
9895   // GL_EXT_transform_feedback
9896   TglBeginTransformFeedbackEXT = procedure(primitiveMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9897   TglEndTransformFeedbackEXT = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9898   TglBindBufferRangeEXT = procedure(target: GLenum; index_: GLuint; buffer: GLuint; offset: GLintptr; size: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9899   TglBindBufferOffsetEXT = procedure(target: GLenum; index_: GLuint; buffer: GLuint; offset: GLintptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9900   TglBindBufferBaseEXT = procedure(target: GLenum; index_: GLuint; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9901   TglTransformFeedbackVaryingsEXT = procedure(program_: GLuint; count: GLsizei; const locations: PGLint; bufferMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9902   TglGetTransformFeedbackVaryingEXT = procedure(program_: GLuint; index_: GLuint; location: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9903
9904   // GL_EXT_direct_state_access
9905   TglClientAttribDefaultEXT = procedure(mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9906   TglPushClientAttribDefaultEXT = procedure(mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9907   TglMatrixLoadfEXT = procedure(mode: GLenum; const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9908   TglMatrixLoaddEXT = procedure(mode: GLenum; const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9909   TglMatrixMultfEXT = procedure(mode: GLenum; const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9910   TglMatrixMultdEXT = procedure(mode: GLenum; const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9911   TglMatrixLoadIdentityEXT = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9912   TglMatrixRotatefEXT = procedure(mode: GLenum; angle: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9913   TglMatrixRotatedEXT = procedure(mode: GLenum; angle: GLdouble; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9914   TglMatrixScalefEXT = procedure(mode: GLenum; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9915   TglMatrixScaledEXT = procedure(mode: GLenum; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9916   TglMatrixTranslatefEXT = procedure(mode: GLenum; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9917   TglMatrixTranslatedEXT = procedure(mode: GLenum; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9918   TglMatrixFrustumEXT = procedure(mode: GLenum; left: GLdouble; right: GLdouble; bottom: GLdouble; top: GLdouble; zNear: GLdouble; zFar: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9919   TglMatrixOrthoEXT = procedure(mode: GLenum; left: GLdouble; right: GLdouble; bottom: GLdouble; top: GLdouble; zNear: GLdouble; zFar: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9920   TglMatrixPopEXT = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9921   TglMatrixPushEXT = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9922   TglMatrixLoadTransposefEXT = procedure(mode: GLenum; const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9923   TglMatrixLoadTransposedEXT = procedure(mode: GLenum; const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9924   TglMatrixMultTransposefEXT = procedure(mode: GLenum; const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9925   TglMatrixMultTransposedEXT = procedure(mode: GLenum; const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9926   TglTextureParameterfEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9927   TglTextureParameterfvEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9928   TglTextureParameteriEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9929   TglTextureParameterivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9930   TglTextureImage1DEXT = procedure(texture: GLuint; target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; border: GLint; format: GLenum; type_: GLenum; const pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9931   TglTextureImage2DEXT = procedure(texture: GLuint; target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; height: GLsizei; border: GLint; format: GLenum; type_: GLenum; const pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9932   TglTextureSubImage1DEXT = procedure(texture: GLuint; target: GLenum; level: GLint; xoffset: GLint; width: GLsizei; format: GLenum; type_: GLenum; const pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9933   TglTextureSubImage2DEXT = procedure(texture: GLuint; target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; width: GLsizei; height: GLsizei; format: GLenum; type_: GLenum; const pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9934   TglCopyTextureImage1DEXT = procedure(texture: GLuint; target: GLenum; level: GLint; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei; border: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9935   TglCopyTextureImage2DEXT = procedure(texture: GLuint; target: GLenum; level: GLint; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei; height: GLsizei; border: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9936   TglCopyTextureSubImage1DEXT = procedure(texture: GLuint; target: GLenum; level: GLint; xoffset: GLint; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9937   TglCopyTextureSubImage2DEXT = procedure(texture: GLuint; target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; x: GLint; y: GLint; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9938   TglGetTextureImageEXT = procedure(texture: GLuint; target: GLenum; level: GLint; format: GLenum; type_: GLenum; pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9939   TglGetTextureParameterfvEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9940   TglGetTextureParameterivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9941   TglGetTextureLevelParameterfvEXT = procedure(texture: GLuint; target: GLenum; level: GLint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9942   TglGetTextureLevelParameterivEXT = procedure(texture: GLuint; target: GLenum; level: GLint; pname: GLenum; params: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9943   TglTextureImage3DEXT = procedure(texture: GLuint; target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; height: GLsizei; depth: GLsizei; border: GLint; format: GLenum; type_: GLenum; const pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9944   TglTextureSubImage3DEXT = procedure(texture: GLuint; target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; zoffset: GLint; width: GLsizei; height: GLsizei; depth: GLsizei; format: GLenum; type_: GLenum; const pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9945   TglCopyTextureSubImage3DEXT = procedure(texture: GLuint; target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; zoffset: GLint; x: GLint; y: GLint; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9946   TglMultiTexParameterfEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9947   TglMultiTexParameterfvEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9948   TglMultiTexParameteriEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9949   TglMultiTexParameterivEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9950   TglMultiTexImage1DEXT = procedure(texunit: GLenum; target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; border: GLint; format: GLenum; type_: GLenum; const pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9951   TglMultiTexImage2DEXT = procedure(texunit: GLenum; target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; height: GLsizei; border: GLint; format: GLenum; type_: GLenum; const pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9952   TglMultiTexSubImage1DEXT = procedure(texunit: GLenum; target: GLenum; level: GLint; xoffset: GLint; width: GLsizei; format: GLenum; type_: GLenum; const pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9953   TglMultiTexSubImage2DEXT = procedure(texunit: GLenum; target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; width: GLsizei; height: GLsizei; format: GLenum; type_: GLenum; const pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9954   TglCopyMultiTexImage1DEXT = procedure(texunit: GLenum; target: GLenum; level: GLint; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei; border: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9955   TglCopyMultiTexImage2DEXT = procedure(texunit: GLenum; target: GLenum; level: GLint; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei; height: GLsizei; border: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9956   TglCopyMultiTexSubImage1DEXT = procedure(texunit: GLenum; target: GLenum; level: GLint; xoffset: GLint; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9957   TglCopyMultiTexSubImage2DEXT = procedure(texunit: GLenum; target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; x: GLint; y: GLint; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9958   TglGetMultiTexImageEXT = procedure(texunit: GLenum; target: GLenum; level: GLint; format: GLenum; type_: GLenum; pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9959   TglGetMultiTexParameterfvEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9960   TglGetMultiTexParameterivEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9961   TglGetMultiTexLevelParameterfvEXT = procedure(texunit: GLenum; target: GLenum; level: GLint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9962   TglGetMultiTexLevelParameterivEXT = procedure(texunit: GLenum; target: GLenum; level: GLint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9963   TglMultiTexImage3DEXT = procedure(texunit: GLenum; target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; height: GLsizei; depth: GLsizei; border: GLint; format: GLenum; type_: GLenum; const pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9964   TglMultiTexSubImage3DEXT = procedure(texunit: GLenum; target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; zoffset: GLint; width: GLsizei; height: GLsizei; depth: GLsizei; format: GLenum; type_: GLenum; const pixels:PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9965   TglCopyMultiTexSubImage3DEXT = procedure(texunit: GLenum; target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; zoffset: GLint; x: GLint; y: GLint; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9966   TglBindMultiTextureEXT = procedure(texunit: GLenum; target: GLenum; texture: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9967   TglEnableClientStateIndexedEXT = procedure(array_: GLenum; index_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9968   TglDisableClientStateIndexedEXT = procedure(array_: GLenum; index_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9969   TglMultiTexCoordPointerEXT = procedure(texunit: GLenum; size: GLint; type_: GLenum; stride: GLsizei; const pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9970   TglMultiTexEnvfEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9971   TglMultiTexEnvfvEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9972   TglMultiTexEnviEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9973   TglMultiTexEnvivEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9974   TglMultiTexGendEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9975   TglMultiTexGendvEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9976   TglMultiTexGenfEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9977   TglMultiTexGenfvEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9978   TglMultiTexGeniEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9979   TglMultiTexGenivEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9980   TglGetMultiTexEnvfvEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9981   TglGetMultiTexEnvivEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9982   TglGetMultiTexGendvEXT = procedure(texunit: GLenum; coord: GLenum; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9983   TglGetMultiTexGenfvEXT = procedure(texunit: GLenum; coord: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9984   TglGetMultiTexGenivEXT = procedure(texunit: GLenum; coord: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9985   TglGetFloatIndexedvEXT = procedure(target: GLenum; index_: GLuint; data: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9986   TglGetDoubleIndexedvEXT = procedure(target: GLenum; index_: GLuint; data: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9987   TglGetPointerIndexedvEXT = procedure(target: GLenum; index_: GLuint; data: PPGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9988   TglCompressedTextureImage3DEXT = procedure(texture: GLuint; target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; height: GLsizei; depth: GLsizei; border: GLint; imageSize: GLsizei; const bits: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9989   TglCompressedTextureImage2DEXT = procedure(texture: GLuint; target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; height: GLsizei; border: GLint; imageSize: GLsizei; const bits: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9990   TglCompressedTextureImage1DEXT = procedure(texture: GLuint; target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; border: GLint; imageSize: GLsizei; const bits: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9991   TglCompressedTextureSubImage3DEXT = procedure(texture: GLuint; target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; zoffset: GLint; width: GLsizei; height: GLsizei; depth: GLsizei; format: GLenum; imageSize: GLsizei; const bits: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9992   TglCompressedTextureSubImage2DEXT = procedure(texture: GLuint; target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; width: GLsizei; height: GLsizei; format: GLenum; imageSize: GLsizei; const bits: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9993   TglCompressedTextureSubImage1DEXT = procedure(texture: GLuint; target: GLenum; level: GLint; xoffset: GLint; width: GLsizei; format: GLenum; imageSize: GLsizei; const bits: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9994   TglGetCompressedTextureImageEXT = procedure(texture: GLuint; target: GLenum; lod: GLint; img: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9995   TglCompressedMultiTexImage3DEXT = procedure(texunit: GLenum; target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; height: GLsizei; depth: GLsizei; border: GLint; imageSize: GLsizei; const bits: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9996   TglCompressedMultiTexImage2DEXT = procedure(texunit: GLenum; target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; height: GLsizei; border: GLint; imageSize: GLsizei; const bits: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9997   TglCompressedMultiTexImage1DEXT = procedure(texunit: GLenum; target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; border: GLint; imageSize: GLsizei; const bits: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9998   TglCompressedMultiTexSubImage3DEXT = procedure(texunit: GLenum; target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; zoffset: GLint; width: GLsizei; height: GLsizei; depth: GLsizei; format: GLenum; imageSize: GLsizei; const bits: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9999   TglCompressedMultiTexSubImage2DEXT = procedure(texunit: GLenum; target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; width: GLsizei; height: GLsizei; format: GLenum; imageSize: GLsizei; const bits: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10000   TglCompressedMultiTexSubImage1DEXT = procedure(texunit: GLenum; target: GLenum; level: GLint; xoffset: GLint; width: GLsizei; format: GLenum; imageSize: GLsizei; const bits: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10001   TglGetCompressedMultiTexImageEXT = procedure(texunit: GLenum; target: GLenum; lod: GLint; img: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10002   TglNamedProgramStringEXT = procedure(program_: GLuint; target: GLenum; format: GLenum; len: GLsizei; const string_: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10003   TglNamedProgramLocalParameter4dEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10004   TglNamedProgramLocalParameter4dvEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; const params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10005   TglNamedProgramLocalParameter4fEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10006   TglNamedProgramLocalParameter4fvEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10007   TglGetNamedProgramLocalParameterdvEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10008   TglGetNamedProgramLocalParameterfvEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10009   TglGetNamedProgramivEXT = procedure(program_: GLuint; target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10010   TglGetNamedProgramStringEXT = procedure(program_: GLuint; target: GLenum; pname: GLenum; string_: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10011   TglNamedProgramLocalParameters4fvEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; count: GLsizei; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10012   TglNamedProgramLocalParameterI4iEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10013   TglNamedProgramLocalParameterI4ivEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10014   TglNamedProgramLocalParametersI4ivEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; count: GLsizei; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10015   TglNamedProgramLocalParameterI4uiEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; x: GLuint; y: GLuint; z: GLuint; w: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10016   TglNamedProgramLocalParameterI4uivEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10017   TglNamedProgramLocalParametersI4uivEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; count: GLsizei; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10018   TglGetNamedProgramLocalParameterIivEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10019   TglGetNamedProgramLocalParameterIuivEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10020   TglTextureParameterIivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10021   TglTextureParameterIuivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10022   TglGetTextureParameterIivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10023   TglGetTextureParameterIuivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10024   TglMultiTexParameterIivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10025   TglMultiTexParameterIuivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10026   TglGetMultiTexParameterIivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10027   TglGetMultiTexParameterIuivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10028   TglProgramUniform1fEXT = procedure(program_: GLuint; location: GLint; v0: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10029   TglProgramUniform2fEXT = procedure(program_: GLuint; location: GLint; v0: GLfloat; v1: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10030   TglProgramUniform3fEXT = procedure(program_: GLuint; location: GLint; v0: GLfloat; v1: GLfloat; v2: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10031   TglProgramUniform4fEXT = procedure(program_: GLuint; location: GLint; v0: GLfloat; v1: GLfloat; v2: GLfloat; v3: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10032   TglProgramUniform1iEXT = procedure(program_: GLuint; location: GLint; v0: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10033   TglProgramUniform2iEXT = procedure(program_: GLuint; location: GLint; v0: GLint; v1: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10034   TglProgramUniform3iEXT = procedure(program_: GLuint; location: GLint; v0: GLint; v1: GLint; v2: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10035   TglProgramUniform4iEXT = procedure(program_: GLuint; location: GLint; v0: GLint; v1: GLint; v2: GLint; v3: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10036   TglProgramUniform1fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10037   TglProgramUniform2fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10038   TglProgramUniform3fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10039   TglProgramUniform4fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10040   TglProgramUniform1ivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10041   TglProgramUniform2ivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10042   TglProgramUniform3ivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10043   TglProgramUniform4ivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10044   TglProgramUniformMatrix2fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10045   TglProgramUniformMatrix3fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10046   TglProgramUniformMatrix4fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10047   TglProgramUniformMatrix2x3fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10048   TglProgramUniformMatrix3x2fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10049   TglProgramUniformMatrix2x4fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10050   TglProgramUniformMatrix4x2fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10051   TglProgramUniformMatrix3x4fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10052   TglProgramUniformMatrix4x3fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10053   TglProgramUniform1uiEXT = procedure(program_: GLuint; location: GLint; v0: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10054   TglProgramUniform2uiEXT = procedure(program_: GLuint; location: GLint; v0: GLuint; v1: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10055   TglProgramUniform3uiEXT = procedure(program_: GLuint; location: GLint; v0: GLuint; v1: GLuint; v2: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10056   TglProgramUniform4uiEXT = procedure(program_: GLuint; location: GLint; v0: GLuint; v1: GLuint; v2: GLuint; v3: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10057   TglProgramUniform1uivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10058   TglProgramUniform2uivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10059   TglProgramUniform3uivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10060   TglProgramUniform4uivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10061   TglNamedBufferDataEXT = procedure(buffer: GLuint; size: GLsizei; const data: PGLvoid; usage: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10062   TglNamedBufferSubDataEXT = procedure(buffer: GLuint; offset: GLintptr; size: GLsizeiptr; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10063   TglMapNamedBufferEXT = function(buffer: GLuint; access: GLenum): PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10064   TglUnmapNamedBufferEXT = function(buffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10065   TglMapNamedBufferRangeEXT = function(buffer: GLuint; offset: GLintptr; length: GLsizeiptr; access: GLbitfield): PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10066   TglFlushMappedNamedBufferRangeEXT = procedure(buffer: GLuint; offset: GLintptr; length: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10067   TglNamedCopyBufferSubDataEXT = procedure(readBuffer: GLuint; writeBuffer: GLuint; readOffset: GLintptr; writeOffset: GLintptr; size: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10068   TglGetNamedBufferParameterivEXT = procedure(buffer: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10069   TglGetNamedBufferPointervEXT = procedure(buffer: GLuint; pname: GLenum; params: PPGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10070   TglGetNamedBufferSubDataEXT = procedure(buffer: GLuint; offset: GLintptr; size: GLsizeiptr; data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10071   TglTextureBufferEXT = procedure(texture: GLuint; target: GLenum; internalformat: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10072   TglMultiTexBufferEXT = procedure(texunit: GLenum; target: GLenum; interformat: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10073   TglNamedRenderbufferStorageEXT = procedure(renderbuffer: GLuint; interformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10074   TglGetNamedRenderbufferParameterivEXT = procedure(renderbuffer: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10075   TglCheckNamedFramebufferStatusEXT = function(framebuffer: GLuint; target: GLenum): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10076   TglNamedFramebufferTexture1DEXT = procedure(framebuffer: GLuint; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10077   TglNamedFramebufferTexture2DEXT = procedure(framebuffer: GLuint; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10078   TglNamedFramebufferTexture3DEXT = procedure(framebuffer: GLuint; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint; zoffset: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10079   TglNamedFramebufferRenderbufferEXT = procedure(framebuffer: GLuint; attachment: GLenum; renderbuffertarget: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10080   TglGetNamedFramebufferAttachmentParameterivEXT = procedure(framebuffer: GLuint; attachment: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10081   TglGenerateTextureMipmapEXT = procedure(texture: GLuint; target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10082   TglGenerateMultiTexMipmapEXT = procedure(texunit: GLenum; target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10083   TglFramebufferDrawBufferEXT = procedure(framebuffer: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10084   TglFramebufferDrawBuffersEXT = procedure(framebuffer: GLuint; n: GLsizei; const bufs: PGLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10085   TglFramebufferReadBufferEXT = procedure(framebuffer: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10086   TglGetFramebufferParameterivEXT = procedure(framebuffer: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10087   TglNamedRenderbufferStorageMultisampleEXT = procedure(renderbuffer: GLuint; samples: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10088   TglNamedRenderbufferStorageMultisampleCoverageEXT = procedure(renderbuffer: GLuint; coverageSamples: GLsizei; colorSamples: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10089   TglNamedFramebufferTextureEXT = procedure(framebuffer: GLuint; attachment: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10090   TglNamedFramebufferTextureLayerEXT = procedure(framebuffer: GLuint; attachment: GLenum; texture: GLuint; level: GLint; layer: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10091   TglNamedFramebufferTextureFaceEXT = procedure(framebuffer: GLuint; attachment: GLenum; texture: GLuint; level: GLint; face: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10092   TglTextureRenderbufferEXT = procedure(texture: GLuint; target: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10093   TglMultiTexRenderbufferEXT = procedure(texunit: GLenum; target: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10094   TglProgramUniform1dEXT = procedure(program_: GLuint; location: GLint; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10095   TglProgramUniform2dEXT = procedure(program_: GLuint; location: GLint; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10096   TglProgramUniform3dEXT = procedure(program_: GLuint; location: GLint; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10097   TglProgramUniform4dEXT = procedure(program_: GLuint; location: GLint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10098   TglProgramUniform1dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10099   TglProgramUniform2dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10100   TglProgramUniform3dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10101   TglProgramUniform4dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10102   TglProgramUniformMatrix2dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10103   TglProgramUniformMatrix3dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10104   TglProgramUniformMatrix4dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10105   TglProgramUniformMatrix2x3dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10106   TglProgramUniformMatrix2x4dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10107   TglProgramUniformMatrix3x2dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10108   TglProgramUniformMatrix3x4dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10109   TglProgramUniformMatrix4x2dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10110   TglProgramUniformMatrix4x3dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10111
10112   // GL_EXT_separate_shader_objects
10113   TglUseShaderProgramEXT = procedure(_type: GLenum; _program: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10114   TglActiveProgramEXT = procedure(_program: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10115   TglCreateShaderProgramEXT = function(_type: GLenum; const _string: PGLchar): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10116
10117   // GL_EXT_shader_image_load_store
10118   TglBindImageTextureEXT = procedure(index: GLuint; texture: GLuint; level: GLint; layered: GLboolean; layer: GLint; access: GLenum; format: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10119   TglMemoryBarrierEXT = procedure(barriers: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10120
10121   // GL_EXT_vertex_attrib_64bit
10122   TglVertexAttribL1dEXT = procedure(index: GLuint; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10123   TglVertexAttribL2dEXT = procedure(index: GLuint; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10124   TglVertexAttribL3dEXT = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10125   TglVertexAttribL4dEXT = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10126   TglVertexAttribL1dvEXT = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10127   TglVertexAttribL2dvEXT = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10128   TglVertexAttribL3dvEXT = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10129   TglVertexAttribL4dvEXT = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10130   TglVertexAttribLPointerEXT = procedure(index: GLuint; size: GLint; type_: GLenum; stride: GLsizei; const pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10131   TglGetVertexAttribLdvEXT = procedure(index: GLuint; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10132   TglVertexArrayVertexAttribLOffsetEXT = procedure(vaobj: GLuint; buffer: GLuint; index: GLuint; size: GLint; type_: GLenum; stride: GLsizei; offset: GLintptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10133
10134   // GL_IBM_multimode_draw_arrays
10135   TglMultiModeDrawArraysIBM = procedure(mode: GLenum; const first: PGLint; const count: PGLsizei; primcount: GLsizei; modestride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10136   TglMultiModeDrawElementsIBM = procedure(const mode: PGLenum; const count: PGLsizei; _type: GLenum; const indices: PGLvoid; primcount: GLsizei; modestride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10137
10138   // GL_IBM_vertex_array_lists
10139   TglColorPointerListIBM = procedure(size: GLint; _type: GLenum; stride: GLint; const _pointer: PGLvoid; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10140   TglSecondaryColorPointerListIBM = procedure(size: GLint; _type: GLenum; stride: GLint; const _pointer: PGLvoid; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10141   TglEdgeFlagPointerListIBM = procedure(stride: GLint; const _pointer: PGLboolean; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10142   TglFogCoordPointerListIBM = procedure(_type: GLenum; stride: GLint; const _pointer: PGLvoid; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10143   TglIndexPointerListIBM = procedure(_type: GLenum; stride: GLint; const _pointer: PGLvoid; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10144   TglNormalPointerListIBM = procedure(_type: GLenum; stride: GLint; const _pointer: PGLvoid; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10145   TglTexCoordPointerListIBM = procedure(size: GLint; _type: GLenum; stride: GLint; const _pointer: PGLvoid; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10146   TglVertexPointerListIBM = procedure(size: GLint; _type: GLenum; stride: GLint; const _pointer: PGLvoid; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10147
10148   // GL_INGR_blend_func_separate
10149   TglBlendFuncSeparateINGR = procedure(sfactorRGB: GLenum; dfactorRGB: GLenum; sfactorAlpha: GLenum; dfactorAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10150
10151   // GL_INTEL_parallel_arrays
10152   TglVertexPointervINTEL = procedure(size: GLint; _type: GLenum; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10153   TglNormalPointervINTEL = procedure(_type: GLenum; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10154   TglColorPointervINTEL = procedure(size: GLint; _type: GLenum; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10155   TglTexCoordPointervINTEL = procedure(size: GLint; _type: GLenum; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10156
10157   // GL_MESA_resize_buffers
10158   TglResizeBuffersMESA = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10159
10160   // GL_MESA_window_pos
10161   TglWindowPos2dMESA = procedure(x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10162   TglWindowPos2dvMESA = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10163   TglWindowPos2fMESA = procedure(x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10164   TglWindowPos2fvMESA = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10165   TglWindowPos2iMESA = procedure(x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10166   TglWindowPos2ivMESA = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10167   TglWindowPos2sMESA = procedure(x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10168   TglWindowPos2svMESA = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10169   TglWindowPos3dMESA = procedure(x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10170   TglWindowPos3dvMESA = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10171   TglWindowPos3fMESA = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10172   TglWindowPos3fvMESA = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10173   TglWindowPos3iMESA = procedure(x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10174   TglWindowPos3ivMESA = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10175   TglWindowPos3sMESA = procedure(x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10176   TglWindowPos3svMESA = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10177   TglWindowPos4dMESA = procedure(x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10178   TglWindowPos4dvMESA = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10179   TglWindowPos4fMESA = procedure(x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10180   TglWindowPos4fvMESA = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10181   TglWindowPos4iMESA = procedure(x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10182   TglWindowPos4ivMESA = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10183   TglWindowPos4sMESA = procedure(x: GLshort; y: GLshort; z: GLshort; w: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10184   TglWindowPos4svMESA = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10185
10186   // GL_NV_evaluators
10187   TglMapControlPointsNV = procedure(target: GLenum; index: GLuint; _type: GLenum; ustride: GLsizei; vstride: GLsizei; uorder: GLint; vorder: GLint; _packed: GLboolean; const points: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10188   TglMapParameterivNV = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10189   TglMapParameterfvNV = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10190   TglGetMapControlPointsNV = procedure(target: GLenum; index: GLuint; _type: GLenum; ustride: GLsizei; vstride: GLsizei; _packed: GLboolean; points: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10191   TglGetMapParameterivNV = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10192   TglGetMapParameterfvNV = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10193   TglGetMapAttribParameterivNV = procedure(target: GLenum; index: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10194   TglGetMapAttribParameterfvNV = procedure(target: GLenum; index: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10195   TglEvalMapsNV = procedure(target: GLenum; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10196
10197   // GL_NV_fence
10198   TglDeleteFencesNV = procedure(n: GLsizei; const fences: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10199   TglGenFencesNV = procedure(n: GLsizei; fences: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10200   TglIsFenceNV = function(fence: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10201   TglTestFenceNV = function(fence: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10202   TglGetFenceivNV = procedure(fence: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10203   TglFinishFenceNV = procedure(fence: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10204   TglSetFenceNV = procedure(fence: GLuint; condition: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10205
10206   // GL_NV_fragment_program
10207   TglProgramNamedParameter4fNV = procedure(id: GLuint; len: GLsizei; const name: PGLubyte; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10208   TglProgramNamedParameter4dNV = procedure(id: GLuint; len: GLsizei; const name: PGLubyte; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10209   TglProgramNamedParameter4fvNV = procedure(id: GLuint; len: GLsizei; const name: PGLubyte; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10210   TglProgramNamedParameter4dvNV = procedure(id: GLuint; len: GLsizei; const name: PGLubyte; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10211   TglGetProgramNamedParameterfvNV = procedure(id: GLuint; len: GLsizei; const name: PGLubyte; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10212   TglGetProgramNamedParameterdvNV = procedure(id: GLuint; len: GLsizei; const name: PGLubyte; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10213
10214   // GL_NV_half_float
10215   TglVertex2hNV = procedure(x: GLhalfNV; y: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10216   TglVertex2hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10217   TglVertex3hNV = procedure(x: GLhalfNV; y: GLhalfNV; z: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10218   TglVertex3hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10219   TglVertex4hNV = procedure(x: GLhalfNV; y: GLhalfNV; z: GLhalfNV; w: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10220   TglVertex4hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10221   TglNormal3hNV = procedure(nx: GLhalfNV; ny: GLhalfNV; nz: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10222   TglNormal3hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10223   TglColor3hNV = procedure(red: GLhalfNV; green: GLhalfNV; blue: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10224   TglColor3hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10225   TglColor4hNV = procedure(red: GLhalfNV; green: GLhalfNV; blue: GLhalfNV; alpha: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10226   TglColor4hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10227   TglTexCoord1hNV = procedure(s: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10228   TglTexCoord1hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10229   TglTexCoord2hNV = procedure(s: GLhalfNV; t: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10230   TglTexCoord2hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10231   TglTexCoord3hNV = procedure(s: GLhalfNV; t: GLhalfNV; r: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10232   TglTexCoord3hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10233   TglTexCoord4hNV = procedure(s: GLhalfNV; t: GLhalfNV; r: GLhalfNV; q: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10234   TglTexCoord4hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10235   TglMultiTexCoord1hNV = procedure(target: GLenum; s: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10236   TglMultiTexCoord1hvNV = procedure(target: GLenum; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10237   TglMultiTexCoord2hNV = procedure(target: GLenum; s: GLhalfNV; t: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10238   TglMultiTexCoord2hvNV = procedure(target: GLenum; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10239   TglMultiTexCoord3hNV = procedure(target: GLenum; s: GLhalfNV; t: GLhalfNV; r: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10240   TglMultiTexCoord3hvNV = procedure(target: GLenum; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10241   TglMultiTexCoord4hNV = procedure(target: GLenum; s: GLhalfNV; t: GLhalfNV; r: GLhalfNV; q: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10242   TglMultiTexCoord4hvNV = procedure(target: GLenum; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10243   TglFogCoordhNV = procedure(fog: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10244   TglFogCoordhvNV = procedure(const fog: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10245   TglSecondaryColor3hNV = procedure(red: GLhalfNV; green: GLhalfNV; blue: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10246   TglSecondaryColor3hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10247   TglVertexWeighthNV = procedure(weight: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10248   TglVertexWeighthvNV = procedure(const weight: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10249   TglVertexAttrib1hNV = procedure(index: GLuint; x: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10250   TglVertexAttrib1hvNV = procedure(index: GLuint; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10251   TglVertexAttrib2hNV = procedure(index: GLuint; x: GLhalfNV; y: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10252   TglVertexAttrib2hvNV = procedure(index: GLuint; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10253   TglVertexAttrib3hNV = procedure(index: GLuint; x: GLhalfNV; y: GLhalfNV; z: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10254   TglVertexAttrib3hvNV = procedure(index: GLuint; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10255   TglVertexAttrib4hNV = procedure(index: GLuint; x: GLhalfNV; y: GLhalfNV; z: GLhalfNV; w: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10256   TglVertexAttrib4hvNV = procedure(index: GLuint; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10257   TglVertexAttribs1hvNV = procedure(index: GLuint; n: GLsizei; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10258   TglVertexAttribs2hvNV = procedure(index: GLuint; n: GLsizei; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10259   TglVertexAttribs3hvNV = procedure(index: GLuint; n: GLsizei; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10260   TglVertexAttribs4hvNV = procedure(index: GLuint; n: GLsizei; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10261
10262   // GL_NV_occlusion_query
10263   TglGenOcclusionQueriesNV = procedure(n: GLsizei; ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10264   TglDeleteOcclusionQueriesNV = procedure(n: GLsizei; const ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10265   TglIsOcclusionQueryNV = function(id: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10266   TglBeginOcclusionQueryNV = procedure(id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10267   TglEndOcclusionQueryNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10268   TglGetOcclusionQueryivNV = procedure(id: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10269   TglGetOcclusionQueryuivNV = procedure(id: GLuint; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10270
10271   // GL_NV_pixel_data_range
10272   TglPixelDataRangeNV = procedure(target: GLenum; length: GLsizei; _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10273   TglFlushPixelDataRangeNV = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10274
10275   // GL_NV_point_sprite
10276   TglPointParameteriNV = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10277   TglPointParameterivNV = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10278
10279   // GL_NV_primitive_restart
10280   TglPrimitiveRestartNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10281   TglPrimitiveRestartIndexNV = procedure(index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10282
10283   // GL_NV_register_combiners
10284   TglCombinerParameterfvNV = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10285   TglCombinerParameterfNV = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10286   TglCombinerParameterivNV = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10287   TglCombinerParameteriNV = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10288   TglCombinerInputNV = procedure(stage: GLenum; portion: GLenum; variable: GLenum; input: GLenum; mapping: GLenum; componentUsage: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10289   TglCombinerOutputNV = procedure(stage: GLenum; portion: GLenum; abOutput: GLenum; cdOutput: GLenum; sumOutput: GLenum; scale: GLenum; bias: GLenum; abDotProduct: GLboolean; cdDotProduct: GLboolean; muxSum: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10290   TglFinalCombinerInputNV = procedure(variable: GLenum; input: GLenum; mapping: GLenum; componentUsage: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10291   TglGetCombinerInputParameterfvNV = procedure(stage: GLenum; portion: GLenum; variable: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10292   TglGetCombinerInputParameterivNV = procedure(stage: GLenum; portion: GLenum; variable: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10293   TglGetCombinerOutputParameterfvNV = procedure(stage: GLenum; portion: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10294   TglGetCombinerOutputParameterivNV = procedure(stage: GLenum; portion: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10295   TglGetFinalCombinerInputParameterfvNV = procedure(variable: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10296   TglGetFinalCombinerInputParameterivNV = procedure(variable: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10297
10298   // GL_NV_register_combiners2
10299   TglCombinerStageParameterfvNV = procedure(stage: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10300   TglGetCombinerStageParameterfvNV = procedure(stage: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10301
10302   // GL_NV_vertex_array_range
10303   TglFlushVertexArrayRangeNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10304   TglVertexArrayRangeNV = procedure(length: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10305
10306   // GL_NV_vertex_program
10307   TglAreProgramsResidentNV = function(n: GLsizei; const programs: PGLuint; residences: PGLboolean): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10308   TglBindProgramNV = procedure(target: GLenum; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10309   TglDeleteProgramsNV = procedure(n: GLsizei; const programs: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10310   TglExecuteProgramNV = procedure(target: GLenum; id: GLuint; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10311   TglGenProgramsNV = procedure(n: GLsizei; programs: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10312   TglGetProgramParameterdvNV = procedure(target: GLenum; index: GLuint; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10313   TglGetProgramParameterfvNV = procedure(target: GLenum; index: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10314   TglGetProgramivNV = procedure(id: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10315   TglGetProgramStringNV = procedure(id: GLuint; pname: GLenum; _program: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10316   TglGetTrackMatrixivNV = procedure(target: GLenum; address: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10317   TglGetVertexAttribdvNV = procedure(index: GLuint; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10318   TglGetVertexAttribfvNV = procedure(index: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10319   TglGetVertexAttribivNV = procedure(index: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10320   TglGetVertexAttribPointervNV = procedure(index: GLuint; pname: GLenum; _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10321   TglIsProgramNV = function(id: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10322   TglLoadProgramNV = procedure(target: GLenum; id: GLuint; len: GLsizei; const _program: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10323   TglProgramParameter4dNV = procedure(target: GLenum; index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10324   TglProgramParameter4dvNV = procedure(target: GLenum; index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10325   TglProgramParameter4fNV = procedure(target: GLenum; index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10326   TglProgramParameter4fvNV = procedure(target: GLenum; index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10327   TglProgramParameters4dvNV = procedure(target: GLenum; index: GLuint; count: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10328   TglProgramParameters4fvNV = procedure(target: GLenum; index: GLuint; count: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10329   TglRequestResidentProgramsNV = procedure(n: GLsizei; const programs: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10330   TglTrackMatrixNV = procedure(target: GLenum; address: GLuint; matrix: GLenum; transform: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10331   TglVertexAttribPointerNV = procedure(index: GLuint; fsize: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10332   TglVertexAttrib1dNV = procedure(index: GLuint; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10333   TglVertexAttrib1dvNV = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10334   TglVertexAttrib1fNV = procedure(index: GLuint; x: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10335   TglVertexAttrib1fvNV = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10336   TglVertexAttrib1sNV = procedure(index: GLuint; x: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10337   TglVertexAttrib1svNV = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10338   TglVertexAttrib2dNV = procedure(index: GLuint; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10339   TglVertexAttrib2dvNV = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10340   TglVertexAttrib2fNV = procedure(index: GLuint; x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10341   TglVertexAttrib2fvNV = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10342   TglVertexAttrib2sNV = procedure(index: GLuint; x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10343   TglVertexAttrib2svNV = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10344   TglVertexAttrib3dNV = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10345   TglVertexAttrib3dvNV = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10346   TglVertexAttrib3fNV = procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10347   TglVertexAttrib3fvNV = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10348   TglVertexAttrib3sNV = procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10349   TglVertexAttrib3svNV = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10350   TglVertexAttrib4dNV = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10351   TglVertexAttrib4dvNV = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10352   TglVertexAttrib4fNV = procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10353   TglVertexAttrib4fvNV = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10354   TglVertexAttrib4sNV = procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort; w: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10355   TglVertexAttrib4svNV = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10356   TglVertexAttrib4ubNV = procedure(index: GLuint; x: GLubyte; y: GLubyte; z: GLubyte; w: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10357   TglVertexAttrib4ubvNV = procedure(index: GLuint; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10358   TglVertexAttribs1dvNV = procedure(index: GLuint; count: GLsizei; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10359   TglVertexAttribs1fvNV = procedure(index: GLuint; count: GLsizei; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10360   TglVertexAttribs1svNV = procedure(index: GLuint; count: GLsizei; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10361   TglVertexAttribs2dvNV = procedure(index: GLuint; count: GLsizei; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10362   TglVertexAttribs2fvNV = procedure(index: GLuint; count: GLsizei; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10363   TglVertexAttribs2svNV = procedure(index: GLuint; count: GLsizei; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10364   TglVertexAttribs3dvNV = procedure(index: GLuint; count: GLsizei; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10365   TglVertexAttribs3fvNV = procedure(index: GLuint; count: GLsizei; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10366   TglVertexAttribs3svNV = procedure(index: GLuint; count: GLsizei; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10367   TglVertexAttribs4dvNV = procedure(index: GLuint; count: GLsizei; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10368   TglVertexAttribs4fvNV = procedure(index: GLuint; count: GLsizei; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10369   TglVertexAttribs4svNV = procedure(index: GLuint; count: GLsizei; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10370   TglVertexAttribs4ubvNV = procedure(index: GLuint; count: GLsizei; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10371
10372   // GL_NV_depth_buffer_float
10373   TglDepthRangedNV = procedure(n: GLdouble; f: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10374   TglClearDepthdNV = procedure(d: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10375   TglDepthBoundsdNV = procedure(zmin: GLdouble; zmax: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10376
10377   // GL_NV_framebuffer_multisample_coverage
10378   TglRenderbufferStorageMultsampleCoverageNV = procedure(target: GLenum; coverageSamples: GLsizei; colorSamples: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10379
10380   // GL_NV_geometry_program4
10381   TglProgramVertexLimitNV = procedure(target: GLenum; limit: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10382
10383   // GL_NV_gpu_program4
10384   TglProgramLocalParameterI4iNV = procedure(target: GLenum; index: GLuint; x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10385   TglProgramLocalParameterI4ivNV = procedure(target: GLenum; index: GLuint; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10386   TglProgramLocalParametersI4ivNV = procedure(target: GLenum; index: GLuint; count: GLsizei; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10387   TglProgramLocalParameterI4uiNV = procedure(target: GLenum; index: GLuint; x: GLuint; y: GLuint; z: GLuint; w: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10388   TglProgramLocalParameterI4uivNV = procedure(target: GLenum; index: GLuint; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10389   TglProgramLocalParametersI4uivNV = procedure(target: GLenum; index: GLuint; count: GLsizei; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10390   TglProgramEnvParameterI4iNV = procedure(target: GLenum; index: GLuint; x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10391   TglProgramEnvParameterI4ivNV = procedure(target: GLenum; index: GLuint; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10392   TglProgramEnvParametersI4ivNV = procedure(target: GLenum; index: GLuint; count: GLsizei; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10393   TglProgramEnvParameterI4uiNV = procedure(target: GLenum; index: GLuint; x: GLuint; y: GLuint; z: GLuint; w: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10394   TglProgramEnvParameterI4uivNV = procedure(target: GLenum; index: GLuint; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10395   TglProgramEnvParametersI4uivNV = procedure(target: GLenum; index: GLuint; count: GLsizei; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10396   TglGetProgramLocalParameterIivNV = procedure(target: GLenum; index: GLuint; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10397   TglGetProgramLocalParameterIuivNV = procedure(target: GLenum; index: GLuint; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10398   TglGetProgramEnvParameterIivNV = procedure(target: GLenum; index: GLuint; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10399   TglGetProgramEnvParameterIuivNV = procedure(target: GLenum; index: GLuint; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10400
10401   // GL_NV_parameter_buffer_object
10402   TglProgramBufferParametersfvNV = procedure(target: GLenum; buffer: GLuint; index: GLuint; count: GLsizei; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10403   TglProgramBufferParametersIivNV = procedure(target: GLenum; buffer: GLuint; index: GLuint; count: GLsizei; const params: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10404   TglProgramBufferParametersIuivNV = procedure(target: GLenum; buffer: GLuint; index: GLuint; count: GLuint; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10405
10406   // GL_NV_transform_feedback
10407   TglBeginTransformFeedbackNV = procedure(primitiveMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10408   TglEndTransformFeedbackNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10409   TglTransformFeedbackAttribsNV = procedure(count: GLsizei; const attribs: GLint; bufferMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10410   TglBindBufferRangeNV = procedure(target: GLenum; index: GLuint; buffer: GLuint; offset: GLintptr; size: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10411   TglBindBufferOffsetNV = procedure(target: GLenum; index: GLuint; buffer: GLuint; offset: GLintptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10412   TglBindBufferBaseNV = procedure(target: GLenum; index: GLuint; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10413   TglTransformFeedbackVaryingsNV = procedure(program_: GLuint; count: GLsizei; const locations: PGLint; bufferMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10414   TglActiveVaryingNV = procedure(program_: GLuint; const name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10415   TglGetVaryingLocationNV = function(program_: GLuint; const name: PGLchar): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10416   TglGetActiveVaryingNV = procedure(program_: GLuint; index: GLuint; bufSize: GLsizei; length: PGLsizei; size: PGLsizei; _type: PGLenum; name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10417   TglGetTransformFeedbackVaryingNV = procedure(program_: GLuint; index: GLuint; location: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10418   TglTransformFeedbackStreamAttribsNV = procedure(count: GLsizei; const attribs: PGLint; nbuffers: GLsizei; const bufstreams: PGLint; bufferMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10419
10420   // GL_NV_conditional_render
10421   TglBeginConditionalRenderNV = procedure(id: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10422   TglEndConditionalRenderNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10423
10424   // GL_NV_present_video
10425   TglPresentFrameKeyedNV = procedure(video_slot: GLuint; minPresentTime: GLuint64EXT; beginPresentTimeId: GLuint; presentDuratioId: GLuint; type_: GLenum; target0: GLenum; fill0: GLuint; key0: GLuint; target1: GLenum; fill1: GLuint; key1: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10426   TglPresentFrameDualFillNV = procedure(video_slot: GLuint; minPresentTime: GLuint64EXT; beginPresentTimeId: GLuint; presentDurationId: GLuint; type_: GLenum; target0: GLenum; fill0: GLuint; target1: GLenum; fill1: GLuint; target2: GLenum; fill2: GLuint; target3: GLenum; fill3: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10427   TglGetVideoivNV = procedure(video_slot: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10428   TglGetVideouivNV = procedure(video_slot: GLuint; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10429   TglGetVideoi64vNV = procedure(video_slot: GLuint; pname: GLenum; params: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10430   TglGetVideoui64vNV = procedure(video_slot: GLuint; pname: GLenum; params: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10431 //  TglVideoParameterivNV = procedure(video_slot: GLuint; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10432
10433   // GL_NV_explicit_multisample
10434   TglGetMultisamplefvNV = procedure (pname: GLenum; index: GLuint; val: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10435   TglSampleMaskIndexedNV = procedure (index: GLuint; mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10436   TglTexRenderbufferNV = procedure (target: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10437
10438   // GL_NV_transform_feedback2
10439   TglBindTransformFeedbackNV = procedure(target: GLenum; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10440   TglDeleteTransformFeedbacksNV = procedure(n: GLsizei; ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10441   TglGenTransformFeedbacksNV = procedure(n: GLsizei; ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10442   TglIsTransformFeedbackNV = function (id: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10443   TglPauseTransformFeedbackNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10444   TglResumeTransformFeedbackNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10445   TglDrawTransformFeedbackNV = procedure(mode: GLenum; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10446
10447   // GL_NV_video_capture
10448   TglBeginVideoCaptureNV = procedure(video_capture_slot: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10449   TglBindVideoCaptureStreamBufferNV = procedure(video_capture_slot: GLuint; stream: GLuint; frame_region: GLenum; offset: GLintptrARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10450   TglBindVideoCaptureStreamTextureNV = procedure(video_capture_slot: GLuint; stream: GLuint; frame_region: GLenum; target: GLenum; texture: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10451   TglEndVideoCaptureNV = procedure(video_capture_slot: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10452   TglGetVideoCaptureivNV = procedure(video_capture_slot: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10453   TglGetVideoCaptureStreamivNV = procedure(video_capture_slot: GLuint; stream: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10454   TglGetVideoCaptureStreamfvNV = procedure(video_capture_slot: GLuint; stream: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10455   TglGetVideoCaptureStreamdvNV = procedure(video_capture_slot: GLuint; stream: GLuint; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10456   TglVideoCaptureNV = function(video_capture_slot: GLuint; sequence_num: PGLuint; capture_time: PGLuint64EXT): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10457   TglVideoCaptureStreamParameterivNV = procedure(video_capture_slot: GLuint; stream: GLuint; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10458   TglVideoCaptureStreamParameterfvNV = procedure(video_capture_slot: GLuint; stream: GLuint; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10459   TglVideoCaptureStreamParameterdvNV = procedure(video_capture_slot: GLuint; stream: GLuint; pname: GLenum; const params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10460
10461   // GL_NV_copy_image
10462   TglCopyImageSubDataNV = procedure(srcName: GLuint; srcTarget: GLenum; srcLevel: GLint; srcX: GLint; srcY: GLint; srcZ: GLint; dstName: GLuint; dstTarget: GLenum; dstLevel: GLint; dstX: GLint; dstY: GLint; dstZ: GLint; width: GLsizei; height: GLsizei; depth: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10463
10464   // GL_NV_shader_buffer_load
10465   TglMakeBufferResidentNV = procedure(target: GLenum; access: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10466   TglMakeBufferNonResidentNV = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10467   TglIsBufferResidentNV = function(target: GLenum): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10468   TglMakeNamedBufferResidentNV = procedure(buffer: GLuint; access: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10469   TglMakeNamedBufferNonResidentNV = procedure(buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10470   TglIsNamedBufferResidentNV = function(buffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10471   TglGetBufferParameterui64vNV = procedure(target: GLenum; pname: GLenum; params: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10472   TglGetNamedBufferParameterui64vNV = procedure(buffer: GLuint; pname: GLenum; params: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10473   TglGetIntegerui64vNV = procedure(value: GLenum; result: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10474   TglUniformui64NV = procedure(location: GLint; value: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10475   TglUniformui64vNV = procedure(location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10476   TglGetUniformui64vNV = procedure(_program: GLuint; location: GLint; params: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10477   TglProgramUniformui64NV = procedure(_program: GLuint; location: GLint; value: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10478   TglProgramUniformui64vNV = procedure(_program: GLuint; location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10479
10480   // GL_NV_vertex_buffer_unified_memory
10481   TglBufferAddressRangeNV = procedure(pname: GLenum; index: GLuint; adress: GLuint64EXT; length: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10482   TglVertexFormatNV = procedure(size: GLint; _type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10483   TglNormalFormatNV = procedure(_type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10484   TglColorFormatNV = procedure(size: GLint; _type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10485   TglIndexFormatNV = procedure(_type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10486   TglTexCoordFormatNV = procedure(size: GLint; _type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10487   TglEdgeFlagFormatNV = procedure(stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10488   TglSecondaryColorFormatNV = procedure(size: GLint; _type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10489   TglFogCoordFormatNV = procedure(_type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10490   TglVertexAttribFormatNV = procedure(index: GLuint; size: GLint; _type: GLenum; normalized: GLboolean; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10491   TglVertexAttribIFormatNV = procedure(index: GLuint; size: GLint; _type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10492   TglGetIntegerui64i_vNV = procedure(value: GLenum; index: GLuint; Result: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10493
10494   // GL_NV_gpu_program5
10495   TglProgramSubroutineParametersuivNV = procedure(target: GLenum; count: GLsizei; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10496   TglGetProgramSubroutineParameteruivNV = procedure(target: GLenum; index: GLuint; param: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10497
10498   // GL_NV_gpu_shader5
10499   TglUniform1i64NV = procedure(location: GLint; x: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10500   TglUniform2i64NV = procedure(location: GLint; x: GLint64EXT; y: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10501   TglUniform3i64NV = procedure(location: GLint; x: GLint64EXT; y: GLint64EXT; z: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10502   TglUniform4i64NV = procedure(location: GLint; x: GLint64EXT; y: GLint64EXT; z: GLint64EXT; w: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10503   TglUniform1i64vNV = procedure(location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10504   TglUniform2i64vNV = procedure(location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10505   TglUniform3i64vNV = procedure(location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10506   TglUniform4i64vNV = procedure(location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10507   TglUniform1ui64NV = procedure(location: GLint; x: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10508   TglUniform2ui64NV = procedure(location: GLint; x: GLuint64EXT; y: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10509   TglUniform3ui64NV = procedure(location: GLint; x: GLuint64EXT; y: GLuint64EXT; z: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10510   TglUniform4ui64NV = procedure(location: GLint; x: GLuint64EXT; y: GLuint64EXT; z: GLuint64EXT; w: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10511   TglUniform1ui64vNV = procedure(location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10512   TglUniform2ui64vNV = procedure(location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10513   TglUniform3ui64vNV = procedure(location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10514   TglUniform4ui64vNV = procedure(location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10515   TglGetUniformi64vNV = procedure(program_: GLuint; location: GLint; params: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10516   TglProgramUniform1i64NV = procedure(program_: GLuint; location: GLint; x: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10517   TglProgramUniform2i64NV = procedure(program_: GLuint; location: GLint; x: GLint64EXT; y: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10518   TglProgramUniform3i64NV = procedure(program_: GLuint; location: GLint; x: GLint64EXT; y: GLint64EXT; z: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10519   TglProgramUniform4i64NV = procedure(program_: GLuint; location: GLint; x: GLint64EXT; y: GLint64EXT; z: GLint64EXT; w: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10520   TglProgramUniform1i64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10521   TglProgramUniform2i64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10522   TglProgramUniform3i64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10523   TglProgramUniform4i64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10524   TglProgramUniform1ui64NV = procedure(program_: GLuint; location: GLint; x: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10525   TglProgramUniform2ui64NV = procedure(program_: GLuint; location: GLint; x: GLuint64EXT; y: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10526   TglProgramUniform3ui64NV = procedure(program_: GLuint; location: GLint; x: GLuint64EXT; y: GLuint64EXT; z: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10527   TglProgramUniform4ui64NV = procedure(program_: GLuint; location: GLint; x: GLuint64EXT; y: GLuint64EXT; z: GLuint64EXT; w: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10528   TglProgramUniform1ui64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10529   TglProgramUniform2ui64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10530   TglProgramUniform3ui64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10531   TglProgramUniform4ui64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10532
10533   // GL_NV_vertex_attrib_integer_64bit
10534   TglVertexAttribL1i64NV = procedure(index: GLuint; x: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10535   TglVertexAttribL2i64NV = procedure(index: GLuint; x: GLint64EXT; y: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10536   TglVertexAttribL3i64NV = procedure(index: GLuint; x: GLint64EXT; y: GLint64EXT; z: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10537   TglVertexAttribL4i64NV = procedure(index: GLuint; x: GLint64EXT; y: GLint64EXT; z: GLint64EXT; w: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10538   TglVertexAttribL1i64vNV = procedure(index: GLuint; const v: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10539   TglVertexAttribL2i64vNV = procedure(index: GLuint; const v: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10540   TglVertexAttribL3i64vNV = procedure(index: GLuint; const v: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10541   TglVertexAttribL4i64vNV = procedure(index: GLuint; const v: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10542   TglVertexAttribL1ui64NV = procedure(index: GLuint; x: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10543   TglVertexAttribL2ui64NV = procedure(index: GLuint; x: GLuint64EXT; y: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10544   TglVertexAttribL3ui64NV = procedure(index: GLuint; x: GLuint64EXT; y: GLuint64EXT; z: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10545   TglVertexAttribL4ui64NV = procedure(index: GLuint; x: GLuint64EXT; y: GLuint64EXT; z: GLuint64EXT; w: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10546   TglVertexAttribL1ui64vNV = procedure(index: GLuint; const v: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10547   TglVertexAttribL2ui64vNV = procedure(index: GLuint; const v: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10548   TglVertexAttribL3ui64vNV = procedure(index: GLuint; const v: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10549   TglVertexAttribL4ui64vNV = procedure(index: GLuint; const v: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10550   TglGetVertexAttribLi64vNV = procedure(index: GLuint; pname: GLenum; params: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10551   TglGetVertexAttribLui64vNV = procedure(index: GLuint; pname: GLenum; params: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10552   TglVertexAttribLFormatNV = procedure(index: GLuint; size: GLint; type_: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10553
10554   // GL_NV_vdpau_interop
10555   TglVDPAUInitNV = procedure(const vdpDevice: PGLvoid; const getProcAddress: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10556   TglVDPAUFiniNV = procedure; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10557   TglVDPAURegisterVideoSurfaceNV = function(vdpSurface: PGLvoid; target: GLenum; numTextureNames: GLsizei; const textureNames: PGLuint): GLvdpauSurfaceNV; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10558   TglVDPAURegisterOutputSurfaceNV = function(vdpSurface: PGLvoid; target: GLenum; numTextureNames: GLsizei; const textureNames: PGLuint): GLvdpauSurfaceNV; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10559   TglVDPAUIsSurfaceNV = procedure(surface: GLvdpauSurfaceNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10560   TglVDPAUUnregisterSurfaceNV = procedure(surface: GLvdpauSurfaceNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10561   TglVDPAUGetSurfaceivNV = procedure(surface: GLvdpauSurfaceNV; pname: GLenum; bufSize: GLsizei; length: PGLsizei; values: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10562   TglVDPAUSurfaceAccessNV = procedure(surface: GLvdpauSurfaceNV; access: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10563   TglVDPAUMapSurfacesNV = procedure(numSurfaces: GLsizei; const surfaces: PGLvdpauSurfaceNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10564   TglVDPAUUnmapSurfacesNV = procedure(numSurface: GLsizei; const surfaces: PGLvdpauSurfaceNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10565
10566   // GL_NV_texture_barrier
10567   TglTextureBarrierNV = procedure; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10568
10569   // (4.3)
10570         // GL_NV_path_rendering
10571   TglGenPathsNV = function(range : GLsizei) : GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10572   TglDeletePathsNV = procedure(path : GLUInt; range : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10573   TglIsPathNV = function(path : GLUInt) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10574   TglPathCommandsNV = procedure(path : GLUInt; numCommands : GLsizei; const commands : PGLubyte; numCoords : GLsizei; coordType : GLenum; const coords : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10575   TglPathCoordsNV = procedure(path : GLUInt; numCoords : GLSizei; coordType : GLenum; const coords : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10576   TglPathSubCommandsNV = procedure(path : GLUInt; commandStart : GLsizei; commandsToDelete : GLsizei; numCommands : GLsizei; const commands : PGLubyte; numCoords : GLSizei; coordType : GLenum; const coords : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10577   TglPathSubCoordsNV = procedure(path : GLUInt; coordStart : GLsizei; numCoords : GLSizei; coordType : GLenum; const coords : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10578   TglPathStringNV = procedure(path : GLUInt; format : GLenum; length : GLsizei; const pathString : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10579   TglPathGlyphsNV = procedure(firstPathName : GLuint; fontTarget : GLenum; const fontName : PGLvoid; fontStyle : GLbitfield; numGlyphs : GLsizei; type_ : GLenum; const charcodes : PGLvoid; handleMissingGlyphs : GLenum; pathParameterTemplate : GLUInt; emScale : GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10580   TglPathGlyphRangeNV = procedure(firstPathName : GLuint; fontTarget : GLenum; const fontName : PGLvoid; fontStyle : GLbitfield; firstGlyph : GLuint; numGlyphs : GLsizei; handleMissingGlyphs : GLenum; pathParameterTemplate : GLUInt; emScale : GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10581   TglWeightPathsNV = procedure(resultPath : GLUInt; numPaths : GLSizei; const paths : PGLuint; const weights : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10582   TglCopyPathNV = procedure(resultPath : GLUInt; srcPath : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10583   TglInterpolatePathsNV = procedure(resultPath : GLUInt; pathA : GLUInt; pathB : GLUInt; weight : GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10584   TglTransformPathNV = procedure(resultPath : GLUInt; srcPath : GLuint; transformType : GLenum; const transformValues : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10585   TglPathParameterivNV = procedure(path : GLUInt; pname : GLEnum; const value : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10586   TglPathParameteriNV = procedure(path : GLUInt; pname : GLEnum; value : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10587   TglPathParameterfvNV = procedure(path : GLUInt; pname : GLEnum; const value : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10588   TglPathParameterfNV = procedure(path : GLUInt; pname : GLEnum; value : GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10589   TglPathDashArrayNV = procedure(path : GLUInt; dashCount : GLsizei; const dashArray : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10590   TglPathStencilFuncNV = procedure(func : GLenum; ref : GLint; mask : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10591   TglPathStencilDepthOffsetNV = procedure(factor : GLfloat; units : GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10592   TglStencilFillPathNV = procedure(path : GLUInt; fillMode : GLenum; mask : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10593   TglStencilStrokePathNV = procedure(path : GLUInt; reference : GLint; mask : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10594   TglStencilFillPathInstancedNV = procedure(numPaths : GLSizei; pathNameType : GLenum; const paths : PGLvoid; pathBase : GLUInt; fillMode : GLenum; mask : GLuint; transformType : GLenum; const transformValues : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10595   TglStencilStrokePathInstancedNV = procedure(numPaths : GLSizei; pathNameType : GLenum; const paths : PGLvoid; pathBase : GLUInt; reference : GLint; mask : GLuint; transformType : GLenum; const transformValues : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10596   TglPathCoverDepthFuncNV = procedure(func : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10597   TglPathColorGenNV = procedure(color : GLenum; genMode : GLenum; colorFormat : GLenum; const coeffs : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10598   TglPathTexGenNV = procedure(texCoordSet : GLenum; genMode : GLenum; components : GLint; const coeffs : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10599   TglPathFogGenNV = procedure(genMode : GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10600   TglCoverFillPathNV = procedure(path : GLUInt; coverMode : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10601   TglCoverStrokePathNV = procedure(path : GLUInt; coverMode : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10602   TglCoverFillPathInstancedNV = procedure(numPaths : GLSizei; pathNameType : GLenum; const paths : PGLvoid; pathBase : GLUInt; coverMode : GLenum; transformType : GLenum; const transformValues : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10603   TglCoverStrokePathInstancedNV = procedure(numPaths : GLSizei; pathNameType : GLenum; const paths : PGLvoid; pathBase : GLUInt; coverMode : GLenum; transformType : GLenum; const transformValues : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10604   TglGetPathParameterivNV = procedure(path : GLUInt; pname : GLEnum; value : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10605   TglGetPathParameterfvNV = procedure(path : GLUInt; pname : GLEnum; value : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10606   TglGetPathCommandsNV = procedure(path : GLUInt; commands : PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10607   TglGetPathCoordsNV = procedure(path : GLUInt; coords : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10608   TglGetPathDashArrayNV = procedure(path : GLUInt; dashArray : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10609   TglGetPathMetricsNV = procedure(metricQueryMask : GLbitfield; numPaths : GLSizei; pathNameType : GLenum; const paths : PGLvoid; pathBase : GLUInt; stride : GLsizei; metrics : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10610   TglGetPathMetricRangeNV = procedure(metricQueryMask : GLbitfield; firstPathName : GLuint; numPaths : GLSizei; stride : GLsizei; metrics : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10611   TglGetPathSpacingNV = procedure(pathListMode : GLenum; numPaths : GLSizei; pathNameType : GLenum; const paths : PGLvoid; pathBase : GLUInt; advanceScale : GLfloat; kerningScale : GLfloat; transformType : GLenum; returnedSpacing : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10612   TglGetPathColorGenivNV = procedure(color : GLenum; pname : GLEnum; value : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10613   TglGetPathColorGenfvNV = procedure(color : GLenum; pname : GLEnum; value : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10614   TglGetPathTexGenivNV = procedure(texCoordSet : GLenum; pname : GLEnum; value : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10615   TglGetPathTexGenfvNV = procedure(texCoordSet : GLenum; pname : GLEnum; value : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10616   TglIsPointInFillPathNV = function(path : GLUInt; mask : GLuint; x : GLfloat; y : GLfloat) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10617   TglIsPointInStrokePathNV = function (path : GLUInt; x : GLfloat; y : GLfloat) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10618   TglGetPathLengthNV = function(path : GLUInt; startSegment : GLsizei; numSegments : GLsizei) : GLfloat; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10619   TglPointAlongPathNV  = function(path : GLUInt; startSegment : GLsizei; numSegments : GLsizei; distance : GLfloat; x : PGLfloat; y : PGLfloat; tangentX : PGLfloat; tangentY : PGLfloat) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10620
10621   // GL_AMD_pinned_memory
10622
10623   // GL_AMD_stencil_operation_extended
10624   TglStencilOpValueAMD = procedure(face : GLEnum; value : GLUInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10625
10626   // GL_AMD_vertex_shader_viewport_index
10627
10628   // GL_AMD_vertex_shader_layer
10629
10630   // GL_NV_bindless_texture
10631   TglGetTextureHandleNV = function(texture : GLuint ) : GLuint64; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10632   TglGetTextureSamplerHandleNV = function(texture : GLuint; sampler : GLuint) : GLuint64; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10633   TglMakeTextureHandleResidentNV = procedure(handle : GLUint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10634   TglMakeTextureHandleNonResidentNV = procedure(handle : GLUint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10635   TglGetImageHandleNV = function(texture : GLuint; level : GLint; layered : GLboolean; layer : GLint; format : GLenum) : GLUInt64; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10636   TglMakeImageHandleResidentNV = procedure(handle : GLUint64; access : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10637   TglMakeImageHandleNonResidentNV = procedure(handle : GLUint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10638   TglUniformHandleui64NV = procedure(location : GLint; value : GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10639   TglUniformHandleui64vNV = procedure(location : GLint; cowunt : GLsizei; const value : PGLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10640   TglProgramUniformHandleui64NV = procedure(program_ : GLuint; location : GLint; value : GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10641   TglProgramUniformHandleui64vNV = procedure(program_ : GLuint; location : GLint; count : GLsizei; const values : PGLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10642   TglIsTextureHandleResidentNV = function(handle : GLUint64) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10643   TglIsImageHandleResidentNV = function(handle : GLUint64) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10644
10645   // GL_ARB_bindless_texture
10646
10647   TglGetTextureHandleARB = function (texture : GLuint) : GLUInt64; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10648   TglGetTextureSamplerHandleARB = function (texture : GLuint; sampler : GLuint) : GLUInt64; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10649   TglMakeTextureHandleResidentARB = procedure (handle : GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10650   TglMakeTextureHandleNonResidentARB = procedure (handle : GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10651   TglGetImageHandleARB = function (texture : GLuint; level : GLint; layered : GLboolean; layer : GLint; format : GLenum) : GLuint64; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10652   TglMakeImageHandleResidentARB = procedure (handle : GLuint64; access : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10653   TglMakeImageHandleNonResidentARB = procedure (handle : GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10654   TglUniformHandleui64ARB = procedure (location : GLint; value : GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10655   TglUniformHandleui64vARB = procedure (location : GLint; count : GLsizei; const value : PGLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10656   TglProgramUniformHandleui64ARB = procedure (program_ : GLuint; location : GLint; value : GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10657   TglProgramUniformHandleui64vARB = procedure (program_ : GLuint; location : GLint; count : GLsizei; const values : PGLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10658   TglIsTextureHandleResidentARB = function (handle : GLuint64) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10659   TglIsImageHandleResidentARB = function (handle : GLuint64) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10660   TglVertexAttribL1ui64ARB = procedure (index : GLuint; x : GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10661   TglVertexAttribL1ui64vARB = procedure (index : GLuint; const v : PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10662   TglGetVertexAttribLui64vARB = procedure (index : GLuint; pname : GLenum; params : PGLuint64EXT ); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10663
10664         // GL_NV_shader_atomic_float
10665
10666         // GL_AMD_query_buffer_object
10667
10668   //
10669
10670   // GL_PGI_misc_hints
10671   TglHintPGI = procedure(target: GLenum; mode: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10672
10673   // GL_SGIS_detail_texture
10674   TglDetailTexFuncSGIS = procedure(target: GLenum; n: GLsizei; const points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10675   TglGetDetailTexFuncSGIS = procedure(target: GLenum; points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10676
10677   // GL_SGIS_fog_function
10678   TglFogFuncSGIS = procedure(n: GLsizei; const points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10679   TglGetFogFuncSGIS = procedure(points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10680
10681   // GL_SGIS_multisample
10682   TglSampleMaskSGIS = procedure(value: GLclampf; invert: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10683   TglSamplePatternSGIS = procedure(pattern: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10684
10685   // GL_SGIS_pixel_texture
10686   TglPixelTexGenParameteriSGIS = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10687   TglPixelTexGenParameterivSGIS = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10688   TglPixelTexGenParameterfSGIS = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10689   TglPixelTexGenParameterfvSGIS = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10690   TglGetPixelTexGenParameterivSGIS = procedure(pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10691   TglGetPixelTexGenParameterfvSGIS = procedure(pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10692
10693   // GL_SGIS_point_parameters
10694   TglPointParameterfSGIS = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10695   TglPointParameterfvSGIS = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10696
10697   // GL_SGIS_sharpen_texture
10698   TglSharpenTexFuncSGIS = procedure(target: GLenum; n: GLsizei; const points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10699   TglGetSharpenTexFuncSGIS = procedure(target: GLenum; points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10700
10701   // GL_SGIS_texture4D
10702   TglTexImage4DSGIS = procedure(target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; height: GLsizei; depth: GLsizei; size4d: GLsizei; border: GLint; format: GLenum; _type: GLenum; const pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10703   TglTexSubImage4DSGIS = procedure(target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; zoffset: GLint; woffset: GLint; width: GLsizei; height: GLsizei; depth: GLsizei; size4d: GLsizei; format: GLenum; _type: GLenum; const pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10704
10705   // GL_SGIS_texture_color_mask
10706   TglTextureColorMaskSGIS = procedure(red: GLboolean; green: GLboolean; blue: GLboolean; alpha: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10707
10708   // GL_SGIS_texture_filter4
10709   TglGetTexFilterFuncSGIS = procedure(target: GLenum; filter: GLenum; weights: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10710   TglTexFilterFuncSGIS = procedure(target: GLenum; filter: GLenum; n: GLsizei; const weights: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10711
10712   // GL_SGIX_async
10713   TglAsyncMarkerSGIX = procedure(marker: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10714   TglFinishAsyncSGIX = function(markerp: PGLuint): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10715   TglPollAsyncSGIX = function(markerp: PGLuint): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10716   TglGenAsyncMarkersSGIX = function(range: GLsizei): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10717   TglDeleteAsyncMarkersSGIX = procedure(marker: GLuint; range: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10718   TglIsAsyncMarkerSGIX = function(marker: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10719
10720   // GL_SGIX_flush_raster
10721   TglFlushRasterSGIX = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10722
10723   // GL_SGIX_fragment_lighting
10724   TglFragmentColorMaterialSGIX = procedure(face: GLenum; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10725   TglFragmentLightfSGIX = procedure(light: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10726   TglFragmentLightfvSGIX = procedure(light: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10727   TglFragmentLightiSGIX = procedure(light: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10728   TglFragmentLightivSGIX = procedure(light: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10729   TglFragmentLightModelfSGIX = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10730   TglFragmentLightModelfvSGIX = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10731   TglFragmentLightModeliSGIX = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10732   TglFragmentLightModelivSGIX = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10733   TglFragmentMaterialfSGIX = procedure(face: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10734   TglFragmentMaterialfvSGIX = procedure(face: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10735   TglFragmentMaterialiSGIX = procedure(face: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10736   TglFragmentMaterialivSGIX = procedure(face: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10737   TglGetFragmentLightfvSGIX = procedure(light: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10738   TglGetFragmentLightivSGIX = procedure(light: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10739   TglGetFragmentMaterialfvSGIX = procedure(face: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10740   TglGetFragmentMaterialivSGIX = procedure(face: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10741   TglLightEnviSGIX = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10742
10743   // GL_SGIX_framezoom
10744   TglFrameZoomSGIX = procedure(factor: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10745
10746   // GL_SGIX_igloo_interface
10747   TglIglooInterfaceSGIX = procedure(pname: GLenum; const params: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10748
10749   // GL_SGIX_instruments
10750   TglGetInstrumentsSGIX = function(): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10751   TglInstrumentsBufferSGIX = procedure(size: GLsizei; buffer: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10752   TglPollInstrumentsSGIX = function(marker_p: PGLint): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10753   TglReadInstrumentsSGIX = procedure(marker: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10754   TglStartInstrumentsSGIX = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10755   TglStopInstrumentsSGIX = procedure(marker: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10756
10757   // GL_SGIX_list_priority
10758   TglGetListParameterfvSGIX = procedure(list: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10759   TglGetListParameterivSGIX = procedure(list: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10760   TglListParameterfSGIX = procedure(list: GLuint; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10761   TglListParameterfvSGIX = procedure(list: GLuint; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10762   TglListParameteriSGIX = procedure(list: GLuint; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10763   TglListParameterivSGIX = procedure(list: GLuint; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10764
10765   // GL_SGIX_pixel_texture
10766   TglPixelTexGenSGIX = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10767
10768   // GL_SGIX_polynomial_ffd
10769   TglDeformationMap3dSGIX = procedure(target: GLenum; u1: GLdouble; u2: GLdouble; ustride: GLint; uorder: GLint; v1: GLdouble; v2: GLdouble; vstride: GLint; vorder: GLint; w1: GLdouble; w2: GLdouble; wstride: GLint; worder: GLint; const points: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10770   TglDeformationMap3fSGIX = procedure(target: GLenum; u1: GLfloat; u2: GLfloat; ustride: GLint; uorder: GLint; v1: GLfloat; v2: GLfloat; vstride: GLint; vorder: GLint; w1: GLfloat; w2: GLfloat; wstride: GLint; worder: GLint; const points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10771   TglDeformSGIX = procedure(mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10772   TglLoadIdentityDeformationMapSGIX = procedure(mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10773
10774   // GL_SGIX_reference_plane
10775   TglReferencePlaneSGIX = procedure(const equation: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10776
10777   // GL_SGIX_sprite
10778   TglSpriteParameterfSGIX = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10779   TglSpriteParameterfvSGIX = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10780   TglSpriteParameteriSGIX = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10781   TglSpriteParameterivSGIX = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10782
10783   // GL_SGIX_tag_sample_buffer
10784   TglTagSampleBufferSGIX = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10785
10786   // GL_SGI_color_table
10787   TglColorTableSGI = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; format: GLenum; _type: GLenum; const table: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10788   TglColorTableParameterfvSGI = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10789   TglColorTableParameterivSGI = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10790   TglCopyColorTableSGI = procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10791   TglGetColorTableSGI = procedure(target: GLenum; format: GLenum; _type: GLenum; table: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10792   TglGetColorTableParameterfvSGI = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10793   TglGetColorTableParameterivSGI = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10794
10795   // GL_SUNX_constant_data
10796   TglFinishTextureSUNX = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10797
10798   // GL_SUN_global_alpha
10799   TglGlobalAlphaFactorbSUN = procedure(factor: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10800   TglGlobalAlphaFactorsSUN = procedure(factor: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10801   TglGlobalAlphaFactoriSUN = procedure(factor: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10802   TglGlobalAlphaFactorfSUN = procedure(factor: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10803   TglGlobalAlphaFactordSUN = procedure(factor: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10804   TglGlobalAlphaFactorubSUN = procedure(factor: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10805   TglGlobalAlphaFactorusSUN = procedure(factor: GLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10806   TglGlobalAlphaFactoruiSUN = procedure(factor: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10807
10808   // GL_SUN_mesh_array
10809   TglDrawMeshArraysSUN = procedure(mode: GLenum; first: GLint; count: GLsizei; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10810
10811   // GL_SUN_triangle_list
10812   TglReplacementCodeuiSUN = procedure(code: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10813   TglReplacementCodeusSUN = procedure(code: GLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10814   TglReplacementCodeubSUN = procedure(code: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10815   TglReplacementCodeuivSUN = procedure(const code: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10816   TglReplacementCodeusvSUN = procedure(const code: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10817   TglReplacementCodeubvSUN = procedure(const code: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10818   TglReplacementCodePointerSUN = procedure(_type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10819
10820   // GL_SUN_vertex
10821   TglColor4ubVertex2fSUN = procedure(r: GLubyte; g: GLubyte; b: GLubyte; a: GLubyte; x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10822   TglColor4ubVertex2fvSUN = procedure(const c: PGLubyte; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10823   TglColor4ubVertex3fSUN = procedure(r: GLubyte; g: GLubyte; b: GLubyte; a: GLubyte; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10824   TglColor4ubVertex3fvSUN = procedure(const c: PGLubyte; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10825   TglColor3fVertex3fSUN = procedure(r: GLfloat; g: GLfloat; b: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10826   TglColor3fVertex3fvSUN = procedure(const c: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10827   TglNormal3fVertex3fSUN = procedure(nx: GLfloat; ny: GLfloat; nz: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10828   TglNormal3fVertex3fvSUN = procedure(const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10829   TglColor4fNormal3fVertex3fSUN = procedure(r: GLfloat; g: GLfloat; b: GLfloat; a: GLfloat; nx: GLfloat; ny: GLfloat; nz: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10830   TglColor4fNormal3fVertex3fvSUN = procedure(const c: PGLfloat; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10831   TglTexCoord2fVertex3fSUN = procedure(s: GLfloat; t: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10832   TglTexCoord2fVertex3fvSUN = procedure(const tc: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10833   TglTexCoord4fVertex4fSUN = procedure(s: GLfloat; t: GLfloat; p: GLfloat; q: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10834   TglTexCoord4fVertex4fvSUN = procedure(const tc: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10835   TglTexCoord2fColor4ubVertex3fSUN = procedure(s: GLfloat; t: GLfloat; r: GLubyte; g: GLubyte; b: GLubyte; a: GLubyte; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10836   TglTexCoord2fColor4ubVertex3fvSUN = procedure(const tc: PGLfloat; const c: PGLubyte; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10837   TglTexCoord2fColor3fVertex3fSUN = procedure(s: GLfloat; t: GLfloat; r: GLfloat; g: GLfloat; b: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10838   TglTexCoord2fColor3fVertex3fvSUN = procedure(const tc: PGLfloat; const c: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10839   TglTexCoord2fNormal3fVertex3fSUN = procedure(s: GLfloat; t: GLfloat; nx: GLfloat; ny: GLfloat; nz: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10840   TglTexCoord2fNormal3fVertex3fvSUN = procedure(const tc: PGLfloat; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10841   TglTexCoord2fColor4fNormal3fVertex3fSUN = procedure(s: GLfloat; t: GLfloat; r: GLfloat; g: GLfloat; b: GLfloat; a: GLfloat; nx: GLfloat; ny: GLfloat; nz: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10842   TglTexCoord2fColor4fNormal3fVertex3fvSUN = procedure(const tc: PGLfloat; const c: PGLfloat; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10843   TglTexCoord4fColor4fNormal3fVertex4fSUN = procedure(s: GLfloat; t: GLfloat; p: GLfloat; q: GLfloat; r: GLfloat; g: GLfloat; b: GLfloat; a: GLfloat; nx: GLfloat; ny: GLfloat; nz: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10844   TglTexCoord4fColor4fNormal3fVertex4fvSUN = procedure(const tc: PGLfloat; const c: PGLfloat; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10845   TglReplacementCodeuiVertex3fSUN = procedure(rc: GLuint; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10846   TglReplacementCodeuiVertex3fvSUN = procedure(const rc: PGLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10847   TglReplacementCodeuiColor4ubVertex3fSUN = procedure(rc: GLuint; r: GLubyte; g: GLubyte; b: GLubyte; a: GLubyte; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10848   TglReplacementCodeuiColor4ubVertex3fvSUN = procedure(const rc: PGLuint; const c: PGLubyte; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10849   TglReplacementCodeuiColor3fVertex3fSUN = procedure(rc: GLuint; r: GLfloat; g: GLfloat; b: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10850   TglReplacementCodeuiColor3fVertex3fvSUN = procedure(const rc: PGLuint; const c: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10851   TglReplacementCodeuiNormal3fVertex3fSUN = procedure(rc: GLuint; nx: GLfloat; ny: GLfloat; nz: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10852   TglReplacementCodeuiNormal3fVertex3fvSUN = procedure(const rc: PGLuint; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10853   TglReplacementCodeuiColor4fNormal3fVertex3fSUN = procedure(rc: GLuint; r: GLfloat; g: GLfloat; b: GLfloat; a: GLfloat; nx: GLfloat; ny: GLfloat; nz: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10854   TglReplacementCodeuiColor4fNormal3fVertex3fvSUN = procedure(const rc: PGLuint; const c: PGLfloat; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10855   TglReplacementCodeuiTexCoord2fVertex3fSUN = procedure(rc: GLuint; s: GLfloat; t: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10856   TglReplacementCodeuiTexCoord2fVertex3fvSUN = procedure(const rc: PGLuint; const tc: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10857   TglReplacementCodeuiTexCoord2fNormal3fVertex3fSUN = procedure(rc: GLuint; s: GLfloat; t: GLfloat; nx: GLfloat; ny: GLfloat; nz: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10858   TglReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN = procedure(const rc: PGLuint; const tc: PGLfloat; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10859   TglReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN = procedure(rc: GLuint; s: GLfloat; t: GLfloat; r: GLfloat; g: GLfloat; b: GLfloat; a: GLfloat; nx: GLfloat; ny: GLfloat; nz: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10860   TglReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN = procedure(const rc: PGLuint; const tc: PGLfloat; const c: PGLfloat; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10861
10862   // window support functions
10863 {$IFDEF DGL_WIN}
10864   TwglGetProcAddress = function(ProcName: PAnsiChar): Pointer; stdcall;
10865   TwglCopyContext = function(p1: HGLRC; p2: HGLRC; p3: Cardinal): BOOL; stdcall;
10866   TwglCreateContext = function(DC: HDC): HGLRC; stdcall;
10867   TwglCreateLayerContext = function(p1: HDC; p2: Integer): HGLRC; stdcall;
10868   TwglDeleteContext = function(p1: HGLRC): BOOL; stdcall;
10869   TwglDescribeLayerPlane = function(p1: HDC; p2, p3: Integer; p4: Cardinal; p5: PLayerPlaneDescriptor): BOOL; stdcall;
10870   TwglGetCurrentContext = function: HGLRC; stdcall;
10871   TwglGetCurrentDC = function: HDC; stdcall;
10872   TwglGetLayerPaletteEntries = function(p1: HDC; p2, p3, p4: Integer; var pcr): Integer; stdcall;
10873   TwglMakeCurrent = function(DC: HDC; p2: HGLRC): BOOL; stdcall;
10874   TwglRealizeLayerPalette = function(p1: HDC; p2: Integer; p3: BOOL): BOOL; stdcall;
10875   TwglSetLayerPaletteEntries = function(p1: HDC; p2, p3, p4: Integer; var pcr): Integer; stdcall;
10876   TwglShareLists = function(p1, p2: HGLRC): BOOL; stdcall;
10877   TwglSwapLayerBuffers = function(p1: HDC; p2: Cardinal): BOOL; stdcall;
10878   TwglSwapMultipleBuffers = function(p1: UINT; const p2: PWGLSWAP): DWORD; stdcall;
10879   TwglUseFontBitmapsA = function(DC: HDC; p2, p3, p4: DWORD): BOOL; stdcall;
10880   TwglUseFontBitmapsW = function(DC: HDC; p2, p3, p4: DWORD): BOOL; stdcall;
10881   TwglUseFontBitmaps = function(DC: HDC; p2, p3, p4: DWORD): BOOL; stdcall;
10882
10883   TwglUseFontOutlinesA = function(p1: HDC; p2, p3, p4: DWORD; p5, p6: Single; p7: Integer; p8: PGlyphMetricsFloat): BOOL; stdcall;
10884   TwglUseFontOutlinesW = function(p1: HDC; p2, p3, p4: DWORD; p5, p6: Single; p7: Integer; p8: PGlyphMetricsFloat): BOOL; stdcall;
10885   TwglUseFontOutlines = function(p1: HDC; p2, p3, p4: DWORD; p5, p6: Single; p7: Integer; p8: PGlyphMetricsFloat): BOOL; stdcall;
10886
10887
10888   // WGL_ARB_buffer_region
10889   TwglCreateBufferRegionARB = function(hDC: HDC; iLayerPlane: GLint; uType: GLuint): THandle; stdcall;
10890   TwglDeleteBufferRegionARB = procedure(hRegion: THandle); stdcall;
10891   TwglSaveBufferRegionARB = function(hRegion: THandle; x: GLint; y: GLint; width: GLint; height: GLint): Boolean; stdcall;
10892   TwglRestoreBufferRegionARB = function(hRegion: THandle; x: GLint; y: GLint; width: GLint; height: GLint; xSrc: GLint; ySrc: GLint): Boolean; stdcall;
10893
10894   // WGL_ARB_extensions_string
10895   TwglGetExtensionsStringARB = function(hdc: HDC): PAnsiChar; stdcall;
10896
10897   // WGL_ARB_make_current_read
10898   TwglMakeContextCurrentARB = function(hDrawDC: HDC; hReadDC: HDC; hglrc: HGLRC): Boolean; stdcall;
10899   TwglGetCurrentReadDCARB = function(): HDC; stdcall;
10900
10901   // WGL_ARB_pbuffer
10902   TwglCreatePbufferARB = function(hDC: HDC; iPixelFormat: GLint; iWidth: GLint; iHeight: GLint; const piAttribList: PGLint): HPBUFFERARB; stdcall;
10903   TwglGetPbufferDCARB = function(hPbuffer: HPBUFFERARB): HDC; stdcall;
10904   TwglReleasePbufferDCARB = function(hPbuffer: HPBUFFERARB; hDC: HDC): GLint; stdcall;
10905   TwglDestroyPbufferARB = function(hPbuffer: HPBUFFERARB): Boolean; stdcall;
10906   TwglQueryPbufferARB = function(hPbuffer: HPBUFFERARB; iAttribute: GLint; piValue: PGLint): Boolean; stdcall;
10907
10908   // WGL_ARB_pixel_format
10909   TwglGetPixelFormatAttribivARB = function(hdc: HDC; iPixelFormat: GLint; iLayerPlane: GLint; nAttributes: GLuint; const piAttributes: PGLint; piValues: PGLint): Boolean; stdcall;
10910   TwglGetPixelFormatAttribfvARB = function(hdc: HDC; iPixelFormat: GLint; iLayerPlane: GLint; nAttributes: GLuint; const piAttributes: PGLint; pfValues: PGLfloat): Boolean; stdcall;
10911   TwglChoosePixelFormatARB = function(hdc: HDC; const piAttribIList: PGLint; const pfAttribFList: PGLfloat; nMaxFormats: GLuint; piFormats: PGLint; nNumFormats: PGLuint): BOOL; stdcall;
10912
10913   // WGL_ARB_color_buffer_float
10914   TwglClampColorARB = procedure(target: GLenum; clamp: GLenum); stdcall;
10915
10916   // WGL_ARB_render_texture
10917   TwglBindTexImageARB = function(hPbuffer: HPBUFFERARB; iBuffer: GLint): Boolean; stdcall;
10918   TwglReleaseTexImageARB = function(hPbuffer: HPBUFFERARB; iBuffer: GLint): Boolean; stdcall;
10919   TwglSetPbufferAttribARB = function(hPbuffer: HPBUFFERARB; const piAttribList: PGLint): Boolean; stdcall;
10920
10921   // WGL_ARB_create_context
10922   TwglCreateContextAttribsARB = function(hDC: HDC; hShareContext: HGLRC; const attribList: PGLint): HGLRC; stdcall;
10923
10924   // WGL_AMD_gpu_association
10925   TwglGetGPUIDsAMD = function(maxCount: Cardinal; ids: PCardinal): Cardinal; stdcall;
10926   TwglGetGPUInfoAMD = function(id: Cardinal; property_: Integer; dataType: GLenum; size: Cardinal; data: Pointer): Integer; stdcall;
10927   TwglGetContextGPUIDAMD = function(hglrc: HGLRC): Cardinal; stdcall;
10928   TwglCreateAssociatedContextAMD = function(id: Cardinal): HGLRC; stdcall;
10929   TwglCreateAssociatedContextAttribsAMD = function(id: Cardinal; hShareContext: HGLRC; const attribList: PInteger): HGLRC; stdcall;
10930   TwglDeleteAssociatedContextAMD = function(hglrc: HGLRC): Boolean; stdcall;
10931   TwglMakeAssociatedContextCurrentAMD = function(hglrc: HGLRC): Boolean; stdcall;
10932   TwglGetCurrentAssociatedContextAMD = function(): HGLRC; stdcall;
10933   TwglBlitContextFramebufferAMD = procedure(dstCtx: HGLRC; srcX0: GLint; srcY0: GLint; srcX1: GLint; srcY1: GLint; dstX0: GLint; dstY0: GLint; dstX1: GLint; dstY1: GLint; mask: GLbitfield; filter: GLenum); stdcall;
10934
10935   // WGL_EXT_display_color_table
10936   TwglCreateDisplayColorTableEXT = function(id: GLushort): GLboolean; stdcall;
10937   TwglLoadDisplayColorTableEXT = function(const table: PGLushort; length: GLuint): GLboolean; stdcall;
10938   TwglBindDisplayColorTableEXT = function(id: GLushort): GLboolean; stdcall;
10939   TwglDestroyDisplayColorTableEXT = procedure(id: GLushort); stdcall;
10940
10941   // WGL_EXT_extensions_string
10942   TwglGetExtensionsStringEXT = function(): PAnsiChar; stdcall;
10943
10944   // WGL_EXT_make_current_read
10945   TwglMakeContextCurrentEXT = function(hDrawDC: HDC; hReadDC: HDC; hglrc: HGLRC): Boolean; stdcall;
10946   TwglGetCurrentReadDCEXT = function(): HDC; stdcall;
10947
10948   // WGL_EXT_pbuffer
10949   TwglCreatePbufferEXT = function(hDC: HDC; iPixelFormat: GLint; iWidth: GLint; iHeight: GLint; const piAttribList: PGLint): HPBUFFEREXT; stdcall;
10950   TwglGetPbufferDCEXT = function(hPbuffer: HPBUFFEREXT): HDC; stdcall;
10951   TwglReleasePbufferDCEXT = function(hPbuffer: HPBUFFEREXT; hDC: HDC): GLint; stdcall;
10952   TwglDestroyPbufferEXT = function(hPbuffer: HPBUFFEREXT): Boolean; stdcall;
10953   TwglQueryPbufferEXT = function(hPbuffer: HPBUFFEREXT; iAttribute: GLint; piValue: PGLint): Boolean; stdcall;
10954
10955   // WGL_EXT_pixel_format
10956   TwglGetPixelFormatAttribivEXT = function(hdc: HDC; iPixelFormat: GLint; iLayerPlane: GLint; nAttributes: GLuint; piAttributes: PGLint; piValues: PGLint): Boolean; stdcall;
10957   TwglGetPixelFormatAttribfvEXT = function(hdc: HDC; iPixelFormat: GLint; iLayerPlane: GLint; nAttributes: GLuint; piAttributes: PGLint; pfValues: PGLfloat): Boolean; stdcall;
10958   TwglChoosePixelFormatEXT = function(hdc: HDC; const piAttribIList: PGLint; const pfAttribFList: PGLfloat; nMaxFormats: GLuint; piFormats: PGLint; nNumFormats: PGLuint): Boolean; stdcall;
10959
10960   // WGL_EXT_swap_control
10961   TwglSwapIntervalEXT = function(interval: GLint): Boolean; stdcall;
10962   TwglGetSwapIntervalEXT = function(): GLint; stdcall;
10963
10964   // WGL_I3D_digital_video_control
10965   TwglGetDigitalVideoParametersI3D = function(hDC: HDC; iAttribute: GLint; piValue: PGLint): Boolean; stdcall;
10966   TwglSetDigitalVideoParametersI3D = function(hDC: HDC; iAttribute: GLint; const piValue: PGLint): Boolean; stdcall;
10967
10968   // WGL_I3D_gamma
10969   TwglGetGammaTableParametersI3D = function(hDC: HDC; iAttribute: GLint; piValue: PGLint): Boolean; stdcall;
10970   TwglSetGammaTableParametersI3D = function(hDC: HDC; iAttribute: GLint; const piValue: PGLint): Boolean; stdcall;
10971   TwglGetGammaTableI3D = function(hDC: HDC; iEntries: GLint; puRed: PGLushort; puGreen: PGLushort; puBlue: PGLushort): Boolean; stdcall;
10972   TwglSetGammaTableI3D = function(hDC: HDC; iEntries: GLint; const puRed: PGLushort; const puGreen: PGLushort; const puBlue: PGLushort): Boolean; stdcall;
10973
10974   // WGL_I3D_genlock
10975   TwglEnableGenlockI3D = function(hDC: HDC): Boolean; stdcall;
10976   TwglDisableGenlockI3D = function(hDC: HDC): Boolean; stdcall;
10977   TwglIsEnabledGenlockI3D = function(hDC: HDC; pFlag: Boolean): Boolean; stdcall;
10978   TwglGenlockSourceI3D = function(hDC: HDC; uSource: GLuint): Boolean; stdcall;
10979   TwglGetGenlockSourceI3D = function(hDC: HDC; uSource: PGLuint): Boolean; stdcall;
10980   TwglGenlockSourceEdgeI3D = function(hDC: HDC; uEdge: GLuint): Boolean; stdcall;
10981   TwglGetGenlockSourceEdgeI3D = function(hDC: HDC; uEdge: PGLuint): Boolean; stdcall;
10982   TwglGenlockSampleRateI3D = function(hDC: HDC; uRate: GLuint): Boolean; stdcall;
10983   TwglGetGenlockSampleRateI3D = function(hDC: HDC; uRate: PGLuint): Boolean; stdcall;
10984   TwglGenlockSourceDelayI3D = function(hDC: HDC; uDelay: GLuint): Boolean; stdcall;
10985   TwglGetGenlockSourceDelayI3D = function(hDC: HDC; uDelay: PGLuint): Boolean; stdcall;
10986   TwglQueryGenlockMaxSourceDelayI3D = function(hDC: HDC; uMaxLineDelay: PGLuint; uMaxPixelDelay: PGLuint): Boolean; stdcall;
10987
10988   // WGL_I3D_image_buffer
10989   TwglCreateImageBufferI3D = function(hDC: HDC; dwSize: GLuint; uFlags: GLuint): GLvoid; stdcall;
10990   TwglDestroyImageBufferI3D = function(hDC: HDC; pAddress: GLvoid): Boolean; stdcall;
10991   TwglAssociateImageBufferEventsI3D = function(hDC: HDC; const pEvent: THandle; const pAddress: PGLvoid; const pSize: PGLuint; count: GLuint): Boolean; stdcall;
10992   TwglReleaseImageBufferEventsI3D = function(hDC: HDC; const pAddress: PGLvoid; count: GLuint): Boolean; stdcall;
10993
10994   // WGL_I3D_swap_frame_lock
10995   TwglEnableFrameLockI3D = function(): Boolean; stdcall;
10996   TwglDisableFrameLockI3D = function(): Boolean; stdcall;
10997   TwglIsEnabledFrameLockI3D = function(pFlag: Boolean): Boolean; stdcall;
10998   TwglQueryFrameLockMasterI3D = function(pFlag: Boolean): Boolean; stdcall;
10999
11000   // WGL_I3D_swap_frame_usage
11001   TwglGetFrameUsageI3D = function(pUsage: PGLfloat): Boolean; stdcall;
11002   TwglBeginFrameTrackingI3D = function(): Boolean; stdcall;
11003   TwglEndFrameTrackingI3D = function(): Boolean; stdcall;
11004   TwglQueryFrameTrackingI3D = function(pFrameCount: PGLuint; pMissedFrames: PGLuint; pLastMissedUsage: PGLfloat): Boolean; stdcall;
11005
11006   // WGL_NV_vertex_array_range
11007   TwglAllocateMemoryNV = procedure(size: GLsizei; readfreq: GLfloat; writefreq: GLfloat; priority: GLfloat); stdcall;
11008   TwglFreeMemoryNV = procedure(_pointer: Pointer); stdcall;
11009
11010   // WGL_NV_present_video
11011   TwglEnumerateVideoDevicesNV = function(hdc: HDC; phDeviceList: PHVIDEOOUTPUTDEVICENV): Integer; stdcall;
11012   TwglBindVideoDeviceNV = function(hd: HDC; uVideoSlot: Cardinal; hVideoDevice: HVIDEOOUTPUTDEVICENV; piAttribList: PInteger): Boolean; stdcall;
11013   TwglQueryCurrentContextNV = function(iAttribute: Integer; piValue: PInteger): Boolean; stdcall;
11014
11015   // WGL_NV_video_output
11016   TwglGetVideoDeviceNV = function(hDC: HDC; numDevices: Integer; hVideoDevice: PHPVIDEODEV): Boolean; stdcall;
11017   TwglReleaseVideoDeviceNV = function(hVideoDevice: HPVIDEODEV): Boolean; stdcall;
11018   TwglBindVideoImageNV = function(hVideoDevice: HPVIDEODEV; hPbuffer: HPBUFFERARB; iVideoBuffer: Integer): Boolean; stdcall;
11019   TwglReleaseVideoImageNV = function(hPbuffer: HPBUFFERARB; iVideoBuffer: Integer): Boolean; stdcall;
11020   TwglSendPbufferToVideoNV = function(hPbuffer: HPBUFFERARB; iBufferType: Integer; pulCounterPbuffer: PCardinal; bBlock: Boolean): Boolean; stdcall;
11021   TwglGetVideoInfoNV = function(hpVideoDevice: HPVIDEODEV; pulCounterOutputPbuffer: PCardinal; pulCounterOutputVideo: PCardinal): Boolean; stdcall;
11022
11023   // WGL_NV_swap_group
11024   TwglJoinSwapGroupNV = function(hDC: HDC; group: GLuint): Boolean; stdcall;
11025   TwglBindSwapBarrierNV = function(group: GLuint; barrier: GLuint): Boolean; stdcall;
11026   TwglQuerySwapGroupNV = function(hDC: HDC; group: PGLuint; barrier: PGLuint): Boolean; stdcall;
11027   TwglQueryMaxSwapGroupsNV = function(hDC: HDC; mxGroups: PGLuint; maxBarriers: PGLuint): Boolean; stdcall;
11028   TwglQueryFrameCountNV = function(hDC: HDC; count: PGLuint): Boolean; stdcall;
11029   TwglResetFrameCountNV = function(hDC: HDC): Boolean; stdcall;
11030
11031   // WGL_NV_gpu_affinity
11032   TwglEnumGpusNV = function(iGpuIndex: Cardinal; phGpu: PHGPUNV): Boolean; stdcall;
11033   TwglEnumGpuDevicesNV = function(hGpu: HGPUNV; iDeviceIndex: Cardinal; lpGpuDevice: PGPU_DEVICE): Boolean; stdcall;
11034   TwglCreateAffinityDCNV = function(const phGpuList: PHGPUNV): HDC; stdcall;
11035   TwglEnumGpusFromAffinityDCNV = function(hAffinityDC: HDC; iGpuIndex: Cardinal; hGpu: PHGPUNV): Boolean; stdcall;
11036   TwglDeleteDCNV = function(hDC: HDC): Boolean; stdcall;
11037
11038   // WGL_NV_video_capture
11039   TwglBindVideoCaptureDeviceNV = function(uVideoSlot: Cardinal; hDevice: HVIDEOINPUTDEVICENV): Boolean; stdcall;
11040   TwglEnumerateVideoCaptureDevicesNV = function(hDc: HDC; phDeviceList: PHVIDEOINPUTDEVICENV): Cardinal; stdcall;
11041   TwglLockVideoCaptureDeviceNV = function(hDc: HDC; hDevice: HVIDEOINPUTDEVICENV): Boolean; stdcall;
11042   TwglQueryVideoCaptureDeviceNV = function(hDc: HDC; hDevice: HVIDEOINPUTDEVICENV; iAttribute: Integer; piValue: PInteger): Boolean; stdcall;
11043   TwglReleaseVideoCaptureDeviceNV = function(hDc: HDC; hDevice: HVIDEOINPUTDEVICENV): Boolean; stdcall;
11044
11045   // WGL_NV_copy_image
11046   TwglCopyImageSubDataNV = function(hSrcRc: HGLRC; srcName: GLuint; srcTarget: GLenum; srcLevel: GLint; srcX: GLint; srcY: GLint; srcZ: GLint; hDstRC: HGLRC; dstName: GLuint; dstTarget: GLenum; dstLevel: GLint; dstX: GLint; dstY: GLint; dstZ: GLint; width: GLsizei; height: GLsizei; depth: GLsizei): Boolean; stdcall;
11047
11048   // WGL_NV_DX_interop
11049   TwglDXSetResourceShareHandleNV = function(dxObject : PGLVoid; hareHandle : Cardinal) : Boolean; stdcall;
11050   TwglDXOpenDeviceNV = function(dxDevice : PGLVoid) : Cardinal; stdcall;
11051   TwglDXCloseDeviceNV = function(hDevice : Cardinal) : Boolean; stdcall;
11052   TwglDXRegisterObjectNV = function(hDevice : Cardinal; dxObject : PGLVoid; name : GLUInt; _type : TGLEnum; access : TGLenum) : Cardinal; stdcall;
11053   TwglDXUnregisterObjectNV = function(hDevice : Cardinal; hObject : Cardinal) : Boolean; stdcall;
11054   TwglDXObjectAccessNV = function(hObject : Cardinal; access : GLenum) : Boolean; stdcall;
11055   TwglDXLockObjectsNV = function(hDevice : Cardinal; count : GLint; hObjects : PCardinal) : Boolean; stdcall;
11056   TwglDXUnlockObjectsNV = function (hDevice : Cardinal; count : GLint; hObjects : PCardinal) : Boolean; stdcall;
11057
11058   // WGL_OML_sync_control
11059   TwglGetSyncValuesOML = function(hdc: HDC; ust: PGLint64; msc: PGLint64; sbc: PGLint64): Boolean; stdcall;
11060   TwglGetMscRateOML = function(hdc: HDC; numerator: PGLint; denominator: PGLint): Boolean; stdcall;
11061   TwglSwapBuffersMscOML = function(hdc: HDC; target_msc: GLint64; divisor: GLint64; remainder: GLint64): GLint64; stdcall;
11062   TwglSwapLayerBuffersMscOML = function(hdc: HDC; fuPlanes: GLint; target_msc: GLint64; divisor: GLint64; remainder: GLint64): GLint64; stdcall;
11063   TwglWaitForMscOML = function(hdc: HDC; target_msc: GLint64; divisor: GLint64; remainder: GLint64; ust: PGLint64; msc: PGLint64; sbc: PGLint64): Boolean; stdcall;
11064   TwglWaitForSbcOML = function(hdc: HDC; target_sbc: GLint64; ust: PGLint64; msc: PGLint64; sbc: PGLint64): Boolean; stdcall;
11065
11066   // WGL_3DL_stereo_control
11067   TwglSetStereoEmitterState3DL = function(hDC: HDC; uState: UINT): Boolean; stdcall;
11068
11069   // WIN_draw_range_elements
11070   TglDrawRangeElementsWIN = procedure(mode: GLenum; start: GLuint; _end: GLuint; count: GLsizei; _type: GLenum; const indices: PGLvoid); stdcall;
11071
11072   // WIN_swap_hint
11073   TglAddSwapHintRectWIN = procedure(x: GLint; y: GLint; width: GLsizei; height: GLsizei); stdcall;
11074 {$ENDIF}
11075
11076 {$IFDEF DGL_LINUX}
11077   TglXChooseVisual = function(dpy: PDisplay; screen: GLint; attribList: PGLint): PXVisualInfo; cdecl;
11078   TglXCopyContext = procedure(dpy: PDisplay; src: GLXContext; dst: GLXContext; mask: GLuint); cdecl;
11079   TglXCreateContext = function(dpy: PDisplay; vis: PXVisualInfo; shareList: GLXContext; direct: GLboolean): GLXContext; cdecl;
11080   TglXCreateGLXPixmap = function(dpy: PDisplay; vis: PXVisualInfo; pixmap: Pixmap): GLXPixmap cdecl;
11081   TglXDestroyContext = procedure(dpy: PDisplay; ctx: GLXContext); cdecl;
11082   TglXDestroyGLXPixmap = procedure(dpy : PDisplay; pix: GLXPixmap); cdecl;
11083   TglXGetConfig = function(dpy : PDisplay; vis: PXVisualInfo; attrib: GLint; value: PGLint): GLint; cdecl;
11084   TglXGetCurrentContext = function: GLXContext cdecl;
11085   TglXGetCurrentDrawable = function: GLXDrawable cdecl;
11086   TglXIsDirect = function(dpy: PDisplay; ctx: GLXContext): glboolean; cdecl;
11087   TglXMakeCurrent = function(dpy: PDisplay; drawable: GLXDrawable; ctx: GLXContext): GLboolean cdecl;
11088   TglXQueryExtension = function(dpy: PDisplay; errorBase: PGLint; eventBase: PGLint): GLboolean; cdecl;
11089   TglXQueryVersion = function(dpy: PDisplay; major: PGLint; minor: PGLint): GLboolean cdecl;
11090   TglXSwapBuffers = procedure(dpy: PDisplay; drawable: GLXDrawable); cdecl;
11091   TglXUseXFont = procedure(font: Font; first: GLint; count: GLint; listBase: GLint); cdecl;
11092   TglXWaitGL = procedure; cdecl;
11093   TglXWaitX = procedure; cdecl;
11094
11095   TglXGetClientString = function(dpy: PDisplay; name: GLint): PGLchar; cdecl;
11096   TglXQueryServerString = function(dpy: PDisplay; screen: GLint; name: GLint): PGLchar; cdecl;
11097   TglXQueryExtensionsString = function(dpy: PDisplay; screen: GLint): PGLchar; cdecl;
11098
11099   // GLX_VERSION_1_3
11100   TglXGetFBConfigs = function(dpy: PDisplay; screen: GLint; nelements: PGLint): GLXFBConfig; cdecl;
11101   TglXChooseFBConfig = function(dpy: PDisplay; screen: GLint; attrib_list: PGLint; nelements: PGLint): GLXFBConfig; cdecl;
11102   TglXGetFBConfigAttrib = function(dpy: PDisplay; config: GLXFBConfig; attribute: GLint; value: PGLint): glint; cdecl;
11103   TglXGetVisualFromFBConfig = function(dpy: PDisplay; config: GLXFBConfig) : PXVisualInfo; cdecl;
11104   TglXCreateWindow = function(dpy: PDisplay; config: GLXFBConfig; win: Window; attrib_list: PGLint): GLXWindow; cdecl;
11105   TglXDestroyWindow = procedure(dpy: PDisplay; win: GLXWindow); cdecl;
11106   TglXCreatePixmap = function(dpy: PDisplay; config: GLXFBConfig; pixmap: Pixmap; attrib_list: PGLint): GLXPixmap; cdecl;
11107
11108   TglXDestroyPixmap = procedure(dpy: PDisplay; pixmap: GLXPixmap); cdecl;
11109   TglXCreatePbuffer = function(dpy: PDisplay; config: GLXFBConfig; attrib_list: PGLint): GLXPbuffer; cdecl;
11110   TglXDestroyPbuffer = procedure(dpy: PDisplay; pbuf: GLXPbuffer); cdecl;
11111   TglXQueryDrawable = procedure(dpy: PDisplay; draw: GLXDrawable; attribute: GLint; value: PGLuint); cdecl;
11112   TglXCreateNewContext = function(dpy: PDisplay; config: GLXFBConfig; render_type: GLint; share_list: GLXContext; direct: GLboolean): GLXContext cdecl;
11113   TglXMakeContextCurrent = function(display: PDisplay; draw: GLXDrawable; read_: GLXDrawable; ctx: GLXContext): GLboolean; cdecl;
11114   TglXGetCurrentReadDrawable = function: GLXDrawable; cdecl;
11115   TglXGetCurreentDisplay = function: PDisplay;
11116
11117   TglXQueryContext = function(dpy: PDisplay; ctx: GLXContext; attribute: GLint; value: PGLint): GLint; cdecl;
11118   TglXSelectEvent = procedure(dpy: PDisplay; draw: GLXDrawable; event_mask: GLuint); cdecl;
11119   TglXGetSelectedEvent = procedure(dpy: PDisplay; draw: GLXDrawable; event_mask: PGLuint); cdecl;
11120
11121   // GLX_VERSION_1_4
11122   TglXGetProcAddress = function(const name: PAnsiChar): pointer; cdecl;
11123
11124   // GLX_ARB_get_proc_address
11125   TglXGetProcAddressARB = function(const name: PAnsiChar): pointer; cdecl;
11126
11127   // GLX_ARB_create_context
11128   TglXCreateContextAttribsARB = function(dpy: PDisplay; config: GLXFBConfig; share_context: GLXContext; direct: GLboolean; const attrib_list: PGLint): GLXContext; cdecl;
11129
11130   // GLX_EXT_import_context
11131   TglXGetCurrentDisplayEXT = function: PDisplay; cdecl;
11132   TglXQueryContextInfoEXT = function(dpy: PDisplay; context: GLXContext; attribute: GLint; value: PGLint): GLint; cdecl;
11133   TglXGetContextIDEXT = function(const context: GLXContext): GLXContextID; cdecl;
11134   TglXImportContextEXT = function(dpy: PDisplay; contextID: GLXContextID): GLXContext; cdecl;
11135   TglXFreeContextEXT = procedure(dpy: PDisplay; context: GLXContext); cdecl;
11136
11137   // GLX_EXT_texture_from_pixmap
11138   TglXBindTexImageEXT = procedure(dpy: PDisplay; drawable: GLXDrawable; buffer: GLint; const attrib_list: PGLint); cdecl;
11139   TglXReleaseTexImageEXT = procedure(dpy: PDisplay; drawable: GLXDrawable; buffer: GLint); cdecl;
11140 {$ENDIF}
11141
11142   // GL utility functions and procedures
11143   TgluErrorString = function(errCode: GLEnum): PAnsiChar; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11144   TgluGetString = function(name: GLEnum): PAnsiChar; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11145   TgluOrtho2D = procedure(left, right, bottom, top: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11146   TgluPerspective = procedure(fovy, aspect, zNear, zFar: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11147   TgluPickMatrix = procedure(x, y, width, height: GLdouble; const viewport: TVector4i); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11148   TgluLookAt = procedure(eyex, eyey, eyez, centerx, centery, centerz, upx, upy, upz: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11149   TgluProject = function(objx, objy, objz: GLdouble; const modelMatrix: TGLMatrixd4; const projMatrix: TGLMatrixd4; const viewport: TVector4i; winx, winy, winz: PGLdouble): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11150   TgluUnProject = function(winx, winy, winz: GLdouble; const modelMatrix: TGLMatrixd4; const projMatrix: TGLMatrixd4; const viewport: TVector4i; objx, objy, objz: PGLdouble): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11151   TgluScaleImage = function(format: GLEnum; widthin, heightin: GLint; typein: GLEnum; datain: Pointer; widthout, heightout: GLint; typeout: GLEnum; const dataout: Pointer): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11152   TgluBuild1DMipmaps = function(target: GLEnum; components, width: GLint; format, atype: GLEnum; const data: Pointer): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11153   TgluBuild2DMipmaps = function(target: GLEnum; components, width, height: GLint; format, atype: GLEnum; const Data: Pointer): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11154   TgluNewQuadric = function: PGLUquadric; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11155   TgluDeleteQuadric = procedure(state: PGLUquadric); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11156   TgluQuadricNormals = procedure(quadObject: PGLUquadric; normals: GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11157   TgluQuadricTexture = procedure(quadObject: PGLUquadric; textureCoords: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11158   TgluQuadricOrientation = procedure(quadObject: PGLUquadric; orientation: GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11159   TgluQuadricDrawStyle = procedure(quadObject: PGLUquadric; drawStyle: GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11160   TgluCylinder = procedure(quadObject: PGLUquadric; baseRadius, topRadius, height: GLdouble; slices, stacks: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11161   TgluDisk = procedure(quadObject: PGLUquadric; innerRadius, outerRadius: GLdouble; slices, loops: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11162   TgluPartialDisk = procedure(quadObject: PGLUquadric; innerRadius, outerRadius: GLdouble; slices, loops: GLint; startAngle, sweepAngle: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11163   TgluSphere = procedure(quadObject: PGLUquadric; radius: GLdouble; slices, stacks: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11164   TgluQuadricCallback = procedure(quadObject: PGLUquadric; which: GLEnum; fn: TGLUQuadricErrorProc); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11165   TgluNewTess = function: PGLUtesselator; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11166   TgluDeleteTess = procedure(tess: PGLUtesselator); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11167   TgluTessBeginPolygon = procedure(tess: PGLUtesselator; polygon_data: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11168   TgluTessBeginContour = procedure(tess: PGLUtesselator); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11169   TgluTessVertex = procedure(tess: PGLUtesselator; const coords: TGLArrayd3; data: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11170   TgluTessEndContour = procedure(tess: PGLUtesselator); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11171   TgluTessEndPolygon = procedure(tess: PGLUtesselator); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11172   TgluTessProperty = procedure(tess: PGLUtesselator; which: GLEnum; value: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11173   TgluTessNormal = procedure(tess: PGLUtesselator; x, y, z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11174   TgluTessCallback = procedure(tess: PGLUtesselator; which: GLEnum; fn: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11175   TgluGetTessProperty = procedure(tess: PGLUtesselator; which: GLEnum; value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11176   TgluNewNurbsRenderer = function: PGLUnurbs; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11177   TgluDeleteNurbsRenderer = procedure(nobj: PGLUnurbs); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11178   TgluBeginSurface = procedure(nobj: PGLUnurbs); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11179   TgluBeginCurve = procedure(nobj: PGLUnurbs); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11180   TgluEndCurve = procedure(nobj: PGLUnurbs); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11181   TgluEndSurface = procedure(nobj: PGLUnurbs); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11182   TgluBeginTrim = procedure(nobj: PGLUnurbs); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11183   TgluEndTrim = procedure(nobj: PGLUnurbs); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11184   TgluPwlCurve = procedure(nobj: PGLUnurbs; count: GLint; points: PGLfloat; stride: GLint; atype: GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11185   TgluNurbsCurve = procedure(nobj: PGLUnurbs; nknots: GLint; knot: PGLfloat; stride: GLint; ctlarray: PGLfloat; order: GLint; atype: GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11186   TgluNurbsSurface = procedure(nobj: PGLUnurbs; sknot_count: GLint; sknot: PGLfloat; tknot_count: GLint; tknot: PGLfloat; s_stride, t_stride: GLint; ctlarray: PGLfloat; sorder, torder: GLint; atype: GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11187   TgluLoadSamplingMatrices = procedure(nobj: PGLUnurbs; const modelMatrix, projMatrix: TGLMatrixf4; const viewport: TVector4i); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11188   TgluNurbsProperty = procedure(nobj: PGLUnurbs; aproperty: GLEnum; value: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11189   TgluGetNurbsProperty = procedure(nobj: PGLUnurbs; aproperty: GLEnum; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11190   TgluNurbsCallback = procedure(nobj: PGLUnurbs; which: GLEnum; fn: TGLUNurbsErrorProc); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11191   TgluBeginPolygon = procedure(tess: PGLUtesselator); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11192   TgluNextContour = procedure(tess: PGLUtesselator; atype: GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11193   TgluEndPolygon = procedure(tess: PGLUtesselator); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11194
11195 var
11196   // GL_VERSION_1_0
11197   glCullFace: TglCullFace;
11198   glFrontFace: TglFrontFace;
11199   glHint: TglHint;
11200   glLineWidth: TglLineWidth;
11201   glPointSize: TglPointSize;
11202   glPolygonMode: TglPolygonMode;
11203   glScissor: TglScissor;
11204   glTexParameterf: TglTexParameterf;
11205   glTexParameterfv: TglTexParameterfv;
11206   glTexParameteri: TglTexParameteri;
11207   glTexParameteriv: TglTexParameteriv;
11208   glTexImage1D: TglTexImage1D;
11209   glTexImage2D: TglTexImage2D;
11210   glDrawBuffer: TglDrawBuffer;
11211   glClear: TglClear;
11212   glClearColor: TglClearColor;
11213   glClearStencil: TglClearStencil;
11214   glClearDepth: TglClearDepth;
11215   glStencilMask: TglStencilMask;
11216   glColorMask: TglColorMask;
11217   glDepthMask: TglDepthMask;
11218   glDisable: TglDisable;
11219   glEnable: TglEnable;
11220   glFinish: TglFinish;
11221   glFlush: TglFlush;
11222   glBlendFunc: TglBlendFunc;
11223   glLogicOp: TglLogicOp;
11224   glStencilFunc: TglStencilFunc;
11225   glStencilOp: TglStencilOp;
11226   glDepthFunc: TglDepthFunc;
11227   glPixelStoref: TglPixelStoref;
11228   glPixelStorei: TglPixelStorei;
11229   glReadBuffer: TglReadBuffer;
11230   glReadPixels: TglReadPixels;
11231   glGetBooleanv: TglGetBooleanv;
11232   glGetDoublev: TglGetDoublev;
11233   glGetError: TglGetError;
11234   glGetFloatv: TglGetFloatv;
11235   glGetIntegerv: TglGetIntegerv;
11236   glGetString: TglGetString;
11237   glGetTexImage: TglGetTexImage;
11238   glGetTexParameteriv: TglGetTexParameteriv;
11239   glGetTexParameterfv: TglGetTexParameterfv;
11240   glGetTexLevelParameterfv: TglGetTexLevelParameterfv;
11241   glGetTexLevelParameteriv: TglGetTexLevelParameteriv;
11242   glIsEnabled: TglIsEnabled;
11243   glDepthRange: TglDepthRange;
11244   glViewport: TglViewport;
11245
11246   // GL_VERSION_1_1
11247   glDrawArrays: TglDrawArrays;
11248   glDrawElements: TglDrawElements;
11249   glGetPointerv: TglGetPointerv;
11250   glPolygonOffset: TglPolygonOffset;
11251   glCopyTexImage1D: TglCopyTexImage1D;
11252   glCopyTexImage2D: TglCopyTexImage2D;
11253   glCopyTexSubImage1D: TglCopyTexSubImage1D;
11254   glCopyTexSubImage2D: TglCopyTexSubImage2D;
11255   glTexSubImage1D: TglTexSubImage1D;
11256   glTexSubImage2D: TglTexSubImage2D;
11257   glBindTexture: TglBindTexture;
11258   glDeleteTextures: TglDeleteTextures;
11259   glGenTextures: TglGenTextures;
11260 {$ifdef DGL_DEPRECATED}
11261   glAccum: TglAccum;
11262   glAlphaFunc: TglAlphaFunc;
11263   glAreTexturesResident: TglAreTexturesResident;
11264   glArrayElement: TglArrayElement;
11265   glBegin: TglBegin;
11266   glBitmap: TglBitmap;
11267   glCallList: TglCallList;
11268   glCallLists: TglCallLists;
11269   glClearAccum: TglClearAccum;
11270   glClearIndex: TglClearIndex;
11271   glClipPlane: TglClipPlane;
11272   glColor3b: TglColor3b;
11273   glColor3bv: TglColor3bv;
11274   glColor3d: TglColor3d;
11275   glColor3dv: TglColor3dv;
11276   glColor3f: TglColor3f;
11277   glColor3fv: TglColor3fv;
11278   glColor3i: TglColor3i;
11279   glColor3iv: TglColor3iv;
11280   glColor3s: TglColor3s;
11281   glColor3sv: TglColor3sv;
11282   glColor3ub: TglColor3ub;
11283   glColor3ubv: TglColor3ubv;
11284   glColor3ui: TglColor3ui;
11285   glColor3uiv: TglColor3uiv;
11286   glColor3us: TglColor3us;
11287   glColor3usv: TglColor3usv;
11288   glColor4b: TglColor4b;
11289   glColor4bv: TglColor4bv;
11290   glColor4d: TglColor4d;
11291   glColor4dv: TglColor4dv;
11292   glColor4f: TglColor4f;
11293   glColor4fv: TglColor4fv;
11294   glColor4i: TglColor4i;
11295   glColor4iv: TglColor4iv;
11296   glColor4s: TglColor4s;
11297   glColor4sv: TglColor4sv;
11298   glColor4ub: TglColor4ub;
11299   glColor4ubv: TglColor4ubv;
11300   glColor4ui: TglColor4ui;
11301   glColor4uiv: TglColor4uiv;
11302   glColor4us: TglColor4us;
11303   glColor4usv: TglColor4usv;
11304   glColorMaterial: TglColorMaterial;
11305   glColorPointer: TglColorPointer;
11306   glCopyPixels: TglCopyPixels;
11307   glDeleteLists: TglDeleteLists;
11308   glDisableClientState: TglDisableClientState;
11309   glDrawPixels: TglDrawPixels;
11310   glEdgeFlag: TglEdgeFlag;
11311   glEdgeFlagPointer: TglEdgeFlagPointer;
11312   glEdgeFlagv: TglEdgeFlagv;
11313   glEnableClientState: TglEnableClientState;
11314   glEnd: TglEnd;
11315   glEndList: TglEndList;
11316   glEvalCoord1d: TglEvalCoord1d;
11317   glEvalCoord1dv: TglEvalCoord1dv;
11318   glEvalCoord1f: TglEvalCoord1f;
11319   glEvalCoord1fv: TglEvalCoord1fv;
11320   glEvalCoord2d: TglEvalCoord2d;
11321   glEvalCoord2dv: TglEvalCoord2dv;
11322   glEvalCoord2f: TglEvalCoord2f;
11323   glEvalCoord2fv: TglEvalCoord2fv;
11324   glEvalMesh1: TglEvalMesh1;
11325   glEvalMesh2: TglEvalMesh2;
11326   glEvalPoint1: TglEvalPoint1;
11327   glEvalPoint2: TglEvalPoint2;
11328   glFeedbackBuffer: TglFeedbackBuffer;
11329   glFogf: TglFogf;
11330   glFogfv: TglFogfv;
11331   glFogi: TglFogi;
11332   glFogiv: TglFogiv;
11333   glFrustum: TglFrustum;
11334   glGenLists: TglGenLists;
11335   glGetClipPlane: TglGetClipPlane;
11336   glGetLightfv: TglGetLightfv;
11337   glGetLightiv: TglGetLightiv;
11338   glGetMapdv: TglGetMapdv;
11339   glGetMapfv: TglGetMapfv;
11340   glGetMapiv: TglGetMapiv;
11341   glGetMaterialfv: TglGetMaterialfv;
11342   glGetMaterialiv: TglGetMaterialiv;
11343   glGetPixelMapfv: TglGetPixelMapfv;
11344   glGetPixelMapuiv: TglGetPixelMapuiv;
11345   glGetPixelMapusv: TglGetPixelMapusv;
11346   glGetPolygonStipple: TglGetPolygonStipple;
11347   glGetTexEnvfv: TglGetTexEnvfv;
11348   glGetTexEnviv: TglGetTexEnviv;
11349   glGetTexGendv: TglGetTexGendv;
11350   glGetTexGenfv: TglGetTexGenfv;
11351   glGetTexGeniv: TglGetTexGeniv;
11352   glIndexMask: TglIndexMask;
11353   glIndexPointer: TglIndexPointer;
11354   glIndexd: TglIndexd;
11355   glIndexdv: TglIndexdv;
11356   glIndexf: TglIndexf;
11357   glIndexfv: TglIndexfv;
11358   glIndexi: TglIndexi;
11359   glIndexiv: TglIndexiv;
11360   glIndexs: TglIndexs;
11361   glIndexsv: TglIndexsv;
11362   glIndexub: TglIndexub;
11363   glIndexubv: TglIndexubv;
11364   glInitNames: TglInitNames;
11365   glInterleavedArrays: TglInterleavedArrays;
11366   glIsList: TglIsList;
11367   glIsTexture: TglIsTexture;
11368   glLightModelf: TglLightModelf;
11369   glLightModelfv: TglLightModelfv;
11370   glLightModeli: TglLightModeli;
11371   glLightModeliv: TglLightModeliv;
11372   glLightf: TglLightf;
11373   glLightfv: TglLightfv;
11374   glLighti: TglLighti;
11375   glLightiv: TglLightiv;
11376   glLineStipple: TglLineStipple;
11377   glListBase: TglListBase;
11378   glLoadIdentity: TglLoadIdentity;
11379   glLoadMatrixd: TglLoadMatrixd;
11380   glLoadMatrixf: TglLoadMatrixf;
11381   glLoadName: TglLoadName;
11382   glMap1d: TglMap1d;
11383   glMap1f: TglMap1f;
11384   glMap2d: TglMap2d;
11385   glMap2f: TglMap2f;
11386   glMapGrid1d: TglMapGrid1d;
11387   glMapGrid1f: TglMapGrid1f;
11388   glMapGrid2d: TglMapGrid2d;
11389   glMapGrid2f: TglMapGrid2f;
11390   glMaterialf: TglMaterialf;
11391   glMaterialfv: TglMaterialfv;
11392   glMateriali: TglMateriali;
11393   glMaterialiv: TglMaterialiv;
11394   glMatrixMode: TglMatrixMode;
11395   glMultMatrixd: TglMultMatrixd;
11396   glMultMatrixf: TglMultMatrixf;
11397   glNewList: TglNewList;
11398   glNormal3b: TglNormal3b;
11399   glNormal3bv: TglNormal3bv;
11400   glNormal3d: TglNormal3d;
11401   glNormal3dv: TglNormal3dv;
11402   glNormal3f: TglNormal3f;
11403   glNormal3fv: TglNormal3fv;
11404   glNormal3i: TglNormal3i;
11405   glNormal3iv: TglNormal3iv;
11406   glNormal3s: TglNormal3s;
11407   glNormal3sv: TglNormal3sv;
11408   glNormalPointer: TglNormalPointer;
11409   glOrtho: TglOrtho;
11410   glPassThrough: TglPassThrough;
11411   glPixelMapfv: TglPixelMapfv;
11412   glPixelMapuiv: TglPixelMapuiv;
11413   glPixelMapusv: TglPixelMapusv;
11414   glPixelTransferf: TglPixelTransferf;
11415   glPixelTransferi: TglPixelTransferi;
11416   glPixelZoom: TglPixelZoom;
11417   glPolygonStipple: TglPolygonStipple;
11418   glPopAttrib: TglPopAttrib;
11419   glPopClientAttrib: TglPopClientAttrib;
11420   glPopMatrix: TglPopMatrix;
11421   glPopName: TglPopName;
11422   glPrioritizeTextures: TglPrioritizeTextures;
11423   glPushAttrib: TglPushAttrib;
11424   glPushClientAttrib: TglPushClientAttrib;
11425   glPushMatrix: TglPushMatrix;
11426   glPushName: TglPushName;
11427   glRasterPos2d: TglRasterPos2d;
11428   glRasterPos2dv: TglRasterPos2dv;
11429   glRasterPos2f: TglRasterPos2f;
11430   glRasterPos2fv: TglRasterPos2fv;
11431   glRasterPos2i: TglRasterPos2i;
11432   glRasterPos2iv: TglRasterPos2iv;
11433   glRasterPos2s: TglRasterPos2s;
11434   glRasterPos2sv: TglRasterPos2sv;
11435   glRasterPos3d: TglRasterPos3d;
11436   glRasterPos3dv: TglRasterPos3dv;
11437   glRasterPos3f: TglRasterPos3f;
11438   glRasterPos3fv: TglRasterPos3fv;
11439   glRasterPos3i: TglRasterPos3i;
11440   glRasterPos3iv: TglRasterPos3iv;
11441   glRasterPos3s: TglRasterPos3s;
11442   glRasterPos3sv: TglRasterPos3sv;
11443   glRasterPos4d: TglRasterPos4d;
11444   glRasterPos4dv: TglRasterPos4dv;
11445   glRasterPos4f: TglRasterPos4f;
11446   glRasterPos4fv: TglRasterPos4fv;
11447   glRasterPos4i: TglRasterPos4i;
11448   glRasterPos4iv: TglRasterPos4iv;
11449   glRasterPos4s: TglRasterPos4s;
11450   glRasterPos4sv: TglRasterPos4sv;
11451   glRectd: TglRectd;
11452   glRectdv: TglRectdv;
11453   glRectf: TglRectf;
11454   glRectfv: TglRectfv;
11455   glRecti: TglRecti;
11456   glRectiv: TglRectiv;
11457   glRects: TglRects;
11458   glRectsv: TglRectsv;
11459   glRenderMode: TglRenderMode;
11460   glRotated: TglRotated;
11461   glRotatef: TglRotatef;
11462   glScaled: TglScaled;
11463   glScalef: TglScalef;
11464   glSelectBuffer: TglSelectBuffer;
11465   glShadeModel: TglShadeModel;
11466   glTexCoord1d: TglTexCoord1d;
11467   glTexCoord1dv: TglTexCoord1dv;
11468   glTexCoord1f: TglTexCoord1f;
11469   glTexCoord1fv: TglTexCoord1fv;
11470   glTexCoord1i: TglTexCoord1i;
11471   glTexCoord1iv: TglTexCoord1iv;
11472   glTexCoord1s: TglTexCoord1s;
11473   glTexCoord1sv: TglTexCoord1sv;
11474   glTexCoord2d: TglTexCoord2d;
11475   glTexCoord2dv: TglTexCoord2dv;
11476   glTexCoord2f: TglTexCoord2f;
11477   glTexCoord2fv: TglTexCoord2fv;
11478   glTexCoord2i: TglTexCoord2i;
11479   glTexCoord2iv: TglTexCoord2iv;
11480   glTexCoord2s: TglTexCoord2s;
11481   glTexCoord2sv: TglTexCoord2sv;
11482   glTexCoord3d: TglTexCoord3d;
11483   glTexCoord3dv: TglTexCoord3dv;
11484   glTexCoord3f: TglTexCoord3f;
11485   glTexCoord3fv: TglTexCoord3fv;
11486   glTexCoord3i: TglTexCoord3i;
11487   glTexCoord3iv: TglTexCoord3iv;
11488   glTexCoord3s: TglTexCoord3s;
11489   glTexCoord3sv: TglTexCoord3sv;
11490   glTexCoord4d: TglTexCoord4d;
11491   glTexCoord4dv: TglTexCoord4dv;
11492   glTexCoord4f: TglTexCoord4f;
11493   glTexCoord4fv: TglTexCoord4fv;
11494   glTexCoord4i: TglTexCoord4i;
11495   glTexCoord4iv: TglTexCoord4iv;
11496   glTexCoord4s: TglTexCoord4s;
11497   glTexCoord4sv: TglTexCoord4sv;
11498   glTexCoordPointer: TglTexCoordPointer;
11499   glTexEnvf: TglTexEnvf;
11500   glTexEnvfv: TglTexEnvfv;
11501   glTexEnvi: TglTexEnvi;
11502   glTexEnviv: TglTexEnviv;
11503   glTexGend: TglTexGend;
11504   glTexGendv: TglTexGendv;
11505   glTexGenf: TglTexGenf;
11506   glTexGenfv: TglTexGenfv;
11507   glTexGeni: TglTexGeni;
11508   glTexGeniv: TglTexGeniv;
11509   glTranslated: TglTranslated;
11510   glTranslatef: TglTranslatef;
11511   glVertex2d: TglVertex2d;
11512   glVertex2dv: TglVertex2dv;
11513   glVertex2f: TglVertex2f;
11514   glVertex2fv: TglVertex2fv;
11515   glVertex2i: TglVertex2i;
11516   glVertex2iv: TglVertex2iv;
11517   glVertex2s: TglVertex2s;
11518   glVertex2sv: TglVertex2sv;
11519   glVertex3d: TglVertex3d;
11520   glVertex3dv: TglVertex3dv;
11521   glVertex3f: TglVertex3f;
11522   glVertex3fv: TglVertex3fv;
11523   glVertex3i: TglVertex3i;
11524   glVertex3iv: TglVertex3iv;
11525   glVertex3s: TglVertex3s;
11526   glVertex3sv: TglVertex3sv;
11527   glVertex4d: TglVertex4d;
11528   glVertex4dv: TglVertex4dv;
11529   glVertex4f: TglVertex4f;
11530   glVertex4fv: TglVertex4fv;
11531   glVertex4i: TglVertex4i;
11532   glVertex4iv: TglVertex4iv;
11533   glVertex4s: TglVertex4s;
11534   glVertex4sv: TglVertex4sv;
11535   glVertexPointer: TglVertexPointer;
11536 {$endif}
11537
11538   // GL_VERSION_1_2
11539   glBlendColor: TglBlendColor;
11540   glBlendEquation: TglBlendEquation;
11541   glDrawRangeElements: TglDrawRangeElements;
11542   glTexImage3D: TglTexImage3D;
11543   glTexSubImage3D: TglTexSubImage3D;
11544   glCopyTexSubImage3D: TglCopyTexSubImage3D;
11545 {$ifdef DGL_DEPRECATED}
11546   glColorTable: TglColorTable;
11547   glColorTableParameterfv: TglColorTableParameterfv;
11548   glColorTableParameteriv: TglColorTableParameteriv;
11549   glCopyColorTable: TglCopyColorTable;
11550   glGetColorTable: TglGetColorTable;
11551   glGetColorTableParameterfv: TglGetColorTableParameterfv;
11552   glGetColorTableParameteriv: TglGetColorTableParameteriv;
11553   glColorSubTable: TglColorSubTable;
11554   glCopyColorSubTable: TglCopyColorSubTable;
11555   glConvolutionFilter1D: TglConvolutionFilter1D;
11556   glConvolutionFilter2D: TglConvolutionFilter2D;
11557   glConvolutionParameterf: TglConvolutionParameterf;
11558   glConvolutionParameterfv: TglConvolutionParameterfv;
11559   glConvolutionParameteri: TglConvolutionParameteri;
11560   glConvolutionParameteriv: TglConvolutionParameteriv;
11561   glCopyConvolutionFilter1D: TglCopyConvolutionFilter1D;
11562   glCopyConvolutionFilter2D: TglCopyConvolutionFilter2D;
11563   glGetConvolutionFilter: TglGetConvolutionFilter;
11564   glGetConvolutionParameterfv: TglGetConvolutionParameterfv;
11565   glGetConvolutionParameteriv: TglGetConvolutionParameteriv;
11566   glGetSeparableFilter: TglGetSeparableFilter;
11567   glSeparableFilter2D: TglSeparableFilter2D;
11568   glGetHistogram: TglGetHistogram;
11569   glGetHistogramParameterfv: TglGetHistogramParameterfv;
11570   glGetHistogramParameteriv: TglGetHistogramParameteriv;
11571   glGetMinmax: TglGetMinmax;
11572   glGetMinmaxParameterfv: TglGetMinmaxParameterfv;
11573   glGetMinmaxParameteriv: TglGetMinmaxParameteriv;
11574   glHistogram: TglHistogram;
11575   glMinmax: TglMinmax;
11576   glResetHistogram: TglResetHistogram;
11577   glResetMinmax: TglResetMinmax;
11578 {$endif}
11579
11580   // GL_VERSION_1_3
11581   glActiveTexture: TglActiveTexture;
11582   glSampleCoverage: TglSampleCoverage;
11583   glCompressedTexImage3D: TglCompressedTexImage3D;
11584   glCompressedTexImage2D: TglCompressedTexImage2D;
11585   glCompressedTexImage1D: TglCompressedTexImage1D;
11586   glCompressedTexSubImage3D: TglCompressedTexSubImage3D;
11587   glCompressedTexSubImage2D: TglCompressedTexSubImage2D;
11588   glCompressedTexSubImage1D: TglCompressedTexSubImage1D;
11589   glGetCompressedTexImage: TglGetCompressedTexImage;
11590 {$ifdef DGL_DEPRECATED}
11591   glClientActiveTexture: TglClientActiveTexture;
11592   glMultiTexCoord1d: TglMultiTexCoord1d;
11593   glMultiTexCoord1dv: TglMultiTexCoord1dv;
11594   glMultiTexCoord1f: TglMultiTexCoord1f;
11595   glMultiTexCoord1fv: TglMultiTexCoord1fv;
11596   glMultiTexCoord1i: TglMultiTexCoord1i;
11597   glMultiTexCoord1iv: TglMultiTexCoord1iv;
11598   glMultiTexCoord1s: TglMultiTexCoord1s;
11599   glMultiTexCoord1sv: TglMultiTexCoord1sv;
11600   glMultiTexCoord2d: TglMultiTexCoord2d;
11601   glMultiTexCoord2dv: TglMultiTexCoord2dv;
11602   glMultiTexCoord2f: TglMultiTexCoord2f;
11603   glMultiTexCoord2fv: TglMultiTexCoord2fv;
11604   glMultiTexCoord2i: TglMultiTexCoord2i;
11605   glMultiTexCoord2iv: TglMultiTexCoord2iv;
11606   glMultiTexCoord2s: TglMultiTexCoord2s;
11607   glMultiTexCoord2sv: TglMultiTexCoord2sv;
11608   glMultiTexCoord3d: TglMultiTexCoord3d;
11609   glMultiTexCoord3dv: TglMultiTexCoord3dv;
11610   glMultiTexCoord3f: TglMultiTexCoord3f;
11611   glMultiTexCoord3fv: TglMultiTexCoord3fv;
11612   glMultiTexCoord3i: TglMultiTexCoord3i;
11613   glMultiTexCoord3iv: TglMultiTexCoord3iv;
11614   glMultiTexCoord3s: TglMultiTexCoord3s;
11615   glMultiTexCoord3sv: TglMultiTexCoord3sv;
11616   glMultiTexCoord4d: TglMultiTexCoord4d;
11617   glMultiTexCoord4dv: TglMultiTexCoord4dv;
11618   glMultiTexCoord4f: TglMultiTexCoord4f;
11619   glMultiTexCoord4fv: TglMultiTexCoord4fv;
11620   glMultiTexCoord4i: TglMultiTexCoord4i;
11621   glMultiTexCoord4iv: TglMultiTexCoord4iv;
11622   glMultiTexCoord4s: TglMultiTexCoord4s;
11623   glMultiTexCoord4sv: TglMultiTexCoord4sv;
11624   glLoadTransposeMatrixf: TglLoadTransposeMatrixf;
11625   glLoadTransposeMatrixd: TglLoadTransposeMatrixd;
11626   glMultTransposeMatrixf: TglMultTransposeMatrixf;
11627   glMultTransposeMatrixd: TglMultTransposeMatrixd;
11628 {$endif}
11629
11630   // GL_VERSION_1_4
11631   glBlendFuncSeparate: TglBlendFuncSeparate;
11632   glMultiDrawArrays: TglMultiDrawArrays;
11633   glMultiDrawElements: TglMultiDrawElements;
11634   glPointParameterf: TglPointParameterf;
11635   glPointParameterfv: TglPointParameterfv;
11636   glPointParameteri: TglPointParameteri;
11637   glPointParameteriv: TglPointParameteriv;
11638 {$ifdef DGL_DEPRECATED}
11639   glFogCoordf: TglFogCoordf;
11640   glFogCoordfv: TglFogCoordfv;
11641   glFogCoordd: TglFogCoordd;
11642   glFogCoorddv: TglFogCoorddv;
11643   glFogCoordPointer: TglFogCoordPointer;
11644   glSecondaryColor3b: TglSecondaryColor3b;
11645   glSecondaryColor3bv: TglSecondaryColor3bv;
11646   glSecondaryColor3d: TglSecondaryColor3d;
11647   glSecondaryColor3dv: TglSecondaryColor3dv;
11648   glSecondaryColor3f: TglSecondaryColor3f;
11649   glSecondaryColor3fv: TglSecondaryColor3fv;
11650   glSecondaryColor3i: TglSecondaryColor3i;
11651   glSecondaryColor3iv: TglSecondaryColor3iv;
11652   glSecondaryColor3s: TglSecondaryColor3s;
11653   glSecondaryColor3sv: TglSecondaryColor3sv;
11654   glSecondaryColor3ub: TglSecondaryColor3ub;
11655   glSecondaryColor3ubv: TglSecondaryColor3ubv;
11656   glSecondaryColor3ui: TglSecondaryColor3ui;
11657   glSecondaryColor3uiv: TglSecondaryColor3uiv;
11658   glSecondaryColor3us: TglSecondaryColor3us;
11659   glSecondaryColor3usv: TglSecondaryColor3usv;
11660   glSecondaryColorPointer: TglSecondaryColorPointer;
11661   glWindowPos2d: TglWindowPos2d;
11662   glWindowPos2dv: TglWindowPos2dv;
11663   glWindowPos2f: TglWindowPos2f;
11664   glWindowPos2fv: TglWindowPos2fv;
11665   glWindowPos2i: TglWindowPos2i;
11666   glWindowPos2iv: TglWindowPos2iv;
11667   glWindowPos2s: TglWindowPos2s;
11668   glWindowPos2sv: TglWindowPos2sv;
11669   glWindowPos3d: TglWindowPos3d;
11670   glWindowPos3dv: TglWindowPos3dv;
11671   glWindowPos3f: TglWindowPos3f;
11672   glWindowPos3fv: TglWindowPos3fv;
11673   glWindowPos3i: TglWindowPos3i;
11674   glWindowPos3iv: TglWindowPos3iv;
11675   glWindowPos3s: TglWindowPos3s;
11676   glWindowPos3sv: TglWindowPos3sv;
11677 {$endif}
11678
11679   // GL_VERSION_1_5
11680   glGenQueries: TglGenQueries;
11681   glDeleteQueries: TglDeleteQueries;
11682   glIsQuery: TglIsQuery;
11683   glBeginQuery: TglBeginQuery;
11684   glEndQuery: TglEndQuery;
11685   glGetQueryiv: TglGetQueryiv;
11686   glGetQueryObjectiv: TglGetQueryObjectiv;
11687   glGetQueryObjectuiv: TglGetQueryObjectuiv;
11688   glBindBuffer: TglBindBuffer;
11689   glDeleteBuffers: TglDeleteBuffers;
11690   glGenBuffers: TglGenBuffers;
11691   glIsBuffer: TglIsBuffer;
11692   glBufferData: TglBufferData;
11693   glBufferSubData: TglBufferSubData;
11694   glGetBufferSubData: TglGetBufferSubData;
11695   glMapBuffer: TglMapBuffer;
11696   glUnmapBuffer: TglUnmapBuffer;
11697   glGetBufferParameteriv: TglGetBufferParameteriv;
11698   glGetBufferPointerv: TglGetBufferPointerv;
11699
11700   // GL_VERSION_2_0
11701   glBlendEquationSeparate: TglBlendEquationSeparate;
11702   glDrawBuffers: TglDrawBuffers;
11703   glStencilOpSeparate: TglStencilOpSeparate;
11704   glStencilFuncSeparate: TglStencilFuncSeparate;
11705   glStencilMaskSeparate: TglStencilMaskSeparate;
11706   glAttachShader: TglAttachShader;
11707   glBindAttribLocation: TglBindAttribLocation;
11708   glCompileShader: TglCompileShader;
11709   glCreateProgram: TglCreateProgram;
11710   glCreateShader: TglCreateShader;
11711   glDeleteProgram: TglDeleteProgram;
11712   glDeleteShader: TglDeleteShader;
11713   glDetachShader: TglDetachShader;
11714   glDisableVertexAttribArray: TglDisableVertexAttribArray;
11715   glEnableVertexAttribArray: TglEnableVertexAttribArray;
11716   glGetActiveAttrib: TglGetActiveAttrib;
11717   glGetActiveUniform: TglGetActiveUniform;
11718   glGetAttachedShaders: TglGetAttachedShaders;
11719   glGetAttribLocation: TglGetAttribLocation;
11720   glGetProgramiv: TglGetProgramiv;
11721   glGetProgramInfoLog: TglGetProgramInfoLog;
11722   glGetShaderiv: TglGetShaderiv;
11723   glGetShaderInfoLog: TglGetShaderInfoLog;
11724   glGetShaderSource: TglGetShaderSource;
11725   glGetUniformLocation: TglGetUniformLocation;
11726   glGetUniformfv: TglGetUniformfv;
11727   glGetUniformiv: TglGetUniformiv;
11728   glGetVertexAttribfv: TglGetVertexAttribfv;
11729   glGetVertexAttribiv: TglGetVertexAttribiv;
11730   glGetVertexAttribPointerv: TglGetVertexAttribPointerv;
11731   glIsProgram: TglIsProgram;
11732   glIsShader: TglIsShader;
11733   glLinkProgram: TglLinkProgram;
11734   glShaderSource: TglShaderSource;
11735   glUseProgram: TglUseProgram;
11736   glUniform1f: TglUniform1f;
11737   glUniform2f: TglUniform2f;
11738   glUniform3f: TglUniform3f;
11739   glUniform4f: TglUniform4f;
11740   glUniform1i: TglUniform1i;
11741   glUniform2i: TglUniform2i;
11742   glUniform3i: TglUniform3i;
11743   glUniform4i: TglUniform4i;
11744   glUniform1fv: TglUniform1fv;
11745   glUniform2fv: TglUniform2fv;
11746   glUniform3fv: TglUniform3fv;
11747   glUniform4fv: TglUniform4fv;
11748   glUniform1iv: TglUniform1iv;
11749   glUniform2iv: TglUniform2iv;
11750   glUniform3iv: TglUniform3iv;
11751   glUniform4iv: TglUniform4iv;
11752   glUniformMatrix2fv: TglUniformMatrix2fv;
11753   glUniformMatrix3fv: TglUniformMatrix3fv;
11754   glUniformMatrix4fv: TglUniformMatrix4fv;
11755   glValidateProgram: TglValidateProgram;
11756   glVertexAttrib1d: TglVertexAttrib1d;
11757   glVertexAttrib1dv: TglVertexAttrib1dv;
11758   glVertexAttrib1f: TglVertexAttrib1f;
11759   glVertexAttrib1fv: TglVertexAttrib1fv;
11760   glVertexAttrib1s: TglVertexAttrib1s;
11761   glVertexAttrib1sv: TglVertexAttrib1sv;
11762   glVertexAttrib2d: TglVertexAttrib2d;
11763   glVertexAttrib2dv: TglVertexAttrib2dv;
11764   glVertexAttrib2f: TglVertexAttrib2f;
11765   glVertexAttrib2fv: TglVertexAttrib2fv;
11766   glVertexAttrib2s: TglVertexAttrib2s;
11767   glVertexAttrib2sv: TglVertexAttrib2sv;
11768   glVertexAttrib3d: TglVertexAttrib3d;
11769   glVertexAttrib3dv: TglVertexAttrib3dv;
11770   glVertexAttrib3f: TglVertexAttrib3f;
11771   glVertexAttrib3fv: TglVertexAttrib3fv;
11772   glVertexAttrib3s: TglVertexAttrib3s;
11773   glVertexAttrib3sv: TglVertexAttrib3sv;
11774   glVertexAttrib4Nbv: TglVertexAttrib4Nbv;
11775   glVertexAttrib4Niv: TglVertexAttrib4Niv;
11776   glVertexAttrib4Nsv: TglVertexAttrib4Nsv;
11777   glVertexAttrib4Nub: TglVertexAttrib4Nub;
11778   glVertexAttrib4Nubv: TglVertexAttrib4Nubv;
11779   glVertexAttrib4Nuiv: TglVertexAttrib4Nuiv;
11780   glVertexAttrib4Nusv: TglVertexAttrib4Nusv;
11781   glVertexAttrib4bv: TglVertexAttrib4bv;
11782   glVertexAttrib4d: TglVertexAttrib4d;
11783   glVertexAttrib4dv: TglVertexAttrib4dv;
11784   glVertexAttrib4f: TglVertexAttrib4f;
11785   glVertexAttrib4fv: TglVertexAttrib4fv;
11786   glVertexAttrib4iv: TglVertexAttrib4iv;
11787   glVertexAttrib4s: TglVertexAttrib4s;
11788   glVertexAttrib4sv: TglVertexAttrib4sv;
11789   glVertexAttrib4ubv: TglVertexAttrib4ubv;
11790   glVertexAttrib4uiv: TglVertexAttrib4uiv;
11791   glVertexAttrib4usv: TglVertexAttrib4usv;
11792   glVertexAttribPointer: TglVertexAttribPointer;
11793
11794   // GL_VERSION_2_1
11795   glUniformMatrix2x3fv: TglUniformMatrix2x3fv;
11796   glUniformMatrix3x2fv: TglUniformMatrix3x2fv;
11797   glUniformMatrix2x4fv: TglUniformMatrix2x4fv;
11798   glUniformMatrix4x2fv: TglUniformMatrix4x2fv;
11799   glUniformMatrix3x4fv: TglUniformMatrix3x4fv;
11800   glUniformMatrix4x3fv: TglUniformMatrix4x3fv;
11801
11802   // GL_VERSION_3_0
11803   glColorMaski: TglColorMaski;
11804   glGetBooleani_v: TglGetBooleani_v;
11805   glGetIntegeri_v: TglGetIntegeri_v;
11806   glEnablei: TglEnablei;
11807   glDisablei: TglDisablei;
11808   glIsEnabledi: TglIsEnabledi;
11809   glBeginTransformFeedback: TglBeginTransformFeedback;
11810   glEndTransformFeedback: TglEndTransformFeedback;
11811   glBindBufferRange: TglBindBufferRange;
11812   glBindBufferBase: TglBindBufferBase;
11813   glTransformFeedbackVaryings: TglTransformFeedbackVaryings;
11814   glGetTransformFeedbackVarying: TglGetTransformFeedbackVarying;
11815   glClampColor: TglClampColor;
11816   glBeginConditionalRender: TglBeginConditionalRender;
11817   glEndConditionalRender: TglEndConditionalRender;
11818   glVertexAttribI1i: TglVertexAttribI1i;
11819   glVertexAttribI2i: TglVertexAttribI2i;
11820   glVertexAttribI3i: TglVertexAttribI3i;
11821   glVertexAttribI4i: TglVertexAttribI4i;
11822   glVertexAttribI1ui: TglVertexAttribI1ui;
11823   glVertexAttribI2ui: TglVertexAttribI2ui;
11824   glVertexAttribI3ui: TglVertexAttribI3ui;
11825   glVertexAttribI4ui: TglVertexAttribI4ui;
11826   glVertexAttribI1iv: TglVertexAttribI1iv;
11827   glVertexAttribI2iv: TglVertexAttribI2iv;
11828   glVertexAttribI3iv: TglVertexAttribI3iv;
11829   glVertexAttribI4iv: TglVertexAttribI4iv;
11830   glVertexAttribI1uiv: TglVertexAttribI1uiv;
11831   glVertexAttribI2uiv: TglVertexAttribI2uiv;
11832   glVertexAttribI3uiv: TglVertexAttribI3uiv;
11833   glVertexAttribI4uiv: TglVertexAttribI4uiv;
11834   glVertexAttribI4bv: TglVertexAttribI4bv;
11835   glVertexAttribI4sv: TglVertexAttribI4sv;
11836   glVertexAttribI4ubv: TglVertexAttribI4ubv;
11837   glVertexAttribI4usv: TglVertexAttribI4usv;
11838   glVertexAttribIPointer: TglVertexAttribIPointer;
11839   glGetVertexAttribIiv: TglGetVertexAttribIiv;
11840   glGetVertexAttribIuiv: TglGetVertexAttribIuiv;
11841   glGetUniformuiv: TglGetUniformuiv;
11842   glBindFragDataLocation: TglBindFragDataLocation;
11843   glGetFragDataLocation: TglGetFragDataLocation;
11844   glUniform1ui: TglUniform1ui;
11845   glUniform2ui: TglUniform2ui;
11846   glUniform3ui: TglUniform3ui;
11847   glUniform4ui: TglUniform4ui;
11848   glUniform1uiv: TglUniform1uiv;
11849   glUniform2uiv: TglUniform2uiv;
11850   glUniform3uiv: TglUniform3uiv;
11851   glUniform4uiv: TglUniform4uiv;
11852   glTexParameterIiv: TglTexParameterIiv;
11853   glTexParameterIuiv: TglTexParameterIuiv;
11854   glGetTexParameterIiv: TglGetTexParameterIiv;
11855   glGetTexParameterIuiv: TglGetTexParameterIuiv;
11856   glClearBufferiv: TglClearBufferiv;
11857   glClearBufferuiv: TglClearBufferuiv;
11858   glClearBufferfv: TglClearBufferfv;
11859   glClearBufferfi: TglClearBufferfi;
11860   glGetStringi: TglGetStringi;
11861
11862   // GL_VERSION_2_1
11863   glEnableVertexArrayEXT : TglEnableVertexArrayEXT;
11864   glEnableVertexArrayAttribEXT : TglEnableVertexArrayAttribEXT;
11865   glVertexArrayVertexAttribOffsetEXT : TglVertexArrayVertexAttribOffsetEXT;
11866
11867   // GL_VERSION_3_1
11868   glDrawArraysInstanced: TglDrawArraysInstanced;
11869   glDrawElementsInstanced: TglDrawElementsInstanced;
11870   glTexBuffer: TglTexBuffer;
11871   glPrimitiveRestartIndex: TglPrimitiveRestartIndex;
11872
11873   // GL_VERSION_3_2
11874   glGetInteger64i_v: TglGetInteger64i_v;
11875   glGetBufferParameteri64v: TglGetBufferParameteri64v;
11876   glFramebufferTexture: TglFramebufferTexture;
11877
11878   // GL_VERSION_3_3
11879   glVertexAttribDivisor: TglVertexAttribDivisor;
11880
11881   // GL_VERSION_4_0
11882   { OpenGL 4.0 also reuses entry points from these extensions: }
11883   { ARB_texture_query_lod (no entry points) }
11884   { ARB_draw_indirect }
11885   { ARB_gpu_shader5 (no entry points) }
11886   { ARB_gpu_shader_fp64 }
11887   { ARB_shader_subroutine }
11888   { ARB_tessellation_shader }
11889   { ARB_texture_buffer_object_rgb32 (no entry points) }
11890   { ARB_texture_cube_map_array (no entry points) }
11891   { ARB_texture_gather (no entry points) }
11892   { ARB_transform_feedback2 }
11893   { ARB_transform_feedback3 }
11894   glMinSampleShading: TglMinSampleShading;
11895   glBlendEquationi: TglBlendEquationi;
11896   glBlendEquationSeparatei: TglBlendEquationSeparatei;
11897   glBlendFunci: TglBlendFunci;
11898   glBlendFuncSeparatei: TglBlendFuncSeparatei;
11899
11900   // GL_3DFX_tbuffer
11901   glTbufferMask3DFX: TglTbufferMask3DFX;
11902
11903   // GL_APPLE_element_array
11904   glElementPointerAPPLE: TglElementPointerAPPLE;
11905   glDrawElementArrayAPPLE: TglDrawElementArrayAPPLE;
11906   glDrawRangeElementArrayAPPLE: TglDrawRangeElementArrayAPPLE;
11907   glMultiDrawElementArrayAPPLE: TglMultiDrawElementArrayAPPLE;
11908   glMultiDrawRangeElementArrayAPPLE: TglMultiDrawRangeElementArrayAPPLE;
11909
11910   // GL_APPLE_fence
11911   glGenFencesAPPLE: TglGenFencesAPPLE;
11912   glDeleteFencesAPPLE: TglDeleteFencesAPPLE;
11913   glSetFenceAPPLE: TglSetFenceAPPLE;
11914   glIsFenceAPPLE: TglIsFenceAPPLE;
11915   glTestFenceAPPLE: TglTestFenceAPPLE;
11916   glFinishFenceAPPLE: TglFinishFenceAPPLE;
11917   glTestObjectAPPLE: TglTestObjectAPPLE;
11918   glFinishObjectAPPLE: TglFinishObjectAPPLE;
11919
11920   // GL_APPLE_vertex_array_object
11921   glBindVertexArrayAPPLE: TglBindVertexArrayAPPLE;
11922   glDeleteVertexArraysAPPLE: TglDeleteVertexArraysAPPLE;
11923   glGenVertexArraysAPPLE: TglGenVertexArraysAPPLE;
11924   glIsVertexArrayAPPLE: TglIsVertexArrayAPPLE;
11925
11926   // GL_APPLE_vertex_array_range
11927   glVertexArrayRangeAPPLE: TglVertexArrayRangeAPPLE;
11928   glFlushVertexArrayRangeAPPLE: TglFlushVertexArrayRangeAPPLE;
11929   glVertexArrayParameteriAPPLE: TglVertexArrayParameteriAPPLE;
11930
11931   // GL_APPLE_texture_range
11932   glTextureRangeAPPLE: TglTextureRangeAPPLE;
11933   glGetTexParameterPointervAPPLE: TglGetTexParameterPointervAPPLE;
11934
11935   // GL_APPLE_vertex_program_evaluators
11936   glEnableVertexAttribAPPLE: TglEnableVertexAttribAPPLE;
11937   glDisableVertexAttribAPPLE: TglDisableVertexAttribAPPLE;
11938   glIsVertexAttribEnabledAPPLE: TglIsVertexAttribEnabledAPPLE;
11939   glMapVertexAttrib1dAPPLE: TglMapVertexAttrib1dAPPLE;
11940   glMapVertexAttrib1fAPPLE: TglMapVertexAttrib1fAPPLE;
11941   glMapVertexAttrib2dAPPLE: TglMapVertexAttrib2dAPPLE;
11942   glMapVertexAttrib2fAPPLE: TglMapVertexAttrib2fAPPLE;
11943
11944   // GL_APPLE_object_purgeable
11945   glObjectPurgeableAPPLE: TglObjectPurgeableAPPLE;
11946   glObjectUnpurgeableAPPLE: TglObjectUnpurgeableAPPLE;
11947   glGetObjectParameterivAPPLE: TglGetObjectParameterivAPPLE;
11948
11949   // GL_ARB_matrix_palette
11950   glCurrentPaletteMatrixARB: TglCurrentPaletteMatrixARB;
11951   glMatrixIndexubvARB: TglMatrixIndexubvARB;
11952   glMatrixIndexusvARB: TglMatrixIndexusvARB;
11953   glMatrixIndexuivARB: TglMatrixIndexuivARB;
11954   glMatrixIndexPointerARB: TglMatrixIndexPointerARB;
11955
11956   // GL_ARB_multisample
11957   glSampleCoverageARB: TglSampleCoverageARB;
11958
11959   // GL_ARB_multitexture
11960   glActiveTextureARB: TglActiveTextureARB;
11961   glClientActiveTextureARB: TglClientActiveTextureARB;
11962   glMultiTexCoord1dARB: TglMultiTexCoord1dARB;
11963   glMultiTexCoord1dvARB: TglMultiTexCoord1dvARB;
11964   glMultiTexCoord1fARB: TglMultiTexCoord1fARB;
11965   glMultiTexCoord1fvARB: TglMultiTexCoord1fvARB;
11966   glMultiTexCoord1iARB: TglMultiTexCoord1iARB;
11967   glMultiTexCoord1ivARB: TglMultiTexCoord1ivARB;
11968   glMultiTexCoord1sARB: TglMultiTexCoord1sARB;
11969   glMultiTexCoord1svARB: TglMultiTexCoord1svARB;
11970   glMultiTexCoord2dARB: TglMultiTexCoord2dARB;
11971   glMultiTexCoord2dvARB: TglMultiTexCoord2dvARB;
11972   glMultiTexCoord2fARB: TglMultiTexCoord2fARB;
11973   glMultiTexCoord2fvARB: TglMultiTexCoord2fvARB;
11974   glMultiTexCoord2iARB: TglMultiTexCoord2iARB;
11975   glMultiTexCoord2ivARB: TglMultiTexCoord2ivARB;
11976   glMultiTexCoord2sARB: TglMultiTexCoord2sARB;
11977   glMultiTexCoord2svARB: TglMultiTexCoord2svARB;
11978   glMultiTexCoord3dARB: TglMultiTexCoord3dARB;
11979   glMultiTexCoord3dvARB: TglMultiTexCoord3dvARB;
11980   glMultiTexCoord3fARB: TglMultiTexCoord3fARB;
11981   glMultiTexCoord3fvARB: TglMultiTexCoord3fvARB;
11982   glMultiTexCoord3iARB: TglMultiTexCoord3iARB;
11983   glMultiTexCoord3ivARB: TglMultiTexCoord3ivARB;
11984   glMultiTexCoord3sARB: TglMultiTexCoord3sARB;
11985   glMultiTexCoord3svARB: TglMultiTexCoord3svARB;
11986   glMultiTexCoord4dARB: TglMultiTexCoord4dARB;
11987   glMultiTexCoord4dvARB: TglMultiTexCoord4dvARB;
11988   glMultiTexCoord4fARB: TglMultiTexCoord4fARB;
11989   glMultiTexCoord4fvARB: TglMultiTexCoord4fvARB;
11990   glMultiTexCoord4iARB: TglMultiTexCoord4iARB;
11991   glMultiTexCoord4ivARB: TglMultiTexCoord4ivARB;
11992   glMultiTexCoord4sARB: TglMultiTexCoord4sARB;
11993   glMultiTexCoord4svARB: TglMultiTexCoord4svARB;
11994
11995   // GL_ARB_point_parameters
11996   glPointParameterfARB: TglPointParameterfARB;
11997   glPointParameterfvARB: TglPointParameterfvARB;
11998
11999   // GL_ARB_texture_compression
12000   glCompressedTexImage3DARB: TglCompressedTexImage3DARB;
12001   glCompressedTexImage2DARB: TglCompressedTexImage2DARB;
12002   glCompressedTexImage1DARB: TglCompressedTexImage1DARB;
12003   glCompressedTexSubImage3DARB: TglCompressedTexSubImage3DARB;
12004   glCompressedTexSubImage2DARB: TglCompressedTexSubImage2DARB;
12005   glCompressedTexSubImage1DARB: TglCompressedTexSubImage1DARB;
12006   glGetCompressedTexImageARB: TglGetCompressedTexImageARB;
12007
12008   // GL_ARB_transpose_matrix
12009   glLoadTransposeMatrixfARB: TglLoadTransposeMatrixfARB;
12010   glLoadTransposeMatrixdARB: TglLoadTransposeMatrixdARB;
12011   glMultTransposeMatrixfARB: TglMultTransposeMatrixfARB;
12012   glMultTransposeMatrixdARB: TglMultTransposeMatrixdARB;
12013
12014   // GL_ARB_vertex_blend
12015   glWeightbvARB: TglWeightbvARB;
12016   glWeightsvARB: TglWeightsvARB;
12017   glWeightivARB: TglWeightivARB;
12018   glWeightfvARB: TglWeightfvARB;
12019   glWeightdvARB: TglWeightdvARB;
12020   glWeightubvARB: TglWeightubvARB;
12021   glWeightusvARB: TglWeightusvARB;
12022   glWeightuivARB: TglWeightuivARB;
12023   glWeightPointerARB: TglWeightPointerARB;
12024   glVertexBlendARB: TglVertexBlendARB;
12025
12026   // GL_ARB_vertex_buffer_object
12027   glBindBufferARB: TglBindBufferARB;
12028   glDeleteBuffersARB: TglDeleteBuffersARB;
12029   glGenBuffersARB: TglGenBuffersARB;
12030   glIsBufferARB: TglIsBufferARB;
12031   glBufferDataARB: TglBufferDataARB;
12032   glBufferSubDataARB: TglBufferSubData;
12033   glGetBufferSubDataARB: TglGetBufferSubDataARB;
12034   glMapBufferARB: TglMapBufferARB;
12035   glUnmapBufferARB: TglUnmapBufferARB;
12036   glGetBufferParameterivARB: TglGetBufferParameterivARB;
12037   glGetBufferPointervARB: TglGetBufferPointervARB;
12038
12039   // GL_ARB_vertex_program
12040   glVertexAttrib1dARB: TglVertexAttrib1dARB;
12041   glVertexAttrib1dvARB: TglVertexAttrib1dvARB;
12042   glVertexAttrib1fARB: TglVertexAttrib1fARB;
12043   glVertexAttrib1fvARB: TglVertexAttrib1fvARB;
12044   glVertexAttrib1sARB: TglVertexAttrib1sARB;
12045   glVertexAttrib1svARB: TglVertexAttrib1svARB;
12046   glVertexAttrib2dARB: TglVertexAttrib2dARB;
12047   glVertexAttrib2dvARB: TglVertexAttrib2dvARB;
12048   glVertexAttrib2fARB: TglVertexAttrib2fARB;
12049   glVertexAttrib2fvARB: TglVertexAttrib2fvARB;
12050   glVertexAttrib2sARB: TglVertexAttrib2sARB;
12051   glVertexAttrib2svARB: TglVertexAttrib2svARB;
12052   glVertexAttrib3dARB: TglVertexAttrib3dARB;
12053   glVertexAttrib3dvARB: TglVertexAttrib3dvARB;
12054   glVertexAttrib3fARB: TglVertexAttrib3fARB;
12055   glVertexAttrib3fvARB: TglVertexAttrib3fvARB;
12056   glVertexAttrib3sARB: TglVertexAttrib3sARB;
12057   glVertexAttrib3svARB: TglVertexAttrib3svARB;
12058   glVertexAttrib4NbvARB: TglVertexAttrib4NbvARB;
12059   glVertexAttrib4NivARB: TglVertexAttrib4NivARB;
12060   glVertexAttrib4NsvARB: TglVertexAttrib4NsvARB;
12061   glVertexAttrib4NubARB: TglVertexAttrib4NubARB;
12062   glVertexAttrib4NubvARB: TglVertexAttrib4NubvARB;
12063   glVertexAttrib4NuivARB: TglVertexAttrib4NuivARB;
12064   glVertexAttrib4NusvARB: TglVertexAttrib4NusvARB;
12065   glVertexAttrib4bvARB: TglVertexAttrib4bvARB;
12066   glVertexAttrib4dARB: TglVertexAttrib4dARB;
12067   glVertexAttrib4dvARB: TglVertexAttrib4dvARB;
12068   glVertexAttrib4fARB: TglVertexAttrib4fARB;
12069   glVertexAttrib4fvARB: TglVertexAttrib4fvARB;
12070   glVertexAttrib4ivARB: TglVertexAttrib4ivARB;
12071   glVertexAttrib4sARB: TglVertexAttrib4sARB;
12072   glVertexAttrib4svARB: TglVertexAttrib4svARB;
12073   glVertexAttrib4ubvARB: TglVertexAttrib4ubvARB;
12074   glVertexAttrib4uivARB: TglVertexAttrib4uivARB;
12075   glVertexAttrib4usvARB: TglVertexAttrib4usvARB;
12076   glVertexAttribPointerARB: TglVertexAttribPointerARB;
12077   glEnableVertexAttribArrayARB: TglEnableVertexAttribArrayARB;
12078   glDisableVertexAttribArrayARB: TglDisableVertexAttribArrayARB;
12079   glProgramStringARB: TglProgramStringARB;
12080   glBindProgramARB: TglBindProgramARB;
12081   glDeleteProgramsARB: TglDeleteProgramsARB;
12082   glGenProgramsARB: TglGenProgramsARB;
12083
12084   glProgramEnvParameter4dARB: TglProgramEnvParameter4dARB;
12085   glProgramEnvParameter4dvARB: TglProgramEnvParameter4dvARB;
12086   glProgramEnvParameter4fARB: TglProgramEnvParameter4fARB;
12087   glProgramEnvParameter4fvARB: TglProgramEnvParameter4fvARB;
12088   glProgramLocalParameter4dARB: TglProgramLocalParameter4dARB;
12089   glProgramLocalParameter4dvARB: TglProgramLocalParameter4dvARB;
12090   glProgramLocalParameter4fARB: TglProgramLocalParameter4fARB;
12091   glProgramLocalParameter4fvARB: TglProgramLocalParameter4fvARB;
12092   glGetProgramEnvParameterdvARB: TglGetProgramEnvParameterdvARB;
12093   glGetProgramEnvParameterfvARB: TglGetProgramEnvParameterfvARB;
12094   glGetProgramLocalParameterdvARB: TglGetProgramLocalParameterdvARB;
12095   glGetProgramLocalParameterfvARB: TglGetProgramLocalParameterfvARB;
12096   glGetProgramivARB: TglGetProgramivARB;
12097   glGetProgramStringARB: TglGetProgramStringARB;
12098   glGetVertexAttribdvARB: TglGetVertexAttribdvARB;
12099   glGetVertexAttribfvARB: TglGetVertexAttribfvARB;
12100   glGetVertexAttribivARB: TglGetVertexAttribivARB;
12101   glGetVertexAttribPointervARB: TglGetVertexAttribPointervARB;
12102   glIsProgramARB: TglIsProgramARB;
12103
12104   // GL_ARB_window_pos
12105   glWindowPos2dARB: TglWindowPos2dARB;
12106   glWindowPos2dvARB: TglWindowPos2dvARB;
12107   glWindowPos2fARB: TglWindowPos2fARB;
12108   glWindowPos2fvARB: TglWindowPos2fvARB;
12109   glWindowPos2iARB: TglWindowPos2iARB;
12110   glWindowPos2ivARB: TglWindowPos2ivARB;
12111   glWindowPos2sARB: TglWindowPos2sARB;
12112   glWindowPos2svARB: TglWindowPos2svARB;
12113   glWindowPos3dARB: TglWindowPos3dARB;
12114   glWindowPos3dvARB: TglWindowPos3dvARB;
12115   glWindowPos3fARB: TglWindowPos3fARB;
12116   glWindowPos3fvARB: TglWindowPos3fvARB;
12117   glWindowPos3iARB: TglWindowPos3iARB;
12118   glWindowPos3ivARB: TglWindowPos3ivARB;
12119   glWindowPos3sARB: TglWindowPos3sARB;
12120   glWindowPos3svARB: TglWindowPos3svARB;
12121
12122   // GL_ARB_draw_buffers
12123   glDrawBuffersARB: TglDrawBuffersARB;
12124
12125   // GL_ARB_color_buffer_float
12126   glClampColorARB: TglClampColorARB;
12127
12128   // GL_ARB_vertex_shader
12129   glGetActiveAttribARB: TglGetActiveAttribARB;
12130   glGetAttribLocationARB: TglGetAttribLocationARB;
12131   glBindAttribLocationARB: TglBindAttribLocationARB;
12132
12133   // GL_ARB_shader_objects
12134   glDeleteObjectARB: TglDeleteObjectARB;
12135   glGetHandleARB: TglGetHandleARB;
12136   glDetachObjectARB: TglDetachObjectARB;
12137   glCreateShaderObjectARB: TglCreateShaderObjectARB;
12138   glShaderSourceARB: TglShaderSourceARB;
12139   glCompileShaderARB: TglCompileShaderARB;
12140   glCreateProgramObjectARB: TglCreateProgramObjectARB;
12141   glAttachObjectARB: TglAttachObjectARB;
12142   glLinkProgramARB: TglLinkProgramARB;
12143   glUseProgramObjectARB: TglUseProgramObjectARB;
12144   glValidateProgramARB: TglValidateProgramARB;
12145   glUniform1fARB: TglUniform1fARB;
12146   glUniform2fARB: TglUniform2fARB;
12147   glUniform3fARB: TglUniform3fARB;
12148   glUniform4fARB: TglUniform4fARB;
12149   glUniform1iARB: TglUniform1iARB;
12150   glUniform2iARB: TglUniform2iARB;
12151   glUniform3iARB: TglUniform3iARB;
12152   glUniform4iARB: TglUniform4iARB;
12153   glUniform1fvARB: TglUniform1fvARB;
12154   glUniform2fvARB: TglUniform2fvARB;
12155   glUniform3fvARB: TglUniform3fvARB;
12156   glUniform4fvARB: TglUniform4fvARB;
12157   glUniform1ivARB: TglUniform1ivARB;
12158   glUniform2ivARB: TglUniform2ivARB;
12159   glUniform3ivARB: TglUniform3ivARB;
12160   glUniform4ivARB: TglUniform4ivARB;
12161   glUniformMatrix2fvARB: TglUniformMatrix2fvARB;
12162   glUniformMatrix3fvARB: TglUniformMatrix3fvARB;
12163   glUniformMatrix4fvARB: TglUniformMatrix4fvARB;
12164   glGetObjectParameterfvARB: TglGetObjectParameterfvARB;
12165   glGetObjectParameterivARB: TglGetObjectParameterivARB;
12166   glGetInfoLogARB: TglGetInfoLogARB;
12167   glGetAttachedObjectsARB: TglGetAttachedObjectsARB;
12168   glGetUniformLocationARB: TglGetUniformLocationARB;
12169   glGetActiveUniformARB: TglGetActiveUniformARB;
12170   glGetUniformfvARB: TglGetUniformfvARB;
12171   glGetUniformivARB: TglGetUniformivARB;
12172   glGetShaderSourceARB: TglGetShaderSourceARB;
12173
12174   // GL_ARB_Occlusion_Query
12175   glGenQueriesARB: TglGenQueriesARB;
12176   glDeleteQueriesARB: TglDeleteQueriesARB;
12177   glIsQueryARB: TglIsQueryARB;
12178   glBeginQueryARB: TglBeginQueryARB;
12179   glEndQueryARB: TglEndQueryARB;
12180   glGetQueryivARB: TglGetQueryivARB;
12181   glGetQueryObjectivARB: TglGetQueryObjectivARB;
12182   glGetQueryObjectuivARB: TglGetQueryObjectuivARB;
12183
12184   // GL_ARB_draw_instanced
12185   glDrawArraysInstancedARB: TglDrawArraysInstancedARB;
12186   glDrawElementsInstancedARB: TglDrawElementsInstancedARB;
12187
12188   // GL_ARB_framebuffer_object
12189   glIsRenderbuffer: TglIsRenderbuffer;
12190   glBindRenderbuffer: TglBindRenderbuffer;
12191   glDeleteRenderbuffers: TglDeleteRenderbuffers;
12192   glGenRenderbuffers: TglGenRenderbuffers;
12193   glRenderbufferStorage: TglRenderbufferStorage;
12194   glGetRenderbufferParameteriv: TglGetRenderbufferParameteriv;
12195   glIsFramebuffer: TglIsFramebuffer;
12196   glBindFramebuffer: TglBindFramebuffer;
12197   glDeleteFramebuffers: TglDeleteFramebuffers;
12198   glGenFramebuffers: TglGenFramebuffers;
12199   glCheckFramebufferStatus: TglCheckFramebufferStatus;
12200   glFramebufferTexture1D: TglFramebufferTexture1D;
12201   glFramebufferTexture2D: TglFramebufferTexture2D;
12202   glFramebufferTexture3D: TglFramebufferTexture3D;
12203   glFramebufferRenderbuffer: TglFramebufferRenderbuffer;
12204   glGetFramebufferAttachmentParameteriv: TglGetFramebufferAttachmentParameteriv;
12205   glGenerateMipmap: TglGenerateMipmap;
12206   glBlitFramebuffer: TglBlitFramebuffer;
12207   glRenderbufferStorageMultisample: TglRenderbufferStorageMultisample;
12208   glFramebufferTextureLayer: TglFramebufferTextureLayer;
12209
12210   // GL_ARB_geometry_shader4
12211   glProgramParameteriARB: TglProgramParameteriARB;
12212   glFramebufferTextureARB: TglFramebufferTextureARB;
12213   glFramebufferTextureLayerARB: TglFramebufferTextureLayerARB;
12214   glFramebufferTextureFaceARB: TglFramebufferTextureFaceARB;
12215
12216   // GL_ARB_instanced_arrays
12217   glVertexAttribDivisorARB: TglVertexAttribDivisorARB;
12218
12219   // GL_ARB_map_buffer_range
12220   glMapBufferRange: TglMapBufferRange;
12221   glFlushMappedBufferRange: TglFlushMappedBufferRange;
12222
12223   // GL_ARB_texture_buffer_object
12224   glTexBufferARB: TglTexBufferARB;
12225
12226   // GL_ARB_vertex_array_object
12227   glBindVertexArray: TglBindVertexArray;
12228   glDeleteVertexArrays: TglDeleteVertexArrays;
12229   glGenVertexArrays: TglGenVertexArrays;
12230   glIsVertexArray: TglIsVertexArray;
12231
12232   // GL_ARB_uniform_buffer_object
12233   glGetUniformIndices: TglGetUniformIndices;
12234   glGetActiveUniformsiv: TglGetActiveUniformsiv;
12235   glGetActiveUniformName: TglGetActiveUniformName;
12236   glGetUniformBlockIndex: TglGetUniformBlockIndex;
12237   glGetActiveUniformBlockiv: TglGetActiveUniformBlockiv;
12238   glGetActiveUniformBlockName: TglGetActiveUniformBlockName;
12239   glUniformBlockBinding: TglUniformBlockBinding;
12240
12241   // GL_ARB_copy_buffer
12242   glCopyBufferSubData: TglCopyBufferSubData;
12243
12244   // GL_ARB_draw_elements_base_vertex
12245   glDrawElementsBaseVertex: TglDrawElementsBaseVertex;
12246   glDrawRangeElementsBaseVertex: TglDrawRangeElementsBaseVertex;
12247   glDrawElementsInstancedBaseVertex: TglDrawElementsInstancedBaseVertex;
12248   glMultiDrawElementsBaseVertex: TglMultiDrawElementsBaseVertex;
12249
12250   // GL_ARB_provoking_vertex
12251   glProvokingVertex: TglProvokingVertex;
12252
12253   // GL_ARB_sync
12254   glFenceSync: TglFenceSync;
12255   glIsSync: TglIsSync;
12256   glDeleteSync: TglDeleteSync;
12257   glClientWaitSync: TglClientWaitSync;
12258   glWaitSync: TglWaitSync;
12259   glGetInteger64v: TglGetInteger64v;
12260   glGetSynciv: TglGetSynciv;
12261
12262   // GL_ARB_texture_multisample
12263   glTexImage2DMultisample: TglTexImage2DMultisample;
12264   glTexImage3DMultisample: TglTexImage3DMultisample;
12265   glGetMultisamplefv: TglGetMultisamplefv;
12266   glSampleMaski: TglSampleMaski;
12267
12268   // GL_ARB_draw_buffers_blend
12269   glBlendEquationiARB: TglBlendEquationiARB;
12270   glBlendEquationSeparateiARB: TglBlendEquationSeparateiARB;
12271   glBlendFunciARB: TglBlendFunciARB;
12272   glBlendFuncSeparateiARB: TglBlendFuncSeparateiARB;
12273
12274   // GL_ARB_sample_shading
12275   glMinSampleShadingARB: TglMinSampleShadingARB;
12276
12277   // GL_ARB_shading_language_include
12278   glNamedStringARB: TglNamedStringARB;
12279   glDeleteNamedStringARB: TglDeleteNamedStringARB;
12280   glCompileShaderIncludeARB: TglCompileShaderIncludeARB;
12281   glIsNamedStringARB: TglIsNamedStringARB;
12282   glGetNamedStringARB: TglGetNamedStringARB;
12283   glGetNamedStringivARB: TglGetNamedStringivARB;
12284
12285   // GL_ARB_blend_func_extended
12286   glBindFragDataLocationIndexed: TglBindFragDataLocationIndexed;
12287   glGetFragDataIndex: TglGetFragDataIndex;
12288
12289   // GL_ARB_sampler_objects
12290   glGenSamplers: TglGenSamplers;
12291   glDeleteSamplers: TglDeleteSamplers;
12292   glIsSampler: TglIsSampler;
12293   glBindSampler: TglBindSampler;
12294   glSamplerParameteri: TglSamplerParameteri;
12295   glSamplerParameteriv: TglSamplerParameteriv;
12296   glSamplerParameterf: TglSamplerParameterf;
12297   glSamplerParameterfv: TglSamplerParameterfv;
12298   glSamplerParameterIiv: TglSamplerParameterIiv;
12299   glSamplerParameterIuiv: TglSamplerParameterIuiv;
12300   glGetSamplerParameteriv: TglGetSamplerParameteriv;
12301   glGetSamplerParameterIiv: TglGetSamplerParameterIiv;
12302   glGetSamplerParameterfv: TglGetSamplerParameterfv;
12303   glGetSamplerParameterIuiv: TglGetSamplerParameterIuiv;
12304
12305   // GL_ARB_timer_query
12306   glQueryCounter: TglQueryCounter;
12307   glGetQueryObjecti64v: TglGetQueryObjecti64v;
12308   glGetQueryObjectui64v: TglGetQueryObjectui64v;
12309
12310   // GL_ARB_vertex_type_2_10_10_10_rev
12311   glVertexP2ui: TglVertexP2ui;
12312   glVertexP2uiv: TglVertexP2uiv;
12313   glVertexP3ui: TglVertexP3ui;
12314   glVertexP3uiv: TglVertexP3uiv;
12315   glVertexP4ui: TglVertexP4ui;
12316   glVertexP4uiv: TglVertexP4uiv;
12317   glTexCoordP1ui: TglTexCoordP1ui;
12318   glTexCoordP1uiv: TglTexCoordP1uiv;
12319   glTexCoordP2ui: TglTexCoordP2ui;
12320   glTexCoordP2uiv: TglTexCoordP2uiv;
12321   glTexCoordP3ui: TglTexCoordP3ui;
12322   glTexCoordP3uiv: TglTexCoordP3uiv;
12323   glTexCoordP4ui: TglTexCoordP4ui;
12324   glTexCoordP4uiv: TglTexCoordP4uiv;
12325   glMultiTexCoordP1ui: TglMultiTexCoordP1ui;
12326   glMultiTexCoordP1uiv: TglMultiTexCoordP1uiv;
12327   glMultiTexCoordP2ui: TglMultiTexCoordP2ui;
12328   glMultiTexCoordP2uiv: TglMultiTexCoordP2uiv;
12329   glMultiTexCoordP3ui: TglMultiTexCoordP3ui;
12330   glMultiTexCoordP3uiv: TglMultiTexCoordP3uiv;
12331   glMultiTexCoordP4ui: TglMultiTexCoordP4ui;
12332   glMultiTexCoordP4uiv: TglMultiTexCoordP4uiv;
12333   glNormalP3ui: TglNormalP3ui;
12334   glNormalP3uiv: TglNormalP3uiv;
12335   glColorP3ui: TglColorP3ui;
12336   glColorP3uiv: TglColorP3uiv;
12337   glColorP4ui: TglColorP4ui;
12338   glColorP4uiv: TglColorP4uiv;
12339   glSecondaryColorP3ui: TglSecondaryColorP3ui;
12340   glSecondaryColorP3uiv: TglSecondaryColorP3uiv;
12341   glVertexAttribP1ui: TglVertexAttribP1ui;
12342   glVertexAttribP1uiv: TglVertexAttribP1uiv;
12343   glVertexAttribP2ui: TglVertexAttribP2ui;
12344   glVertexAttribP2uiv: TglVertexAttribP2uiv;
12345   glVertexAttribP3ui: TglVertexAttribP3ui;
12346   glVertexAttribP3uiv: TglVertexAttribP3uiv;
12347   glVertexAttribP4ui: TglVertexAttribP4ui;
12348   glVertexAttribP4uiv: TglVertexAttribP4uiv;
12349
12350   // GL_ARB_draw_indirect
12351   glDrawArraysIndirect: TglDrawArraysIndirect;
12352   glDrawElementsIndirect: TglDrawElementsIndirect;
12353
12354   // GL_ARB_gpu_shader_fp64
12355   glUniform1d: TglUniform1d;
12356   glUniform2d: TglUniform2d;
12357   glUniform3d: TglUniform3d;
12358   glUniform4d: TglUniform4d;
12359   glUniform1dv: TglUniform1dv;
12360   glUniform2dv: TglUniform2dv;
12361   glUniform3dv: TglUniform3dv;
12362   glUniform4dv: TglUniform4dv;
12363   glUniformMatrix2dv: TglUniformMatrix2dv;
12364   glUniformMatrix3dv: TglUniformMatrix3dv;
12365   glUniformMatrix4dv: TglUniformMatrix4dv;
12366   glUniformMatrix2x3dv: TglUniformMatrix2x3dv;
12367   glUniformMatrix2x4dv: TglUniformMatrix2x4dv;
12368   glUniformMatrix3x2dv: TglUniformMatrix3x2dv;
12369   glUniformMatrix3x4dv: TglUniformMatrix3x4dv;
12370   glUniformMatrix4x2dv: TglUniformMatrix4x2dv;
12371   glUniformMatrix4x3dv: TglUniformMatrix4x3dv;
12372   glGetUniformdv: TglGetUniformdv;
12373
12374   // GL_ARB_shader_subroutine
12375   glGetSubroutineUniformLocation: TglGetSubroutineUniformLocation;
12376   glGetSubroutineIndex: TglGetSubroutineIndex;
12377   glGetActiveSubroutineUniformiv: TglGetActiveSubroutineUniformiv;
12378   glGetActiveSubroutineUniformName: TglGetActiveSubroutineUniformName;
12379   glGetActiveSubroutineName: TglGetActiveSubroutineName;
12380   glUniformSubroutinesuiv: TglUniformSubroutinesuiv;
12381   glGetUniformSubroutineuiv: TglGetUniformSubroutineuiv;
12382   glGetProgramStageiv: TglGetProgramStageiv;
12383
12384   // GL_ARB_tessellation_shader
12385   glPatchParameteri: TglPatchParameteri;
12386   glPatchParameterfv: TglPatchParameterfv;
12387
12388   // GL_ARB_transform_feedback2
12389   glBindTransformFeedback: TglBindTransformFeedback;
12390   glDeleteTransformFeedbacks: TglDeleteTransformFeedbacks;
12391   glGenTransformFeedbacks: TglGenTransformFeedbacks;
12392   glIsTransformFeedback: TglIsTransformFeedback;
12393   glPauseTransformFeedback: TglPauseTransformFeedback;
12394   glResumeTransformFeedback: TglResumeTransformFeedback;
12395   glDrawTransformFeedback: TglDrawTransformFeedback;
12396
12397   // GL_ARB_transform_feedback3
12398   glDrawTransformFeedbackStream: TglDrawTransformFeedbackStream;
12399   glBeginQueryIndexed: TglBeginQueryIndexed;
12400   glEndQueryIndexed: TglEndQueryIndexed;
12401   glGetQueryIndexediv: TglGetQueryIndexediv;
12402
12403   // GL_ARB_ES2_compatibility
12404   glReleaseShaderCompiler: TglReleaseShaderCompiler;
12405   glShaderBinary: TglShaderBinary;
12406   glGetShaderPrecisionFormat: TglGetShaderPrecisionFormat;
12407   glDepthRangef: TglDepthRangef;
12408   glClearDepthf: TglClearDepthf;
12409
12410   // GL_ARB_get_program_binary
12411   glGetProgramBinary: TglGetProgramBinary;
12412   glProgramBinary: TglProgramBinary;
12413   glProgramParameteri: TglProgramParameteri;
12414
12415   // GL_ARB_separate_shader_objects
12416   glUseProgramStages: TglUseProgramStages;
12417   glActiveShaderProgram: TglActiveShaderProgram;
12418   glCreateShaderProgramv: TglCreateShaderProgramv;
12419   glBindProgramPipeline: TglBindProgramPipeline;
12420   glDeleteProgramPipelines: TglDeleteProgramPipelines;
12421   glGenProgramPipelines: TglGenProgramPipelines;
12422   glIsProgramPipeline: TglIsProgramPipeline;
12423   glGetProgramPipelineiv: TglGetProgramPipelineiv;
12424   glProgramUniform1i: TglProgramUniform1i;
12425   glProgramUniform1iv: TglProgramUniform1iv;
12426   glProgramUniform1f: TglProgramUniform1f;
12427   glProgramUniform1fv: TglProgramUniform1fv;
12428   glProgramUniform1d: TglProgramUniform1d;
12429   glProgramUniform1dv: TglProgramUniform1dv;
12430   glProgramUniform1ui: TglProgramUniform1ui;
12431   glProgramUniform1uiv: TglProgramUniform1uiv;
12432   glProgramUniform2i: TglProgramUniform2i;
12433   glProgramUniform2iv: TglProgramUniform2iv;
12434   glProgramUniform2f: TglProgramUniform2f;
12435   glProgramUniform2fv: TglProgramUniform2fv;
12436   glProgramUniform2d: TglProgramUniform2d;
12437   glProgramUniform2dv: TglProgramUniform2dv;
12438   glProgramUniform2ui: TglProgramUniform2ui;
12439   glProgramUniform2uiv: TglProgramUniform2uiv;
12440   glProgramUniform3i: TglProgramUniform3i;
12441   glProgramUniform3iv: TglProgramUniform3iv;
12442   glProgramUniform3f: TglProgramUniform3f;
12443   glProgramUniform3fv: TglProgramUniform3fv;
12444   glProgramUniform3d: TglProgramUniform3d;
12445   glProgramUniform3dv: TglProgramUniform3dv;
12446   glProgramUniform3ui: TglProgramUniform3ui;
12447   glProgramUniform3uiv: TglProgramUniform3uiv;
12448   glProgramUniform4i: TglProgramUniform4i;
12449   glProgramUniform4iv: TglProgramUniform4iv;
12450   glProgramUniform4f: TglProgramUniform4f;
12451   glProgramUniform4fv: TglProgramUniform4fv;
12452   glProgramUniform4d: TglProgramUniform4d;
12453   glProgramUniform4dv: TglProgramUniform4dv;
12454   glProgramUniform4ui: TglProgramUniform4ui;
12455   glProgramUniform4uiv: TglProgramUniform4uiv;
12456   glProgramUniformMatrix2fv: TglProgramUniformMatrix2fv;
12457   glProgramUniformMatrix3fv: TglProgramUniformMatrix3fv;
12458   glProgramUniformMatrix4fv: TglProgramUniformMatrix4fv;
12459   glProgramUniformMatrix2dv: TglProgramUniformMatrix2dv;
12460   glProgramUniformMatrix3dv: TglProgramUniformMatrix3dv;
12461   glProgramUniformMatrix4dv: TglProgramUniformMatrix4dv;
12462   glProgramUniformMatrix2x3fv: TglProgramUniformMatrix2x3fv;
12463   glProgramUniformMatrix3x2fv: TglProgramUniformMatrix3x2fv;
12464   glProgramUniformMatrix2x4fv: TglProgramUniformMatrix2x4fv;
12465   glProgramUniformMatrix4x2fv: TglProgramUniformMatrix4x2fv;
12466   glProgramUniformMatrix3x4fv: TglProgramUniformMatrix3x4fv;
12467   glProgramUniformMatrix4x3fv: TglProgramUniformMatrix4x3fv;
12468   glProgramUniformMatrix2x3dv: TglProgramUniformMatrix2x3dv;
12469   glProgramUniformMatrix3x2dv: TglProgramUniformMatrix3x2dv;
12470   glProgramUniformMatrix2x4dv: TglProgramUniformMatrix2x4dv;
12471   glProgramUniformMatrix4x2dv: TglProgramUniformMatrix4x2dv;
12472   glProgramUniformMatrix3x4dv: TglProgramUniformMatrix3x4dv;
12473   glProgramUniformMatrix4x3dv: TglProgramUniformMatrix4x3dv;
12474   glValidateProgramPipeline: TglValidateProgramPipeline;
12475   glGetProgramPipelineInfoLog: TglGetProgramPipelineInfoLog;
12476
12477   // GL_ARB_vertex_attrib_64bit
12478   glVertexAttribL1d: TglVertexAttribL1d;
12479   glVertexAttribL2d: TglVertexAttribL2d;
12480   glVertexAttribL3d: TglVertexAttribL3d;
12481   glVertexAttribL4d: TglVertexAttribL4d;
12482   glVertexAttribL1dv: TglVertexAttribL1dv;
12483   glVertexAttribL2dv: TglVertexAttribL2dv;
12484   glVertexAttribL3dv: TglVertexAttribL3dv;
12485   glVertexAttribL4dv: TglVertexAttribL4dv;
12486   glVertexAttribLPointer: TglVertexAttribLPointer;
12487   glGetVertexAttribLdv: TglGetVertexAttribLdv;
12488
12489   // GL_ARB_viewport_array
12490   glViewportArrayv: TglViewportArrayv;
12491   glViewportIndexedf: TglViewportIndexedf;
12492   glViewportIndexedfv: TglViewportIndexedfv;
12493   glScissorArrayv: TglScissorArrayv;
12494   glScissorIndexed: TglScissorIndexed;
12495   glScissorIndexedv: TglScissorIndexedv;
12496   glDepthRangeArrayv: TglDepthRangeArrayv;
12497   glDepthRangeIndexed: TglDepthRangeIndexed;
12498   glGetFloati_v: TglGetFloati_v;
12499   glGetDoublei_v: TglGetDoublei_v;
12500
12501   // GL 4.2
12502
12503   // GL_ARB_base_instance
12504   glDrawArraysInstancedBaseInstance : TglDrawArraysInstancedBaseInstance;
12505   glDrawElementsInstancedBaseInstance : TglDrawElementsInstancedBaseInstance;
12506   glDrawElementsInstancedBaseVertexBaseInstance : TglDrawElementsInstancedBaseVertexBaseInstance;
12507
12508   // GL_ARB_transform_feedback_instanced
12509   glDrawTransformFeedbackInstanced : TglDrawTransformFeedbackInstanced;
12510   glDrawTransformFeedbackStreamInstanced : TglDrawTransformFeedbackStreamInstanced;
12511
12512   // GL_ARB_internalformat_query
12513   glGetInternalformativ : TglGetInternalformativ;
12514
12515   // GL_ARB_shader_atomic_counters
12516   glGetActiveAtomicCounterBufferiv : TglGetActiveAtomicCounterBufferiv;
12517
12518   /// GL_ARB_shader_image_load_store
12519   glBindImageTexture : TglBindImageTexture;
12520   glMemoryBarrier : TglMemoryBarrier;
12521
12522   // GL_ARB_texture_storage
12523   glTexStorage1D : TglTexStorage1D;
12524   glTexStorage2D : TglTexStorage2D;
12525   glTexStorage3D : TglTexStorage3D;
12526   glTextureStorage1DEXT : TglTextureStorage1DEXT;
12527   glTextureStorage2DEXT : TglTextureStorage2DEXT;
12528   glTextureStorage3DEXT : TglTextureStorage3DEXT;
12529
12530
12531   // GL 4.3
12532     // GL_KHR_debug
12533     glDebugMessageControl : TglDebugMessageControl;
12534     glDebugMessageInsert : TglDebugMessageInsert;
12535     glDebugMessageCallback : TglDebugMessageCallback;
12536     glGetDebugMessageLog : TglGetDebugMessageLog;
12537     glPushDebugGroup : TglPushDebugGroup;
12538     glPopDebugGroup : TglPopDebugGroup;
12539     glObjectLabel : TglObjectLabel;
12540     glGetObjectLabel : TglGetObjectLabel;
12541     glObjectPtrLabel : TglObjectPtrLabel;
12542     glGetObjectPtrLabel : TglGetObjectPtrLabel;
12543     // GL_ARB_clear_buffer_object
12544     glClearBufferData : TglClearBufferData;
12545     glClearBufferSubData : TglClearBufferSubData;
12546     glClearNamedBufferDataEXT : TglClearNamedBufferDataEXT;
12547     glClearNamedBufferSubDataEXT : TglClearNamedBufferSubDataEXT;
12548     // GL_ARB_compute_shader
12549     glDispatchCompute : TglDispatchCompute;
12550     glDispatchComputeIndirect : TglDispatchComputeIndirect;
12551     // GL_ARB_copy_image
12552     glCopyImageSubData : TglCopyImageSubData;
12553     // GL_ARB_framebuffer_no_attachments
12554     glFramebufferParameteri : TglFramebufferParameteri;
12555     glGetFramebufferParameteriv : TglGetFramebufferParameteriv;
12556     glNamedFramebufferParameteriEXT : TglNamedFramebufferParameteriEXT;
12557     glGetNamedFramebufferParameterivEXT : TglGetNamedFramebufferParameterivEXT;
12558     // GL_ARB_internalformat_query2
12559     glGetInternalformati64v : TglGetInternalformati64v;
12560     // GL_ARB_invalidate_subdata
12561     glInvalidateTexSubImage : TglInvalidateTexSubImage;
12562     glInvalidateTexImage : TglInvalidateTexImage;
12563     glInvalidateBufferSubData : TglInvalidateBufferSubData;
12564     glInvalidateBufferData : TglInvalidateBufferData;
12565     glInvalidateFramebuffer : TglInvalidateFramebuffer;
12566     glInvalidateSubFramebuffer : TglInvalidateSubFramebuffer;
12567     // GL_ARB_multi_draw_indirect
12568     glMultiDrawArraysIndirect : TglMultiDrawArraysIndirect;
12569     glMultiDrawElementsIndirect : TglMultiDrawElementsIndirect;
12570     // GL_ARB_program_interface_query
12571     glGetProgramInterfaceiv : TglGetProgramInterfaceiv;
12572     glGetProgramResourceIndex : TglGetProgramResourceIndex;
12573     glGetProgramResourceName : TglGetProgramResourceName;
12574     glGetProgramResourceiv : TglGetProgramResourceiv;
12575     glGetProgramResourceLocation : TglGetProgramResourceLocation;
12576     glGetProgramResourceLocationIndex : TglGetProgramResourceLocationIndex;
12577     // GL_ARB_shader_storage_buffer_object
12578     glShaderStorageBlockBinding : TglShaderStorageBlockBinding;
12579     // GL_ARB_texture_buffer_range
12580     glTexBufferRange : TglTexBufferRange;
12581     glTextureBufferRangeEXT : TglTextureBufferRangeEXT;
12582     // GL_ARB_texture_storage_multisample
12583     glTexStorage2DMultisample : TglTexStorage2DMultisample;
12584     glTexStorage3DMultisample : TglTexStorage3DMultisample;
12585     glTextureStorage2DMultisampleEXT : TglTextureStorage2DMultisampleEXT;
12586     glTextureStorage3DMultisampleEXT : TglTextureStorage3DMultisampleEXT;
12587     // GL_ARB_texture_view
12588     glTextureView : TglTextureView;
12589     // GL_ARB_vertex_attrib_binding
12590     glBindVertexBuffer : TglBindVertexBuffer;
12591     glVertexAttribFormat : TglVertexAttribFormat;
12592     glVertexAttribIFormat : TglVertexAttribIFormat;
12593     glVertexAttribLFormat : TglVertexAttribLFormat;
12594     glVertexAttribBinding : TglVertexAttribBinding;
12595     glVertexBindingDivisor : TglVertexBindingDivisor;
12596     glVertexArrayBindVertexBufferEXT : TglVertexArrayBindVertexBufferEXT;
12597     glVertexArrayVertexAttribFormatEXT : TglVertexArrayVertexAttribFormatEXT;
12598     glVertexArrayVertexAttribIFormatEXT : TglVertexArrayVertexAttribIFormatEXT;
12599     glVertexArrayVertexAttribLFormatEXT : TglVertexArrayVertexAttribLFormatEXT;
12600     glVertexArrayVertexAttribBindingEXT : TglVertexArrayVertexAttribBindingEXT;
12601     glVertexArrayVertexBindingDivisorEXT : TglVertexArrayVertexBindingDivisorEXT;
12602   // END GL 4.3
12603
12604
12605   // GL 4.4
12606     glBufferStorage : TglBufferStorage;
12607     glClearTexImage : TglClearTexImage;
12608     glClearTexSubImage : TglClearTexSubImage;
12609     glBindBuffersBase : TglBindBuffersBase;
12610     glBindBuffersRange : TglBindBuffersRange;
12611     glBindTextures : TglBindTextures;
12612     glBindSamplers : TglBindSamplers;
12613     glBindImageTextures : TglBindImageTextures;
12614     glBindVertexBuffers : TglBindVertexBuffers;
12615     glTexPageCommitmentARB : TglTexPageCommitmentARB;
12616
12617   // GL 4.5
12618   glClipControl : TglClipControl;
12619   glCreateTransformFeedbacks : TglCreateTransformFeedbacks;
12620   glTransformFeedbackBufferBase : TglTransformFeedbackBufferBase;
12621   glTransformFeedbackBufferRange : TglTransformFeedbackBufferRange;
12622   glGetTransformFeedbackiv : TglGetTransformFeedbackiv;
12623   glGetTransformFeedbacki_v : TglGetTransformFeedbacki_v;
12624   glGetTransformFeedbacki64_v : TglGetTransformFeedbacki64_v;
12625   glCreateBuffers : TglCreateBuffers;
12626   glNamedBufferStorage : TglNamedBufferStorage;
12627   glNamedBufferData : TglNamedBufferData;
12628   glNamedBufferSubData : TglNamedBufferSubData;
12629   glCopyNamedBufferSubData : TglCopyNamedBufferSubData;
12630   glClearNamedBufferData : TglClearNamedBufferData;
12631   glClearNamedBufferSubData : TglClearNamedBufferSubData;
12632   glMapNamedBuffer : TglMapNamedBuffer;
12633   glMapNamedBufferRange : TglMapNamedBufferRange;
12634   glUnmapNamedBuffer : TglUnmapNamedBuffer;
12635   glFlushMappedNamedBufferRange : TglFlushMappedNamedBufferRange;
12636   glGetNamedBufferParameteriv : TglGetNamedBufferParameteriv;
12637   glGetNamedBufferParameteri64v : TglGetNamedBufferParameteri64v;
12638   glGetNamedBufferPointerv : TglGetNamedBufferPointerv;
12639   glGetNamedBufferSubData : TglGetNamedBufferSubData;
12640   glCreateFramebuffers : TglCreateFramebuffers;
12641   glNamedFramebufferRenderbuffer : TglNamedFramebufferRenderbuffer;
12642   glNamedFramebufferParameteri : TglNamedFramebufferParameteri;
12643   glNamedFramebufferTexture : TglNamedFramebufferTexture;
12644   glNamedFramebufferTextureLayer : TglNamedFramebufferTextureLayer;
12645   glNamedFramebufferDrawBuffer : TglNamedFramebufferDrawBuffer;
12646   glNamedFramebufferDrawBuffers : TglNamedFramebufferDrawBuffers;
12647   glNamedFramebufferReadBuffer : TglNamedFramebufferReadBuffer;
12648   glInvalidateNamedFramebufferData : TglInvalidateNamedFramebufferData;
12649   glInvalidateNamedFramebufferSubData : TglInvalidateNamedFramebufferSubData;
12650   glClearNamedFramebufferiv : TglClearNamedFramebufferiv;
12651   glClearNamedFramebufferuiv : TglClearNamedFramebufferuiv;
12652   glClearNamedFramebufferfv : TglClearNamedFramebufferfv;
12653   glClearNamedFramebufferfi : TglClearNamedFramebufferfi;
12654   glBlitNamedFramebuffer : TglBlitNamedFramebuffer;
12655   glCheckNamedFramebufferStatus : TglCheckNamedFramebufferStatus;
12656   glGetNamedFramebufferParameteriv : TglGetNamedFramebufferParameteriv;
12657   glGetNamedFramebufferAttachmentParameteriv : TglGetNamedFramebufferAttachmentParameteriv;
12658   glCreateRenderbuffers : TglCreateRenderbuffers;
12659   glNamedRenderbufferStorage : TglNamedRenderbufferStorage;
12660   glNamedRenderbufferStorageMultisample : TglNamedRenderbufferStorageMultisample;
12661   glGetNamedRenderbufferParameteriv : TglGetNamedRenderbufferParameteriv;
12662   glCreateTextures : TglCreateTextures;
12663   glTextureBuffer : TglTextureBuffer;
12664   glTextureBufferRange : TglTextureBufferRange;
12665   glTextureStorage1D : TglTextureStorage1D;
12666   glTextureStorage2D : TglTextureStorage2D;
12667   glTextureStorage3D : TglTextureStorage3D;
12668   glTextureStorage2DMultisample : TglTextureStorage2DMultisample;
12669   glTextureStorage3DMultisample : TglTextureStorage3DMultisample;
12670   glTextureSubImage1D : TglTextureSubImage1D;
12671   glTextureSubImage2D : TglTextureSubImage2D;
12672   glTextureSubImage3D : TglTextureSubImage3D;
12673   glCompressedTextureSubImage1D : TglCompressedTextureSubImage1D;
12674   glCompressedTextureSubImage2D : TglCompressedTextureSubImage2D;
12675   glCompressedTextureSubImage3D : TglCompressedTextureSubImage3D;
12676   glCopyTextureSubImage1D : TglCopyTextureSubImage1D;
12677   glCopyTextureSubImage2D : TglCopyTextureSubImage2D;
12678   glCopyTextureSubImage3D : TglCopyTextureSubImage3D;
12679   glTextureParameterf : TglTextureParameterf;
12680   glTextureParameterfv : TglTextureParameterfv;
12681   glTextureParameteri : TglTextureParameteri;
12682   glTextureParameterIiv : TglTextureParameterIiv;
12683   glTextureParameterIuiv : TglTextureParameterIuiv;
12684   glTextureParameteriv : TglTextureParameteriv;
12685   glGenerateTextureMipmap : TglGenerateTextureMipmap;
12686   glBindTextureUnit : TglBindTextureUnit;
12687   glGetTextureImage : TglGetTextureImage;
12688   glGetCompressedTextureImage : TglGetCompressedTextureImage;
12689   glGetTextureLevelParameterfv : TglGetTextureLevelParameterfv;
12690   glGetTextureLevelParameteriv : TglGetTextureLevelParameteriv;
12691   glGetTextureParameterfv : TglGetTextureParameterfv;
12692   glGetTextureParameterIiv : TglGetTextureParameterIiv;
12693   glGetTextureParameterIuiv : TglGetTextureParameterIuiv;
12694   glGetTextureParameteriv : TglGetTextureParameteriv;
12695   glCreateVertexArrays : TglCreateVertexArrays;
12696   glDisableVertexArrayAttrib : TglDisableVertexArrayAttrib;
12697   glEnableVertexArrayAttrib : TglEnableVertexArrayAttrib;
12698   glVertexArrayElementBuffer : TglVertexArrayElementBuffer;
12699   glVertexArrayVertexBuffer : TglVertexArrayVertexBuffer;
12700   glVertexArrayVertexBuffers : TglVertexArrayVertexBuffers;
12701   glVertexArrayAttribBinding : TglVertexArrayAttribBinding;
12702   glVertexArrayAttribFormat : TglVertexArrayAttribFormat;
12703   glVertexArrayAttribIFormat : TglVertexArrayAttribIFormat;
12704   glVertexArrayAttribLFormat : TglVertexArrayAttribLFormat;
12705   glVertexArrayBindingDivisor : TglVertexArrayBindingDivisor;
12706   glGetVertexArrayiv : TglGetVertexArrayiv;
12707   glGetVertexArrayIndexediv : TglGetVertexArrayIndexediv;
12708   glGetVertexArrayIndexed64iv : TglGetVertexArrayIndexed64iv;
12709   glCreateSamplers : TglCreateSamplers;
12710   glCreateProgramPipelines : TglCreateProgramPipelines;
12711   glCreateQueries : TglCreateQueries;
12712   glMemoryBarrierByRegion : TglMemoryBarrierByRegion;
12713   glGetTextureSubImage : TglGetTextureSubImage;
12714   glGetCompressedTextureSubImage : TglGetCompressedTextureSubImage;
12715   glGetGraphicsResetStatus : TglGetGraphicsResetStatus;
12716   glGetnCompressedTexImage : TglGetnCompressedTexImage;
12717   glGetnTexImage : TglGetnTexImage;
12718   glGetnUniformdv : TglGetnUniformdv;
12719   glGetnUniformfv : TglGetnUniformfv;
12720   glGetnUniformiv : TglGetnUniformiv;
12721   glGetnUniformuiv : TglGetnUniformuiv;
12722   glReadnPixels : TglReadnPixels;
12723   glGetnMapdv : TglGetnMapdv;
12724   glGetnMapfv : TglGetnMapfv;
12725   glGetnMapiv : TglGetnMapiv;
12726   glGetnPixelMapfv : TglGetnPixelMapfv;
12727   glGetnPixelMapuiv : TglGetnPixelMapuiv;
12728   glGetnPixelMapusv : TglGetnPixelMapusv;
12729   glGetnPolygonStipple : TglGetnPolygonStipple;
12730   glGetnColorTable : TglGetnColorTable;
12731   glGetnConvolutionFilter : TglGetnConvolutionFilter;
12732   glGetnSeparableFilter : TglGetnSeparableFilter;
12733   glGetnHistogram : TglGetnHistogram;
12734   glGetnMinmax : TglGetnMinmax;
12735   glTextureBarrier : TglTextureBarrier;
12736
12737   // GL_ARB_sparse_buffer
12738   glBufferPageCommitmentARB : TglBufferPageCommitmentARB;
12739   glNamedBufferPageCommitmentEXT : TglNamedBufferPageCommitmentEXT;
12740   glNamedBufferPageCommitmentARB : TglNamedBufferPageCommitmentARB;
12741
12742   // GL_KHR_blend_equation_advanced
12743   glBlendBarrierKHR : TglBlendBarrierKHR;
12744
12745   // GL_ARB_cl_event
12746   glCreateSyncFromCLeventARB: TglCreateSyncFromCLeventARB;
12747
12748   // GL_ARB_debug_output
12749   glDebugMessageControlARB: TglDebugMessageControlARB;
12750   glDebugMessageInsertARB: TglDebugMessageInsertARB;
12751   glDebugMessageCallbackARB: TglDebugMessageCallbackARB;
12752   glGetDebugMessageLogARB: TglGetDebugMessageLogARB;
12753
12754   // GL_ARB_compute_variable_group_size
12755   glDispatchComputeGroupSizeARB : TglDispatchComputeGroupSizeARB;
12756
12757   // GL_ARB_robustness
12758   glGetGraphicsResetStatusARB: TglGetGraphicsResetStatusARB;
12759   glGetnMapdvARB: TglGetnMapdvARB;
12760   glGetnMapfvARB: TglGetnMapfvARB;
12761   glGetnMapivARB: TglGetnMapivARB;
12762   glGetnPixelMapfvARB: TglGetnPixelMapfvARB;
12763   glGetnPixelMapuivARB: TglGetnPixelMapuivARB;
12764   glGetnPixelMapusvARB: TglGetnPixelMapusvARB;
12765   glGetnPolygonStippleARB: TglGetnPolygonStippleARB;
12766   glGetnColorTableARB: TglGetnColorTableARB;
12767   glGetnConvolutionFilterARB: TglGetnConvolutionFilterARB;
12768   glGetnSeparableFilterARB: TglGetnSeparableFilterARB;
12769   glGetnHistogramARB: TglGetnHistogramARB;
12770   glGetnMinmaxARB: TglGetnMinmaxARB;
12771   glGetnTexImageARB: TglGetnTexImageARB;
12772   glReadnPixelsARB: TglReadnPixelsARB;
12773   glGetnCompressedTexImageARB: TglGetnCompressedTexImageARB;
12774   glGetnUniformfvARB: TglGetnUniformfvARB;
12775   glGetnUniformivARB: TglGetnUniformivARB;
12776   glGetnUniformuivARB: TglGetnUniformuivARB;
12777   glGetnUniformdvARB: TglGetnUniformdvARB;
12778
12779   // GL_ATI_draw_buffers
12780   glDrawBuffersATI: TglDrawBuffersATI;
12781
12782   // GL_ATI_element_array
12783   glElementPointerATI: TglElementPointerATI;
12784   glDrawElementArrayATI: TglDrawElementArrayATI;
12785   glDrawRangeElementArrayATI: TglDrawRangeElementArrayATI;
12786
12787   // GL_ATI_envmap_bumpmap
12788   glTexBumpParameterivATI: TglTexBumpParameterivATI;
12789   glTexBumpParameterfvATI: TglTexBumpParameterfvATI;
12790   glGetTexBumpParameterivATI: TglGetTexBumpParameterivATI;
12791   glGetTexBumpParameterfvATI: TglGetTexBumpParameterfvATI;
12792
12793   // GL_ATI_fragment_shader
12794   glGenFragmentShadersATI: TglGenFragmentShadersATI;
12795   glBindFragmentShaderATI: TglBindFragmentShaderATI;
12796   glDeleteFragmentShaderATI: TglDeleteFragmentShaderATI;
12797   glBeginFragmentShaderATI: TglBeginFragmentShaderATI;
12798   glEndFragmentShaderATI: TglEndFragmentShaderATI;
12799   glPassTexCoordATI: TglPassTexCoordATI;
12800   glSampleMapATI: TglSampleMapATI;
12801   glColorFragmentOp1ATI: TglColorFragmentOp1ATI;
12802   glColorFragmentOp2ATI: TglColorFragmentOp2ATI;
12803   glColorFragmentOp3ATI: TglColorFragmentOp3ATI;
12804   glAlphaFragmentOp1ATI: TglAlphaFragmentOp1ATI;
12805   glAlphaFragmentOp2ATI: TglAlphaFragmentOp2ATI;
12806   glAlphaFragmentOp3ATI: TglAlphaFragmentOp3ATI;
12807   glSetFragmentShaderConstantATI: TglSetFragmentShaderConstantATI;
12808
12809   // GL_ATI_map_object_buffer
12810   glMapObjectBufferATI: TglMapObjectBufferATI;
12811   glUnmapObjectBufferATI: TglUnmapObjectBufferATI;
12812
12813   // GL_ATI_pn_triangles
12814   glPNTrianglesiATI: TglPNTrianglesiATI;
12815   glPNTrianglesfATI: TglPNTrianglesfATI;
12816
12817   // GL_ATI_separate_stencil
12818   glStencilOpSeparateATI: TglStencilOpSeparateATI;
12819   glStencilFuncSeparateATI: TglStencilFuncSeparateATI;
12820
12821   // GL_ATI_vertex_array_object
12822   glNewObjectBufferATI: TglNewObjectBufferATI;
12823   glIsObjectBufferATI: TglIsObjectBufferATI;
12824   glUpdateObjectBufferATI: TglUpdateObjectBufferATI;
12825   glGetObjectBufferfvATI: TglGetObjectBufferfvATI;
12826   glGetObjectBufferivATI: TglGetObjectBufferivATI;
12827   glFreeObjectBufferATI: TglFreeObjectBufferATI;
12828   glArrayObjectATI: TglArrayObjectATI;
12829   glGetArrayObjectfvATI: TglGetArrayObjectfvATI;
12830   glGetArrayObjectivATI: TglGetArrayObjectivATI;
12831   glVariantArrayObjectATI: TglVariantArrayObjectATI;
12832   glGetVariantArrayObjectfvATI: TglGetVariantArrayObjectfvATI;
12833   glGetVariantArrayObjectivATI: TglGetVariantArrayObjectivATI;
12834   glVertexAttribArrayObjectATI: TglVertexAttribArrayObjectATI;
12835   glGetVertexAttribArrayObjectfvATI: TglGetVertexAttribArrayObjectfvATI;
12836   glGetVertexAttribArrayObjectivATI: TglGetVertexAttribArrayObjectivATI;
12837
12838   // GL_ATI_vertex_streams
12839   glVertexStream1sATI: TglVertexStream1sATI;
12840   glVertexStream1svATI: TglVertexStream1svATI;
12841   glVertexStream1iATI: TglVertexStream1iATI;
12842   glVertexStream1ivATI: TglVertexStream1ivATI;
12843   glVertexStream1fATI: TglVertexStream1fATI;
12844   glVertexStream1fvATI: TglVertexStream1fvATI;
12845   glVertexStream1dATI: TglVertexStream1dATI;
12846   glVertexStream1dvATI: TglVertexStream1dvATI;
12847   glVertexStream2sATI: TglVertexStream2sATI;
12848   glVertexStream2svATI: TglVertexStream2svATI;
12849   glVertexStream2iATI: TglVertexStream2iATI;
12850   glVertexStream2ivATI: TglVertexStream2ivATI;
12851   glVertexStream2fATI: TglVertexStream2fATI;
12852   glVertexStream2fvATI: TglVertexStream2fvATI;
12853   glVertexStream2dATI: TglVertexStream2dATI;
12854   glVertexStream2dvATI: TglVertexStream2dvATI;
12855   glVertexStream3sATI: TglVertexStream3sATI;
12856   glVertexStream3svATI: TglVertexStream3svATI;
12857   glVertexStream3iATI: TglVertexStream3iATI;
12858   glVertexStream3ivATI: TglVertexStream3ivATI;
12859   glVertexStream3fATI: TglVertexStream3fATI;
12860   glVertexStream3fvATI: TglVertexStream3fvATI;
12861   glVertexStream3dATI: TglVertexStream3dATI;
12862   glVertexStream3dvATI: TglVertexStream3dvATI;
12863   glVertexStream4sATI: TglVertexStream4sATI;
12864   glVertexStream4svATI: TglVertexStream4svATI;
12865   glVertexStream4iATI: TglVertexStream4iATI;
12866   glVertexStream4ivATI: TglVertexStream4ivATI;
12867   glVertexStream4fATI: TglVertexStream4fATI;
12868   glVertexStream4fvATI: TglVertexStream4fvATI;
12869   glVertexStream4dATI: TglVertexStream4dATI;
12870   glVertexStream4dvATI: TglVertexStream4dvATI;
12871   glNormalStream3bATI: TglNormalStream3bATI;
12872   glNormalStream3bvATI: TglNormalStream3bvATI;
12873   glNormalStream3sATI: TglNormalStream3sATI;
12874   glNormalStream3svATI: TglNormalStream3svATI;
12875   glNormalStream3iATI: TglNormalStream3iATI;
12876   glNormalStream3ivATI: TglNormalStream3ivATI;
12877   glNormalStream3fATI: TglNormalStream3fATI;
12878   glNormalStream3fvATI: TglNormalStream3fvATI;
12879   glNormalStream3dATI: TglNormalStream3dATI;
12880   glNormalStream3dvATI: TglNormalStream3dvATI;
12881   glClientActiveVertexStreamATI: TglClientActiveVertexStreamATI;
12882   glVertexBlendEnviATI: TglVertexBlendEnviATI;
12883   glVertexBlendEnvfATI: TglVertexBlendEnvfATI;
12884
12885   // GL_AMD_performance_monitor
12886   glGetPerfMonitorGroupsAMD: TglGetPerfMonitorGroupsAMD;
12887   glGetPerfMonitorCountersAMD: TglGetPerfMonitorCountersAMD;
12888   glGetPerfMonitorGroupStringAMD: TglGetPerfMonitorGroupStringAMD;
12889   glGetPerfMonitorCounterStringAMD: TglGetPerfMonitorCounterStringAMD;
12890   glGetPerfMonitorCounterInfoAMD: TglGetPerfMonitorCounterInfoAMD;
12891   glGenPerfMonitorsAMD: TglGenPerfMonitorsAMD;
12892   glDeletePerfMonitorsAMD: TglDeletePerfMonitorsAMD;
12893   glSelectPerfMonitorCountersAMD: TglSelectPerfMonitorCountersAMD;
12894   glBeginPerfMonitorAMD: TglBeginPerfMonitorAMD;
12895   glEndPerfMonitorAMD: TglEndPerfMonitorAMD;
12896   glGetPerfMonitorCounterDataAMD: TglGetPerfMonitorCounterDataAMD;
12897
12898   // GL_AMD_vertex_shader_tesselator
12899   glTessellationFactorAMD: TglTessellationFactorAMD;
12900   glTessellationModeAMD: TglTessellationModeAMD;
12901
12902   // GL_AMD_draw_buffers_blend
12903   glBlendFuncIndexedAMD: TglBlendFuncIndexedAMD;
12904   glBlendFuncSeparateIndexedAMD: TglBlendFuncSeparateIndexedAMD;
12905   glBlendEquationIndexedAMD: TglBlendEquationIndexedAMD;
12906   glBlendEquationSeparateIndexedAMD: TglBlendEquationSeparateIndexedAMD;
12907
12908   // GL_AMD_name_gen_delete
12909   glGenNamesAMD: TglGenNamesAMD;
12910   glDeleteNamesAMD: TglDeleteNamesAMD;
12911   glIsNameAMD: TglIsNameAMD;
12912
12913   // GL_AMD_debug_output
12914   glDebugMessageEnableAMD: TglDebugMessageEnableAMD;
12915   glDebugMessageInsertAMD: TglDebugMessageInsertAMD;
12916   glDebugMessageCallbackAMD: TglDebugMessageCallbackAMD;
12917   glGetDebugMessageLogAMD: TglGetDebugMessageLogAMD;
12918
12919   // GL_EXT_blend_color
12920   glBlendColorEXT: TglBlendColorEXT;
12921
12922   // GL_EXT_blend_func_separate
12923   glBlendFuncSeparateEXT: TglBlendFuncSeparateEXT;
12924
12925   // GL_EXT_blend_minmax
12926   glBlendEquationEXT: TglBlendEquationEXT;
12927
12928   // GL_EXT_color_subtable
12929   glColorSubTableEXT: TglColorSubTableEXT;
12930   glCopyColorSubTableEXT: TglCopyColorSubTableEXT;
12931
12932   // GL_EXT_compiled_vertex_array
12933   glLockArraysEXT: TglLockArraysEXT;
12934   glUnlockArraysEXT: TglUnlockArraysEXT;
12935
12936   // GL_EXT_convolution
12937   glConvolutionFilter1DEXT: TglConvolutionFilter1DEXT;
12938   glConvolutionFilter2DEXT: TglConvolutionFilter2DEXT;
12939   glConvolutionParameterfEXT: TglConvolutionParameterfEXT;
12940   glConvolutionParameterfvEXT: TglConvolutionParameterfvEXT;
12941   glConvolutionParameteriEXT: TglConvolutionParameteriEXT;
12942   glConvolutionParameterivEXT: TglConvolutionParameterivEXT;
12943   glCopyConvolutionFilter1DEXT: TglCopyConvolutionFilter1DEXT;
12944   glCopyConvolutionFilter2DEXT: TglCopyConvolutionFilter2DEXT;
12945   glGetConvolutionFilterEXT: TglGetConvolutionFilterEXT;
12946   glGetConvolutionParameterfvEXT: TglGetConvolutionParameterfvEXT;
12947   glGetConvolutionParameterivEXT: TglGetConvolutionParameterivEXT;
12948   glGetSeparableFilterEXT: TglGetSeparableFilterEXT;
12949   glSeparableFilter2DEXT: TglSeparableFilter2DEXT;
12950
12951   // GL_EXT_coordinate_frame
12952   glTangent3bEXT: TglTangent3bEXT;
12953   glTangent3bvEXT: TglTangent3bvEXT;
12954   glTangent3dEXT: TglTangent3dEXT;
12955   glTangent3dvEXT: TglTangent3dvEXT;
12956   glTangent3fEXT: TglTangent3fEXT;
12957   glTangent3fvEXT: TglTangent3fvEXT;
12958   glTangent3iEXT: TglTangent3iEXT;
12959   glTangent3ivEXT: TglTangent3ivEXT;
12960   glTangent3sEXT: TglTangent3sEXT;
12961   glTangent3svEXT: TglTangent3svEXT;
12962   glBinormal3bEXT: TglBinormal3bEXT;
12963   glBinormal3bvEXT: TglBinormal3bvEXT;
12964   glBinormal3dEXT: TglBinormal3dEXT;
12965   glBinormal3dvEXT: TglBinormal3dvEXT;
12966   glBinormal3fEXT: TglBinormal3fEXT;
12967   glBinormal3fvEXT: TglBinormal3fvEXT;
12968   glBinormal3iEXT: TglBinormal3iEXT;
12969   glBinormal3ivEXT: TglBinormal3ivEXT;
12970   glBinormal3sEXT: TglBinormal3sEXT;
12971   glBinormal3svEXT: TglBinormal3svEXT;
12972   glTangentPointerEXT: TglTangentPointerEXT;
12973   glBinormalPointerEXT: TglBinormalPointerEXT;
12974
12975   // GL_EXT_copy_texture
12976   glCopyTexImage1DEXT: TglCopyTexImage1DEXT;
12977   glCopyTexImage2DEXT: TglCopyTexImage2DEXT;
12978   glCopyTexSubImage1DEXT: TglCopyTexSubImage1DEXT;
12979   glCopyTexSubImage2DEXT: TglCopyTexSubImage2DEXT;
12980   glCopyTexSubImage3DEXT: TglCopyTexSubImage3DEXT;
12981
12982   // GL_EXT_cull_vertex
12983   glCullParameterdvEXT: TglCullParameterdvEXT;
12984   glCullParameterfvEXT: TglCullParameterfvEXT;
12985
12986   // GL_EXT_draw_range_elements
12987   glDrawRangeElementsEXT: TglDrawRangeElementsEXT;
12988
12989   // GL_EXT_fog_coord
12990   glFogCoordfEXT: TglFogCoordfEXT;
12991   glFogCoordfvEXT: TglFogCoordfvEXT;
12992   glFogCoorddEXT: TglFogCoorddEXT;
12993   glFogCoorddvEXT: TglFogCoorddvEXT;
12994   glFogCoordPointerEXT: TglFogCoordPointerEXT;
12995
12996   // GL_EXT_framebuffer_object
12997   glIsRenderbufferEXT: TglIsRenderbufferEXT;
12998   glBindRenderbufferEXT: TglBindRenderbufferEXT;
12999   glDeleteRenderbuffersEXT: TglDeleteRenderbuffersEXT;
13000   glGenRenderbuffersEXT: TglGenRenderbuffersEXT;
13001   glRenderbufferStorageEXT: TglRenderbufferStorageEXT;
13002   glGetRenderbufferParameterivEXT: TglGetRenderbufferParameterivEXT;
13003   glIsFramebufferEXT: TglIsFramebufferEXT;
13004   glBindFramebufferEXT: TglBindFramebufferEXT;
13005   glDeleteFramebuffersEXT: TglDeleteFramebuffersEXT;
13006   glGenFramebuffersEXT: TglGenFramebuffersEXT;
13007   glCheckFramebufferStatusEXT: TglCheckFramebufferStatusEXT;
13008   glFramebufferTexture1DEXT: TglFramebufferTexture1DEXT;
13009   glFramebufferTexture2DEXT: TglFramebufferTexture2DEXT;
13010   glFramebufferTexture3DEXT: TglFramebufferTexture3DEXT;
13011   glFramebufferRenderbufferEXT: TglFramebufferRenderbufferEXT;
13012   glGetFramebufferAttachmentParameterivEXT: TglGetFramebufferAttachmentParameterivEXT;
13013   glGenerateMipmapEXT: TglGenerateMipmapEXT;
13014
13015   // GL_EXT_histogram
13016   glGetHistogramEXT: TglGetHistogramEXT;
13017   glGetHistogramParameterfvEXT: TglGetHistogramParameterfvEXT;
13018   glGetHistogramParameterivEXT: TglGetHistogramParameterivEXT;
13019   glGetMinmaxEXT: TglGetMinmaxEXT;
13020   glGetMinmaxParameterfvEXT: TglGetMinmaxParameterfvEXT;
13021   glGetMinmaxParameterivEXT: TglGetMinmaxParameterivEXT;
13022   glHistogramEXT: TglHistogramEXT;
13023   glMinmaxEXT: TglMinmaxEXT;
13024   glResetHistogramEXT: TglResetHistogramEXT;
13025   glResetMinmaxEXT: TglResetMinmaxEXT;
13026
13027   // GL_EXT_index_func
13028   glIndexFuncEXT: TglIndexFuncEXT;
13029
13030   // GL_EXT_index_material
13031   glIndexMaterialEXT: TglIndexMaterialEXT;
13032
13033   // GL_EXT_light_texture
13034   glApplyTextureEXT: TglApplyTextureEXT;
13035   glTextureLightEXT: TglTextureLightEXT;
13036   glTextureMaterialEXT: TglTextureMaterialEXT;
13037
13038   // GL_EXT_multi_draw_arrays
13039   glMultiDrawArraysEXT: TglMultiDrawArraysEXT;
13040   glMultiDrawElementsEXT: TglMultiDrawElementsEXT;
13041
13042   // GL_EXT_multisample
13043   glSampleMaskEXT: TglSampleMaskEXT;
13044   glSamplePatternEXT: TglSamplePatternEXT;
13045
13046   // GL_EXT_paletted_texture
13047   glColorTableEXT: TglColorTableEXT;
13048   glGetColorTableEXT: TglGetColorTableEXT;
13049   glGetColorTableParameterivEXT: TglGetColorTableParameterivEXT;
13050   glGetColorTableParameterfvEXT: TglGetColorTableParameterfvEXT;
13051
13052   // GL_EXT_pixel_transform
13053   glPixelTransformParameteriEXT: TglPixelTransformParameteriEXT;
13054   glPixelTransformParameterfEXT: TglPixelTransformParameterfEXT;
13055   glPixelTransformParameterivEXT: TglPixelTransformParameterivEXT;
13056   glPixelTransformParameterfvEXT: TglPixelTransformParameterfvEXT;
13057
13058   // GL_EXT_point_parameters
13059   glPointParameterfEXT: TglPointParameterfEXT;
13060   glPointParameterfvEXT: TglPointParameterfvEXT;
13061
13062   // GL_EXT_polygon_offset
13063   glPolygonOffsetEXT: TglPolygonOffsetEXT;
13064
13065   // GL_EXT_secondary_color
13066   glSecondaryColor3bEXT: TglSecondaryColor3bEXT;
13067   glSecondaryColor3bvEXT: TglSecondaryColor3bvEXT;
13068   glSecondaryColor3dEXT: TglSecondaryColor3dEXT;
13069   glSecondaryColor3dvEXT: TglSecondaryColor3dvEXT;
13070   glSecondaryColor3fEXT: TglSecondaryColor3fEXT;
13071   glSecondaryColor3fvEXT: TglSecondaryColor3fvEXT;
13072   glSecondaryColor3iEXT: TglSecondaryColor3iEXT;
13073   glSecondaryColor3ivEXT: TglSecondaryColor3ivEXT;
13074   glSecondaryColor3sEXT: TglSecondaryColor3sEXT;
13075   glSecondaryColor3svEXT: TglSecondaryColor3svEXT;
13076   glSecondaryColor3ubEXT: TglSecondaryColor3ubEXT;
13077   glSecondaryColor3ubvEXT: TglSecondaryColor3ubvEXT;
13078   glSecondaryColor3uiEXT: TglSecondaryColor3uiEXT;
13079   glSecondaryColor3uivEXT: TglSecondaryColor3uivEXT;
13080   glSecondaryColor3usEXT: TglSecondaryColor3usEXT;
13081   glSecondaryColor3usvEXT: TglSecondaryColor3usvEXT;
13082   glSecondaryColorPointerEXT: TglSecondaryColorPointerEXT;
13083
13084   // GL_EXT_stencil_two_side
13085   glActiveStencilFaceEXT: TglActiveStencilFaceEXT;
13086
13087   // GL_EXT_subtexture
13088   glTexSubImage1DEXT: TglTexSubImage1DEXT;
13089   glTexSubImage2DEXT: TglTexSubImage2DEXT;
13090
13091   // GL_EXT_texture3D
13092   glTexImage3DEXT: TglTexImage3DEXT;
13093   glTexSubImage3DEXT: TglTexSubImage3DEXT;
13094
13095   // GL_EXT_texture_object
13096   glAreTexturesResidentEXT: TglAreTexturesResidentEXT;
13097   glBindTextureEXT: TglBindTextureEXT;
13098   glDeleteTexturesEXT: TglDeleteTexturesEXT;
13099   glGenTexturesEXT: TglGenTexturesEXT;
13100   glIsTextureEXT: TglIsTextureEXT;
13101   glPrioritizeTexturesEXT: TglPrioritizeTexturesEXT;
13102
13103   // GL_EXT_texture_perturb_normal
13104   glTextureNormalEXT: TglTextureNormalEXT;
13105
13106   // GL_EXT_vertex_array
13107   glArrayElementEXT: TglArrayElementEXT;
13108   glColorPointerEXT: TglColorPointerEXT;
13109   glDrawArraysEXT: TglDrawArraysEXT;
13110   glEdgeFlagPointerEXT: TglEdgeFlagPointerEXT;
13111   glGetPointervEXT: TglGetPointervEXT;
13112   glIndexPointerEXT: TglIndexPointerEXT;
13113   glNormalPointerEXT: TglNormalPointerEXT;
13114   glTexCoordPointerEXT: TglTexCoordPointerEXT;
13115   glVertexPointerEXT: TglVertexPointerEXT;
13116
13117   // GL_EXT_vertex_shader
13118   glBeginVertexShaderEXT: TglBeginVertexShaderEXT;
13119   glEndVertexShaderEXT: TglEndVertexShaderEXT;
13120   glBindVertexShaderEXT: TglBindVertexShaderEXT;
13121   glGenVertexShadersEXT: TglGenVertexShadersEXT;
13122   glDeleteVertexShaderEXT: TglDeleteVertexShaderEXT;
13123   glShaderOp1EXT: TglShaderOp1EXT;
13124   glShaderOp2EXT: TglShaderOp2EXT;
13125   glShaderOp3EXT: TglShaderOp3EXT;
13126   glSwizzleEXT: TglSwizzleEXT;
13127   glWriteMaskEXT: TglWriteMaskEXT;
13128   glInsertComponentEXT: TglInsertComponentEXT;
13129   glExtractComponentEXT: TglExtractComponentEXT;
13130   glGenSymbolsEXT: TglGenSymbolsEXT;
13131   glSetInvariantEXT: TglSetInvariantEXT;
13132   glSetLocalConstantEXT: TglSetLocalConstantEXT;
13133   glVariantbvEXT: TglVariantbvEXT;
13134   glVariantsvEXT: TglVariantsvEXT;
13135   glVariantivEXT: TglVariantivEXT;
13136   glVariantfvEXT: TglVariantfvEXT;
13137   glVariantdvEXT: TglVariantdvEXT;
13138   glVariantubvEXT: TglVariantubvEXT;
13139   glVariantusvEXT: TglVariantusvEXT;
13140   glVariantuivEXT: TglVariantuivEXT;
13141   glVariantPointerEXT: TglVariantPointerEXT;
13142   glEnableVariantClientStateEXT: TglEnableVariantClientStateEXT;
13143   glDisableVariantClientStateEXT: TglDisableVariantClientStateEXT;
13144   glBindLightParameterEXT: TglBindLightParameterEXT;
13145   glBindMaterialParameterEXT: TglBindMaterialParameterEXT;
13146   glBindTexGenParameterEXT: TglBindTexGenParameterEXT;
13147   glBindTextureUnitParameterEXT: TglBindTextureUnitParameterEXT;
13148   glBindParameterEXT: TglBindParameterEXT;
13149   glIsVariantEnabledEXT: TglIsVariantEnabledEXT;
13150   glGetVariantBooleanvEXT: TglGetVariantBooleanvEXT;
13151   glGetVariantIntegervEXT: TglGetVariantIntegervEXT;
13152   glGetVariantFloatvEXT: TglGetVariantFloatvEXT;
13153   glGetVariantPointervEXT: TglGetVariantPointervEXT;
13154   glGetInvariantBooleanvEXT: TglGetInvariantBooleanvEXT;
13155   glGetInvariantIntegervEXT: TglGetInvariantIntegervEXT;
13156   glGetInvariantFloatvEXT: TglGetInvariantFloatvEXT;
13157   glGetLocalConstantBooleanvEXT: TglGetLocalConstantBooleanvEXT;
13158   glGetLocalConstantIntegervEXT: TglGetLocalConstantIntegervEXT;
13159   glGetLocalConstantFloatvEXT: TglGetLocalConstantFloatvEXT;
13160
13161   // GL_EXT_vertex_weighting
13162   glVertexWeightfEXT: TglVertexWeightfEXT;
13163   glVertexWeightfvEXT: TglVertexWeightfvEXT;
13164   glVertexWeightPointerEXT: TglVertexWeightPointerEXT;
13165
13166   // GL_EXT_stencil_clear_tag
13167   glStencilClearTagEXT: TglStencilClearTagEXT;
13168
13169   // GL_EXT_framebuffer_blit
13170   glBlitFramebufferEXT: TglBlitFramebufferEXT;
13171
13172   // GL_EXT_framebuffer_multisample
13173   glRenderbufferStorageMultisampleEXT: TglRenderbufferStorageMultisampleEXT;
13174
13175   // GL_EXT_timer_query
13176   glGetQueryObjecti64vEXT: TglGetQueryObjecti64vEXT;
13177   glGetQueryObjectui64vEXT: TglGetQueryObjectui64vEXT;
13178
13179   // GL_EXT_gpu_program_parameters
13180   glProgramEnvParameters4fvEXT: TglProgramEnvParameters4fvEXT;
13181   glProgramLocalParameters4fvEXT: TglProgramLocalParameters4fvEXT;
13182
13183   // GL_EXT_bindable_uniform
13184   glUniformBufferEXT: TglUniformBufferEXT;
13185   glGetUniformBufferSizeEXT: TglGetUniformBufferSizeEXT;
13186   glGetUniformOffsetEXT: TglGetUniformOffsetEXT;
13187
13188   // GL_EXT_draw_buffers2
13189   glColorMaskIndexedEXT: TglColorMaskIndexedEXT;
13190   glGetBooleanIndexedvEXT: TglGetBooleanIndexedvEXT;
13191   glGetIntegerIndexedvEXT: TglGetIntegerIndexedvEXT;
13192   glEnableIndexedEXT: TglEnableIndexedEXT;
13193   glDisableIndexedEXT: TglDisableIndexedEXT;
13194   glIsEnabledIndexedEXT: TglIsEnabledIndexedEXT;
13195
13196   // GL_EXT_draw_instanced
13197   glDrawArraysInstancedEXT: TglDrawArraysInstancedEXT;
13198   glDrawElementsInstancedEXT: TglDrawElementsInstancedEXT;
13199
13200   // GL_EXT_geometry_shader4
13201   glProgramParameteriEXT: TglProgramParameteriEXT;
13202   glFramebufferTextureEXT: TglFramebufferTextureEXT;
13203 //  glFramebufferTextureLayerEXT: TglFramebufferTextureLayerEXT;
13204   glFramebufferTextureFaceEXT: TglFramebufferTextureFaceEXT;
13205
13206   // GL_EXT_gpu_shader4
13207   glVertexAttribI1iEXT: TglVertexAttribI1iEXT;
13208   glVertexAttribI2iEXT: TglVertexAttribI2iEXT;
13209   glVertexAttribI3iEXT: TglVertexAttribI3iEXT;
13210   glVertexAttribI4iEXT: TglVertexAttribI4iEXT;
13211   glVertexAttribI1uiEXT: TglVertexAttribI1uiEXT;
13212   glVertexAttribI2uiEXT: TglVertexAttribI2uiEXT;
13213   glVertexAttribI3uiEXT: TglVertexAttribI3uiEXT;
13214   glVertexAttribI4uiEXT: TglVertexAttribI4uiEXT;
13215   glVertexAttribI1ivEXT: TglVertexAttribI1ivEXT;
13216   glVertexAttribI2ivEXT: TglVertexAttribI2ivEXT;
13217   glVertexAttribI3ivEXT: TglVertexAttribI3ivEXT;
13218   glVertexAttribI4ivEXT: TglVertexAttribI4ivEXT;
13219   glVertexAttribI1uivEXT: TglVertexAttribI1uivEXT;
13220   glVertexAttribI2uivEXT: TglVertexAttribI2uivEXT;
13221   glVertexAttribI3uivEXT: TglVertexAttribI3uivEXT;
13222   glVertexAttribI4uivEXT: TglVertexAttribI4uivEXT;
13223   glVertexAttribI4bvEXT: TglVertexAttribI4bvEXT;
13224   glVertexAttribI4svEXT: TglVertexAttribI4svEXT;
13225   glVertexAttribI4ubvEXT: TglVertexAttribI4ubvEXT;
13226   glVertexAttribI4usvEXT: TglVertexAttribI4usvEXT;
13227   glVertexAttribIPointerEXT: TglVertexAttribIPointerEXT;
13228   glGetVertexAttribIivEXT: TglGetVertexAttribIivEXT;
13229   glGetVertexAttribIuivEXT: TglGetVertexAttribIuivEXT;
13230   glUniform1uiEXT: TglUniform1uiEXT;
13231   glUniform2uiEXT: TglUniform2uiEXT;
13232   glUniform3uiEXT: TglUniform3uiEXT;
13233   glUniform4uiEXT: TglUniform4uiEXT;
13234   glUniform1uivEXT: TglUniform1uivEXT;
13235   glUniform2uivEXT: TglUniform2uivEXT;
13236   glUniform3uivEXT: TglUniform3uivEXT;
13237   glUniform4uivEXT: TglUniform4uivEXT;
13238   glGetUniformuivEXT: TglGetUniformuivEXT;
13239   glBindFragDataLocationEXT: TglBindFragDataLocationEXT;
13240   glGetFragDataLocationEXT: TglGetFragDataLocationEXT;
13241
13242   // GL_EXT_texture_array
13243   glFramebufferTextureLayerEXT: TglFramebufferTextureLayerEXT;
13244
13245   // GL_EXT_texture_buffer_object
13246   glTexBufferEXT: TglTexBufferEXT;
13247
13248   // GL_EXT_texture_integer
13249   glClearColorIiEXT: TglClearColorIiEXT;
13250   glClearColorIuiEXT: TglClearColorIuiEXT;
13251   glTexParameterIivEXT: TglTexParameterIivEXT;
13252   glTexParameterIuivEXT: TglTexParameterIuivEXT;
13253   glGetTexParameterIivEXT: TglGetTexParameterIivEXT;
13254   glGetTexParameterIiuvEXT: TglGetTexParameterIiuvEXT;
13255
13256   // GL_EXT_transform_feedback
13257   glBeginTransformFeedbackEXT: TglBeginTransformFeedbackEXT;
13258   glEndTransformFeedbackEXT: TglEndTransformFeedbackEXT;
13259   glBindBufferRangeEXT: TglBindBufferRangeEXT;
13260   glBindBufferOffsetEXT: TglBindBufferOffsetEXT;
13261   glBindBufferBaseEXT: TglBindBufferBaseEXT;
13262   glTransformFeedbackVaryingsEXT: TglTransformFeedbackVaryingsEXT;
13263   glGetTransformFeedbackVaryingEXT: TglGetTransformFeedbackVaryingEXT;
13264
13265   // GL_EXT_direct_state_access
13266   glClientAttribDefaultEXT: TglClientAttribDefaultEXT;
13267   glPushClientAttribDefaultEXT: TglPushClientAttribDefaultEXT;
13268   glMatrixLoadfEXT: TglMatrixLoadfEXT;
13269   glMatrixLoaddEXT: TglMatrixLoaddEXT;
13270   glMatrixMultfEXT: TglMatrixMultfEXT;
13271   glMatrixMultdEXT: TglMatrixMultdEXT;
13272   glMatrixLoadIdentityEXT: TglMatrixLoadIdentityEXT;
13273   glMatrixRotatefEXT: TglMatrixRotatefEXT;
13274   glMatrixRotatedEXT: TglMatrixRotatedEXT;
13275   glMatrixScalefEXT: TglMatrixScalefEXT;
13276   glMatrixScaledEXT: TglMatrixScaledEXT;
13277   glMatrixTranslatefEXT: TglMatrixTranslatefEXT;
13278   glMatrixTranslatedEXT: TglMatrixTranslatedEXT;
13279   glMatrixFrustumEXT: TglMatrixFrustumEXT;
13280   glMatrixOrthoEXT: TglMatrixOrthoEXT;
13281   glMatrixPopEXT: TglMatrixPopEXT;
13282   glMatrixPushEXT: TglMatrixPushEXT;
13283   glMatrixLoadTransposefEXT: TglMatrixLoadTransposefEXT;
13284   glMatrixLoadTransposedEXT: TglMatrixLoadTransposedEXT;
13285   glMatrixMultTransposefEXT: TglMatrixMultTransposefEXT;
13286   glMatrixMultTransposedEXT: TglMatrixMultTransposedEXT;
13287   glTextureParameterfEXT: TglTextureParameterfEXT;
13288   glTextureParameterfvEXT: TglTextureParameterfvEXT;
13289   glTextureParameteriEXT: TglTextureParameteriEXT;
13290   glTextureParameterivEXT: TglTextureParameterivEXT;
13291   glTextureImage1DEXT: TglTextureImage1DEXT;
13292   glTextureImage2DEXT: TglTextureImage2DEXT;
13293   glTextureSubImage1DEXT: TglTextureSubImage1DEXT;
13294   glTextureSubImage2DEXT: TglTextureSubImage2DEXT;
13295   glCopyTextureImage1DEXT: TglCopyTextureImage1DEXT;
13296   glCopyTextureImage2DEXT: TglCopyTextureImage2DEXT;
13297   glCopyTextureSubImage1DEXT: TglCopyTextureSubImage1DEXT;
13298   glCopyTextureSubImage2DEXT: TglCopyTextureSubImage2DEXT;
13299   glGetTextureImageEXT: TglGetTextureImageEXT;
13300   glGetTextureParameterfvEXT: TglGetTextureParameterfvEXT;
13301   glGetTextureParameterivEXT: TglGetTextureParameterivEXT;
13302   glGetTextureLevelParameterfvEXT: TglGetTextureLevelParameterfvEXT;
13303   glGetTextureLevelParameterivEXT: TglGetTextureLevelParameterivEXT;
13304   glTextureImage3DEXT: TglTextureImage3DEXT;
13305   glTextureSubImage3DEXT: TglTextureSubImage3DEXT;
13306   glCopyTextureSubImage3DEXT: TglCopyTextureSubImage3DEXT;
13307   glMultiTexParameterfEXT: TglMultiTexParameterfEXT;
13308   glMultiTexParameterfvEXT: TglMultiTexParameterfvEXT;
13309   glMultiTexParameteriEXT: TglMultiTexParameteriEXT;
13310   glMultiTexParameterivEXT: TglMultiTexParameterivEXT;
13311   glMultiTexImage1DEXT: TglMultiTexImage1DEXT;
13312   glMultiTexImage2DEXT: TglMultiTexImage2DEXT;
13313   glMultiTexSubImage1DEXT: TglMultiTexSubImage1DEXT;
13314   glMultiTexSubImage2DEXT: TglMultiTexSubImage2DEXT;
13315   glCopyMultiTexImage1DEXT: TglCopyMultiTexImage1DEXT;
13316   glCopyMultiTexImage2DEXT: TglCopyMultiTexImage2DEXT;
13317   glCopyMultiTexSubImage1DEXT: TglCopyMultiTexSubImage1DEXT;
13318   glCopyMultiTexSubImage2DEXT: TglCopyMultiTexSubImage2DEXT;
13319   glGetMultiTexImageEXT: TglGetMultiTexImageEXT;
13320   glGetMultiTexParameterfvEXT: TglGetMultiTexParameterfvEXT;
13321   glGetMultiTexParameterivEXT: TglGetMultiTexParameterivEXT;
13322   glGetMultiTexLevelParameterfvEXT: TglGetMultiTexLevelParameterfvEXT;
13323   glGetMultiTexLevelParameterivEXT: TglGetMultiTexLevelParameterivEXT;
13324   glMultiTexImage3DEXT: TglMultiTexImage3DEXT;
13325   glMultiTexSubImage3DEXT: TglMultiTexSubImage3DEXT;
13326   glCopyMultiTexSubImage3DEXT: TglCopyMultiTexSubImage3DEXT;
13327   glBindMultiTextureEXT: TglBindMultiTextureEXT;
13328   glEnableClientStateIndexedEXT: TglEnableClientStateIndexedEXT;
13329   glDisableClientStateIndexedEXT: TglDisableClientStateIndexedEXT;
13330   glMultiTexCoordPointerEXT: TglMultiTexCoordPointerEXT;
13331   glMultiTexEnvfEXT: TglMultiTexEnvfEXT;
13332   glMultiTexEnvfvEXT: TglMultiTexEnvfvEXT;
13333   glMultiTexEnviEXT: TglMultiTexEnviEXT;
13334   glMultiTexEnvivEXT: TglMultiTexEnvivEXT;
13335   glMultiTexGendEXT: TglMultiTexGendEXT;
13336   glMultiTexGendvEXT: TglMultiTexGendvEXT;
13337   glMultiTexGenfEXT: TglMultiTexGenfEXT;
13338   glMultiTexGenfvEXT: TglMultiTexGenfvEXT;
13339   glMultiTexGeniEXT: TglMultiTexGeniEXT;
13340   glMultiTexGenivEXT: TglMultiTexGenivEXT;
13341   glGetMultiTexEnvfvEXT: TglGetMultiTexEnvfvEXT;
13342   glGetMultiTexEnvivEXT: TglGetMultiTexEnvivEXT;
13343   glGetMultiTexGendvEXT: TglGetMultiTexGendvEXT;
13344   glGetMultiTexGenfvEXT: TglGetMultiTexGenfvEXT;
13345   glGetMultiTexGenivEXT: TglGetMultiTexGenivEXT;
13346   glGetFloatIndexedvEXT: TglGetFloatIndexedvEXT;
13347   glGetDoubleIndexedvEXT: TglGetDoubleIndexedvEXT;
13348   glGetPointerIndexedvEXT: TglGetPointerIndexedvEXT;
13349   glCompressedTextureImage3DEXT: TglCompressedTextureImage3DEXT;
13350   glCompressedTextureImage2DEXT: TglCompressedTextureImage2DEXT;
13351   glCompressedTextureImage1DEXT: TglCompressedTextureImage1DEXT;
13352   glCompressedTextureSubImage3DEXT: TglCompressedTextureSubImage3DEXT;
13353   glCompressedTextureSubImage2DEXT: TglCompressedTextureSubImage2DEXT;
13354   glCompressedTextureSubImage1DEXT: TglCompressedTextureSubImage1DEXT;
13355   glGetCompressedTextureImageEXT: TglGetCompressedTextureImageEXT;
13356   glCompressedMultiTexImage3DEXT: TglCompressedMultiTexImage3DEXT;
13357   glCompressedMultiTexImage2DEXT: TglCompressedMultiTexImage2DEXT;
13358   glCompressedMultiTexImage1DEXT: TglCompressedMultiTexImage1DEXT;
13359   glCompressedMultiTexSubImage3DEXT: TglCompressedMultiTexSubImage3DEXT;
13360   glCompressedMultiTexSubImage2DEXT: TglCompressedMultiTexSubImage2DEXT;
13361   glCompressedMultiTexSubImage1DEXT: TglCompressedMultiTexSubImage1DEXT;
13362   glGetCompressedMultiTexImageEXT: TglGetCompressedMultiTexImageEXT;
13363   glNamedProgramStringEXT: TglNamedProgramStringEXT;
13364   glNamedProgramLocalParameter4dEXT: TglNamedProgramLocalParameter4dEXT;
13365   glNamedProgramLocalParameter4dvEXT: TglNamedProgramLocalParameter4dvEXT;
13366   glNamedProgramLocalParameter4fEXT: TglNamedProgramLocalParameter4fEXT;
13367   glNamedProgramLocalParameter4fvEXT: TglNamedProgramLocalParameter4fvEXT;
13368   glGetNamedProgramLocalParameterdvEXT: TglGetNamedProgramLocalParameterdvEXT;
13369   glGetNamedProgramLocalParameterfvEXT: TglGetNamedProgramLocalParameterfvEXT;
13370   glGetNamedProgramivEXT: TglGetNamedProgramivEXT;
13371   glGetNamedProgramStringEXT: TglGetNamedProgramStringEXT;
13372   glNamedProgramLocalParameters4fvEXT: TglNamedProgramLocalParameters4fvEXT;
13373   glNamedProgramLocalParameterI4iEXT: TglNamedProgramLocalParameterI4iEXT;
13374   glNamedProgramLocalParameterI4ivEXT: TglNamedProgramLocalParameterI4ivEXT;
13375   glNamedProgramLocalParametersI4ivEXT: TglNamedProgramLocalParametersI4ivEXT;
13376   glNamedProgramLocalParameterI4uiEXT: TglNamedProgramLocalParameterI4uiEXT;
13377   glNamedProgramLocalParameterI4uivEXT: TglNamedProgramLocalParameterI4uivEXT;
13378   glNamedProgramLocalParametersI4uivEXT: TglNamedProgramLocalParametersI4uivEXT;
13379   glGetNamedProgramLocalParameterIivEXT: TglGetNamedProgramLocalParameterIivEXT;
13380   glGetNamedProgramLocalParameterIuivEXT: TglGetNamedProgramLocalParameterIuivEXT;
13381   glTextureParameterIivEXT: TglTextureParameterIivEXT;
13382   glTextureParameterIuivEXT: TglTextureParameterIuivEXT;
13383   glGetTextureParameterIivEXT: TglGetTextureParameterIivEXT;
13384   glGetTextureParameterIuivEXT: TglGetTextureParameterIuivEXT;
13385   glMultiTexParameterIivEXT: TglMultiTexParameterIivEXT;
13386   glMultiTexParameterIuivEXT: TglMultiTexParameterIuivEXT;
13387   glGetMultiTexParameterIivEXT: TglGetMultiTexParameterIivEXT;
13388   glGetMultiTexParameterIuivEXT: TglGetMultiTexParameterIuivEXT;
13389   glProgramUniform1fEXT: TglProgramUniform1fEXT;
13390   glProgramUniform2fEXT: TglProgramUniform2fEXT;
13391   glProgramUniform3fEXT: TglProgramUniform3fEXT;
13392   glProgramUniform4fEXT: TglProgramUniform4fEXT;
13393   glProgramUniform1iEXT: TglProgramUniform1iEXT;
13394   glProgramUniform2iEXT: TglProgramUniform2iEXT;
13395   glProgramUniform3iEXT: TglProgramUniform3iEXT;
13396   glProgramUniform4iEXT: TglProgramUniform4iEXT;
13397   glProgramUniform1fvEXT: TglProgramUniform1fvEXT;
13398   glProgramUniform2fvEXT: TglProgramUniform2fvEXT;
13399   glProgramUniform3fvEXT: TglProgramUniform3fvEXT;
13400   glProgramUniform4fvEXT: TglProgramUniform4fvEXT;
13401   glProgramUniform1ivEXT: TglProgramUniform1ivEXT;
13402   glProgramUniform2ivEXT: TglProgramUniform2ivEXT;
13403   glProgramUniform3ivEXT: TglProgramUniform3ivEXT;
13404   glProgramUniform4ivEXT: TglProgramUniform4ivEXT;
13405   glProgramUniformMatrix2fvEXT: TglProgramUniformMatrix2fvEXT;
13406   glProgramUniformMatrix3fvEXT: TglProgramUniformMatrix3fvEXT;
13407   glProgramUniformMatrix4fvEXT: TglProgramUniformMatrix4fvEXT;
13408   glProgramUniformMatrix2x3fvEXT: TglProgramUniformMatrix2x3fvEXT;
13409   glProgramUniformMatrix3x2fvEXT: TglProgramUniformMatrix3x2fvEXT;
13410   glProgramUniformMatrix2x4fvEXT: TglProgramUniformMatrix2x4fvEXT;
13411   glProgramUniformMatrix4x2fvEXT: TglProgramUniformMatrix4x2fvEXT;
13412   glProgramUniformMatrix3x4fvEXT: TglProgramUniformMatrix3x4fvEXT;
13413   glProgramUniformMatrix4x3fvEXT: TglProgramUniformMatrix4x3fvEXT;
13414   glProgramUniform1uiEXT: TglProgramUniform1uiEXT;
13415   glProgramUniform2uiEXT: TglProgramUniform2uiEXT;
13416   glProgramUniform3uiEXT: TglProgramUniform3uiEXT;
13417   glProgramUniform4uiEXT: TglProgramUniform4uiEXT;
13418   glProgramUniform1uivEXT: TglProgramUniform1uivEXT;
13419   glProgramUniform2uivEXT: TglProgramUniform2uivEXT;
13420   glProgramUniform3uivEXT: TglProgramUniform3uivEXT;
13421   glProgramUniform4uivEXT: TglProgramUniform4uivEXT;
13422   glNamedBufferDataEXT: TglNamedBufferDataEXT;
13423   glNamedBufferSubDataEXT: TglNamedBufferSubDataEXT;
13424   glMapNamedBufferEXT: TglMapNamedBufferEXT;
13425   glUnmapNamedBufferEXT: TglUnmapNamedBufferEXT;
13426   glMapNamedBufferRangeEXT: TglMapNamedBufferRangeEXT;
13427   glFlushMappedNamedBufferRangeEXT: TglFlushMappedNamedBufferRangeEXT;
13428   glNamedCopyBufferSubDataEXT: TglNamedCopyBufferSubDataEXT;
13429   glGetNamedBufferParameterivEXT: TglGetNamedBufferParameterivEXT;
13430   glGetNamedBufferPointervEXT: TglGetNamedBufferPointervEXT;
13431   glGetNamedBufferSubDataEXT: TglGetNamedBufferSubDataEXT;
13432   glTextureBufferEXT: TglTextureBufferEXT;
13433   glMultiTexBufferEXT: TglMultiTexBufferEXT;
13434   glNamedRenderbufferStorageEXT: TglNamedRenderbufferStorageEXT;
13435   glGetNamedRenderbufferParameterivEXT: TglGetNamedRenderbufferParameterivEXT;
13436   glCheckNamedFramebufferStatusEXT: TglCheckNamedFramebufferStatusEXT;
13437   glNamedFramebufferTexture1DEXT: TglNamedFramebufferTexture1DEXT;
13438   glNamedFramebufferTexture2DEXT: TglNamedFramebufferTexture2DEXT;
13439   glNamedFramebufferTexture3DEXT: TglNamedFramebufferTexture3DEXT;
13440   glNamedFramebufferRenderbufferEXT: TglNamedFramebufferRenderbufferEXT;
13441   glGetNamedFramebufferAttachmentParameterivEXT: TglGetNamedFramebufferAttachmentParameterivEXT;
13442   glGenerateTextureMipmapEXT: TglGenerateTextureMipmapEXT;
13443   glGenerateMultiTexMipmapEXT: TglGenerateMultiTexMipmapEXT;
13444   glFramebufferDrawBufferEXT: TglFramebufferDrawBufferEXT;
13445   glFramebufferDrawBuffersEXT: TglFramebufferDrawBuffersEXT;
13446   glFramebufferReadBufferEXT: TglFramebufferReadBufferEXT;
13447   glGetFramebufferParameterivEXT: TglGetFramebufferParameterivEXT;
13448   glNamedRenderbufferStorageMultisampleEXT: TglNamedRenderbufferStorageMultisampleEXT;
13449   glNamedRenderbufferStorageMultisampleCoverageEXT: TglNamedRenderbufferStorageMultisampleCoverageEXT;
13450   glNamedFramebufferTextureEXT: TglNamedFramebufferTextureEXT;
13451   glNamedFramebufferTextureLayerEXT: TglNamedFramebufferTextureLayerEXT;
13452   glNamedFramebufferTextureFaceEXT: TglNamedFramebufferTextureFaceEXT;
13453   glTextureRenderbufferEXT: TglTextureRenderbufferEXT;
13454   glMultiTexRenderbufferEXT: TglMultiTexRenderbufferEXT;
13455   glProgramUniform1dEXT: TglProgramUniform1dEXT;
13456   glProgramUniform2dEXT: TglProgramUniform2dEXT;
13457   glProgramUniform3dEXT: TglProgramUniform3dEXT;
13458   glProgramUniform4dEXT: TglProgramUniform4dEXT;
13459   glProgramUniform1dvEXT: TglProgramUniform1dvEXT;
13460   glProgramUniform2dvEXT: TglProgramUniform2dvEXT;
13461   glProgramUniform3dvEXT: TglProgramUniform3dvEXT;
13462   glProgramUniform4dvEXT: TglProgramUniform4dvEXT;
13463   glProgramUniformMatrix2dvEXT: TglProgramUniformMatrix2dvEXT;
13464   glProgramUniformMatrix3dvEXT: TglProgramUniformMatrix3dvEXT;
13465   glProgramUniformMatrix4dvEXT: TglProgramUniformMatrix4dvEXT;
13466   glProgramUniformMatrix2x3dvEXT: TglProgramUniformMatrix2x3dvEXT;
13467   glProgramUniformMatrix2x4dvEXT: TglProgramUniformMatrix2x4dvEXT;
13468   glProgramUniformMatrix3x2dvEXT: TglProgramUniformMatrix3x2dvEXT;
13469   glProgramUniformMatrix3x4dvEXT: TglProgramUniformMatrix3x4dvEXT;
13470   glProgramUniformMatrix4x2dvEXT: TglProgramUniformMatrix4x2dvEXT;
13471   glProgramUniformMatrix4x3dvEXT: TglProgramUniformMatrix4x3dvEXT;
13472
13473   // GL_EXT_separate_shader_objects
13474   glUseShaderProgramEXT: TglUseShaderProgramEXT;
13475   glActiveProgramEXT: TglActiveProgramEXT;
13476   glCreateShaderProgramEXT: TglCreateShaderProgramEXT;
13477
13478   // GL_EXT_shader_image_load_store
13479   glBindImageTextureEXT: TglBindImageTextureEXT;
13480   glMemoryBarrierEXT: TglMemoryBarrierEXT;
13481
13482   // GL_EXT_vertex_attrib_64bit
13483   glVertexAttribL1dEXT: TglVertexAttribL1dEXT;
13484   glVertexAttribL2dEXT: TglVertexAttribL2dEXT;
13485   glVertexAttribL3dEXT: TglVertexAttribL3dEXT;
13486   glVertexAttribL4dEXT: TglVertexAttribL4dEXT;
13487   glVertexAttribL1dvEXT: TglVertexAttribL1dvEXT;
13488   glVertexAttribL2dvEXT: TglVertexAttribL2dvEXT;
13489   glVertexAttribL3dvEXT: TglVertexAttribL3dvEXT;
13490   glVertexAttribL4dvEXT: TglVertexAttribL4dvEXT;
13491   glVertexAttribLPointerEXT: TglVertexAttribLPointerEXT;
13492   glGetVertexAttribLdvEXT: TglGetVertexAttribLdvEXT;
13493   glVertexArrayVertexAttribLOffsetEXT: TglVertexArrayVertexAttribLOffsetEXT;
13494
13495   // GL_HP_image_transform
13496   glImageTransformParameteriHP: TglImageTransformParameteriHP;
13497   glImageTransformParameterfHP: TglImageTransformParameterfHP;
13498   glImageTransformParameterivHP: TglImageTransformParameterivHP;
13499   glImageTransformParameterfvHP: TglImageTransformParameterfvHP;
13500   glGetImageTransformParameterivHP: TglGetImageTransformParameterivHP;
13501   glGetImageTransformParameterfvHP: TglGetImageTransformParameterfvHP;
13502
13503   // GL_EXT_depth_bounds_test
13504   glDepthBoundsEXT: TglDepthBoundsEXT;
13505
13506   // GL_EXT_blend_equation_separate
13507   glBlendEquationSeparateEXT: TglBlendEquationSeparateEXT;
13508
13509   // GL_IBM_multimode_draw_arrays
13510   glMultiModeDrawArraysIBM: TglMultiModeDrawArraysIBM;
13511   glMultiModeDrawElementsIBM: TglMultiModeDrawElementsIBM;
13512
13513   // GL_IBM_vertex_array_lists
13514   glColorPointerListIBM: TglColorPointerListIBM;
13515   glSecondaryColorPointerListIBM: TglSecondaryColorPointerListIBM;
13516   glEdgeFlagPointerListIBM: TglEdgeFlagPointerListIBM;
13517   glFogCoordPointerListIBM: TglFogCoordPointerListIBM;
13518   glIndexPointerListIBM: TglIndexPointerListIBM;
13519   glNormalPointerListIBM: TglNormalPointerListIBM;
13520   glTexCoordPointerListIBM: TglTexCoordPointerListIBM;
13521   glVertexPointerListIBM: TglVertexPointerListIBM;
13522
13523   // GL_INGR_blend_func_separate
13524   glBlendFuncSeparateINGR: TglBlendFuncSeparateINGR;
13525
13526   // GL_INTEL_parallel_arrays
13527   glVertexPointervINTEL: TglVertexPointervINTEL;
13528   glNormalPointervINTEL: TglNormalPointervINTEL;
13529   glColorPointervINTEL: TglColorPointervINTEL;
13530   glTexCoordPointervINTEL: TglTexCoordPointervINTEL;
13531
13532   // GL_MESA_resize_buffers
13533   glResizeBuffersMESA: TglResizeBuffersMESA;
13534
13535   // GL_MESA_window_pos
13536   glWindowPos2dMESA: TglWindowPos2dMESA;
13537   glWindowPos2dvMESA: TglWindowPos2dvMESA;
13538   glWindowPos2fMESA: TglWindowPos2fMESA;
13539   glWindowPos2fvMESA: TglWindowPos2fvMESA;
13540   glWindowPos2iMESA: TglWindowPos2iMESA;
13541   glWindowPos2ivMESA: TglWindowPos2ivMESA;
13542   glWindowPos2sMESA: TglWindowPos2sMESA;
13543   glWindowPos2svMESA: TglWindowPos2svMESA;
13544   glWindowPos3dMESA: TglWindowPos3dMESA;
13545   glWindowPos3dvMESA: TglWindowPos3dvMESA;
13546   glWindowPos3fMESA: TglWindowPos3fMESA;
13547   glWindowPos3fvMESA: TglWindowPos3fvMESA;
13548   glWindowPos3iMESA: TglWindowPos3iMESA;
13549   glWindowPos3ivMESA: TglWindowPos3ivMESA;
13550   glWindowPos3sMESA: TglWindowPos3sMESA;
13551   glWindowPos3svMESA: TglWindowPos3svMESA;
13552   glWindowPos4dMESA: TglWindowPos4dMESA;
13553   glWindowPos4dvMESA: TglWindowPos4dvMESA;
13554   glWindowPos4fMESA: TglWindowPos4fMESA;
13555   glWindowPos4fvMESA: TglWindowPos4fvMESA;
13556   glWindowPos4iMESA: TglWindowPos4iMESA;
13557   glWindowPos4ivMESA: TglWindowPos4ivMESA;
13558   glWindowPos4sMESA: TglWindowPos4sMESA;
13559   glWindowPos4svMESA: TglWindowPos4svMESA;
13560
13561   // GL_NV_evaluators
13562   glMapControlPointsNV: TglMapControlPointsNV;
13563   glMapParameterivNV: TglMapParameterivNV;
13564   glMapParameterfvNV: TglMapParameterfvNV;
13565   glGetMapControlPointsNV: TglGetMapControlPointsNV;
13566   glGetMapParameterivNV: TglGetMapParameterivNV;
13567   glGetMapParameterfvNV: TglGetMapParameterfvNV;
13568   glGetMapAttribParameterivNV: TglGetMapAttribParameterivNV;
13569   glGetMapAttribParameterfvNV: TglGetMapAttribParameterfvNV;
13570   glEvalMapsNV: TglEvalMapsNV;
13571
13572   // GL_NV_fence
13573   glDeleteFencesNV: TglDeleteFencesNV;
13574   glGenFencesNV: TglGenFencesNV;
13575   glIsFenceNV: TglIsFenceNV;
13576   glTestFenceNV: TglTestFenceNV;
13577   glGetFenceivNV: TglGetFenceivNV;
13578   glFinishFenceNV: TglFinishFenceNV;
13579   glSetFenceNV: TglSetFenceNV;
13580
13581   // GL_NV_fragment_program
13582   glProgramNamedParameter4fNV: TglProgramNamedParameter4fNV;
13583   glProgramNamedParameter4dNV: TglProgramNamedParameter4dNV;
13584   glProgramNamedParameter4fvNV: TglProgramNamedParameter4fvNV;
13585   glProgramNamedParameter4dvNV: TglProgramNamedParameter4dvNV;
13586   glGetProgramNamedParameterfvNV: TglGetProgramNamedParameterfvNV;
13587   glGetProgramNamedParameterdvNV: TglGetProgramNamedParameterdvNV;
13588
13589   // GL_NV_half_float
13590   glVertex2hNV: TglVertex2hNV;
13591   glVertex2hvNV: TglVertex2hvNV;
13592   glVertex3hNV: TglVertex3hNV;
13593   glVertex3hvNV: TglVertex3hvNV;
13594   glVertex4hNV: TglVertex4hNV;
13595   glVertex4hvNV: TglVertex4hvNV;
13596   glNormal3hNV: TglNormal3hNV;
13597   glNormal3hvNV: TglNormal3hvNV;
13598   glColor3hNV: TglColor3hNV;
13599   glColor3hvNV: TglColor3hvNV;
13600   glColor4hNV: TglColor4hNV;
13601   glColor4hvNV: TglColor4hvNV;
13602   glTexCoord1hNV: TglTexCoord1hNV;
13603   glTexCoord1hvNV: TglTexCoord1hvNV;
13604   glTexCoord2hNV: TglTexCoord2hNV;
13605   glTexCoord2hvNV: TglTexCoord2hvNV;
13606   glTexCoord3hNV: TglTexCoord3hNV;
13607   glTexCoord3hvNV: TglTexCoord3hvNV;
13608   glTexCoord4hNV: TglTexCoord4hNV;
13609   glTexCoord4hvNV: TglTexCoord4hvNV;
13610   glMultiTexCoord1hNV: TglMultiTexCoord1hNV;
13611   glMultiTexCoord1hvNV: TglMultiTexCoord1hvNV;
13612   glMultiTexCoord2hNV: TglMultiTexCoord2hNV;
13613   glMultiTexCoord2hvNV: TglMultiTexCoord2hvNV;
13614   glMultiTexCoord3hNV: TglMultiTexCoord3hNV;
13615   glMultiTexCoord3hvNV: TglMultiTexCoord3hvNV;
13616   glMultiTexCoord4hNV: TglMultiTexCoord4hNV;
13617   glMultiTexCoord4hvNV: TglMultiTexCoord4hvNV;
13618   glFogCoordhNV: TglFogCoordhNV;
13619   glFogCoordhvNV: TglFogCoordhvNV;
13620   glSecondaryColor3hNV: TglSecondaryColor3hNV;
13621   glSecondaryColor3hvNV: TglSecondaryColor3hvNV;
13622   glVertexWeighthNV: TglVertexWeighthNV;
13623   glVertexWeighthvNV: TglVertexWeighthvNV;
13624   glVertexAttrib1hNV: TglVertexAttrib1hNV;
13625   glVertexAttrib1hvNV: TglVertexAttrib1hvNV;
13626   glVertexAttrib2hNV: TglVertexAttrib2hNV;
13627   glVertexAttrib2hvNV: TglVertexAttrib2hvNV;
13628   glVertexAttrib3hNV: TglVertexAttrib3hNV;
13629   glVertexAttrib3hvNV: TglVertexAttrib3hvNV;
13630   glVertexAttrib4hNV: TglVertexAttrib4hNV;
13631   glVertexAttrib4hvNV: TglVertexAttrib4hvNV;
13632   glVertexAttribs1hvNV: TglVertexAttribs1hvNV;
13633   glVertexAttribs2hvNV: TglVertexAttribs2hvNV;
13634   glVertexAttribs3hvNV: TglVertexAttribs3hvNV;
13635   glVertexAttribs4hvNV: TglVertexAttribs4hvNV;
13636
13637   // GL_NV_occlusion_query
13638   glGenOcclusionQueriesNV: TglGenOcclusionQueriesNV;
13639   glDeleteOcclusionQueriesNV: TglDeleteOcclusionQueriesNV;
13640   glIsOcclusionQueryNV: TglIsOcclusionQueryNV;
13641   glBeginOcclusionQueryNV: TglBeginOcclusionQueryNV;
13642   glEndOcclusionQueryNV: TglEndOcclusionQueryNV;
13643   glGetOcclusionQueryivNV: TglGetOcclusionQueryivNV;
13644   glGetOcclusionQueryuivNV: TglGetOcclusionQueryuivNV;
13645
13646   // GL_NV_pixel_data_range
13647   glPixelDataRangeNV: TglPixelDataRangeNV;
13648   glFlushPixelDataRangeNV: TglFlushPixelDataRangeNV;
13649
13650   // GL_NV_point_sprite
13651   glPointParameteriNV: TglPointParameteriNV;
13652   glPointParameterivNV: TglPointParameterivNV;
13653
13654   // GL_NV_primitive_restart
13655   glPrimitiveRestartNV: TglPrimitiveRestartNV;
13656   glPrimitiveRestartIndexNV: TglPrimitiveRestartIndexNV;
13657
13658   // GL_NV_register_combiners
13659   glCombinerParameterfvNV: TglCombinerParameterfvNV;
13660   glCombinerParameterfNV: TglCombinerParameterfNV;
13661   glCombinerParameterivNV: TglCombinerParameterivNV;
13662   glCombinerParameteriNV: TglCombinerParameteriNV;
13663   glCombinerInputNV: TglCombinerInputNV;
13664   glCombinerOutputNV: TglCombinerOutputNV;
13665   glFinalCombinerInputNV: TglFinalCombinerInputNV;
13666   glGetCombinerInputParameterfvNV: TglGetCombinerInputParameterfvNV;
13667   glGetCombinerInputParameterivNV: TglGetCombinerInputParameterivNV;
13668   glGetCombinerOutputParameterfvNV: TglGetCombinerOutputParameterfvNV;
13669   glGetCombinerOutputParameterivNV: TglGetCombinerOutputParameterivNV;
13670   glGetFinalCombinerInputParameterfvNV: TglGetFinalCombinerInputParameterfvNV;
13671   glGetFinalCombinerInputParameterivNV: TglGetFinalCombinerInputParameterivNV;
13672
13673   // GL_NV_register_combiners2
13674   glCombinerStageParameterfvNV: TglCombinerStageParameterfvNV;
13675   glGetCombinerStageParameterfvNV: TglGetCombinerStageParameterfvNV;
13676
13677   // GL_NV_vertex_array_range
13678   glFlushVertexArrayRangeNV: TglFlushVertexArrayRangeNV;
13679   glVertexArrayRangeNV: TglVertexArrayRangeNV;
13680
13681   // GL_NV_vertex_program
13682   glAreProgramsResidentNV: TglAreProgramsResidentNV;
13683   glBindProgramNV: TglBindProgramNV;
13684   glDeleteProgramsNV: TglDeleteProgramsNV;
13685   glExecuteProgramNV: TglExecuteProgramNV;
13686   glGenProgramsNV: TglGenProgramsNV;
13687   glGetProgramParameterdvNV: TglGetProgramParameterdvNV;
13688   glGetProgramParameterfvNV: TglGetProgramParameterfvNV;
13689   glGetProgramivNV: TglGetProgramivNV;
13690   glGetProgramStringNV: TglGetProgramStringNV;
13691   glGetTrackMatrixivNV: TglGetTrackMatrixivNV;
13692   glGetVertexAttribdvNV: TglGetVertexAttribdvNV;
13693   glGetVertexAttribfvNV: TglGetVertexAttribfvNV;
13694   glGetVertexAttribivNV: TglGetVertexAttribivNV;
13695   glGetVertexAttribPointervNV: TglGetVertexAttribPointervNV;
13696   glIsProgramNV: TglIsProgramNV;
13697   glLoadProgramNV: TglLoadProgramNV;
13698   glProgramParameter4dNV: TglProgramParameter4dNV;
13699   glProgramParameter4dvNV: TglProgramParameter4dvNV;
13700   glProgramParameter4fNV: TglProgramParameter4fNV;
13701   glProgramParameter4fvNV: TglProgramParameter4fvNV;
13702   glProgramParameters4dvNV: TglProgramParameters4dvNV;
13703   glProgramParameters4fvNV: TglProgramParameters4fvNV;
13704   glRequestResidentProgramsNV: TglRequestResidentProgramsNV;
13705   glTrackMatrixNV: TglTrackMatrixNV;
13706   glVertexAttribPointerNV: TglVertexAttribPointerNV;
13707   glVertexAttrib1dNV: TglVertexAttrib1dNV;
13708   glVertexAttrib1dvNV: TglVertexAttrib1dvNV;
13709   glVertexAttrib1fNV: TglVertexAttrib1fNV;
13710   glVertexAttrib1fvNV: TglVertexAttrib1fvNV;
13711   glVertexAttrib1sNV: TglVertexAttrib1sNV;
13712   glVertexAttrib1svNV: TglVertexAttrib1svNV;
13713   glVertexAttrib2dNV: TglVertexAttrib2dNV;
13714   glVertexAttrib2dvNV: TglVertexAttrib2dvNV;
13715   glVertexAttrib2fNV: TglVertexAttrib2fNV;
13716   glVertexAttrib2fvNV: TglVertexAttrib2fvNV;
13717   glVertexAttrib2sNV: TglVertexAttrib2sNV;
13718   glVertexAttrib2svNV: TglVertexAttrib2svNV;
13719   glVertexAttrib3dNV: TglVertexAttrib3dNV;
13720   glVertexAttrib3dvNV: TglVertexAttrib3dvNV;
13721   glVertexAttrib3fNV: TglVertexAttrib3fNV;
13722   glVertexAttrib3fvNV: TglVertexAttrib3fvNV;
13723   glVertexAttrib3sNV: TglVertexAttrib3sNV;
13724   glVertexAttrib3svNV: TglVertexAttrib3svNV;
13725   glVertexAttrib4dNV: TglVertexAttrib4dNV;
13726   glVertexAttrib4dvNV: TglVertexAttrib4dvNV;
13727   glVertexAttrib4fNV: TglVertexAttrib4fNV;
13728   glVertexAttrib4fvNV: TglVertexAttrib4fvNV;
13729   glVertexAttrib4sNV: TglVertexAttrib4sNV;
13730   glVertexAttrib4svNV: TglVertexAttrib4svNV;
13731   glVertexAttrib4ubNV: TglVertexAttrib4ubNV;
13732   glVertexAttrib4ubvNV: TglVertexAttrib4ubvNV;
13733   glVertexAttribs1dvNV: TglVertexAttribs1dvNV;
13734   glVertexAttribs1fvNV: TglVertexAttribs1fvNV;
13735   glVertexAttribs1svNV: TglVertexAttribs1svNV;
13736   glVertexAttribs2dvNV: TglVertexAttribs2dvNV;
13737   glVertexAttribs2fvNV: TglVertexAttribs2fvNV;
13738   glVertexAttribs2svNV: TglVertexAttribs2svNV;
13739   glVertexAttribs3dvNV: TglVertexAttribs3dvNV;
13740   glVertexAttribs3fvNV: TglVertexAttribs3fvNV;
13741   glVertexAttribs3svNV: TglVertexAttribs3svNV;
13742   glVertexAttribs4dvNV: TglVertexAttribs4dvNV;
13743   glVertexAttribs4fvNV: TglVertexAttribs4fvNV;
13744   glVertexAttribs4svNV: TglVertexAttribs4svNV;
13745   glVertexAttribs4ubvNV: TglVertexAttribs4ubvNV;
13746
13747   // GL_NV_depth_buffer_float
13748   glDepthRangedNV: TglDepthRangedNV;
13749   glClearDepthdNV: TglClearDepthdNV;
13750   glDepthBoundsdNV: TglDepthBoundsdNV;
13751
13752   // GL_NV_framebuffer_multisample_coverage
13753   glRenderbufferStorageMultsampleCoverageNV: TglRenderbufferStorageMultsampleCoverageNV;
13754
13755   // GL_NV_geometry_program4
13756   glProgramVertexLimitNV: TglProgramVertexLimitNV;
13757
13758   // GL_NV_gpu_program4
13759   glProgramLocalParameterI4iNV: TglProgramLocalParameterI4iNV;
13760   glProgramLocalParameterI4ivNV: TglProgramLocalParameterI4ivNV;
13761   glProgramLocalParametersI4ivNV: TglProgramLocalParametersI4ivNV;
13762   glProgramLocalParameterI4uiNV: TglProgramLocalParameterI4uiNV;
13763   glProgramLocalParameterI4uivNV: TglProgramLocalParameterI4uivNV;
13764   glProgramLocalParametersI4uivNV: TglProgramLocalParametersI4uivNV;
13765   glProgramEnvParameterI4iNV: TglProgramEnvParameterI4iNV;
13766   glProgramEnvParameterI4ivNV: TglProgramEnvParameterI4ivNV;
13767   glProgramEnvParametersI4ivNV: TglProgramEnvParametersI4ivNV;
13768   glProgramEnvParameterI4uiNV: TglProgramEnvParameterI4uiNV;
13769   glProgramEnvParameterI4uivNV: TglProgramEnvParameterI4uivNV;
13770   glProgramEnvParametersI4uivNV: TglProgramEnvParametersI4uivNV;
13771   glGetProgramLocalParameterIivNV: TglGetProgramLocalParameterIivNV;
13772   glGetProgramLocalParameterIuivNV: TglGetProgramLocalParameterIuivNV;
13773   glGetProgramEnvParameterIivNV: TglGetProgramEnvParameterIivNV;
13774   glGetProgramEnvParameterIuivNV: TglGetProgramEnvParameterIuivNV;
13775
13776   // GL_NV_parameter_buffer_object
13777   glProgramBufferParametersfvNV: TglProgramBufferParametersfvNV;
13778   glProgramBufferParametersIivNV: TglProgramBufferParametersIivNV;
13779   glProgramBufferParametersIuivNV: TglProgramBufferParametersIuivNV;
13780
13781   // GL_NV_transform_feedback
13782   glBeginTransformFeedbackNV: TglBeginTransformFeedbackNV;
13783   glEndTransformFeedbackNV: TglEndTransformFeedbackNV;
13784   glTransformFeedbackAttribsNV: TglTransformFeedbackAttribsNV;
13785   glBindBufferRangeNV: TglBindBufferRangeNV;
13786   glBindBufferOffsetNV: TglBindBufferOffsetNV;
13787   glBindBufferBaseNV: TglBindBufferBaseNV;
13788   glTransformFeedbackVaryingsNV: TglTransformFeedbackVaryingsNV;
13789   glActiveVaryingNV: TglActiveVaryingNV;
13790   glGetVaryingLocationNV: TglGetVaryingLocationNV;
13791   glGetActiveVaryingNV: TglGetActiveVaryingNV;
13792   glGetTransformFeedbackVaryingNV: TglGetTransformFeedbackVaryingNV;
13793   glTransformFeedbackStreamAttribsNV: TglTransformFeedbackStreamAttribsNV;
13794
13795   // GL_NV_conditional_render
13796   glBeginConditionalRenderNV: TglBeginConditionalRenderNV;
13797   glEndConditionalRenderNV: TglEndConditionalRenderNV;
13798
13799   // GL_NV_present_video
13800   glPresentFrameKeyedNV: TglPresentFrameKeyedNV;
13801   glPresentFrameDualFillNV: TglPresentFrameDualFillNV;
13802   glGetVideoivNV: TglGetVideoivNV;
13803   glGetVideouivNV: TglGetVideouivNV;
13804   glGetVideoi64vNV: TglGetVideoi64vNV;
13805   glGetVideoui64vNV: TglGetVideoui64vNV;
13806 //  glVideoParameterivNV: TglVideoParameterivNV;
13807
13808   // GL_NV_explicit_multisample
13809   glGetMultisamplefvNV: TglGetMultisamplefvNV;
13810   glSampleMaskIndexedNV: TglSampleMaskIndexedNV;
13811   glTexRenderbufferNV: TglTexRenderbufferNV;
13812
13813   // GL_NV_transform_feedback2
13814   glBindTransformFeedbackNV: TglBindTransformFeedbackNV;
13815   glDeleteTransformFeedbacksNV: TglDeleteTransformFeedbacksNV;
13816   glGenTransformFeedbacksNV: TglGenTransformFeedbacksNV;
13817   glIsTransformFeedbackNV: TglIsTransformFeedbackNV;
13818   glPauseTransformFeedbackNV: TglPauseTransformFeedbackNV;
13819   glResumeTransformFeedbackNV: TglResumeTransformFeedbackNV;
13820   glDrawTransformFeedbackNV: TglDrawTransformFeedbackNV;
13821
13822   // GL_NV_video_capture
13823   glBeginVideoCaptureNV: TglBeginVideoCaptureNV;
13824   glBindVideoCaptureStreamBufferNV: TglBindVideoCaptureStreamBufferNV;
13825   glBindVideoCaptureStreamTextureNV: TglBindVideoCaptureStreamTextureNV;
13826   glEndVideoCaptureNV: TglEndVideoCaptureNV;
13827   glGetVideoCaptureivNV: TglGetVideoCaptureivNV;
13828   glGetVideoCaptureStreamivNV: TglGetVideoCaptureStreamivNV;
13829   glGetVideoCaptureStreamfvNV: TglGetVideoCaptureStreamfvNV;
13830   glGetVideoCaptureStreamdvNV: TglGetVideoCaptureStreamdvNV;
13831   glVideoCaptureNV: TglVideoCaptureNV;
13832   glVideoCaptureStreamParameterivNV: TglVideoCaptureStreamParameterivNV;
13833   glVideoCaptureStreamParameterfvNV: TglVideoCaptureStreamParameterfvNV;
13834   glVideoCaptureStreamParameterdvNV: TglVideoCaptureStreamParameterdvNV;
13835
13836   // GL_NV_copy_image
13837   glCopyImageSubDataNV: TglCopyImageSubDataNV;
13838
13839   // GL_NV_shader_buffer_load
13840   glMakeBufferResidentNV: TglMakeBufferResidentNV;
13841   glMakeBufferNonResidentNV: TglMakeBufferNonResidentNV;
13842   glIsBufferResidentNV: TglIsBufferResidentNV;
13843   glMakeNamedBufferResidentNV: TglMakeNamedBufferResidentNV;
13844   glMakeNamedBufferNonResidentNV: TglMakeNamedBufferNonResidentNV;
13845   glIsNamedBufferResidentNV: TglIsNamedBufferResidentNV;
13846   glGetBufferParameterui64vNV: TglGetBufferParameterui64vNV;
13847   glGetNamedBufferParameterui64vNV: TglGetNamedBufferParameterui64vNV;
13848   glGetIntegerui64vNV: TglGetIntegerui64vNV;
13849   glUniformui64NV: TglUniformui64NV;
13850   glUniformui64vNV: TglUniformui64vNV;
13851   glGetUniformui64vNV: TglGetUniformui64vNV;
13852   glProgramUniformui64NV: TglProgramUniformui64NV;
13853   glProgramUniformui64vNV: TglProgramUniformui64vNV;
13854
13855   // GL_NV_vertex_buffer_unified_memory
13856   glBufferAddressRangeNV: TglBufferAddressRangeNV;
13857   glVertexFormatNV: TglVertexFormatNV;
13858   glNormalFormatNV: TglNormalFormatNV;
13859   glColorFormatNV: TglColorFormatNV;
13860   glIndexFormatNV: TglIndexFormatNV;
13861   glTexCoordFormatNV: TglTexCoordFormatNV;
13862   glEdgeFlagFormatNV: TglEdgeFlagFormatNV;
13863   glSecondaryColorFormatNV: TglSecondaryColorFormatNV;
13864   glFogCoordFormatNV: TglFogCoordFormatNV;
13865   glVertexAttribFormatNV: TglVertexAttribFormatNV;
13866   glVertexAttribIFormatNV: TglVertexAttribIFormatNV;
13867   glGetIntegerui64i_vNV: TglGetIntegerui64i_vNV;
13868
13869   // GL_NV_gpu_program5
13870   glProgramSubroutineParametersuivNV: TglProgramSubroutineParametersuivNV;
13871   glGetProgramSubroutineParameteruivNV: TglGetProgramSubroutineParameteruivNV;
13872
13873   // GL_NV_gpu_shader5
13874   glUniform1i64NV: TglUniform1i64NV;
13875   glUniform2i64NV: TglUniform2i64NV;
13876   glUniform3i64NV: TglUniform3i64NV;
13877   glUniform4i64NV: TglUniform4i64NV;
13878   glUniform1i64vNV: TglUniform1i64vNV;
13879   glUniform2i64vNV: TglUniform2i64vNV;
13880   glUniform3i64vNV: TglUniform3i64vNV;
13881   glUniform4i64vNV: TglUniform4i64vNV;
13882   glUniform1ui64NV: TglUniform1ui64NV;
13883   glUniform2ui64NV: TglUniform2ui64NV;
13884   glUniform3ui64NV: TglUniform3ui64NV;
13885   glUniform4ui64NV: TglUniform4ui64NV;
13886   glUniform1ui64vNV: TglUniform1ui64vNV;
13887   glUniform2ui64vNV: TglUniform2ui64vNV;
13888   glUniform3ui64vNV: TglUniform3ui64vNV;
13889   glUniform4ui64vNV: TglUniform4ui64vNV;
13890   glGetUniformi64vNV: TglGetUniformi64vNV;
13891   glProgramUniform1i64NV: TglProgramUniform1i64NV;
13892   glProgramUniform2i64NV: TglProgramUniform2i64NV;
13893   glProgramUniform3i64NV: TglProgramUniform3i64NV;
13894   glProgramUniform4i64NV: TglProgramUniform4i64NV;
13895   glProgramUniform1i64vNV: TglProgramUniform1i64vNV;
13896   glProgramUniform2i64vNV: TglProgramUniform2i64vNV;
13897   glProgramUniform3i64vNV: TglProgramUniform3i64vNV;
13898   glProgramUniform4i64vNV: TglProgramUniform4i64vNV;
13899   glProgramUniform1ui64NV: TglProgramUniform1ui64NV;
13900   glProgramUniform2ui64NV: TglProgramUniform2ui64NV;
13901   glProgramUniform3ui64NV: TglProgramUniform3ui64NV;
13902   glProgramUniform4ui64NV: TglProgramUniform4ui64NV;
13903   glProgramUniform1ui64vNV: TglProgramUniform1ui64vNV;
13904   glProgramUniform2ui64vNV: TglProgramUniform2ui64vNV;
13905   glProgramUniform3ui64vNV: TglProgramUniform3ui64vNV;
13906   glProgramUniform4ui64vNV: TglProgramUniform4ui64vNV;
13907
13908   // GL_NV_vertex_attrib_integer_64bit
13909   glVertexAttribL1i64NV: TglVertexAttribL1i64NV;
13910   glVertexAttribL2i64NV: TglVertexAttribL2i64NV;
13911   glVertexAttribL3i64NV: TglVertexAttribL3i64NV;
13912   glVertexAttribL4i64NV: TglVertexAttribL4i64NV;
13913   glVertexAttribL1i64vNV: TglVertexAttribL1i64vNV;
13914   glVertexAttribL2i64vNV: TglVertexAttribL2i64vNV;
13915   glVertexAttribL3i64vNV: TglVertexAttribL3i64vNV;
13916   glVertexAttribL4i64vNV: TglVertexAttribL4i64vNV;
13917   glVertexAttribL1ui64NV: TglVertexAttribL1ui64NV;
13918   glVertexAttribL2ui64NV: TglVertexAttribL2ui64NV;
13919   glVertexAttribL3ui64NV: TglVertexAttribL3ui64NV;
13920   glVertexAttribL4ui64NV: TglVertexAttribL4ui64NV;
13921   glVertexAttribL1ui64vNV: TglVertexAttribL1ui64vNV;
13922   glVertexAttribL2ui64vNV: TglVertexAttribL2ui64vNV;
13923   glVertexAttribL3ui64vNV: TglVertexAttribL3ui64vNV;
13924   glVertexAttribL4ui64vNV: TglVertexAttribL4ui64vNV;
13925   glGetVertexAttribLi64vNV: TglGetVertexAttribLi64vNV;
13926   glGetVertexAttribLui64vNV: TglGetVertexAttribLui64vNV;
13927   glVertexAttribLFormatNV: TglVertexAttribLFormatNV;
13928
13929   // GL_NV_vdpau_interop
13930   glVDPAUInitNV: TglVDPAUInitNV;
13931   glVDPAUFiniNV: TglVDPAUFiniNV;
13932   glVDPAURegisterVideoSurfaceNV: TglVDPAURegisterVideoSurfaceNV;
13933   glVDPAURegisterOutputSurfaceNV: TglVDPAURegisterOutputSurfaceNV;
13934   glVDPAUIsSurfaceNV: TglVDPAUIsSurfaceNV;
13935   glVDPAUUnregisterSurfaceNV: TglVDPAUUnregisterSurfaceNV;
13936   glVDPAUGetSurfaceivNV: TglVDPAUGetSurfaceivNV;
13937   glVDPAUSurfaceAccessNV: TglVDPAUSurfaceAccessNV;
13938   glVDPAUMapSurfacesNV: TglVDPAUMapSurfacesNV;
13939   glVDPAUUnmapSurfacesNV: TglVDPAUUnmapSurfacesNV;
13940
13941   // GL_NV_texture_barrier
13942   glTextureBarrierNV: TglTextureBarrierNV;
13943
13944   // (4.3) GL_NV_path_rendering
13945   glGenPathsNV : TglGenPathsNV;
13946   glDeletePathsNV : TglDeletePathsNV;
13947   glIsPathNV : TglIsPathNV;
13948   glPathCommandsNV : TglPathCommandsNV;
13949   glPathCoordsNV : TglPathCoordsNV;
13950   glPathSubCommandsNV : TglPathSubCommandsNV;
13951   glPathSubCoordsNV : TglPathSubCoordsNV;
13952   glPathStringNV : TglPathStringNV;
13953   glPathGlyphsNV : TglPathGlyphsNV;
13954   glPathGlyphRangeNV : TglPathGlyphRangeNV;
13955   glWeightPathsNV : TglWeightPathsNV;
13956   glCopyPathNV : TglCopyPathNV;
13957   glInterpolatePathsNV : TglInterpolatePathsNV;
13958   glTransformPathNV : TglTransformPathNV;
13959   glPathParameterivNV : TglPathParameterivNV;
13960   glPathParameteriNV : TglPathParameteriNV;
13961   glPathParameterfvNV : TglPathParameterfvNV;
13962   glPathParameterfNV : TglPathParameterfNV;
13963   glPathDashArrayNV : TglPathDashArrayNV;
13964   glPathStencilFuncNV : TglPathStencilFuncNV;
13965   glPathStencilDepthOffsetNV : TglPathStencilDepthOffsetNV;
13966   glStencilFillPathNV : TglStencilFillPathNV;
13967   glStencilStrokePathNV : TglStencilStrokePathNV;
13968   glStencilFillPathInstancedNV : TglStencilFillPathInstancedNV;
13969   glStencilStrokePathInstancedNV : TglStencilStrokePathInstancedNV;
13970   glPathCoverDepthFuncNV : TglPathCoverDepthFuncNV;
13971   glPathColorGenNV : TglPathColorGenNV;
13972   glPathTexGenNV : TglPathTexGenNV;
13973   glPathFogGenNV : TglPathFogGenNV;
13974   glCoverFillPathNV : TglCoverFillPathNV;
13975   glCoverStrokePathNV : TglCoverStrokePathNV;
13976   glCoverFillPathInstancedNV : TglCoverFillPathInstancedNV;
13977   glCoverStrokePathInstancedNV : TglCoverStrokePathInstancedNV;
13978   glGetPathParameterivNV : TglGetPathParameterivNV;
13979   glGetPathParameterfvNV : TglGetPathParameterfvNV;
13980   glGetPathCommandsNV : TglGetPathCommandsNV;
13981   glGetPathCoordsNV : TglGetPathCoordsNV;
13982   glGetPathDashArrayNV : TglGetPathDashArrayNV;
13983   glGetPathMetricsNV : TglGetPathMetricsNV;
13984   glGetPathMetricRangeNV : TglGetPathMetricRangeNV;
13985   glGetPathSpacingNV : TglGetPathSpacingNV;
13986   glGetPathColorGenivNV : TglGetPathColorGenivNV;
13987   glGetPathColorGenfvNV : TglGetPathColorGenfvNV;
13988   glGetPathTexGenivNV : TglGetPathTexGenivNV;
13989   glGetPathTexGenfvNV : TglGetPathTexGenfvNV;
13990   glIsPointInFillPathNV : TglIsPointInFillPathNV;
13991   glIsPointInStrokePathNV : TglIsPointInStrokePathNV;
13992   glGetPathLengthNV : TglGetPathLengthNV;
13993   glPointAlongPathNV : TglPointAlongPathNV;
13994
13995   // GL_AMD_pinned_memory
13996
13997   // GL_AMD_stencil_operation_extended
13998   glStencilOpValueAMD : TglStencilOpValueAMD;
13999
14000   // GL_AMD_vertex_shader_viewport_index
14001
14002   // GL_AMD_vertex_shader_layer
14003
14004   // GL_NV_bindless_texture
14005   glGetTextureHandleNV : TglGetTextureHandleNV;
14006   glGetTextureSamplerHandleNV : TglGetTextureSamplerHandleNV;
14007   glMakeTextureHandleResidentNV : TglMakeTextureHandleResidentNV;
14008   glMakeTextureHandleNonResidentNV : TglMakeTextureHandleNonResidentNV;
14009   glGetImageHandleNV : TglGetImageHandleNV;
14010   glMakeImageHandleResidentNV : TglMakeImageHandleResidentNV;
14011   glMakeImageHandleNonResidentNV : TglMakeImageHandleNonResidentNV;
14012   glUniformHandleui64NV : TglUniformHandleui64NV;
14013   glUniformHandleui64vNV : TglUniformHandleui64vNV;
14014   glProgramUniformHandleui64NV : TglProgramUniformHandleui64NV;
14015   glProgramUniformHandleui64vNV : TglProgramUniformHandleui64vNV;
14016   glIsTextureHandleResidentNV : TglIsTextureHandleResidentNV;
14017   glIsImageHandleResidentNV : TglIsImageHandleResidentNV;
14018
14019   // GL_ARB_bindless_texture
14020   glGetTextureHandleARB : TglGetTextureHandleARB;
14021   glGetTextureSamplerHandleARB : TglGetTextureSamplerHandleARB;
14022   glMakeTextureHandleResidentARB : TglMakeTextureHandleResidentARB;
14023   glMakeTextureHandleNonResidentARB : TglMakeTextureHandleNonResidentARB;
14024   glGetImageHandleARB : TglGetImageHandleARB;
14025   glMakeImageHandleResidentARB : TglMakeImageHandleResidentARB;
14026   glMakeImageHandleNonResidentARB : TglMakeImageHandleNonResidentARB;
14027   glUniformHandleui64ARB : TglUniformHandleui64ARB;
14028   glUniformHandleui64vARB : TglUniformHandleui64vARB;
14029   glProgramUniformHandleui64ARB : TglProgramUniformHandleui64ARB;
14030   glProgramUniformHandleui64vARB : TglProgramUniformHandleui64vARB;
14031   glIsTextureHandleResidentARB : TglIsTextureHandleResidentARB;
14032   glIsImageHandleResidentARB : TglIsImageHandleResidentARB;
14033   glVertexAttribL1ui64ARB : TglVertexAttribL1ui64ARB;
14034   glVertexAttribL1ui64vARB : TglVertexAttribL1ui64vARB;
14035   glGetVertexAttribLui64vARB : TglGetVertexAttribLui64vARB;
14036
14037   // GL_PGI_misc_hints
14038   glHintPGI: TglHintPGI;
14039
14040   // GL_SGIS_detail_texture
14041   glDetailTexFuncSGIS: TglDetailTexFuncSGIS;
14042   glGetDetailTexFuncSGIS: TglGetDetailTexFuncSGIS;
14043
14044   // GL_SGIS_fog_function
14045   glFogFuncSGIS: TglFogFuncSGIS;
14046   glGetFogFuncSGIS: TglGetFogFuncSGIS;
14047
14048   // GL_SGIS_multisample
14049   glSampleMaskSGIS: TglSampleMaskSGIS;
14050   glSamplePatternSGIS: TglSamplePatternSGIS;
14051
14052   // GL_SGIS_pixel_texture
14053   glPixelTexGenParameteriSGIS: TglPixelTexGenParameteriSGIS;
14054   glPixelTexGenParameterivSGIS: TglPixelTexGenParameterivSGIS;
14055   glPixelTexGenParameterfSGIS: TglPixelTexGenParameterfSGIS;
14056   glPixelTexGenParameterfvSGIS: TglPixelTexGenParameterfvSGIS;
14057   glGetPixelTexGenParameterivSGIS: TglGetPixelTexGenParameterivSGIS;
14058   glGetPixelTexGenParameterfvSGIS: TglGetPixelTexGenParameterfvSGIS;
14059
14060   // GL_SGIS_point_parameters
14061   glPointParameterfSGIS: TglPointParameterfSGIS;
14062   glPointParameterfvSGIS: TglPointParameterfvSGIS;
14063
14064   // GL_SGIS_sharpen_texture
14065   glSharpenTexFuncSGIS: TglSharpenTexFuncSGIS;
14066   glGetSharpenTexFuncSGIS: TglGetSharpenTexFuncSGIS;
14067
14068   // GL_SGIS_texture4D
14069   glTexImage4DSGIS: TglTexImage4DSGIS;
14070   glTexSubImage4DSGIS: TglTexSubImage4DSGIS;
14071
14072   // GL_SGIS_texture_color_mask
14073   glTextureColorMaskSGIS: TglTextureColorMaskSGIS;
14074
14075   // GL_SGIS_texture_filter4
14076   glGetTexFilterFuncSGIS: TglGetTexFilterFuncSGIS;
14077   glTexFilterFuncSGIS: TglTexFilterFuncSGIS;
14078
14079   // GL_SGIX_async
14080   glAsyncMarkerSGIX: TglAsyncMarkerSGIX;
14081   glFinishAsyncSGIX: TglFinishAsyncSGIX;
14082   glPollAsyncSGIX: TglPollAsyncSGIX;
14083   glGenAsyncMarkersSGIX: TglGenAsyncMarkersSGIX;
14084   glDeleteAsyncMarkersSGIX: TglDeleteAsyncMarkersSGIX;
14085   glIsAsyncMarkerSGIX: TglIsAsyncMarkerSGIX;
14086
14087   // GL_SGIX_flush_raster
14088   glFlushRasterSGIX: TglFlushRasterSGIX;
14089
14090   // GL_SGIX_fragment_lighting
14091   glFragmentColorMaterialSGIX: TglFragmentColorMaterialSGIX;
14092   glFragmentLightfSGIX: TglFragmentLightfSGIX;
14093   glFragmentLightfvSGIX: TglFragmentLightfvSGIX;
14094   glFragmentLightiSGIX: TglFragmentLightiSGIX;
14095   glFragmentLightivSGIX: TglFragmentLightivSGIX;
14096   glFragmentLightModelfSGIX: TglFragmentLightModelfSGIX;
14097   glFragmentLightModelfvSGIX: TglFragmentLightModelfvSGIX;
14098   glFragmentLightModeliSGIX: TglFragmentLightModeliSGIX;
14099   glFragmentLightModelivSGIX: TglFragmentLightModelivSGIX;
14100   glFragmentMaterialfSGIX: TglFragmentMaterialfSGIX;
14101   glFragmentMaterialfvSGIX: TglFragmentMaterialfvSGIX;
14102   glFragmentMaterialiSGIX: TglFragmentMaterialiSGIX;
14103   glFragmentMaterialivSGIX: TglFragmentMaterialivSGIX;
14104   glGetFragmentLightfvSGIX: TglGetFragmentLightfvSGIX;
14105   glGetFragmentLightivSGIX: TglGetFragmentLightivSGIX;
14106   glGetFragmentMaterialfvSGIX: TglGetFragmentMaterialfvSGIX;
14107   glGetFragmentMaterialivSGIX: TglGetFragmentMaterialivSGIX;
14108   glLightEnviSGIX: TglLightEnviSGIX;
14109
14110   // GL_SGIX_framezoom
14111   glFrameZoomSGIX: TglFrameZoomSGIX;
14112
14113   // GL_SGIX_igloo_interface
14114   glIglooInterfaceSGIX: TglIglooInterfaceSGIX;
14115
14116   // GL_SGIX_instruments
14117   glGetInstrumentsSGIX: TglGetInstrumentsSGIX;
14118   glInstrumentsBufferSGIX: TglInstrumentsBufferSGIX;
14119   glPollInstrumentsSGIX: TglPollInstrumentsSGIX;
14120   glReadInstrumentsSGIX: TglReadInstrumentsSGIX;
14121   glStartInstrumentsSGIX: TglStartInstrumentsSGIX;
14122   glStopInstrumentsSGIX: TglStopInstrumentsSGIX;
14123
14124   // GL_SGIX_list_priority
14125   glGetListParameterfvSGIX: TglGetListParameterfvSGIX;
14126   glGetListParameterivSGIX: TglGetListParameterivSGIX;
14127   glListParameterfSGIX: TglListParameterfSGIX;
14128   glListParameterfvSGIX: TglListParameterfvSGIX;
14129   glListParameteriSGIX: TglListParameteriSGIX;
14130   glListParameterivSGIX: TglListParameterivSGIX;
14131
14132   // GL_SGIX_pixel_texture
14133   glPixelTexGenSGIX: TglPixelTexGenSGIX;
14134
14135   // GL_SGIX_polynomial_ffd
14136   glDeformationMap3dSGIX: TglDeformationMap3dSGIX;
14137   glDeformationMap3fSGIX: TglDeformationMap3fSGIX;
14138   glDeformSGIX: TglDeformSGIX;
14139   glLoadIdentityDeformationMapSGIX: TglLoadIdentityDeformationMapSGIX;
14140
14141   // GL_SGIX_reference_plane
14142   glReferencePlaneSGIX: TglReferencePlaneSGIX;
14143
14144   // GL_SGIX_sprite
14145   glSpriteParameterfSGIX: TglSpriteParameterfSGIX;
14146   glSpriteParameterfvSGIX: TglSpriteParameterfvSGIX;
14147   glSpriteParameteriSGIX: TglSpriteParameteriSGIX;
14148   glSpriteParameterivSGIX: TglSpriteParameterivSGIX;
14149
14150   // GL_SGIX_tag_sample_buffer
14151   glTagSampleBufferSGIX: TglTagSampleBufferSGIX;
14152
14153   // GL_SGI_color_table
14154   glColorTableSGI: TglColorTableSGI;
14155   glColorTableParameterfvSGI: TglColorTableParameterfvSGI;
14156   glColorTableParameterivSGI: TglColorTableParameterivSGI;
14157   glCopyColorTableSGI: TglCopyColorTableSGI;
14158   glGetColorTableSGI: TglGetColorTableSGI;
14159   glGetColorTableParameterfvSGI: TglGetColorTableParameterfvSGI;
14160   glGetColorTableParameterivSGI: TglGetColorTableParameterivSGI;
14161
14162   // GL_SUNX_constant_data
14163   glFinishTextureSUNX: TglFinishTextureSUNX;
14164
14165   // GL_SUN_global_alpha
14166   glGlobalAlphaFactorbSUN: TglGlobalAlphaFactorbSUN;
14167   glGlobalAlphaFactorsSUN: TglGlobalAlphaFactorsSUN;
14168   glGlobalAlphaFactoriSUN: TglGlobalAlphaFactoriSUN;
14169   glGlobalAlphaFactorfSUN: TglGlobalAlphaFactorfSUN;
14170   glGlobalAlphaFactordSUN: TglGlobalAlphaFactordSUN;
14171   glGlobalAlphaFactorubSUN: TglGlobalAlphaFactorubSUN;
14172   glGlobalAlphaFactorusSUN: TglGlobalAlphaFactorusSUN;
14173   glGlobalAlphaFactoruiSUN: TglGlobalAlphaFactoruiSUN;
14174
14175   // GL_SUN_mesh_array
14176   glDrawMeshArraysSUN: TglDrawMeshArraysSUN;
14177
14178   // GL_SUN_triangle_list
14179   glReplacementCodeuiSUN: TglReplacementCodeuiSUN;
14180   glReplacementCodeusSUN: TglReplacementCodeusSUN;
14181   glReplacementCodeubSUN: TglReplacementCodeubSUN;
14182   glReplacementCodeuivSUN: TglReplacementCodeuivSUN;
14183   glReplacementCodeusvSUN: TglReplacementCodeusvSUN;
14184   glReplacementCodeubvSUN: TglReplacementCodeubvSUN;
14185   glReplacementCodePointerSUN: TglReplacementCodePointerSUN;
14186
14187   // GL_SUN_vertex
14188   glColor4ubVertex2fSUN: TglColor4ubVertex2fSUN;
14189   glColor4ubVertex2fvSUN: TglColor4ubVertex2fvSUN;
14190   glColor4ubVertex3fSUN: TglColor4ubVertex3fSUN;
14191   glColor4ubVertex3fvSUN: TglColor4ubVertex3fvSUN;
14192   glColor3fVertex3fSUN: TglColor3fVertex3fSUN;
14193   glColor3fVertex3fvSUN: TglColor3fVertex3fvSUN;
14194   glNormal3fVertex3fSUN: TglNormal3fVertex3fSUN;
14195   glNormal3fVertex3fvSUN: TglNormal3fVertex3fvSUN;
14196   glColor4fNormal3fVertex3fSUN: TglColor4fNormal3fVertex3fSUN;
14197   glColor4fNormal3fVertex3fvSUN: TglColor4fNormal3fVertex3fvSUN;
14198   glTexCoord2fVertex3fSUN: TglTexCoord2fVertex3fSUN;
14199   glTexCoord2fVertex3fvSUN: TglTexCoord2fVertex3fvSUN;
14200   glTexCoord4fVertex4fSUN: TglTexCoord4fVertex4fSUN;
14201   glTexCoord4fVertex4fvSUN: TglTexCoord4fVertex4fvSUN;
14202   glTexCoord2fColor4ubVertex3fSUN: TglTexCoord2fColor4ubVertex3fSUN;
14203   glTexCoord2fColor4ubVertex3fvSUN: TglTexCoord2fColor4ubVertex3fvSUN;
14204   glTexCoord2fColor3fVertex3fSUN: TglTexCoord2fColor3fVertex3fSUN;
14205   glTexCoord2fColor3fVertex3fvSUN: TglTexCoord2fColor3fVertex3fvSUN;
14206   glTexCoord2fNormal3fVertex3fSUN: TglTexCoord2fNormal3fVertex3fSUN;
14207   glTexCoord2fNormal3fVertex3fvSUN: TglTexCoord2fNormal3fVertex3fvSUN;
14208   glTexCoord2fColor4fNormal3fVertex3fSUN: TglTexCoord2fColor4fNormal3fVertex3fSUN;
14209   glTexCoord2fColor4fNormal3fVertex3fvSUN: TglTexCoord2fColor4fNormal3fVertex3fvSUN;
14210   glTexCoord4fColor4fNormal3fVertex4fSUN: TglTexCoord4fColor4fNormal3fVertex4fSUN;
14211   glTexCoord4fColor4fNormal3fVertex4fvSUN: TglTexCoord4fColor4fNormal3fVertex4fvSUN;
14212   glReplacementCodeuiVertex3fSUN: TglReplacementCodeuiVertex3fSUN;
14213   glReplacementCodeuiVertex3fvSUN: TglReplacementCodeuiVertex3fvSUN;
14214   glReplacementCodeuiColor4ubVertex3fSUN: TglReplacementCodeuiColor4ubVertex3fSUN;
14215   glReplacementCodeuiColor4ubVertex3fvSUN: TglReplacementCodeuiColor4ubVertex3fvSUN;
14216   glReplacementCodeuiColor3fVertex3fSUN: TglReplacementCodeuiColor3fVertex3fSUN;
14217   glReplacementCodeuiColor3fVertex3fvSUN: TglReplacementCodeuiColor3fVertex3fvSUN;
14218   glReplacementCodeuiNormal3fVertex3fSUN: TglReplacementCodeuiNormal3fVertex3fSUN;
14219   glReplacementCodeuiNormal3fVertex3fvSUN: TglReplacementCodeuiNormal3fVertex3fvSUN;
14220   glReplacementCodeuiColor4fNormal3fVertex3fSUN: TglReplacementCodeuiColor4fNormal3fVertex3fSUN;
14221   glReplacementCodeuiColor4fNormal3fVertex3fvSUN: TglReplacementCodeuiColor4fNormal3fVertex3fvSUN;
14222   glReplacementCodeuiTexCoord2fVertex3fSUN: TglReplacementCodeuiTexCoord2fVertex3fSUN;
14223   glReplacementCodeuiTexCoord2fVertex3fvSUN: TglReplacementCodeuiTexCoord2fVertex3fvSUN;
14224   glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN: TglReplacementCodeuiTexCoord2fNormal3fVertex3fSUN;
14225   glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN: TglReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN;
14226   glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN: TglReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN;
14227   glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN: TglReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN;
14228
14229 {$IFDEF DGL_WIN}
14230   wglGetProcAddress: TwglGetProcAddress;
14231   wglCopyContext: TwglCopyContext;
14232   wglCreateContext: TwglCreateContext;
14233   wglCreateLayerContext: TwglCreateLayerContext;
14234   wglDeleteContext: TwglDeleteContext;
14235   wglDescribeLayerPlane: TwglDescribeLayerPlane;
14236   wglGetCurrentContext: TwglGetCurrentContext;
14237   wglGetCurrentDC: TwglGetCurrentDC;
14238   wglGetLayerPaletteEntries: TwglGetLayerPaletteEntries;
14239   wglMakeCurrent: TwglMakeCurrent;
14240   wglRealizeLayerPalette: TwglRealizeLayerPalette;
14241   wglSetLayerPaletteEntries: TwglSetLayerPaletteEntries;
14242   wglShareLists: TwglShareLists;
14243   wglSwapLayerBuffers: TwglSwapLayerBuffers;
14244   wglSwapMultipleBuffers: TwglSwapMultipleBuffers;
14245   wglUseFontBitmapsA: TwglUseFontBitmapsA;
14246   wglUseFontOutlinesA: TwglUseFontOutlinesA;
14247   wglUseFontBitmapsW: TwglUseFontBitmapsW;
14248   wglUseFontOutlinesW: TwglUseFontOutlinesW;
14249   wglUseFontBitmaps: TwglUseFontBitmaps;
14250   wglUseFontOutlines: TwglUseFontOutlines;
14251
14252    // WGL_ARB_buffer_region
14253   wglCreateBufferRegionARB: TwglCreateBufferRegionARB;
14254   wglDeleteBufferRegionARB: TwglDeleteBufferRegionARB;
14255   wglSaveBufferRegionARB: TwglSaveBufferRegionARB;
14256   wglRestoreBufferRegionARB: TwglRestoreBufferRegionARB;
14257
14258   // WGL_ARB_extensions_string
14259   wglGetExtensionsStringARB: TwglGetExtensionsStringARB;
14260
14261   // WGL_ARB_make_current_read
14262   wglMakeContextCurrentARB: TwglMakeContextCurrentARB;
14263   wglGetCurrentReadDCARB: TwglGetCurrentReadDCARB;
14264
14265   // WGL_ARB_pbuffer
14266   wglCreatePbufferARB: TwglCreatePbufferARB;
14267   wglGetPbufferDCARB: TwglGetPbufferDCARB;
14268   wglReleasePbufferDCARB: TwglReleasePbufferDCARB;
14269   wglDestroyPbufferARB: TwglDestroyPbufferARB;
14270   wglQueryPbufferARB: TwglQueryPbufferARB;
14271
14272   // WGL_ARB_pixel_format
14273   wglGetPixelFormatAttribivARB: TwglGetPixelFormatAttribivARB;
14274   wglGetPixelFormatAttribfvARB: TwglGetPixelFormatAttribfvARB;
14275   wglChoosePixelFormatARB: TwglChoosePixelFormatARB;
14276   // WGL_ARB_color_buffer_float
14277   wglClampColorARB: TwglClampColorARB;
14278
14279   // WGL_ARB_render_texture
14280   wglBindTexImageARB: TwglBindTexImageARB;
14281   wglReleaseTexImageARB: TwglReleaseTexImageARB;
14282   wglSetPbufferAttribARB: TwglSetPbufferAttribARB;
14283
14284   // WGL_ARB_create_context
14285   wglCreateContextAttribsARB: TwglCreateContextAttribsARB;
14286
14287   // WGL_AMD_gpu_association
14288   wglGetGPUIDsAMD: TwglGetGPUIDsAMD;
14289   wglGetGPUInfoAMD: TwglGetGPUInfoAMD;
14290   wglGetContextGPUIDAMD: TwglGetContextGPUIDAMD;
14291   wglCreateAssociatedContextAMD: TwglCreateAssociatedContextAMD;
14292   wglCreateAssociatedContextAttribsAMD: TwglCreateAssociatedContextAttribsAMD;
14293   wglDeleteAssociatedContextAMD: TwglDeleteAssociatedContextAMD;
14294   wglMakeAssociatedContextCurrentAMD: TwglMakeAssociatedContextCurrentAMD;
14295   wglGetCurrentAssociatedContextAMD: TwglGetCurrentAssociatedContextAMD;
14296   wglBlitContextFramebufferAMD: TwglBlitContextFramebufferAMD;
14297
14298   // WGL_EXT_display_color_table
14299   wglCreateDisplayColorTableEXT: TwglCreateDisplayColorTableEXT;
14300   wglLoadDisplayColorTableEXT: TwglLoadDisplayColorTableEXT;
14301   wglBindDisplayColorTableEXT: TwglBindDisplayColorTableEXT;
14302   wglDestroyDisplayColorTableEXT: TwglDestroyDisplayColorTableEXT;
14303
14304   // WGL_EXT_extensions_string
14305   wglGetExtensionsStringEXT: TwglGetExtensionsStringEXT;
14306
14307   // WGL_EXT_make_current_read
14308   wglMakeContextCurrentEXT: TwglMakeContextCurrentEXT;
14309   wglGetCurrentReadDCEXT: TwglGetCurrentReadDCEXT;
14310
14311   // WGL_EXT_pbuffer
14312   wglCreatePbufferEXT: TwglCreatePbufferEXT;
14313   wglGetPbufferDCEXT: TwglGetPbufferDCEXT;
14314   wglReleasePbufferDCEXT: TwglReleasePbufferDCEXT;
14315   wglDestroyPbufferEXT: TwglDestroyPbufferEXT;
14316   wglQueryPbufferEXT: TwglQueryPbufferEXT;
14317
14318   // WGL_EXT_pixel_format
14319   wglGetPixelFormatAttribivEXT: TwglGetPixelFormatAttribivEXT;
14320   wglGetPixelFormatAttribfvEXT: TwglGetPixelFormatAttribfvEXT;
14321   wglChoosePixelFormatEXT: TwglChoosePixelFormatEXT;
14322
14323   // WGL_EXT_swap_control
14324   wglSwapIntervalEXT: TwglSwapIntervalEXT;
14325   wglGetSwapIntervalEXT: TwglGetSwapIntervalEXT;
14326
14327   // WGL_I3D_digital_video_control
14328   wglGetDigitalVideoParametersI3D: TwglGetDigitalVideoParametersI3D;
14329   wglSetDigitalVideoParametersI3D: TwglSetDigitalVideoParametersI3D;
14330
14331   // WGL_I3D_gamma
14332   wglGetGammaTableParametersI3D: TwglGetGammaTableParametersI3D;
14333   wglSetGammaTableParametersI3D: TwglSetGammaTableParametersI3D;
14334   wglGetGammaTableI3D: TwglGetGammaTableI3D;
14335   wglSetGammaTableI3D: TwglSetGammaTableI3D;
14336
14337   // WGL_I3D_genlock
14338   wglEnableGenlockI3D: TwglEnableGenlockI3D;
14339   wglDisableGenlockI3D: TwglDisableGenlockI3D;
14340   wglIsEnabledGenlockI3D: TwglIsEnabledGenlockI3D;
14341   wglGenlockSourceI3D: TwglGenlockSourceI3D;
14342   wglGetGenlockSourceI3D: TwglGetGenlockSourceI3D;
14343   wglGenlockSourceEdgeI3D: TwglGenlockSourceEdgeI3D;
14344   wglGetGenlockSourceEdgeI3D: TwglGetGenlockSourceEdgeI3D;
14345   wglGenlockSampleRateI3D: TwglGenlockSampleRateI3D;
14346   wglGetGenlockSampleRateI3D: TwglGetGenlockSampleRateI3D;
14347   wglGenlockSourceDelayI3D: TwglGenlockSourceDelayI3D;
14348   wglGetGenlockSourceDelayI3D: TwglGetGenlockSourceDelayI3D;
14349   wglQueryGenlockMaxSourceDelayI3D: TwglQueryGenlockMaxSourceDelayI3D;
14350
14351   // WGL_I3D_image_buffer
14352   wglCreateImageBufferI3D: TwglCreateImageBufferI3D;
14353   wglDestroyImageBufferI3D: TwglDestroyImageBufferI3D;
14354   wglAssociateImageBufferEventsI3D: TwglAssociateImageBufferEventsI3D;
14355   wglReleaseImageBufferEventsI3D: TwglReleaseImageBufferEventsI3D;
14356
14357   // WGL_I3D_swap_frame_lock
14358   wglEnableFrameLockI3D: TwglEnableFrameLockI3D;
14359   wglDisableFrameLockI3D: TwglDisableFrameLockI3D;
14360   wglIsEnabledFrameLockI3D: TwglIsEnabledFrameLockI3D;
14361   wglQueryFrameLockMasterI3D: TwglQueryFrameLockMasterI3D;
14362
14363   // WGL_I3D_swap_frame_usage
14364   wglGetFrameUsageI3D: TwglGetFrameUsageI3D;
14365   wglBeginFrameTrackingI3D: TwglBeginFrameTrackingI3D;
14366   wglEndFrameTrackingI3D: TwglEndFrameTrackingI3D;
14367   wglQueryFrameTrackingI3D: TwglQueryFrameTrackingI3D;
14368
14369   // WGL_NV_vertex_array_range
14370   wglAllocateMemoryNV: TwglAllocateMemoryNV;
14371   wglFreeMemoryNV: TwglFreeMemoryNV;
14372
14373   // WGL_NV_present_video
14374   wglEnumerateVideoDevicesNV: TwglEnumerateVideoDevicesNV;
14375   wglBindVideoDeviceNV: TwglBindVideoDeviceNV;
14376   wglQueryCurrentContextNV: TwglQueryCurrentContextNV;
14377
14378   // WGL_NV_video_output
14379   wglGetVideoDeviceNV: TwglGetVideoDeviceNV;
14380   wglReleaseVideoDeviceNV: TwglReleaseVideoDeviceNV;
14381   wglBindVideoImageNV: TwglBindVideoImageNV;
14382   wglReleaseVideoImageNV: TwglReleaseVideoImageNV;
14383   wglSendPbufferToVideoNV: TwglSendPbufferToVideoNV;
14384   wglGetVideoInfoNV: TwglGetVideoInfoNV;
14385
14386   // WGL_NV_swap_group
14387   wglJoinSwapGroupNV: TwglJoinSwapGroupNV;
14388   wglBindSwapBarrierNV: TwglBindSwapBarrierNV;
14389   wglQuerySwapGroupNV: TwglQuerySwapGroupNV;
14390   wglQueryMaxSwapGroupsNV: TwglQueryMaxSwapGroupsNV;
14391   wglQueryFrameCountNV: TwglQueryFrameCountNV;
14392   wglResetFrameCountNV: TwglResetFrameCountNV;
14393
14394   // WGL_NV_gpu_affinity
14395   wglEnumGpusNV: TwglEnumGpusNV;
14396   wglEnumGpuDevicesNV: TwglEnumGpuDevicesNV;
14397   wglCreateAffinityDCNV: TwglCreateAffinityDCNV;
14398   wglEnumGpusFromAffinityDCNV: TwglEnumGpusFromAffinityDCNV;
14399   wglDeleteDCNV: TwglDeleteDCNV;
14400
14401   // WGL_NV_video_capture
14402   wglBindVideoCaptureDeviceNV: TwglBindVideoCaptureDeviceNV;
14403   wglEnumerateVideoCaptureDevicesNV: TwglEnumerateVideoCaptureDevicesNV;
14404   wglLockVideoCaptureDeviceNV: TwglLockVideoCaptureDeviceNV;
14405   wglQueryVideoCaptureDeviceNV: TwglQueryVideoCaptureDeviceNV;
14406   wglReleaseVideoCaptureDeviceNV: TwglReleaseVideoCaptureDeviceNV;
14407
14408   // WGL_NV_copy_image
14409   wglCopyImageSubDataNV: TwglCopyImageSubDataNV;
14410
14411   // WGL_NV_DX_interop
14412   wglDXSetResourceShareHandleNV : TwglDXSetResourceShareHandleNV;
14413   wglDXOpenDeviceNV : TwglDXOpenDeviceNV;
14414   wglDXCloseDeviceNV : TwglDXCloseDeviceNV;
14415   wglDXRegisterObjectNV : TwglDXRegisterObjectNV;
14416   wglDXUnregisterObjectNV : TwglDXUnregisterObjectNV;
14417   wglDXObjectAccessNV : TwglDXObjectAccessNV;
14418   wglDXLockObjectsNV : TwglDXLockObjectsNV;
14419   wglDXUnlockObjectsNV : TwglDXUnlockObjectsNV;
14420
14421   // WGL_OML_sync_control
14422   wglGetSyncValuesOML: TwglGetSyncValuesOML;
14423   wglGetMscRateOML: TwglGetMscRateOML;
14424   wglSwapBuffersMscOML: TwglSwapBuffersMscOML;
14425   wglSwapLayerBuffersMscOML: TwglSwapLayerBuffersMscOML;
14426   wglWaitForMscOML: TwglWaitForMscOML;
14427   wglWaitForSbcOML: TwglWaitForSbcOML;
14428
14429   // WGL_3DL_stereo_control
14430   wglSetStereoEmitterState3DL: TwglSetStereoEmitterState3DL;
14431
14432   // WIN_draw_range_elements
14433   glDrawRangeElementsWIN: TglDrawRangeElementsWIN;
14434
14435   // WIN_swap_hint
14436   glAddSwapHintRectWIN: TglAddSwapHintRectWIN;
14437 {$ENDIF}
14438
14439 {$IFDEF DGL_LINUX}
14440   glXChooseVisual: TglXChooseVisual;
14441   glXCopyContext: TglXCopyContext;
14442   glXCreateContext: TglXCreateContext;
14443   glXCreateGLXPixmap: TglXCreateGLXPixmap;
14444   glXDestroyContext: TglXDestroyContext;
14445   glXDestroyGLXPixmap: TglXDestroyGLXPixmap;
14446   glXGetConfig: TglXGetConfig;
14447   glXGetCurrentContext: TglXGetCurrentContext;
14448   glXGetCurrentDrawable: TglXGetCurrentDrawable;
14449   glXIsDirect: TglXIsDirect;
14450   glXMakeCurrent: TglXMakeCurrent;
14451   glXQueryExtension: TglXQueryExtension;
14452   glXQueryVersion: TglXQueryVersion;
14453   glXSwapBuffers: TglXSwapBuffers;
14454   glXUseXFont: TglXUseXFont;
14455   glXWaitGL: TglXWaitGL;
14456   glXWaitX: TglXWaitX;
14457
14458   glXGetClientString: TglXGetClientString;
14459   glXQueryServerString: TglXQueryServerString;
14460   glXQueryExtensionsString: TglXQueryExtensionsString;
14461
14462   // GLX_VERSION_1_3
14463   glXGetFBConfigs: TglXGetFBConfigs;
14464   glXChooseFBConfig: TglXChooseFBConfig;
14465   glXGetFBConfigAttrib: TglXGetFBConfigAttrib;
14466   glXGetVisualFromFBConfig: TglXGetVisualFromFBConfig;
14467   glXCreateWindow: TglXCreateWindow;
14468   glXDestroyWindow: TglXDestroyWindow;
14469   glXCreatePixmap: TglXCreatePixmap;
14470
14471   glXDestroyPixmap: TglXDestroyPixmap;
14472   glXCreatePbuffer: TglXCreatePbuffer;
14473   glXDestroyPbuffer: TglXDestroyPbuffer;
14474   glXQueryDrawable: TglXQueryDrawable;
14475   glXCreateNewContext: TglXCreateNewContext;
14476   glXMakeContextCurrent: TglXMakeContextCurrent;
14477   glXGetCurrentReadDrawable: TglXGetCurrentReadDrawable;
14478   glXGetCurreentDisplay: TglXGetCurreentDisplay;
14479
14480   glXQueryContext: TglXQueryContext;
14481   glXSelectEvent: TglXSelectEvent;
14482   glXGetSelectedEvent: TglXGetSelectedEvent;
14483
14484   // GLX_VERSION_1_4
14485   glXGetProcAddress: TglXGetProcAddress;
14486
14487   // GLX_ARB_get_proc_address
14488   glXGetProcAddressARB: TglXGetProcAddressARB;
14489
14490   // GLX_ARB_create_context
14491   glXCreateContextAttribsARB: TglXCreateContextAttribsARB;
14492
14493   // GLX_EXT_import_context
14494   glXGetCurrentDisplayEXT: TglXGetCurrentDisplayEXT;
14495   glXQueryContextInfoEXT: TglXQueryContextInfoEXT;
14496   glXGetContextIDEXT: TglXGetContextIDEXT;
14497   glXImportContextEXT: TglXImportContextEXT;
14498   glXFreeContextEXT: TglXFreeContextEXT;
14499
14500   // GLX_EXT_texture_from_pixmap
14501   glXBindTexImageEXT: TglXBindTexImageEXT;
14502   glXReleaseTexImageEXT: TglXReleaseTexImageEXT;
14503 {$ENDIF}
14504
14505   // GL utility functions and procedures
14506   gluErrorString: TgluErrorString;
14507   gluGetString: TgluGetString;
14508   gluOrtho2D: TgluOrtho2D;
14509   gluPerspective: TgluPerspective;
14510   gluPickMatrix: TgluPickMatrix;
14511   gluLookAt: TgluLookAt;
14512   gluProject: TgluProject;
14513   gluUnProject: TgluUnProject;
14514   gluScaleImage: TgluScaleImage;
14515   gluBuild1DMipmaps: TgluBuild1DMipmaps;
14516   gluBuild2DMipmaps: TgluBuild2DMipmaps;
14517   gluNewQuadric: TgluNewQuadric;
14518   gluDeleteQuadric: TgluDeleteQuadric;
14519   gluQuadricNormals: TgluQuadricNormals;
14520   gluQuadricTexture: TgluQuadricTexture;
14521   gluQuadricOrientation: TgluQuadricOrientation;
14522   gluQuadricDrawStyle: TgluQuadricDrawStyle;
14523   gluCylinder: TgluCylinder;
14524   gluDisk: TgluDisk;
14525   gluPartialDisk: TgluPartialDisk;
14526   gluSphere: TgluSphere;
14527   gluQuadricCallback: TgluQuadricCallback;
14528   gluNewTess: TgluNewTess;
14529   gluDeleteTess: TgluDeleteTess;
14530   gluTessBeginPolygon: TgluTessBeginPolygon;
14531   gluTessBeginContour: TgluTessBeginContour;
14532   gluTessVertex: TgluTessVertex;
14533   gluTessEndContour: TgluTessEndContour;
14534   gluTessEndPolygon: TgluTessEndPolygon;
14535   gluTessProperty: TgluTessProperty;
14536   gluTessNormal: TgluTessNormal;
14537   gluTessCallback: TgluTessCallback;
14538   gluGetTessProperty: TgluGetTessProperty;
14539   gluNewNurbsRenderer: TgluNewNurbsRenderer;
14540   gluDeleteNurbsRenderer: TgluDeleteNurbsRenderer;
14541   gluBeginSurface: TgluBeginSurface;
14542   gluBeginCurve: TgluBeginCurve;
14543   gluEndCurve: TgluEndCurve;
14544   gluEndSurface: TgluEndSurface;
14545   gluBeginTrim: TgluBeginTrim;
14546   gluEndTrim: TgluEndTrim;
14547   gluPwlCurve: TgluPwlCurve;
14548   gluNurbsCurve: TgluNurbsCurve;
14549   gluNurbsSurface: TgluNurbsSurface;
14550   gluLoadSamplingMatrices: TgluLoadSamplingMatrices;
14551   gluNurbsProperty: TgluNurbsProperty;
14552   gluGetNurbsProperty: TgluGetNurbsProperty;
14553   gluNurbsCallback: TgluNurbsCallback;
14554   gluBeginPolygon: TgluBeginPolygon;
14555   gluNextContour: TgluNextContour;
14556   gluEndPolygon: TgluEndPolygon;
14557
14558
14559 type
14560   TRCOptions = set of (opDoubleBuffered, opGDI, opStereo);
14561
14562 var
14563   GL_LibHandle: Pointer = nil;
14564   GLU_LibHandle: Pointer = nil;
14565
14566   LastPixelFormat: Integer;
14567   ExtensionsRead: Boolean;
14568   ImplementationRead: Boolean;
14569
14570
14571 const
14572 {$IFDEF DGL_WIN}
14573   OPENGL_LIBNAME = 'OpenGL32.dll';
14574   GLU_LIBNAME = 'GLU32.dll';
14575 {$ELSE}
14576   {$IFDEF darwin}
14577     OPENGL_LIBNAME = 'libGL.dylib';
14578     GLU_LIBNAME = 'libGLU.dylib';
14579   {$ELSE}
14580     OPENGL_LIBNAME = 'libGL.so.1';
14581     GLU_LIBNAME = 'libGLU.so.1';
14582   {$ENDIF}
14583 {$ENDIF}
14584
14585 function InitOpenGL(LibName: String = OPENGL_LIBNAME; GLULibName: String = GLU_LIBNAME): Boolean;
14586
14587 function dglGetProcAddress(ProcName: PAnsiChar; LibHandle: Pointer = nil {$IFDEF DGL_LINUX}; ForceDLSym: Boolean = False{$ENDIF}): Pointer;
14588 function dglCheckExtension(Extension: AnsiString): Boolean;
14589
14590 procedure ReadExtensions;
14591 procedure ReadImplementationProperties;
14592
14593 // =============================================================================
14594 // Helper-Functions
14595 // =============================================================================
14596 {$IFDEF DGL_WIN}
14597   function CreateRenderingContext(DC: HDC; Options: TRCOptions; ColorBits, ZBits, StencilBits, AccumBits, AuxBuffers: Integer; Layer: Integer): HGLRC;
14598   function CreateRenderingContextVersion(DC: HDC; Options: TRCOptions; MajorVersion, MinorVersion : Integer; ForwardCompatible : Boolean; ColorBits, ZBits, StencilBits, AccumBits, AuxBuffers: Integer; Layer: Integer): HGLRC;
14599   procedure DestroyRenderingContext(RC: HGLRC);
14600
14601   procedure ActivateRenderingContext(DC: HDC; RC: HGLRC; loadext: boolean = true);
14602   procedure DeactivateRenderingContext;
14603 {$ENDIF}
14604
14605
14606 procedure ReadOpenGLCore;
14607 procedure Read_GL_3DFX_tbuffer;
14608 procedure Read_GL_APPLE_element_array;
14609 procedure Read_GL_APPLE_fence;
14610 procedure Read_GL_APPLE_vertex_array_object;
14611 procedure Read_GL_APPLE_vertex_array_range;
14612 procedure Read_GL_APPLE_texture_range;
14613 procedure Read_GL_APPLE_vertex_program_evaluators;
14614 procedure Read_GL_APPLE_object_purgeable;
14615 procedure Read_GL_ARB_matrix_palette;
14616 procedure Read_GL_ARB_multitexture;
14617 procedure Read_GL_ARB_point_parameters;
14618 procedure Read_GL_ARB_texture_compression;
14619 procedure Read_GL_ARB_transpose_matrix;
14620 procedure Read_GL_ARB_vertex_blend;
14621 procedure Read_GL_ARB_vertex_buffer_object;
14622 procedure Read_GL_ARB_vertex_program;
14623 procedure Read_GL_ARB_window_pos;
14624 procedure Read_GL_ARB_color_buffer_float;
14625 procedure Read_GL_ARB_Shader_Objects;
14626 procedure Read_GL_ARB_occlusion_query;
14627 procedure Read_GL_ARB_draw_instanced;
14628 procedure Read_GL_ARB_framebuffer_object;
14629 procedure Read_GL_ARB_geometry_shader4;
14630 procedure Read_GL_ARB_instanced_arrays;
14631 procedure Read_GL_ARB_map_buffer_range;
14632 procedure Read_GL_ARB_texture_buffer_object;
14633 procedure Read_GL_ARB_vertex_array_object;
14634 procedure Read_GL_ARB_uniform_buffer_object;
14635 procedure Read_GL_ARB_copy_buffer;
14636 procedure Read_GL_ARB_draw_elements_base_vertex;
14637 procedure Read_GL_ARB_provoking_vertex;
14638 procedure Read_GL_ARB_sync;
14639 procedure Read_GL_ARB_texture_multisample;
14640 procedure Read_GL_ARB_draw_buffers_blend;
14641 procedure Read_GL_ARB_sample_shading;
14642 procedure Read_GL_ARB_shading_language_include;
14643 procedure Read_GL_ARB_blend_func_extended;
14644 procedure Read_GL_ARB_sampler_objects;
14645 procedure Read_GL_ARB_timer_query;
14646 procedure Read_GL_ARB_vertex_type_2_10_10_10_rev;
14647 procedure Read_GL_ARB_draw_indirect;
14648 procedure Read_GL_ARB_gpu_shader_fp64;
14649 procedure Read_GL_ARB_shader_subroutine;
14650 procedure Read_GL_ARB_tessellation_shader;
14651 procedure Read_GL_ARB_transform_feedback2;
14652 procedure Read_GL_ARB_transform_feedback3;
14653 procedure Read_GL_ARB_ES2_compatibility;
14654 procedure Read_GL_ARB_get_program_binary;
14655 procedure Read_GL_ARB_separate_shader_objects;
14656 procedure Read_GL_ARB_vertex_attrib_64bit;
14657 procedure Read_GL_ARB_viewport_array;
14658 // GL 4.2
14659 procedure Read_GL_ARB_base_instance;
14660 procedure Read_GL_ARB_transform_feedback_instanced;
14661 procedure Read_GL_ARB_internalformat_query;
14662 procedure Read_GL_ARB_shader_atomic_counters;
14663 procedure Read_GL_ARB_shader_image_load_store;
14664 procedure Read_GL_ARB_texture_storage;
14665 // GL 4.3
14666 procedure Read_GL_KHR_debug;
14667 procedure Read_GL_ARB_clear_buffer_object;
14668 procedure Read_GL_ARB_compute_shader;
14669 procedure Read_GL_ARB_copy_image;
14670 procedure Read_GL_ARB_framebuffer_no_attachments;
14671 procedure Read_GL_ARB_internalformat_query2;
14672 procedure Read_GL_ARB_invalidate_subdata;
14673 procedure Read_GL_ARB_multi_draw_indirect;
14674 procedure Read_GL_ARB_program_interface_query;
14675 procedure Read_GL_ARB_shader_storage_buffer_object;
14676 procedure Read_GL_ARB_texture_buffer_range;
14677 procedure Read_GL_ARB_texture_storage_multisample;
14678 procedure Read_GL_ARB_texture_view;
14679 procedure Read_GL_ARB_vertex_attrib_binding;
14680
14681
14682 procedure Read_GL_4_4;
14683 procedure Read_GL_4_5;
14684
14685 //
14686 procedure Read_GL_ARB_cl_event;
14687 procedure Read_GL_ARB_compute_variable_group_size;
14688 procedure Read_GL_ARB_debug_output;
14689 procedure Read_GL_ARB_robustness;
14690 procedure Read_GL_ATI_draw_buffers;
14691 procedure Read_GL_ATI_element_array;
14692 procedure Read_GL_ATI_envmap_bumpmap;
14693 procedure Read_GL_ATI_fragment_shader;
14694 procedure Read_GL_ATI_map_object_buffer;
14695 procedure Read_GL_ATI_pn_triangles;
14696 procedure Read_GL_ATI_separate_stencil;
14697 procedure Read_GL_ATI_vertex_array_object;
14698 procedure Read_GL_ATI_vertex_attrib_array_object;
14699 procedure Read_GL_ATI_vertex_streams;
14700 procedure Read_GL_AMD_performance_monitor;
14701 procedure Read_GL_AMD_vertex_shader_tesselator;
14702 procedure Read_GL_AMD_draw_buffers_blend;
14703 procedure Read_GL_AMD_name_gen_delete;
14704 procedure Read_GL_AMD_debug_output;
14705 procedure Read_GL_EXT_blend_color;
14706 procedure Read_GL_EXT_blend_func_separate;
14707 procedure Read_GL_EXT_blend_minmax;
14708 procedure Read_GL_EXT_color_subtable;
14709 procedure Read_GL_EXT_compiled_vertex_array;
14710 procedure Read_GL_EXT_convolution;
14711 procedure Read_GL_EXT_coordinate_frame;
14712 procedure Read_GL_EXT_copy_texture;
14713 procedure Read_GL_EXT_cull_vertex;
14714 procedure Read_GL_EXT_draw_range_elements;
14715 procedure Read_GL_EXT_fog_coord;
14716 procedure Read_GL_EXT_framebuffer_object;
14717 procedure Read_GL_EXT_histogram;
14718 procedure Read_GL_EXT_index_func;
14719 procedure Read_GL_EXT_index_material;
14720 procedure Read_GL_EXT_multi_draw_arrays;
14721 procedure Read_GL_EXT_multisample;
14722 procedure Read_GL_EXT_paletted_texture;
14723 procedure Read_GL_EXT_pixel_transform;
14724 procedure Read_GL_EXT_point_parameters;
14725 procedure Read_GL_EXT_polygon_offset;
14726 procedure Read_GL_EXT_secondary_color;
14727 procedure Read_GL_EXT_stencil_two_side;
14728 procedure Read_GL_EXT_subtexture;
14729 procedure Read_GL_EXT_texture3D;
14730 procedure Read_GL_EXT_texture_object;
14731 procedure Read_GL_EXT_texture_perturb_normal;
14732 procedure Read_GL_EXT_vertex_array;
14733 procedure Read_GL_EXT_vertex_shader;
14734 procedure Read_GL_EXT_vertex_weighting;
14735 procedure Read_GL_EXT_depth_bounds_test;
14736 procedure Read_GL_EXT_blend_equation_separate;
14737 procedure Read_GL_EXT_stencil_clear_tag;
14738 procedure Read_GL_EXT_framebuffer_blit;
14739 procedure Read_GL_EXT_framebuffer_multisample;
14740 procedure Read_GL_EXT_timer_query;
14741 procedure Read_GL_EXT_gpu_program_parameters;
14742 procedure Read_GL_EXT_bindable_uniform;
14743 procedure Read_GL_EXT_draw_buffers2;
14744 procedure Read_GL_EXT_draw_instanced;
14745 procedure Read_GL_EXT_geometry_shader4;
14746 procedure Read_GL_EXT_gpu_shader4;
14747 procedure Read_GL_EXT_texture_array;
14748 procedure Read_GL_EXT_texture_buffer_object;
14749 procedure Read_GL_EXT_texture_integer;
14750 procedure Read_GL_EXT_transform_feedback;
14751 procedure Read_GL_EXT_direct_state_access;
14752 procedure Read_GL_EXT_separate_shader_objects;
14753 procedure Read_GL_EXT_shader_image_load_store;
14754 procedure Read_GL_EXT_vertex_attrib_64bit;
14755 procedure Read_GL_HP_image_transform;
14756 procedure Read_GL_IBM_multimode_draw_arrays;
14757 procedure Read_GL_IBM_vertex_array_lists;
14758 procedure Read_GL_INGR_blend_func_separate;
14759 procedure Read_GL_INTEL_parallel_arrays;
14760 procedure Read_GL_MESA_resize_buffers;
14761 procedure Read_GL_MESA_window_pos;
14762 procedure Read_GL_NV_evaluators;
14763 procedure Read_GL_NV_fence;
14764 procedure Read_GL_NV_fragment_program;
14765 procedure Read_GL_NV_half_float;
14766 procedure Read_GL_NV_occlusion_query;
14767 procedure Read_GL_NV_pixel_data_range;
14768 procedure Read_GL_NV_point_sprite;
14769 procedure Read_GL_NV_primitive_restart;
14770 procedure Read_GL_NV_register_combiners;
14771 procedure Read_GL_NV_register_combiners2;
14772 procedure Read_GL_NV_vertex_array_range;
14773 procedure Read_GL_NV_vertex_program;
14774 procedure Read_GL_NV_depth_buffer_float;
14775 procedure Read_GL_NV_framebuffer_multisample_coverage;
14776 procedure Read_GL_NV_geometry_program4;
14777 procedure Read_GL_NV_gpu_program4;
14778 procedure Read_GL_NV_parameter_buffer_object;
14779 procedure Read_GL_NV_transform_feedback;
14780 procedure Read_GL_NV_conditional_render;
14781 procedure Read_GL_NV_present_video;
14782 procedure Read_GL_NV_explicit_multisample;
14783 procedure Read_GL_NV_transform_feedback2;
14784 procedure Read_GL_NV_video_capture;
14785 procedure Read_GL_NV_copy_image;
14786 procedure Read_GL_NV_shader_buffer_load;
14787 procedure Read_GL_NV_vertex_buffer_unified_memory;
14788 procedure Read_GL_NV_gpu_program5;
14789 procedure Read_GL_NV_gpu_shader5;
14790 procedure Read_GL_NV_vertex_attrib_integer_64bit;
14791 procedure Read_GL_NV_vdpau_interop;
14792 procedure Read_GL_NV_texture_barrier;
14793 procedure Read_GL_PGI_misc_hints;
14794 procedure Read_GL_SGIS_detail_texture;
14795 procedure Read_GL_SGIS_fog_function;
14796 procedure Read_GL_SGIS_multisample;
14797 procedure Read_GL_SGIS_pixel_texture;
14798 procedure Read_GL_SGIS_point_parameters;
14799 procedure Read_GL_SGIS_sharpen_texture;
14800 procedure Read_GL_SGIS_texture4D;
14801 procedure Read_GL_SGIS_texture_color_mask;
14802 procedure Read_GL_SGIS_texture_filter4;
14803 procedure Read_GL_SGIX_async;
14804 procedure Read_GL_SGIX_flush_raster;
14805 procedure Read_GL_SGIX_fragment_lighting;
14806 procedure Read_GL_SGIX_framezoom;
14807 procedure Read_GL_SGIX_igloo_interface;
14808 procedure Read_GL_SGIX_instruments;
14809 procedure Read_GL_SGIX_list_priority;
14810 procedure Read_GL_SGIX_pixel_texture;
14811 procedure Read_GL_SGIX_polynomial_ffd;
14812 procedure Read_GL_SGIX_reference_plane;
14813 procedure Read_GL_SGIX_sprite;
14814 procedure Read_GL_SGIX_tag_sample_buffer;
14815 procedure Read_GL_SGI_color_table;
14816 procedure Read_GL_SUNX_constant_data;
14817 procedure Read_GL_SUN_global_alpha;
14818 procedure Read_GL_SUN_mesh_array;
14819 procedure Read_GL_SUN_triangle_list;
14820 procedure Read_GL_SUN_vertex;
14821
14822 {$IFDEF DGL_WIN}
14823 procedure Read_WGL_ARB_buffer_region;
14824 procedure Read_WGL_ARB_extensions_string;
14825 procedure Read_WGL_ARB_make_current_read;
14826 procedure Read_WGL_ARB_pbuffer;
14827 procedure Read_WGL_ARB_pixel_format;
14828 procedure Read_WGL_ARB_pixel_format_float;
14829 procedure Read_WGL_ARB_render_texture;
14830 procedure Read_WGL_ARB_create_context;
14831 procedure Read_WGL_AMD_gpu_association;
14832 procedure Read_WGL_EXT_display_color_table;
14833 procedure Read_WGL_EXT_extensions_string;
14834 procedure Read_WGL_EXT_make_current_read;
14835 procedure Read_WGL_EXT_pbuffer;
14836 procedure Read_WGL_EXT_pixel_format;
14837 procedure Read_WGL_EXT_swap_control;
14838 procedure Read_WGL_I3D_digital_video_control;
14839 procedure Read_WGL_I3D_gamma;
14840 procedure Read_WGL_I3D_genlock;
14841 procedure Read_WGL_I3D_image_buffer;
14842 procedure Read_WGL_I3D_swap_frame_lock;
14843 procedure Read_WGL_I3D_swap_frame_usage;
14844 procedure Read_WGL_NV_vertex_array_range;
14845 procedure Read_WGL_NV_present_video;
14846 procedure Read_WGL_NV_video_output;
14847 procedure Read_WGL_NV_swap_group;
14848 procedure Read_WGL_NV_gpu_affinity;
14849 procedure Read_WGL_NV_video_capture;
14850 procedure Read_WGL_NV_copy_image;
14851 procedure Read_WGL_OML_sync_control;
14852 procedure Read_WGL_3DL_stereo_control;
14853
14854 procedure Read_WIN_draw_range_elements;
14855 procedure Read_WIN_swap_hint;
14856 {$ENDIF}
14857
14858
14859 implementation
14860
14861
14862 {$IFDEF DGL_LINUX}
14863 const
14864   RTLD_LAZY = $001;
14865   RTLD_NOW = $002;
14866   RTLD_BINDING_MASK = $003;
14867
14868   // Seems to work on Debian / Fedora
14869   LibraryLib = {$IFDEF Linux} 'libdl.so.2'{$ELSE} 'c'{$ENDIF};
14870
14871 function dlopen(Name: PAnsiChar; Flags: LongInt): Pointer; cdecl; external LibraryLib name 'dlopen';
14872 function dlclose(Lib: Pointer): LongInt; cdecl; external LibraryLib name 'dlclose';
14873
14874 function dlsym(Lib: Pointer; Name: PAnsiChar): Pointer; cdecl; external LibraryLib name 'dlsym';
14875 {$ENDIF}
14876
14877 {$IFDEF DGL_MAC}{$IFDEF OPENGL_FRAMEWORK}  // OpenGL framework used
14878 const
14879   RTLD_DEFAULT = Pointer(-2);
14880 {$ENDIF}{$ENDIF}
14881
14882 function dglLoadLibrary(Name: PChar): Pointer;
14883 begin
14884   {$IFDEF DGL_WIN}
14885   Result := Pointer(LoadLibrary(Name));
14886   {$ENDIF}
14887
14888   {$IFDEF DGL_LINUX}
14889   Result := dlopen(Name, RTLD_LAZY);
14890   {$ENDIF}
14891
14892   {$IFDEF DGL_MAC}
14893   {$IFDEF OPENGL_FRAMEWORK}
14894   Result := RTLD_DEFAULT;
14895   {$ELSE}
14896   Result := Pointer(LoadLibrary(Name));
14897   {$ENDIF}
14898   {$ENDIF}
14899 end;
14900
14901
14902 function dglFreeLibrary(LibHandle: Pointer): Boolean;
14903 begin
14904   if LibHandle = nil then
14905     Result := False
14906   else
14907     {$IFDEF DGL_WIN}
14908     Result := FreeLibrary(HMODULE(LibHandle));
14909     {$ENDIF}
14910
14911     {$IFDEF DGL_LINUX}
14912     Result := dlclose(LibHandle) = 0;
14913     {$ENDIF}
14914
14915     {$IFDEF DGL_MAC}
14916     {$IFDEF OPENGL_FRAMEWORK}
14917         Result := true;
14918         {$ELSE}
14919     Result := FreeLibrary(HMODULE(LibHandle));
14920     {$ENDIF}
14921         {$ENDIF}
14922 end;
14923
14924
14925 function dglGetProcAddress(ProcName: PAnsiChar; LibHandle: Pointer = nil {$IFDEF DGL_LINUX}; ForceDLSym: Boolean = False{$ENDIF}): Pointer;
14926 begin
14927   if LibHandle = nil then
14928     LibHandle := GL_LibHandle;
14929
14930
14931   {$IFDEF DGL_WIN}
14932     Result := GetProcAddress(HMODULE(LibHandle), ProcName);
14933
14934     if result <> nil then
14935       exit;
14936
14937     if Addr(wglGetProcAddress) <> nil then
14938       Result := wglGetProcAddress(ProcName);
14939   {$ENDIF}
14940
14941   {$IFDEF DGL_LINUX}
14942     if not ForceDLSym then begin
14943       if Addr(glXGetProcAddress) <> nil then
14944         Result := glXGetProcAddress(ProcName);
14945
14946       if result <> nil then
14947         exit;
14948
14949       if Addr(glXGetProcAddressARB) <> nil then
14950         Result := glXGetProcAddressARB(ProcName);
14951
14952       if result <> nil then
14953         exit;
14954     end;
14955
14956     Result := dlsym(LibHandle, ProcName);
14957   {$ENDIF}
14958
14959   {$IFDEF DGL_MAC}
14960     Result := GetProcAddress(HMODULE(LibHandle), ProcName);
14961   {$ENDIF}
14962 end;
14963
14964
14965 function Int_GetExtensionString: AnsiString;
14966 var
14967         ExtensionCount : GLuint;
14968   i : Integer;
14969 begin
14970   if GL_VERSION_3_0
14971     then
14972       begin
14973         if not Assigned(@glGetIntegerv) then glGetIntegerv := dglGetProcAddress('glGetIntegerv');
14974         if not Assigned(@glGetStringi)  then glGetStringi  := dglGetProcAddress('glGetStringi');
14975
14976         result := '';
14977
14978         if Assigned(@glGetIntegerv) and Assigned(@glGetStringi)
14979           then
14980             begin
14981               glGetIntegerv(GL_NUM_EXTENSIONS, @extensionCount);
14982
14983               For I := 0 to extensionCount - 1 do
14984                 result := result + #32 + PAnsiChar(glGetStringi(GL_EXTENSIONS, I));
14985             end;
14986       end
14987     else
14988       begin
14989         if not Assigned(@glGetString) then glGetString := dglGetProcAddress('glGetString');
14990
14991         if Assigned(@glGetString)
14992           then result := glGetString(GL_EXTENSIONS)
14993           else result := '';
14994       end;
14995
14996   if (GL_LibHandle <> nil) then begin
14997     {$IFDEF DGL_WIN}
14998       // wglGetExtensionsStringEXT
14999       if not Assigned(@wglGetExtensionsStringEXT) then
15000         wglGetExtensionsStringEXT := dglGetProcAddress('wglGetExtensionsStringEXT');
15001
15002       if Assigned(@wglGetExtensionsStringEXT) then
15003         Result := Result + #32 + wglGetExtensionsStringEXT;
15004
15005       // wglGetExtensionsStringARB
15006       if not Assigned(@wglGetExtensionsStringARB) then
15007         wglGetExtensionsStringARB := dglGetProcAddress('wglGetExtensionsStringARB');
15008
15009       if Assigned(@wglGetExtensionsStringARB) then
15010         Result := Result + #32 + wglGetExtensionsStringARB(wglGetCurrentDC);
15011     {$ENDIF}
15012   end;
15013
15014   Result := #32 + Result + #32;
15015 end;
15016
15017
15018 function Int_CheckExtension(AllExtensions, CheckExtension: AnsiString): Boolean;
15019 begin
15020   Result := Pos(#32 + CheckExtension + #32, AllExtensions) > 0;
15021 end;
15022
15023
15024 function dglCheckExtension(Extension: AnsiString): Boolean;
15025 var
15026   Extensions: AnsiString;
15027 begin
15028   Extensions := Int_GetExtensionString;
15029   Result := Int_CheckExtension(Extensions, Extension);
15030 end;
15031
15032
15033
15034 function InitOpenGL(LibName: String; GLULibName: String): Boolean;
15035 begin
15036   Result := False;
15037
15038   // free opened libraries
15039   if GL_LibHandle <> nil then
15040     dglFreeLibrary(GL_LibHandle);
15041
15042   if GLU_LibHandle <> nil then
15043     dglFreeLibrary(GLU_LibHandle);
15044
15045   // load library
15046   GL_LibHandle := dglLoadLibrary(PChar(LibName));
15047   GLU_LibHandle := dglLoadLibrary(PChar(GLULibName));
15048
15049   // load GL functions
15050   if (GL_LibHandle <> nil) then begin
15051     {$IFDEF DGL_WIN}
15052       wglCopyContext := dglGetProcAddress('wglCopyContext');
15053       wglCreateLayerContext := dglGetProcAddress('wglCreateLayerContext');
15054       wglCreateContext := dglGetProcAddress('wglCreateContext');
15055       wglDeleteContext := dglGetProcAddress('wglDeleteContext');
15056       wglDescribeLayerPlane := dglGetProcAddress('wglDescribeLayerPlane');
15057       wglGetCurrentContext := dglGetProcAddress('wglGetCurrentContext');
15058       wglGetCurrentDC := dglGetProcAddress('wglGetCurrentDC');
15059       wglGetLayerPaletteEntries := dglGetProcAddress('wglGetLayerPaletteEntries');
15060       wglGetProcAddress := dglGetProcAddress('wglGetProcAddress');
15061       wglMakeCurrent := dglGetProcAddress('wglMakeCurrent');
15062       wglRealizeLayerPalette := dglGetProcAddress('wglRealizeLayerPalette');
15063       wglSetLayerPaletteEntries := dglGetProcAddress('wglSetLayerPaletteEntries');
15064       wglShareLists := dglGetProcAddress('wglShareLists');
15065       wglSwapLayerBuffers := dglGetProcAddress('wglSwapLayerBuffers');
15066       wglSwapMultipleBuffers := dglGetProcAddress('wglSwapMultipleBuffers');
15067       wglUseFontBitmapsA := dglGetProcAddress('wglUseFontBitmapsA');
15068       wglUseFontOutlinesA := dglGetProcAddress('wglUseFontOutlinesA');
15069       wglUseFontBitmapsW := dglGetProcAddress('wglUseFontBitmapsW');
15070       wglUseFontOutlinesW := dglGetProcAddress('wglUseFontOutlinesW');
15071       wglUseFontBitmaps := dglGetProcAddress('wglUseFontBitmapsA');
15072       wglUseFontOutlines := dglGetProcAddress('wglUseFontOutlinesA');
15073     {$ENDIF}
15074
15075     {$IFDEF DGL_LINUX}
15076       // GLX_VERSION_1_4 (needs to be first)
15077       glXGetProcAddress := dglGetProcAddress('glXGetProcAddress', nil, True);
15078
15079       // GLX_ARB_get_proc_address  (also needs to be first)
15080       glXGetProcAddressARB := dglGetProcAddress('glXGetProcAddressARB', nil, True);
15081
15082       glXChooseVisual := dglGetProcAddress('glXChooseVisual');
15083       glXCopyContext := dglGetProcAddress('glXCopyContext');
15084       glXCreateContext := dglGetProcAddress('glXCreateContext');
15085       glXCreateGLXPixmap := dglGetProcAddress('glXCreateGLXPixmap');
15086       glXDestroyContext := dglGetProcAddress('glXDestroyContext');
15087       glXDestroyGLXPixmap := dglGetProcAddress('glXDestroyGLXPixmap');
15088       glXGetConfig := dglGetProcAddress('glXGetConfig');
15089       glXGetCurrentContext := dglGetProcAddress('glXGetCurrentContext');
15090       glXGetCurrentDrawable := dglGetProcAddress('glXGetCurrentDrawable');
15091       glXIsDirect := dglGetProcAddress('glXIsDirect');
15092       glXMakeCurrent := dglGetProcAddress('glXMakeCurrent');
15093       glXQueryExtension := dglGetProcAddress('glXQueryExtension');
15094       glXQueryVersion := dglGetProcAddress('glXQueryVersion');
15095       glXSwapBuffers := dglGetProcAddress('glXSwapBuffers');
15096       glXUseXFont := dglGetProcAddress('glXUseXFont');
15097       glXWaitGL := dglGetProcAddress('glXWaitGL');
15098       glXWaitX := dglGetProcAddress('glXWaitX');
15099
15100       glXGetClientString := dglGetProcAddress('glXGetClientString');
15101       glXQueryServerString := dglGetProcAddress('glXQueryServerString');
15102       glXQueryExtensionsString := dglGetProcAddress('glXQueryExtensionsString');
15103
15104       // GLX_VERSION_1_3
15105       glXGetFBConfigs := dglGetProcAddress('glXGetFBConfigs');
15106       glXChooseFBConfig := dglGetProcAddress('glXChooseFBConfig');
15107       glXGetFBConfigAttrib := dglGetProcAddress('glXGetFBConfigAttrib');
15108       glXGetVisualFromFBConfig := dglGetProcAddress('glXGetVisualFromFBConfig');
15109       glXCreateWindow := dglGetProcAddress('glXCreateWindow');
15110       glXDestroyWindow := dglGetProcAddress('glXDestroyWindow');
15111       glXCreatePixmap := dglGetProcAddress('glXCreatePixmap');
15112
15113       glXDestroyPixmap := dglGetProcAddress('glXDestroyPixmap');
15114       glXCreatePbuffer := dglGetProcAddress('glXCreatePbuffer');
15115       glXDestroyPbuffer := dglGetProcAddress('glXDestroyPbuffer');
15116       glXQueryDrawable := dglGetProcAddress('glXQueryDrawable');
15117       glXCreateNewContext := dglGetProcAddress('glXCreateNewContext');
15118       glXMakeContextCurrent := dglGetProcAddress('glXMakeContextCurrent');
15119       glXGetCurrentReadDrawable := dglGetProcAddress('glXGetCurrentReadDrawable');
15120       glXGetCurreentDisplay := dglGetProcAddress('glXGetCurreentDisplay');
15121
15122       glXQueryContext := dglGetProcAddress('glXQueryContext');
15123       glXSelectEvent := dglGetProcAddress('glXSelectEvent');
15124       glXGetSelectedEvent := dglGetProcAddress('glXGetSelectedEvent');
15125
15126       // GLX_ARB_create_context
15127       glXCreateContextAttribsARB := dglGetProcAddress('glXCreateContextAttribsARB');
15128
15129       // GLX_EXT_import_context
15130       glXGetCurrentDisplayEXT := dglGetProcAddress('glXGetCurrentDisplayEXT');
15131       glXQueryContextInfoEXT := dglGetProcAddress('glXQueryContextInfoEXT');
15132       glXGetContextIDEXT := dglGetProcAddress('glXGetContextIDEXT');
15133       glXImportContextEXT := dglGetProcAddress('glXImportContextEXT');
15134       glXFreeContextEXT := dglGetProcAddress('glXFreeContextEXT');
15135
15136       // GLX_EXT_texture_from_pixmap
15137       glXBindTexImageEXT := dglGetProcAddress('glXBindTexImageEXT');
15138       glXReleaseTexImageEXT := dglGetProcAddress('glXReleaseTexImageEXT');
15139     {$ENDIF}
15140
15141     Result := True;
15142   end;
15143
15144   // load GLU functions
15145   if GLU_LibHandle <> nil then begin
15146     // GLU ========================================================================
15147     gluBeginCurve := dglGetProcAddress('gluBeginCurve', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15148     gluBeginPolygon := dglGetProcAddress('gluBeginPolygon', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15149     gluBeginSurface := dglGetProcAddress('gluBeginSurface', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15150     gluBeginTrim := dglGetProcAddress('gluBeginTrim', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15151     gluBuild1DMipmaps := dglGetProcAddress('gluBuild1DMipmaps', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15152     gluBuild2DMipmaps := dglGetProcAddress('gluBuild2DMipmaps', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15153     gluCylinder := dglGetProcAddress('gluCylinder', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15154     gluDeleteNurbsRenderer := dglGetProcAddress('gluDeleteNurbsRenderer', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15155     gluDeleteQuadric := dglGetProcAddress('gluDeleteQuadric', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15156     gluDeleteTess := dglGetProcAddress('gluDeleteTess', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15157     gluDisk := dglGetProcAddress('gluDisk', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15158     gluEndCurve := dglGetProcAddress('gluEndCurve', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15159     gluEndPolygon := dglGetProcAddress('gluEndPolygon', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15160     gluEndSurface := dglGetProcAddress('gluEndSurface', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15161     gluEndTrim := dglGetProcAddress('gluEndTrim', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15162     gluErrorString := dglGetProcAddress('gluErrorString', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15163     gluGetNurbsProperty := dglGetProcAddress('gluGetNurbsProperty', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15164     gluGetString := dglGetProcAddress('gluGetString', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15165     gluGetTessProperty := dglGetProcAddress('gluGetTessProperty', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15166     gluLoadSamplingMatrices := dglGetProcAddress('gluLoadSamplingMatrices', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15167     gluLookAt := dglGetProcAddress('gluLookAt', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15168     gluNewNurbsRenderer := dglGetProcAddress('gluNewNurbsRenderer', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15169     gluNewQuadric := dglGetProcAddress('gluNewQuadric', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15170     gluNewTess := dglGetProcAddress('gluNewTess', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15171     gluNextContour := dglGetProcAddress('gluNextContour', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15172     gluNurbsCallback := dglGetProcAddress('gluNurbsCallback', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15173     gluNurbsCurve := dglGetProcAddress('gluNurbsCurve', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15174     gluNurbsProperty := dglGetProcAddress('gluNurbsProperty', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15175     gluNurbsSurface := dglGetProcAddress('gluNurbsSurface', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15176     gluOrtho2D := dglGetProcAddress('gluOrtho2D', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15177     gluPartialDisk := dglGetProcAddress('gluPartialDisk', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15178     gluPerspective := dglGetProcAddress('gluPerspective', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15179     gluPickMatrix := dglGetProcAddress('gluPickMatrix', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15180     gluProject := dglGetProcAddress('gluProject', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15181     gluPwlCurve := dglGetProcAddress('gluPwlCurve', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15182     gluQuadricCallback := dglGetProcAddress('gluQuadricCallback', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15183     gluQuadricDrawStyle := dglGetProcAddress('gluQuadricDrawStyle', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15184     gluQuadricNormals := dglGetProcAddress('gluQuadricNormals', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15185     gluQuadricOrientation := dglGetProcAddress('gluQuadricOrientation', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15186     gluQuadricTexture := dglGetProcAddress('gluQuadricTexture', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15187     gluScaleImage := dglGetProcAddress('gluScaleImage', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15188     gluSphere := dglGetProcAddress('gluSphere', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15189     gluTessBeginContour := dglGetProcAddress('gluTessBeginContour', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15190     gluTessBeginPolygon := dglGetProcAddress('gluTessBeginPolygon', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15191     gluTessCallback := dglGetProcAddress('gluTessCallback', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15192     gluTessEndContour := dglGetProcAddress('gluTessEndContour', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15193     gluTessEndPolygon := dglGetProcAddress('gluTessEndPolygon', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15194     gluTessNormal := dglGetProcAddress('gluTessNormal', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15195     gluTessProperty := dglGetProcAddress('gluTessProperty', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15196     gluTessVertex := dglGetProcAddress('gluTessVertex', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15197     gluUnProject := dglGetProcAddress('gluUnProject', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15198   end;
15199 end;
15200
15201 procedure ReadOpenGLCore;
15202 begin
15203   // GL_VERSION_1_0
15204   glCullFace := dglGetProcAddress('glCullFace');
15205   glFrontFace := dglGetProcAddress('glFrontFace');
15206   glHint := dglGetProcAddress('glHint');
15207   glLineWidth := dglGetProcAddress('glLineWidth');
15208   glPointSize := dglGetProcAddress('glPointSize');
15209   glPolygonMode := dglGetProcAddress('glPolygonMode');
15210   glScissor := dglGetProcAddress('glScissor');
15211   glTexParameterf := dglGetProcAddress('glTexParameterf');
15212   glTexParameterfv := dglGetProcAddress('glTexParameterfv');
15213   glTexParameteri := dglGetProcAddress('glTexParameteri');
15214   glTexParameteriv := dglGetProcAddress('glTexParameteriv');
15215   glTexImage1D := dglGetProcAddress('glTexImage1D');
15216   glTexImage2D := dglGetProcAddress('glTexImage2D');
15217   glDrawBuffer := dglGetProcAddress('glDrawBuffer');
15218   glClear := dglGetProcAddress('glClear');
15219   glClearColor := dglGetProcAddress('glClearColor');
15220   glClearStencil := dglGetProcAddress('glClearStencil');
15221   glClearDepth := dglGetProcAddress('glClearDepth');
15222   glStencilMask := dglGetProcAddress('glStencilMask');
15223   glColorMask := dglGetProcAddress('glColorMask');
15224   glDepthMask := dglGetProcAddress('glDepthMask');
15225   glDisable := dglGetProcAddress('glDisable');
15226   glEnable := dglGetProcAddress('glEnable');
15227   glFinish := dglGetProcAddress('glFinish');
15228   glFlush := dglGetProcAddress('glFlush');
15229   glBlendFunc := dglGetProcAddress('glBlendFunc');
15230   glLogicOp := dglGetProcAddress('glLogicOp');
15231   glStencilFunc := dglGetProcAddress('glStencilFunc');
15232   glStencilOp := dglGetProcAddress('glStencilOp');
15233   glDepthFunc := dglGetProcAddress('glDepthFunc');
15234   glPixelStoref := dglGetProcAddress('glPixelStoref');
15235   glPixelStorei := dglGetProcAddress('glPixelStorei');
15236   glReadBuffer := dglGetProcAddress('glReadBuffer');
15237   glReadPixels := dglGetProcAddress('glReadPixels');
15238   glGetBooleanv := dglGetProcAddress('glGetBooleanv');
15239   glGetDoublev := dglGetProcAddress('glGetDoublev');
15240   glGetError := dglGetProcAddress('glGetError');
15241   glGetFloatv := dglGetProcAddress('glGetFloatv');
15242   glGetIntegerv := dglGetProcAddress('glGetIntegerv');
15243   glGetString := dglGetProcAddress('glGetString');
15244   glGetTexImage := dglGetProcAddress('glGetTexImage');
15245   glGetTexParameteriv := dglGetProcAddress('glGetTexParameteriv');
15246   glGetTexParameterfv := dglGetProcAddress('glGetTexParameterfv');
15247   glGetTexLevelParameterfv := dglGetProcAddress('glGetTexLevelParameterfv');
15248   glGetTexLevelParameteriv := dglGetProcAddress('glGetTexLevelParameteriv');
15249   glIsEnabled := dglGetProcAddress('glIsEnabled');
15250   glDepthRange := dglGetProcAddress('glDepthRange');
15251   glViewport := dglGetProcAddress('glViewport');
15252
15253   // GL_VERSION_1_1
15254   glDrawArrays := dglGetProcAddress('glDrawArrays');
15255   glDrawElements := dglGetProcAddress('glDrawElements');
15256   glGetPointerv := dglGetProcAddress('glGetPointerv');
15257   glPolygonOffset := dglGetProcAddress('glPolygonOffset');
15258   glCopyTexImage1D := dglGetProcAddress('glCopyTexImage1D');
15259   glCopyTexImage2D := dglGetProcAddress('glCopyTexImage2D');
15260   glCopyTexSubImage1D := dglGetProcAddress('glCopyTexSubImage1D');
15261   glCopyTexSubImage2D := dglGetProcAddress('glCopyTexSubImage2D');
15262   glTexSubImage1D := dglGetProcAddress('glTexSubImage1D');
15263   glTexSubImage2D := dglGetProcAddress('glTexSubImage2D');
15264   glBindTexture := dglGetProcAddress('glBindTexture');
15265   glDeleteTextures := dglGetProcAddress('glDeleteTextures');
15266   glGenTextures := dglGetProcAddress('glGenTextures');
15267
15268 {$ifdef DGL_DEPRECATED}
15269   glAccum := dglGetProcAddress('glAccum');
15270   glAlphaFunc := dglGetProcAddress('glAlphaFunc');
15271   glAreTexturesResident := dglGetProcAddress('glAreTexturesResident');
15272   glArrayElement := dglGetProcAddress('glArrayElement');
15273   glBegin := dglGetProcAddress('glBegin');
15274   glBitmap := dglGetProcAddress('glBitmap');
15275   glCallList := dglGetProcAddress('glCallList');
15276   glCallLists := dglGetProcAddress('glCallLists');
15277   glClearAccum := dglGetProcAddress('glClearAccum');
15278   glClearIndex := dglGetProcAddress('glClearIndex');
15279   glClipPlane := dglGetProcAddress('glClipPlane');
15280   glColor3b := dglGetProcAddress('glColor3b');
15281   glColor3bv := dglGetProcAddress('glColor3bv');
15282   glColor3d := dglGetProcAddress('glColor3d');
15283   glColor3dv := dglGetProcAddress('glColor3dv');
15284   glColor3f := dglGetProcAddress('glColor3f');
15285   glColor3fv := dglGetProcAddress('glColor3fv');
15286   glColor3i := dglGetProcAddress('glColor3i');
15287   glColor3iv := dglGetProcAddress('glColor3iv');
15288   glColor3s := dglGetProcAddress('glColor3s');
15289   glColor3sv := dglGetProcAddress('glColor3sv');
15290   glColor3ub := dglGetProcAddress('glColor3ub');
15291   glColor3ubv := dglGetProcAddress('glColor3ubv');
15292   glColor3ui := dglGetProcAddress('glColor3ui');
15293   glColor3uiv := dglGetProcAddress('glColor3uiv');
15294   glColor3us := dglGetProcAddress('glColor3us');
15295   glColor3usv := dglGetProcAddress('glColor3usv');
15296   glColor4b := dglGetProcAddress('glColor4b');
15297   glColor4bv := dglGetProcAddress('glColor4bv');
15298   glColor4d := dglGetProcAddress('glColor4d');
15299   glColor4dv := dglGetProcAddress('glColor4dv');
15300   glColor4f := dglGetProcAddress('glColor4f');
15301   glColor4fv := dglGetProcAddress('glColor4fv');
15302   glColor4i := dglGetProcAddress('glColor4i');
15303   glColor4iv := dglGetProcAddress('glColor4iv');
15304   glColor4s := dglGetProcAddress('glColor4s');
15305   glColor4sv := dglGetProcAddress('glColor4sv');
15306   glColor4ub := dglGetProcAddress('glColor4ub');
15307   glColor4ubv := dglGetProcAddress('glColor4ubv');
15308   glColor4ui := dglGetProcAddress('glColor4ui');
15309   glColor4uiv := dglGetProcAddress('glColor4uiv');
15310   glColor4us := dglGetProcAddress('glColor4us');
15311   glColor4usv := dglGetProcAddress('glColor4usv');
15312   glColorMaterial := dglGetProcAddress('glColorMaterial');
15313   glColorPointer := dglGetProcAddress('glColorPointer');
15314   glCopyPixels := dglGetProcAddress('glCopyPixels');
15315   glDeleteLists := dglGetProcAddress('glDeleteLists');
15316   glDisableClientState := dglGetProcAddress('glDisableClientState');
15317   glDrawPixels := dglGetProcAddress('glDrawPixels');
15318   glEdgeFlag := dglGetProcAddress('glEdgeFlag');
15319   glEdgeFlagPointer := dglGetProcAddress('glEdgeFlagPointer');
15320   glEdgeFlagv := dglGetProcAddress('glEdgeFlagv');
15321   glEnableClientState := dglGetProcAddress('glEnableClientState');
15322   glEnd := dglGetProcAddress('glEnd');
15323   glEndList := dglGetProcAddress('glEndList');
15324   glEvalCoord1d := dglGetProcAddress('glEvalCoord1d');
15325   glEvalCoord1dv := dglGetProcAddress('glEvalCoord1dv');
15326   glEvalCoord1f := dglGetProcAddress('glEvalCoord1f');
15327   glEvalCoord1fv := dglGetProcAddress('glEvalCoord1fv');
15328   glEvalCoord2d := dglGetProcAddress('glEvalCoord2d');
15329   glEvalCoord2dv := dglGetProcAddress('glEvalCoord2dv');
15330   glEvalCoord2f := dglGetProcAddress('glEvalCoord2f');
15331   glEvalCoord2fv := dglGetProcAddress('glEvalCoord2fv');
15332   glEvalMesh1 := dglGetProcAddress('glEvalMesh1');
15333   glEvalMesh2 := dglGetProcAddress('glEvalMesh2');
15334   glEvalPoint1 := dglGetProcAddress('glEvalPoint1');
15335   glEvalPoint2 := dglGetProcAddress('glEvalPoint2');
15336   glFeedbackBuffer := dglGetProcAddress('glFeedbackBuffer');
15337   glFogf := dglGetProcAddress('glFogf');
15338   glFogfv := dglGetProcAddress('glFogfv');
15339   glFogi := dglGetProcAddress('glFogi');
15340   glFogiv := dglGetProcAddress('glFogiv');
15341   glFrustum := dglGetProcAddress('glFrustum');
15342   glGenLists := dglGetProcAddress('glGenLists');
15343   glGetClipPlane := dglGetProcAddress('glGetClipPlane');
15344   glGetLightfv := dglGetProcAddress('glGetLightfv');
15345   glGetLightiv := dglGetProcAddress('glGetLightiv');
15346   glGetMapdv := dglGetProcAddress('glGetMapdv');
15347   glGetMapfv := dglGetProcAddress('glGetMapfv');
15348   glGetMapiv := dglGetProcAddress('glGetMapiv');
15349   glGetMaterialfv := dglGetProcAddress('glGetMaterialfv');
15350   glGetMaterialiv := dglGetProcAddress('glGetMaterialiv');
15351   glGetPixelMapfv := dglGetProcAddress('glGetPixelMapfv');
15352   glGetPixelMapuiv := dglGetProcAddress('glGetPixelMapuiv');
15353   glGetPixelMapusv := dglGetProcAddress('glGetPixelMapusv');
15354   glGetPolygonStipple := dglGetProcAddress('glGetPolygonStipple');
15355   glGetTexEnvfv := dglGetProcAddress('glGetTexEnvfv');
15356   glGetTexEnviv := dglGetProcAddress('glGetTexEnviv');
15357   glGetTexGendv := dglGetProcAddress('glGetTexGendv');
15358   glGetTexGenfv := dglGetProcAddress('glGetTexGenfv');
15359   glGetTexGeniv := dglGetProcAddress('glGetTexGeniv');
15360   glIndexMask := dglGetProcAddress('glIndexMask');
15361   glIndexPointer := dglGetProcAddress('glIndexPointer');
15362   glIndexd := dglGetProcAddress('glIndexd');
15363   glIndexdv := dglGetProcAddress('glIndexdv');
15364   glIndexf := dglGetProcAddress('glIndexf');
15365   glIndexfv := dglGetProcAddress('glIndexfv');
15366   glIndexi := dglGetProcAddress('glIndexi');
15367   glIndexiv := dglGetProcAddress('glIndexiv');
15368   glIndexs := dglGetProcAddress('glIndexs');
15369   glIndexsv := dglGetProcAddress('glIndexsv');
15370   glIndexub := dglGetProcAddress('glIndexub');
15371   glIndexubv := dglGetProcAddress('glIndexubv');
15372   glInitNames := dglGetProcAddress('glInitNames');
15373   glInterleavedArrays := dglGetProcAddress('glInterleavedArrays');
15374   glIsList := dglGetProcAddress('glIsList');
15375   glIsTexture := dglGetProcAddress('glIsTexture');
15376   glLightModelf := dglGetProcAddress('glLightModelf');
15377   glLightModelfv := dglGetProcAddress('glLightModelfv');
15378   glLightModeli := dglGetProcAddress('glLightModeli');
15379   glLightModeliv := dglGetProcAddress('glLightModeliv');
15380   glLightf := dglGetProcAddress('glLightf');
15381   glLightfv := dglGetProcAddress('glLightfv');
15382   glLighti := dglGetProcAddress('glLighti');
15383   glLightiv := dglGetProcAddress('glLightiv');
15384   glLineStipple := dglGetProcAddress('glLineStipple');
15385   glListBase := dglGetProcAddress('glListBase');
15386   glLoadIdentity := dglGetProcAddress('glLoadIdentity');
15387   glLoadMatrixd := dglGetProcAddress('glLoadMatrixd');
15388   glLoadMatrixf := dglGetProcAddress('glLoadMatrixf');
15389   glLoadName := dglGetProcAddress('glLoadName');
15390   glMap1d := dglGetProcAddress('glMap1d');
15391   glMap1f := dglGetProcAddress('glMap1f');
15392   glMap2d := dglGetProcAddress('glMap2d');
15393   glMap2f := dglGetProcAddress('glMap2f');
15394   glMapGrid1d := dglGetProcAddress('glMapGrid1d');
15395   glMapGrid1f := dglGetProcAddress('glMapGrid1f');
15396   glMapGrid2d := dglGetProcAddress('glMapGrid2d');
15397   glMapGrid2f := dglGetProcAddress('glMapGrid2f');
15398   glMaterialf := dglGetProcAddress('glMaterialf');
15399   glMaterialfv := dglGetProcAddress('glMaterialfv');
15400   glMateriali := dglGetProcAddress('glMateriali');
15401   glMaterialiv := dglGetProcAddress('glMaterialiv');
15402   glMatrixMode := dglGetProcAddress('glMatrixMode');
15403   glMultMatrixd := dglGetProcAddress('glMultMatrixd');
15404   glMultMatrixf := dglGetProcAddress('glMultMatrixf');
15405   glNewList := dglGetProcAddress('glNewList');
15406   glNormal3b := dglGetProcAddress('glNormal3b');
15407   glNormal3bv := dglGetProcAddress('glNormal3bv');
15408   glNormal3d := dglGetProcAddress('glNormal3d');
15409   glNormal3dv := dglGetProcAddress('glNormal3dv');
15410   glNormal3f := dglGetProcAddress('glNormal3f');
15411   glNormal3fv := dglGetProcAddress('glNormal3fv');
15412   glNormal3i := dglGetProcAddress('glNormal3i');
15413   glNormal3iv := dglGetProcAddress('glNormal3iv');
15414   glNormal3s := dglGetProcAddress('glNormal3s');
15415   glNormal3sv := dglGetProcAddress('glNormal3sv');
15416   glNormalPointer := dglGetProcAddress('glNormalPointer');
15417   glOrtho := dglGetProcAddress('glOrtho');
15418   glPassThrough := dglGetProcAddress('glPassThrough');
15419   glPixelMapfv := dglGetProcAddress('glPixelMapfv');
15420   glPixelMapuiv := dglGetProcAddress('glPixelMapuiv');
15421   glPixelMapusv := dglGetProcAddress('glPixelMapusv');
15422   glPixelTransferf := dglGetProcAddress('glPixelTransferf');
15423   glPixelTransferi := dglGetProcAddress('glPixelTransferi');
15424   glPixelZoom := dglGetProcAddress('glPixelZoom');
15425   glPolygonStipple := dglGetProcAddress('glPolygonStipple');
15426   glPopAttrib := dglGetProcAddress('glPopAttrib');
15427   glPopClientAttrib := dglGetProcAddress('glPopClientAttrib');
15428   glPopMatrix := dglGetProcAddress('glPopMatrix');
15429   glPopName := dglGetProcAddress('glPopName');
15430   glPrioritizeTextures := dglGetProcAddress('glPrioritizeTextures');
15431   glPushAttrib := dglGetProcAddress('glPushAttrib');
15432   glPushClientAttrib := dglGetProcAddress('glPushClientAttrib');
15433   glPushMatrix := dglGetProcAddress('glPushMatrix');
15434   glPushName := dglGetProcAddress('glPushName');
15435   glRasterPos2d := dglGetProcAddress('glRasterPos2d');
15436   glRasterPos2dv := dglGetProcAddress('glRasterPos2dv');
15437   glRasterPos2f := dglGetProcAddress('glRasterPos2f');
15438   glRasterPos2fv := dglGetProcAddress('glRasterPos2fv');
15439   glRasterPos2i := dglGetProcAddress('glRasterPos2i');
15440   glRasterPos2iv := dglGetProcAddress('glRasterPos2iv');
15441   glRasterPos2s := dglGetProcAddress('glRasterPos2s');
15442   glRasterPos2sv := dglGetProcAddress('glRasterPos2sv');
15443   glRasterPos3d := dglGetProcAddress('glRasterPos3d');
15444   glRasterPos3dv := dglGetProcAddress('glRasterPos3dv');
15445   glRasterPos3f := dglGetProcAddress('glRasterPos3f');
15446   glRasterPos3fv := dglGetProcAddress('glRasterPos3fv');
15447   glRasterPos3i := dglGetProcAddress('glRasterPos3i');
15448   glRasterPos3iv := dglGetProcAddress('glRasterPos3iv');
15449   glRasterPos3s := dglGetProcAddress('glRasterPos3s');
15450   glRasterPos3sv := dglGetProcAddress('glRasterPos3sv');
15451   glRasterPos4d := dglGetProcAddress('glRasterPos4d');
15452   glRasterPos4dv := dglGetProcAddress('glRasterPos4dv');
15453   glRasterPos4f := dglGetProcAddress('glRasterPos4f');
15454   glRasterPos4fv := dglGetProcAddress('glRasterPos4fv');
15455   glRasterPos4i := dglGetProcAddress('glRasterPos4i');
15456   glRasterPos4iv := dglGetProcAddress('glRasterPos4iv');
15457   glRasterPos4s := dglGetProcAddress('glRasterPos4s');
15458   glRasterPos4sv := dglGetProcAddress('glRasterPos4sv');
15459   glRectd := dglGetProcAddress('glRectd');
15460   glRectdv := dglGetProcAddress('glRectdv');
15461   glRectf := dglGetProcAddress('glRectf');
15462   glRectfv := dglGetProcAddress('glRectfv');
15463   glRecti := dglGetProcAddress('glRecti');
15464   glRectiv := dglGetProcAddress('glRectiv');
15465   glRects := dglGetProcAddress('glRects');
15466   glRectsv := dglGetProcAddress('glRectsv');
15467   glRenderMode := dglGetProcAddress('glRenderMode');
15468   glRotated := dglGetProcAddress('glRotated');
15469   glRotatef := dglGetProcAddress('glRotatef');
15470   glScaled := dglGetProcAddress('glScaled');
15471   glScalef := dglGetProcAddress('glScalef');
15472   glSelectBuffer := dglGetProcAddress('glSelectBuffer');
15473   glShadeModel := dglGetProcAddress('glShadeModel');
15474   glTexCoord1d := dglGetProcAddress('glTexCoord1d');
15475   glTexCoord1dv := dglGetProcAddress('glTexCoord1dv');
15476   glTexCoord1f := dglGetProcAddress('glTexCoord1f');
15477   glTexCoord1fv := dglGetProcAddress('glTexCoord1fv');
15478   glTexCoord1i := dglGetProcAddress('glTexCoord1i');
15479   glTexCoord1iv := dglGetProcAddress('glTexCoord1iv');
15480   glTexCoord1s := dglGetProcAddress('glTexCoord1s');
15481   glTexCoord1sv := dglGetProcAddress('glTexCoord1sv');
15482   glTexCoord2d := dglGetProcAddress('glTexCoord2d');
15483   glTexCoord2dv := dglGetProcAddress('glTexCoord2dv');
15484   glTexCoord2f := dglGetProcAddress('glTexCoord2f');
15485   glTexCoord2fv := dglGetProcAddress('glTexCoord2fv');
15486   glTexCoord2i := dglGetProcAddress('glTexCoord2i');
15487   glTexCoord2iv := dglGetProcAddress('glTexCoord2iv');
15488   glTexCoord2s := dglGetProcAddress('glTexCoord2s');
15489   glTexCoord2sv := dglGetProcAddress('glTexCoord2sv');
15490   glTexCoord3d := dglGetProcAddress('glTexCoord3d');
15491   glTexCoord3dv := dglGetProcAddress('glTexCoord3dv');
15492   glTexCoord3f := dglGetProcAddress('glTexCoord3f');
15493   glTexCoord3fv := dglGetProcAddress('glTexCoord3fv');
15494   glTexCoord3i := dglGetProcAddress('glTexCoord3i');
15495   glTexCoord3iv := dglGetProcAddress('glTexCoord3iv');
15496   glTexCoord3s := dglGetProcAddress('glTexCoord3s');
15497   glTexCoord3sv := dglGetProcAddress('glTexCoord3sv');
15498   glTexCoord4d := dglGetProcAddress('glTexCoord4d');
15499   glTexCoord4dv := dglGetProcAddress('glTexCoord4dv');
15500   glTexCoord4f := dglGetProcAddress('glTexCoord4f');
15501   glTexCoord4fv := dglGetProcAddress('glTexCoord4fv');
15502   glTexCoord4i := dglGetProcAddress('glTexCoord4i');
15503   glTexCoord4iv := dglGetProcAddress('glTexCoord4iv');
15504   glTexCoord4s := dglGetProcAddress('glTexCoord4s');
15505   glTexCoord4sv := dglGetProcAddress('glTexCoord4sv');
15506   glTexCoordPointer := dglGetProcAddress('glTexCoordPointer');
15507   glTexEnvf := dglGetProcAddress('glTexEnvf');
15508   glTexEnvfv := dglGetProcAddress('glTexEnvfv');
15509   glTexEnvi := dglGetProcAddress('glTexEnvi');
15510   glTexEnviv := dglGetProcAddress('glTexEnviv');
15511   glTexGend := dglGetProcAddress('glTexGend');
15512   glTexGendv := dglGetProcAddress('glTexGendv');
15513   glTexGenf := dglGetProcAddress('glTexGenf');
15514   glTexGenfv := dglGetProcAddress('glTexGenfv');
15515   glTexGeni := dglGetProcAddress('glTexGeni');
15516   glTexGeniv := dglGetProcAddress('glTexGeniv');
15517   glTranslated := dglGetProcAddress('glTranslated');
15518   glTranslatef := dglGetProcAddress('glTranslatef');
15519   glVertex2d := dglGetProcAddress('glVertex2d');
15520   glVertex2dv := dglGetProcAddress('glVertex2dv');
15521   glVertex2f := dglGetProcAddress('glVertex2f');
15522   glVertex2fv := dglGetProcAddress('glVertex2fv');
15523   glVertex2i := dglGetProcAddress('glVertex2i');
15524   glVertex2iv := dglGetProcAddress('glVertex2iv');
15525   glVertex2s := dglGetProcAddress('glVertex2s');
15526   glVertex2sv := dglGetProcAddress('glVertex2sv');
15527   glVertex3d := dglGetProcAddress('glVertex3d');
15528   glVertex3dv := dglGetProcAddress('glVertex3dv');
15529   glVertex3f := dglGetProcAddress('glVertex3f');
15530   glVertex3fv := dglGetProcAddress('glVertex3fv');
15531   glVertex3i := dglGetProcAddress('glVertex3i');
15532   glVertex3iv := dglGetProcAddress('glVertex3iv');
15533   glVertex3s := dglGetProcAddress('glVertex3s');
15534   glVertex3sv := dglGetProcAddress('glVertex3sv');
15535   glVertex4d := dglGetProcAddress('glVertex4d');
15536   glVertex4dv := dglGetProcAddress('glVertex4dv');
15537   glVertex4f := dglGetProcAddress('glVertex4f');
15538   glVertex4fv := dglGetProcAddress('glVertex4fv');
15539   glVertex4i := dglGetProcAddress('glVertex4i');
15540   glVertex4iv := dglGetProcAddress('glVertex4iv');
15541   glVertex4s := dglGetProcAddress('glVertex4s');
15542   glVertex4sv := dglGetProcAddress('glVertex4sv');
15543   glVertexPointer := dglGetProcAddress('glVertexPointer');
15544 {$endif}
15545
15546   // GL_VERSION_1_2
15547   glBlendColor := dglGetProcAddress('glBlendColor');
15548   glBlendEquation := dglGetProcAddress('glBlendEquation');
15549   glDrawRangeElements := dglGetProcAddress('glDrawRangeElements');
15550   glTexImage3D := dglGetProcAddress('glTexImage3D');
15551   glTexSubImage3D := dglGetProcAddress('glTexSubImage3D');
15552   glCopyTexSubImage3D := dglGetProcAddress('glCopyTexSubImage3D');
15553 {$ifdef DGL_DEPRECATED}
15554   glColorTable := dglGetProcAddress('glColorTable');
15555   glColorTableParameterfv := dglGetProcAddress('glColorTableParameterfv');
15556   glColorTableParameteriv := dglGetProcAddress('glColorTableParameteriv');
15557   glCopyColorTable := dglGetProcAddress('glCopyColorTable');
15558   glGetColorTable := dglGetProcAddress('glGetColorTable');
15559   glGetColorTableParameterfv := dglGetProcAddress('glGetColorTableParameterfv');
15560   glGetColorTableParameteriv := dglGetProcAddress('glGetColorTableParameteriv');
15561   glColorSubTable := dglGetProcAddress('glColorSubTable');
15562   glCopyColorSubTable := dglGetProcAddress('glCopyColorSubTable');
15563   glConvolutionFilter1D := dglGetProcAddress('glConvolutionFilter1D');
15564   glConvolutionFilter2D := dglGetProcAddress('glConvolutionFilter2D');
15565   glConvolutionParameterf := dglGetProcAddress('glConvolutionParameterf');
15566   glConvolutionParameterfv := dglGetProcAddress('glConvolutionParameterfv');
15567   glConvolutionParameteri := dglGetProcAddress('glConvolutionParameteri');
15568   glConvolutionParameteriv := dglGetProcAddress('glConvolutionParameteriv');
15569   glCopyConvolutionFilter1D := dglGetProcAddress('glCopyConvolutionFilter1D');
15570   glCopyConvolutionFilter2D := dglGetProcAddress('glCopyConvolutionFilter2D');
15571   glGetConvolutionFilter := dglGetProcAddress('glGetConvolutionFilter');
15572   glGetConvolutionParameterfv := dglGetProcAddress('glGetConvolutionParameterfv');
15573   glGetConvolutionParameteriv := dglGetProcAddress('glGetConvolutionParameteriv');
15574   glGetSeparableFilter := dglGetProcAddress('glGetSeparableFilter');
15575   glSeparableFilter2D := dglGetProcAddress('glSeparableFilter2D');
15576   glGetHistogram := dglGetProcAddress('glGetHistogram');
15577   glGetHistogramParameterfv := dglGetProcAddress('glGetHistogramParameterfv');
15578   glGetHistogramParameteriv := dglGetProcAddress('glGetHistogramParameteriv');
15579   glGetMinmax := dglGetProcAddress('glGetMinmax');
15580   glGetMinmaxParameterfv := dglGetProcAddress('glGetMinmaxParameterfv');
15581   glGetMinmaxParameteriv := dglGetProcAddress('glGetMinmaxParameteriv');
15582   glHistogram := dglGetProcAddress('glHistogram');
15583   glMinmax := dglGetProcAddress('glMinmax');
15584   glResetHistogram := dglGetProcAddress('glResetHistogram');
15585   glResetMinmax := dglGetProcAddress('glResetMinmax');
15586 {$endif}
15587
15588   // GL_VERSION_1_3
15589   glActiveTexture := dglGetProcAddress('glActiveTexture');
15590   glSampleCoverage := dglGetProcAddress('glSampleCoverage');
15591   glCompressedTexImage3D := dglGetProcAddress('glCompressedTexImage3D');
15592   glCompressedTexImage2D := dglGetProcAddress('glCompressedTexImage2D');
15593   glCompressedTexImage1D := dglGetProcAddress('glCompressedTexImage1D');
15594   glCompressedTexSubImage3D := dglGetProcAddress('glCompressedTexSubImage3D');
15595   glCompressedTexSubImage2D := dglGetProcAddress('glCompressedTexSubImage2D');
15596   glCompressedTexSubImage1D := dglGetProcAddress('glCompressedTexSubImage1D');
15597   glGetCompressedTexImage := dglGetProcAddress('glGetCompressedTexImage');
15598 {$ifdef DGL_DEPRECATED}
15599   glClientActiveTexture := dglGetProcAddress('glClientActiveTexture');
15600   glMultiTexCoord1d := dglGetProcAddress('glMultiTexCoord1d');
15601   glMultiTexCoord1dv := dglGetProcAddress('glMultiTexCoord1dv');
15602   glMultiTexCoord1f := dglGetProcAddress('glMultiTexCoord1f');
15603   glMultiTexCoord1fv := dglGetProcAddress('glMultiTexCoord1fv');
15604   glMultiTexCoord1i := dglGetProcAddress('glMultiTexCoord1i');
15605   glMultiTexCoord1iv := dglGetProcAddress('glMultiTexCoord1iv');
15606   glMultiTexCoord1s := dglGetProcAddress('glMultiTexCoord1s');
15607   glMultiTexCoord1sv := dglGetProcAddress('glMultiTexCoord1sv');
15608   glMultiTexCoord2d := dglGetProcAddress('glMultiTexCoord2d');
15609   glMultiTexCoord2dv := dglGetProcAddress('glMultiTexCoord2dv');
15610   glMultiTexCoord2f := dglGetProcAddress('glMultiTexCoord2f');
15611   glMultiTexCoord2fv := dglGetProcAddress('glMultiTexCoord2fv');
15612   glMultiTexCoord2i := dglGetProcAddress('glMultiTexCoord2i');
15613   glMultiTexCoord2iv := dglGetProcAddress('glMultiTexCoord2iv');
15614   glMultiTexCoord2s := dglGetProcAddress('glMultiTexCoord2s');
15615   glMultiTexCoord2sv := dglGetProcAddress('glMultiTexCoord2sv');
15616   glMultiTexCoord3d := dglGetProcAddress('glMultiTexCoord3d');
15617   glMultiTexCoord3dv := dglGetProcAddress('glMultiTexCoord3dv');
15618   glMultiTexCoord3f := dglGetProcAddress('glMultiTexCoord3f');
15619   glMultiTexCoord3fv := dglGetProcAddress('glMultiTexCoord3fv');
15620   glMultiTexCoord3i := dglGetProcAddress('glMultiTexCoord3i');
15621   glMultiTexCoord3iv := dglGetProcAddress('glMultiTexCoord3iv');
15622   glMultiTexCoord3s := dglGetProcAddress('glMultiTexCoord3s');
15623   glMultiTexCoord3sv := dglGetProcAddress('glMultiTexCoord3sv');
15624   glMultiTexCoord4d := dglGetProcAddress('glMultiTexCoord4d');
15625   glMultiTexCoord4dv := dglGetProcAddress('glMultiTexCoord4dv');
15626   glMultiTexCoord4f := dglGetProcAddress('glMultiTexCoord4f');
15627   glMultiTexCoord4fv := dglGetProcAddress('glMultiTexCoord4fv');
15628   glMultiTexCoord4i := dglGetProcAddress('glMultiTexCoord4i');
15629   glMultiTexCoord4iv := dglGetProcAddress('glMultiTexCoord4iv');
15630   glMultiTexCoord4s := dglGetProcAddress('glMultiTexCoord4s');
15631   glMultiTexCoord4sv := dglGetProcAddress('glMultiTexCoord4sv');
15632   glLoadTransposeMatrixf := dglGetProcAddress('glLoadTransposeMatrixf');
15633   glLoadTransposeMatrixd := dglGetProcAddress('glLoadTransposeMatrixd');
15634   glMultTransposeMatrixf := dglGetProcAddress('glMultTransposeMatrixf');
15635   glMultTransposeMatrixd := dglGetProcAddress('glMultTransposeMatrixd');
15636 {$endif}
15637
15638   // GL_VERSION_1_4
15639   glBlendFuncSeparate := dglGetProcAddress('glBlendFuncSeparate');
15640   glMultiDrawArrays := dglGetProcAddress('glMultiDrawArrays');
15641   glMultiDrawElements := dglGetProcAddress('glMultiDrawElements');
15642   glPointParameterf := dglGetProcAddress('glPointParameterf');
15643   glPointParameterfv := dglGetProcAddress('glPointParameterfv');
15644   glPointParameteri := dglGetProcAddress('glPointParameteri');
15645   glPointParameteriv := dglGetProcAddress('glPointParameteriv');
15646 {$ifdef DGL_DEPRECATED}
15647   glFogCoordf := dglGetProcAddress('glFogCoordf');
15648   glFogCoordfv := dglGetProcAddress('glFogCoordfv');
15649   glFogCoordd := dglGetProcAddress('glFogCoordd');
15650   glFogCoorddv := dglGetProcAddress('glFogCoorddv');
15651   glFogCoordPointer := dglGetProcAddress('glFogCoordPointer');
15652   glSecondaryColor3b := dglGetProcAddress('glSecondaryColor3b');
15653   glSecondaryColor3bv := dglGetProcAddress('glSecondaryColor3bv');
15654   glSecondaryColor3d := dglGetProcAddress('glSecondaryColor3d');
15655   glSecondaryColor3dv := dglGetProcAddress('glSecondaryColor3dv');
15656   glSecondaryColor3f := dglGetProcAddress('glSecondaryColor3f');
15657   glSecondaryColor3fv := dglGetProcAddress('glSecondaryColor3fv');
15658   glSecondaryColor3i := dglGetProcAddress('glSecondaryColor3i');
15659   glSecondaryColor3iv := dglGetProcAddress('glSecondaryColor3iv');
15660   glSecondaryColor3s := dglGetProcAddress('glSecondaryColor3s');
15661   glSecondaryColor3sv := dglGetProcAddress('glSecondaryColor3sv');
15662   glSecondaryColor3ub := dglGetProcAddress('glSecondaryColor3ub');
15663   glSecondaryColor3ubv := dglGetProcAddress('glSecondaryColor3ubv');
15664   glSecondaryColor3ui := dglGetProcAddress('glSecondaryColor3ui');
15665   glSecondaryColor3uiv := dglGetProcAddress('glSecondaryColor3uiv');
15666   glSecondaryColor3us := dglGetProcAddress('glSecondaryColor3us');
15667   glSecondaryColor3usv := dglGetProcAddress('glSecondaryColor3usv');
15668   glSecondaryColorPointer := dglGetProcAddress('glSecondaryColorPointer');
15669   glWindowPos2d := dglGetProcAddress('glWindowPos2d');
15670   glWindowPos2dv := dglGetProcAddress('glWindowPos2dv');
15671   glWindowPos2f := dglGetProcAddress('glWindowPos2f');
15672   glWindowPos2fv := dglGetProcAddress('glWindowPos2fv');
15673   glWindowPos2i := dglGetProcAddress('glWindowPos2i');
15674   glWindowPos2iv := dglGetProcAddress('glWindowPos2iv');
15675   glWindowPos2s := dglGetProcAddress('glWindowPos2s');
15676   glWindowPos2sv := dglGetProcAddress('glWindowPos2sv');
15677   glWindowPos3d := dglGetProcAddress('glWindowPos3d');
15678   glWindowPos3dv := dglGetProcAddress('glWindowPos3dv');
15679   glWindowPos3f := dglGetProcAddress('glWindowPos3f');
15680   glWindowPos3fv := dglGetProcAddress('glWindowPos3fv');
15681   glWindowPos3i := dglGetProcAddress('glWindowPos3i');
15682   glWindowPos3iv := dglGetProcAddress('glWindowPos3iv');
15683   glWindowPos3s := dglGetProcAddress('glWindowPos3s');
15684   glWindowPos3sv := dglGetProcAddress('glWindowPos3sv');
15685 {$endif}
15686
15687   // GL_VERSION_1_5
15688   glGenQueries := dglGetProcAddress('glGenQueries');
15689   glDeleteQueries := dglGetProcAddress('glDeleteQueries');
15690   glIsQuery := dglGetProcAddress('glIsQuery');
15691   glBeginQuery := dglGetProcAddress('glBeginQuery');
15692   glEndQuery := dglGetProcAddress('glEndQuery');
15693   glGetQueryiv := dglGetProcAddress('glGetQueryiv');
15694   glGetQueryObjectiv := dglGetProcAddress('glGetQueryObjectiv');
15695   glGetQueryObjectuiv := dglGetProcAddress('glGetQueryObjectuiv');
15696   glBindBuffer := dglGetProcAddress('glBindBuffer');
15697   glDeleteBuffers := dglGetProcAddress('glDeleteBuffers');
15698   glGenBuffers := dglGetProcAddress('glGenBuffers');
15699   glIsBuffer := dglGetProcAddress('glIsBuffer');
15700   glBufferData := dglGetProcAddress('glBufferData');
15701   glBufferSubData := dglGetProcAddress('glBufferSubData');
15702   glGetBufferSubData := dglGetProcAddress('glGetBufferSubData');
15703   glMapBuffer := dglGetProcAddress('glMapBuffer');
15704   glUnmapBuffer := dglGetProcAddress('glUnmapBuffer');
15705   glGetBufferParameteriv := dglGetProcAddress('glGetBufferParameteriv');
15706   glGetBufferPointerv := dglGetProcAddress('glGetBufferPointerv');
15707
15708   // GL_VERSION_2_0
15709   glBlendEquationSeparate := dglGetProcAddress('glBlendEquationSeparate');
15710   glDrawBuffers := dglGetProcAddress('glDrawBuffers');
15711   glStencilOpSeparate := dglGetProcAddress('glStencilOpSeparate');
15712   glStencilFuncSeparate := dglGetProcAddress('glStencilFuncSeparate');
15713   glStencilMaskSeparate := dglGetProcAddress('glStencilMaskSeparate');
15714   glAttachShader := dglGetProcAddress('glAttachShader');
15715   glBindAttribLocation := dglGetProcAddress('glBindAttribLocation');
15716   glCompileShader := dglGetProcAddress('glCompileShader');
15717   glCreateProgram := dglGetProcAddress('glCreateProgram');
15718   glCreateShader := dglGetProcAddress('glCreateShader');
15719   glDeleteProgram := dglGetProcAddress('glDeleteProgram');
15720   glDeleteShader := dglGetProcAddress('glDeleteShader');
15721   glDetachShader := dglGetProcAddress('glDetachShader');
15722   glDisableVertexAttribArray := dglGetProcAddress('glDisableVertexAttribArray');
15723   glEnableVertexAttribArray := dglGetProcAddress('glEnableVertexAttribArray');
15724   glGetActiveAttrib := dglGetProcAddress('glGetActiveAttrib');
15725   glGetActiveUniform := dglGetProcAddress('glGetActiveUniform');
15726   glGetAttachedShaders := dglGetProcAddress('glGetAttachedShaders');
15727   glGetAttribLocation := dglGetProcAddress('glGetAttribLocation');
15728   glGetProgramiv := dglGetProcAddress('glGetProgramiv');
15729   glGetProgramInfoLog := dglGetProcAddress('glGetProgramInfoLog');
15730   glGetShaderiv := dglGetProcAddress('glGetShaderiv');
15731   glGetShaderInfoLog := dglGetProcAddress('glGetShaderInfoLog');
15732   glGetShaderSource := dglGetProcAddress('glGetShaderSource');
15733   glGetUniformLocation := dglGetProcAddress('glGetUniformLocation');
15734   glGetUniformfv := dglGetProcAddress('glGetUniformfv');
15735   glGetUniformiv := dglGetProcAddress('glGetUniformiv');
15736   glGetVertexAttribfv := dglGetProcAddress('glGetVertexAttribfv');
15737   glGetVertexAttribiv := dglGetProcAddress('glGetVertexAttribiv');
15738   glGetVertexAttribPointerv := dglGetProcAddress('glGetVertexAttribPointerv');
15739   glIsProgram := dglGetProcAddress('glIsProgram');
15740   glIsShader := dglGetProcAddress('glIsShader');
15741   glLinkProgram := dglGetProcAddress('glLinkProgram');
15742   glShaderSource := dglGetProcAddress('glShaderSource');
15743   glUseProgram := dglGetProcAddress('glUseProgram');
15744   glUniform1f := dglGetProcAddress('glUniform1f');
15745   glUniform2f := dglGetProcAddress('glUniform2f');
15746   glUniform3f := dglGetProcAddress('glUniform3f');
15747   glUniform4f := dglGetProcAddress('glUniform4f');
15748   glUniform1i := dglGetProcAddress('glUniform1i');
15749   glUniform2i := dglGetProcAddress('glUniform2i');
15750   glUniform3i := dglGetProcAddress('glUniform3i');
15751   glUniform4i := dglGetProcAddress('glUniform4i');
15752   glUniform1fv := dglGetProcAddress('glUniform1fv');
15753   glUniform2fv := dglGetProcAddress('glUniform2fv');
15754   glUniform3fv := dglGetProcAddress('glUniform3fv');
15755   glUniform4fv := dglGetProcAddress('glUniform4fv');
15756   glUniform1iv := dglGetProcAddress('glUniform1iv');
15757   glUniform2iv := dglGetProcAddress('glUniform2iv');
15758   glUniform3iv := dglGetProcAddress('glUniform3iv');
15759   glUniform4iv := dglGetProcAddress('glUniform4iv');
15760   glUniformMatrix2fv := dglGetProcAddress('glUniformMatrix2fv');
15761   glUniformMatrix3fv := dglGetProcAddress('glUniformMatrix3fv');
15762   glUniformMatrix4fv := dglGetProcAddress('glUniformMatrix4fv');
15763   glValidateProgram := dglGetProcAddress('glValidateProgram');
15764   glVertexAttrib1d := dglGetProcAddress('glVertexAttrib1d');
15765   glVertexAttrib1dv := dglGetProcAddress('glVertexAttrib1dv');
15766   glVertexAttrib1f := dglGetProcAddress('glVertexAttrib1f');
15767   glVertexAttrib1fv := dglGetProcAddress('glVertexAttrib1fv');
15768   glVertexAttrib1s := dglGetProcAddress('glVertexAttrib1s');
15769   glVertexAttrib1sv := dglGetProcAddress('glVertexAttrib1sv');
15770   glVertexAttrib2d := dglGetProcAddress('glVertexAttrib2d');
15771   glVertexAttrib2dv := dglGetProcAddress('glVertexAttrib2dv');
15772   glVertexAttrib2f := dglGetProcAddress('glVertexAttrib2f');
15773   glVertexAttrib2fv := dglGetProcAddress('glVertexAttrib2fv');
15774   glVertexAttrib2s := dglGetProcAddress('glVertexAttrib2s');
15775   glVertexAttrib2sv := dglGetProcAddress('glVertexAttrib2sv');
15776   glVertexAttrib3d := dglGetProcAddress('glVertexAttrib3d');
15777   glVertexAttrib3dv := dglGetProcAddress('glVertexAttrib3dv');
15778   glVertexAttrib3f := dglGetProcAddress('glVertexAttrib3f');
15779   glVertexAttrib3fv := dglGetProcAddress('glVertexAttrib3fv');
15780   glVertexAttrib3s := dglGetProcAddress('glVertexAttrib3s');
15781   glVertexAttrib3sv := dglGetProcAddress('glVertexAttrib3sv');
15782   glVertexAttrib4Nbv := dglGetProcAddress('glVertexAttrib4Nbv');
15783   glVertexAttrib4Niv := dglGetProcAddress('glVertexAttrib4Niv');
15784   glVertexAttrib4Nsv := dglGetProcAddress('glVertexAttrib4Nsv');
15785   glVertexAttrib4Nub := dglGetProcAddress('glVertexAttrib4Nub');
15786   glVertexAttrib4Nubv := dglGetProcAddress('glVertexAttrib4Nubv');
15787   glVertexAttrib4Nuiv := dglGetProcAddress('glVertexAttrib4Nuiv');
15788   glVertexAttrib4Nusv := dglGetProcAddress('glVertexAttrib4Nusv');
15789   glVertexAttrib4bv := dglGetProcAddress('glVertexAttrib4bv');
15790   glVertexAttrib4d := dglGetProcAddress('glVertexAttrib4d');
15791   glVertexAttrib4dv := dglGetProcAddress('glVertexAttrib4dv');
15792   glVertexAttrib4f := dglGetProcAddress('glVertexAttrib4f');
15793   glVertexAttrib4fv := dglGetProcAddress('glVertexAttrib4fv');
15794   glVertexAttrib4iv := dglGetProcAddress('glVertexAttrib4iv');
15795   glVertexAttrib4s := dglGetProcAddress('glVertexAttrib4s');
15796   glVertexAttrib4sv := dglGetProcAddress('glVertexAttrib4sv');
15797   glVertexAttrib4ubv := dglGetProcAddress('glVertexAttrib4ubv');
15798   glVertexAttrib4uiv := dglGetProcAddress('glVertexAttrib4uiv');
15799   glVertexAttrib4usv := dglGetProcAddress('glVertexAttrib4usv');
15800   glVertexAttribPointer := dglGetProcAddress('glVertexAttribPointer');
15801
15802   // GL_VERSION_2_1
15803   glUniformMatrix2x3fv := dglGetProcAddress('glUniformMatrix2x3fv');
15804   glUniformMatrix3x2fv := dglGetProcAddress('glUniformMatrix3x2fv');
15805   glUniformMatrix2x4fv := dglGetProcAddress('glUniformMatrix2x4fv');
15806   glUniformMatrix4x2fv := dglGetProcAddress('glUniformMatrix4x2fv');
15807   glUniformMatrix3x4fv := dglGetProcAddress('glUniformMatrix3x4fv');
15808   glUniformMatrix4x3fv := dglGetProcAddress('glUniformMatrix4x3fv');
15809
15810   // GL_VERSION_3_0
15811   { OpenGL 3.0 also reuses entry points from these extensions: }
15812   Read_GL_ARB_framebuffer_object;
15813   Read_GL_ARB_map_buffer_range;
15814   Read_GL_ARB_vertex_array_object;
15815
15816   glColorMaski := dglGetProcAddress('glColorMaski');
15817   glGetBooleani_v := dglGetProcAddress('glGetBooleani_v');
15818   glGetIntegeri_v := dglGetProcAddress('glGetIntegeri_v');
15819   glEnablei := dglGetProcAddress('glEnablei');
15820   glDisablei := dglGetProcAddress('glDisablei');
15821   glIsEnabledi := dglGetProcAddress('glIsEnabledi');
15822   glBeginTransformFeedback := dglGetProcAddress('glBeginTransformFeedback');
15823   glEndTransformFeedback := dglGetProcAddress('glEndTransformFeedback');
15824   glBindBufferRange := dglGetProcAddress('glBindBufferRange');
15825   glBindBufferBase := dglGetProcAddress('glBindBufferBase');
15826   glTransformFeedbackVaryings := dglGetProcAddress('glTransformFeedbackVaryings');
15827   glGetTransformFeedbackVarying := dglGetProcAddress('glGetTransformFeedbackVarying');
15828   glClampColor := dglGetProcAddress('glClampColor');
15829   glBeginConditionalRender := dglGetProcAddress('glBeginConditionalRender');
15830   glEndConditionalRender := dglGetProcAddress('glEndConditionalRender');
15831   glVertexAttribI1i := dglGetProcAddress('glVertexAttribI1i');
15832   glVertexAttribI2i := dglGetProcAddress('glVertexAttribI2i');
15833   glVertexAttribI3i := dglGetProcAddress('glVertexAttribI3i');
15834   glVertexAttribI4i := dglGetProcAddress('glVertexAttribI4i');
15835   glVertexAttribI1ui := dglGetProcAddress('glVertexAttribI1ui');
15836   glVertexAttribI2ui := dglGetProcAddress('glVertexAttribI2ui');
15837   glVertexAttribI3ui := dglGetProcAddress('glVertexAttribI3ui');
15838   glVertexAttribI4ui := dglGetProcAddress('glVertexAttribI4ui');
15839   glVertexAttribI1iv := dglGetProcAddress('glVertexAttribI1iv');
15840   glVertexAttribI2iv := dglGetProcAddress('glVertexAttribI2iv');
15841   glVertexAttribI3iv := dglGetProcAddress('glVertexAttribI3iv');
15842   glVertexAttribI4iv := dglGetProcAddress('glVertexAttribI4iv');
15843   glVertexAttribI1uiv := dglGetProcAddress('glVertexAttribI1uiv');
15844   glVertexAttribI2uiv := dglGetProcAddress('glVertexAttribI2uiv');
15845   glVertexAttribI3uiv := dglGetProcAddress('glVertexAttribI3uiv');
15846   glVertexAttribI4uiv := dglGetProcAddress('glVertexAttribI4uiv');
15847   glVertexAttribI4bv := dglGetProcAddress('glVertexAttribI4bv');
15848   glVertexAttribI4sv := dglGetProcAddress('glVertexAttribI4sv');
15849   glVertexAttribI4ubv := dglGetProcAddress('glVertexAttribI4ubv');
15850   glVertexAttribI4usv := dglGetProcAddress('glVertexAttribI4usv');
15851   glVertexAttribIPointer := dglGetProcAddress('glVertexAttribIPointer');
15852   glGetVertexAttribIiv := dglGetProcAddress('glGetVertexAttribIiv');
15853   glGetVertexAttribIuiv := dglGetProcAddress('glGetVertexAttribIuiv');
15854   glGetUniformuiv := dglGetProcAddress('glGetUniformuiv');
15855   glBindFragDataLocation := dglGetProcAddress('glBindFragDataLocation');
15856   glGetFragDataLocation := dglGetProcAddress('glGetFragDataLocation');
15857   glUniform1ui := dglGetProcAddress('glUniform1ui');
15858   glUniform2ui := dglGetProcAddress('glUniform2ui');
15859   glUniform3ui := dglGetProcAddress('glUniform3ui');
15860   glUniform4ui := dglGetProcAddress('glUniform4ui');
15861   glUniform1uiv := dglGetProcAddress('glUniform1uiv');
15862   glUniform2uiv := dglGetProcAddress('glUniform2uiv');
15863   glUniform3uiv := dglGetProcAddress('glUniform3uiv');
15864   glUniform4uiv := dglGetProcAddress('glUniform4uiv');
15865   glTexParameterIiv := dglGetProcAddress('glTexParameterIiv');
15866   glTexParameterIuiv := dglGetProcAddress('glTexParameterIuiv');
15867   glGetTexParameterIiv := dglGetProcAddress('glGetTexParameterIiv');
15868   glGetTexParameterIuiv := dglGetProcAddress('glGetTexParameterIuiv');
15869   glClearBufferiv := dglGetProcAddress('glClearBufferiv');
15870   glClearBufferuiv := dglGetProcAddress('glClearBufferuiv');
15871   glClearBufferfv := dglGetProcAddress('glClearBufferfv');
15872   glClearBufferfi := dglGetProcAddress('glClearBufferfi');
15873   glGetStringi := dglGetProcAddress('glGetStringi');
15874
15875   // GL_VERSION_2_1
15876   glEnableVertexArrayEXT := dglGetProcAddress('glEnableVertexArrayEXT');
15877   glEnableVertexArrayAttribEXT := dglGetProcAddress('glEnableVertexArrayAttribEXT');
15878   glVertexArrayVertexAttribOffsetEXT := dglGetProcAddress('glVertexArrayVertexAttribOffsetEXT');
15879
15880   // GL_VERSION_3_1
15881   { OpenGL 3.1 also reuses entry points from these extensions: }
15882   Read_GL_ARB_copy_buffer;
15883   Read_GL_ARB_uniform_buffer_object;
15884
15885   glDrawArraysInstanced := dglGetProcAddress('glDrawArraysInstanced');
15886   glDrawElementsInstanced := dglGetProcAddress('glDrawElementsInstanced');
15887   glTexBuffer := dglGetProcAddress('glTexBuffer');
15888   glPrimitiveRestartIndex := dglGetProcAddress('glPrimitiveRestartIndex');
15889
15890   // GL_VERSION_3_2
15891   { OpenGL 3.2 also reuses entry points from these extensions: }
15892   Read_GL_ARB_draw_elements_base_vertex;
15893   Read_GL_ARB_provoking_vertex;
15894   Read_GL_ARB_sync;
15895   Read_GL_ARB_texture_multisample;
15896
15897   glGetInteger64i_v := dglGetProcAddress('glGetInteger64i_v');
15898   glGetBufferParameteri64v := dglGetProcAddress('glGetBufferParameteri64v');
15899   glFramebufferTexture := dglGetProcAddress('glFramebufferTexture');
15900 //  glFramebufferTextureFace := dglGetProcAddress('glFramebufferTextureFace');
15901
15902   // GL_VERSION_3_3
15903   { OpenGL 3.3 also reuses entry points from these extensions: }
15904   Read_GL_ARB_blend_func_extended;
15905   Read_GL_ARB_sampler_objects;
15906   { ARB_explicit_attrib_location, but it has none }
15907   { ARB_occlusion_query2 (no entry points) }
15908   { ARB_shader_bit_encoding (no entry points) }
15909   { ARB_texture_rgb10_a2ui (no entry points) }
15910   { ARB_texture_swizzle (no entry points) }
15911   Read_GL_ARB_timer_query;
15912   Read_GL_ARB_vertex_type_2_10_10_10_rev;
15913
15914   glVertexAttribDivisor := dglGetProcAddress('glVertexAttribDivisor');
15915
15916   // GL_VERSION_4_0
15917   { OpenGL 4.0 also reuses entry points from these extensions: }
15918   { ARB_texture_query_lod (no entry points) }
15919   Read_GL_ARB_draw_indirect;
15920   { ARB_gpu_shader5 (no entry points) }
15921   Read_GL_ARB_gpu_shader_fp64;
15922   Read_GL_ARB_shader_subroutine;
15923   Read_GL_ARB_tessellation_shader;
15924   { ARB_texture_buffer_object_rgb32 (no entry points) }
15925   { ARB_texture_cube_map_array (no entry points) }
15926   { ARB_texture_gather (no entry points) }
15927   Read_GL_ARB_transform_feedback2;
15928   Read_GL_ARB_transform_feedback3;
15929
15930   glMinSampleShading := dglGetProcAddress('glMinSampleShading');
15931   glBlendEquationi := dglGetProcAddress('glBlendEquationi');
15932   glBlendEquationSeparatei := dglGetProcAddress('glBlendEquationSeparatei');
15933   glBlendFunci := dglGetProcAddress('glBlendFunci');
15934   glBlendFuncSeparatei := dglGetProcAddress('glBlendFuncSeparatei');
15935
15936   // GL_VERSION_4_1
15937   { OpenGL 4.1 also reuses entry points from these extensions: }
15938   Read_GL_ARB_ES2_compatibility;
15939   Read_GL_ARB_get_program_binary;
15940   Read_GL_ARB_separate_shader_objects;
15941   { ARB_shader_precision (no entry points) }
15942   Read_GL_ARB_vertex_attrib_64bit;
15943   Read_GL_ARB_viewport_array;
15944
15945   // GL_VERSION_4_2
15946   { OpenGL 4.2 reuses entry points from these extensions: }
15947   Read_GL_ARB_base_instance;
15948   //Read_GL_ARB_shading_language_420pack (no entry points)
15949   Read_GL_ARB_transform_feedback_instanced;
15950   //Read_GL_ARB_compressed_texture_pixel_storage (no entry points)
15951   //Read_GL_ARB_conservative_depth;
15952   Read_GL_ARB_internalformat_query;
15953   //Read_GL_ARB_map_buffer_alignment;
15954   Read_GL_ARB_shader_atomic_counters;
15955   Read_GL_ARB_shader_image_load_store;
15956   //Read_GL_ARB_shading_language_packing;
15957   Read_GL_ARB_texture_storage;
15958
15959   // GL_VERSION_4_3
15960   // OpenGL 4.3 reuses entry points from these extensions:
15961   // Read_GL_ARB_arrays_of_arrays (none, GLSL only) (no entry points)
15962   // Read_GL_ARB_fragment_layer_viewport (none, GLSL only) (no entry points)
15963   // Read_GL_ARB_shader_image_size (none, GLSL only) (no entry points)
15964   // Read_GL_ARB_ES3_compatibility (no entry points)
15965   Read_GL_ARB_clear_buffer_object;
15966   Read_GL_ARB_compute_shader;
15967   Read_GL_ARB_copy_image;
15968   Read_GL_KHR_debug;
15969   // Read_GL_ARB_explicit_uniform_location  (no entry points)
15970   Read_GL_ARB_framebuffer_no_attachments;
15971   Read_GL_ARB_internalformat_query2;
15972   Read_GL_ARB_invalidate_subdata;
15973   Read_GL_ARB_multi_draw_indirect;
15974   Read_GL_ARB_program_interface_query;
15975   // Read_GL_ARB_robust_buffer_access_behavior (none)  (no entry points)
15976   Read_GL_ARB_shader_storage_buffer_object;
15977   // Read_GL_ARB_stencil_texturing  (no entry points)
15978   Read_GL_ARB_texture_buffer_range;
15979   // Read_GL_ARB_texture_query_levels (none)  (no entry points)
15980   Read_GL_ARB_texture_storage_multisample;
15981   Read_GL_ARB_texture_view;
15982   Read_GL_ARB_vertex_attrib_binding;
15983
15984   //  Note (Due to Khronos' change in header convetions, no more single read_ functions) starting with GL 4.4
15985   Read_GL_4_4;
15986   Read_GL_4_5;
15987 end;
15988
15989 procedure Read_GL_3DFX_tbuffer;
15990 begin
15991   glTbufferMask3DFX := dglGetProcAddress('glTbufferMask3DFX');
15992 end;
15993
15994 procedure Read_GL_APPLE_element_array;
15995 begin
15996   glElementPointerAPPLE := dglGetProcAddress('glElementPointerAPPLE');
15997   glDrawElementArrayAPPLE := dglGetProcAddress('glDrawElementArrayAPPLE');
15998   glDrawRangeElementArrayAPPLE := dglGetProcAddress('glDrawRangeElementArrayAPPLE');
15999   glMultiDrawElementArrayAPPLE := dglGetProcAddress('glMultiDrawElementArrayAPPLE');
16000   glMultiDrawRangeElementArrayAPPLE := dglGetProcAddress('glMultiDrawRangeElementArrayAPPLE');
16001 end;
16002
16003 procedure Read_GL_APPLE_fence;
16004 begin
16005   glGenFencesAPPLE := dglGetProcAddress('glGenFencesAPPLE');
16006   glDeleteFencesAPPLE := dglGetProcAddress('glDeleteFencesAPPLE');
16007   glSetFenceAPPLE := dglGetProcAddress('glSetFenceAPPLE');
16008   glIsFenceAPPLE := dglGetProcAddress('glIsFenceAPPLE');
16009   glTestFenceAPPLE := dglGetProcAddress('glTestFenceAPPLE');
16010   glFinishFenceAPPLE := dglGetProcAddress('glFinishFenceAPPLE');
16011   glTestObjectAPPLE := dglGetProcAddress('glTestObjectAPPLE');
16012   glFinishObjectAPPLE := dglGetProcAddress('glFinishObjectAPPLE');
16013 end;
16014
16015 procedure Read_GL_APPLE_vertex_array_object;
16016 begin
16017   glBindVertexArrayAPPLE := dglGetProcAddress('glBindVertexArrayAPPLE');
16018   glDeleteVertexArraysAPPLE := dglGetProcAddress('glDeleteVertexArraysAPPLE');
16019   glGenVertexArraysAPPLE := dglGetProcAddress('glGenVertexArraysAPPLE');
16020   glIsVertexArrayAPPLE := dglGetProcAddress('glIsVertexArrayAPPLE');
16021 end;
16022
16023 procedure Read_GL_APPLE_vertex_array_range;
16024 begin
16025   glVertexArrayRangeAPPLE := dglGetProcAddress('glVertexArrayRangeAPPLE');
16026   glFlushVertexArrayRangeAPPLE := dglGetProcAddress('glFlushVertexArrayRangeAPPLE');
16027   glVertexArrayParameteriAPPLE := dglGetProcAddress('glVertexArrayParameteriAPPLE');
16028 end;
16029
16030 procedure Read_GL_APPLE_texture_range;
16031 begin
16032   glTextureRangeAPPLE := dglGetProcAddress('glTextureRangeAPPLE');
16033   glGetTexParameterPointervAPPLE := dglGetProcAddress('glGetTexParameterPointervAPPLE');
16034 end;
16035
16036 procedure Read_GL_APPLE_vertex_program_evaluators;
16037 begin
16038   glEnableVertexAttribAPPLE := dglGetProcAddress('glEnableVertexAttribAPPLE');
16039   glDisableVertexAttribAPPLE := dglGetProcAddress('glDisableVertexAttribAPPLE');
16040   glIsVertexAttribEnabledAPPLE := dglGetProcAddress('glIsVertexAttribEnabledAPPLE');
16041   glMapVertexAttrib1dAPPLE := dglGetProcAddress('glMapVertexAttrib1dAPPLE');
16042   glMapVertexAttrib1fAPPLE := dglGetProcAddress('glMapVertexAttrib1fAPPLE');
16043   glMapVertexAttrib2dAPPLE := dglGetProcAddress('glMapVertexAttrib2dAPPLE');
16044   glMapVertexAttrib2fAPPLE := dglGetProcAddress('glMapVertexAttrib2fAPPLE');
16045 end;
16046
16047 procedure Read_GL_APPLE_object_purgeable;
16048 begin
16049   glObjectPurgeableAPPLE := dglGetProcAddress('glObjectPurgeableAPPLE');
16050   glObjectUnpurgeableAPPLE := dglGetProcAddress('glObjectUnpurgeableAPPLE');
16051   glGetObjectParameterivAPPLE := dglGetProcAddress('glGetObjectParameterivAPPLE');
16052 end;
16053
16054 procedure Read_GL_ARB_matrix_palette;
16055 begin
16056   glCurrentPaletteMatrixARB := dglGetProcAddress('glCurrentPaletteMatrixARB');
16057   glMatrixIndexubvARB := dglGetProcAddress('glMatrixIndexubvARB');
16058   glMatrixIndexusvARB := dglGetProcAddress('glMatrixIndexusvARB');
16059   glMatrixIndexuivARB := dglGetProcAddress('glMatrixIndexuivARB');
16060   glMatrixIndexPointerARB := dglGetProcAddress('glMatrixIndexPointerARB');
16061 end;
16062
16063 procedure Read_GL_ARB_multisample;
16064 begin
16065   glSampleCoverageARB := dglGetProcAddress('glSampleCoverageARB');
16066 end;
16067
16068 procedure Read_GL_ARB_multitexture;
16069 begin
16070   glActiveTextureARB := dglGetProcAddress('glActiveTextureARB');
16071   glClientActiveTextureARB := dglGetProcAddress('glClientActiveTextureARB');
16072   glMultiTexCoord1dARB := dglGetProcAddress('glMultiTexCoord1dARB');
16073   glMultiTexCoord1dvARB := dglGetProcAddress('glMultiTexCoord1dvARB');
16074   glMultiTexCoord1fARB := dglGetProcAddress('glMultiTexCoord1fARB');
16075   glMultiTexCoord1fvARB := dglGetProcAddress('glMultiTexCoord1fvARB');
16076   glMultiTexCoord1iARB := dglGetProcAddress('glMultiTexCoord1iARB');
16077   glMultiTexCoord1ivARB := dglGetProcAddress('glMultiTexCoord1ivARB');
16078   glMultiTexCoord1sARB := dglGetProcAddress('glMultiTexCoord1sARB');
16079   glMultiTexCoord1svARB := dglGetProcAddress('glMultiTexCoord1svARB');
16080   glMultiTexCoord2dARB := dglGetProcAddress('glMultiTexCoord2dARB');
16081   glMultiTexCoord2dvARB := dglGetProcAddress('glMultiTexCoord2dvARB');
16082   glMultiTexCoord2fARB := dglGetProcAddress('glMultiTexCoord2fARB');
16083   glMultiTexCoord2fvARB := dglGetProcAddress('glMultiTexCoord2fvARB');
16084   glMultiTexCoord2iARB := dglGetProcAddress('glMultiTexCoord2iARB');
16085   glMultiTexCoord2ivARB := dglGetProcAddress('glMultiTexCoord2ivARB');
16086   glMultiTexCoord2sARB := dglGetProcAddress('glMultiTexCoord2sARB');
16087   glMultiTexCoord2svARB := dglGetProcAddress('glMultiTexCoord2svARB');
16088   glMultiTexCoord3dARB := dglGetProcAddress('glMultiTexCoord3dARB');
16089   glMultiTexCoord3dvARB := dglGetProcAddress('glMultiTexCoord3dvARB');
16090   glMultiTexCoord3fARB := dglGetProcAddress('glMultiTexCoord3fARB');
16091   glMultiTexCoord3fvARB := dglGetProcAddress('glMultiTexCoord3fvARB');
16092   glMultiTexCoord3iARB := dglGetProcAddress('glMultiTexCoord3iARB');
16093   glMultiTexCoord3ivARB := dglGetProcAddress('glMultiTexCoord3ivARB');
16094   glMultiTexCoord3sARB := dglGetProcAddress('glMultiTexCoord3sARB');
16095   glMultiTexCoord3svARB := dglGetProcAddress('glMultiTexCoord3svARB');
16096   glMultiTexCoord4dARB := dglGetProcAddress('glMultiTexCoord4dARB');
16097   glMultiTexCoord4dvARB := dglGetProcAddress('glMultiTexCoord4dvARB');
16098   glMultiTexCoord4fARB := dglGetProcAddress('glMultiTexCoord4fARB');
16099   glMultiTexCoord4fvARB := dglGetProcAddress('glMultiTexCoord4fvARB');
16100   glMultiTexCoord4iARB := dglGetProcAddress('glMultiTexCoord4iARB');
16101   glMultiTexCoord4ivARB := dglGetProcAddress('glMultiTexCoord4ivARB');
16102   glMultiTexCoord4sARB := dglGetProcAddress('glMultiTexCoord4sARB');
16103   glMultiTexCoord4svARB := dglGetProcAddress('glMultiTexCoord4svARB');
16104 end;
16105
16106 procedure Read_GL_ARB_point_parameters;
16107 begin
16108   glPointParameterfARB := dglGetProcAddress('glPointParameterfARB');
16109   glPointParameterfvARB := dglGetProcAddress('glPointParameterfvARB');
16110 end;
16111
16112 procedure Read_GL_ARB_texture_compression;
16113 begin
16114   glCompressedTexImage3DARB := dglGetProcAddress('glCompressedTexImage3DARB');
16115   glCompressedTexImage2DARB := dglGetProcAddress('glCompressedTexImage2DARB');
16116   glCompressedTexImage1DARB := dglGetProcAddress('glCompressedTexImage1DARB');
16117   glCompressedTexSubImage3DARB := dglGetProcAddress('glCompressedTexSubImage3DARB');
16118   glCompressedTexSubImage2DARB := dglGetProcAddress('glCompressedTexSubImage2DARB');
16119   glCompressedTexSubImage1DARB := dglGetProcAddress('glCompressedTexSubImage1DARB');
16120   glGetCompressedTexImageARB := dglGetProcAddress('glGetCompressedTexImageARB');
16121 end;
16122
16123 procedure Read_GL_ARB_transpose_matrix;
16124 begin
16125   glLoadTransposeMatrixfARB := dglGetProcAddress('glLoadTransposeMatrixfARB');
16126   glLoadTransposeMatrixdARB := dglGetProcAddress('glLoadTransposeMatrixdARB');
16127   glMultTransposeMatrixfARB := dglGetProcAddress('glMultTransposeMatrixfARB');
16128   glMultTransposeMatrixdARB := dglGetProcAddress('glMultTransposeMatrixdARB');
16129 end;
16130
16131 procedure Read_GL_ARB_vertex_blend;
16132 begin
16133   glWeightbvARB := dglGetProcAddress('glWeightbvARB');
16134   glWeightsvARB := dglGetProcAddress('glWeightsvARB');
16135   glWeightivARB := dglGetProcAddress('glWeightivARB');
16136   glWeightfvARB := dglGetProcAddress('glWeightfvARB');
16137   glWeightdvARB := dglGetProcAddress('glWeightdvARB');
16138   glWeightubvARB := dglGetProcAddress('glWeightubvARB');
16139   glWeightusvARB := dglGetProcAddress('glWeightusvARB');
16140   glWeightuivARB := dglGetProcAddress('glWeightuivARB');
16141   glWeightPointerARB := dglGetProcAddress('glWeightPointerARB');
16142   glVertexBlendARB := dglGetProcAddress('glVertexBlendARB');
16143 end;
16144
16145 procedure Read_GL_ARB_vertex_buffer_object;
16146 begin
16147   glBindBufferARB := dglGetProcAddress('glBindBufferARB');
16148   glDeleteBuffersARB := dglGetProcAddress('glDeleteBuffersARB');
16149   glGenBuffersARB := dglGetProcAddress('glGenBuffersARB');
16150   glIsBufferARB := dglGetProcAddress('glIsBufferARB');
16151   glBufferDataARB := dglGetProcAddress('glBufferDataARB');
16152   glBufferSubDataARB := dglGetProcAddress('glBufferSubDataARB');
16153   glGetBufferSubDataARB := dglGetProcAddress('glGetBufferSubDataARB');
16154   glMapBufferARB := dglGetProcAddress('glMapBufferARB');
16155   glUnmapBufferARB := dglGetProcAddress('glUnmapBufferARB');
16156   glGetBufferParameterivARB := dglGetProcAddress('glGetBufferParameterivARB');
16157   glGetBufferPointervARB := dglGetProcAddress('glGetBufferPointervARB');
16158 end;
16159
16160 procedure Read_GL_ARB_vertex_program;
16161 begin
16162   glVertexAttrib1dARB := dglGetProcAddress('glVertexAttrib1dARB');
16163   glVertexAttrib1dvARB := dglGetProcAddress('glVertexAttrib1dvARB');
16164   glVertexAttrib1fARB := dglGetProcAddress('glVertexAttrib1fARB');
16165   glVertexAttrib1fvARB := dglGetProcAddress('glVertexAttrib1fvARB');
16166   glVertexAttrib1sARB := dglGetProcAddress('glVertexAttrib1sARB');
16167   glVertexAttrib1svARB := dglGetProcAddress('glVertexAttrib1svARB');
16168   glVertexAttrib2dARB := dglGetProcAddress('glVertexAttrib2dARB');
16169   glVertexAttrib2dvARB := dglGetProcAddress('glVertexAttrib2dvARB');
16170   glVertexAttrib2fARB := dglGetProcAddress('glVertexAttrib2fARB');
16171   glVertexAttrib2fvARB := dglGetProcAddress('glVertexAttrib2fvARB');
16172   glVertexAttrib2sARB := dglGetProcAddress('glVertexAttrib2sARB');
16173   glVertexAttrib2svARB := dglGetProcAddress('glVertexAttrib2svARB');
16174   glVertexAttrib3dARB := dglGetProcAddress('glVertexAttrib3dARB');
16175   glVertexAttrib3dvARB := dglGetProcAddress('glVertexAttrib3dvARB');
16176   glVertexAttrib3fARB := dglGetProcAddress('glVertexAttrib3fARB');
16177   glVertexAttrib3fvARB := dglGetProcAddress('glVertexAttrib3fvARB');
16178   glVertexAttrib3sARB := dglGetProcAddress('glVertexAttrib3sARB');
16179   glVertexAttrib3svARB := dglGetProcAddress('glVertexAttrib3svARB');
16180   glVertexAttrib4NbvARB := dglGetProcAddress('glVertexAttrib4NbvARB');
16181   glVertexAttrib4NivARB := dglGetProcAddress('glVertexAttrib4NivARB');
16182   glVertexAttrib4NsvARB := dglGetProcAddress('glVertexAttrib4NsvARB');
16183   glVertexAttrib4NubARB := dglGetProcAddress('glVertexAttrib4NubARB');
16184   glVertexAttrib4NubvARB := dglGetProcAddress('glVertexAttrib4NubvARB');
16185   glVertexAttrib4NuivARB := dglGetProcAddress('glVertexAttrib4NuivARB');
16186   glVertexAttrib4NusvARB := dglGetProcAddress('glVertexAttrib4NusvARB');
16187   glVertexAttrib4bvARB := dglGetProcAddress('glVertexAttrib4bvARB');
16188   glVertexAttrib4dARB := dglGetProcAddress('glVertexAttrib4dARB');
16189   glVertexAttrib4dvARB := dglGetProcAddress('glVertexAttrib4dvARB');
16190   glVertexAttrib4fARB := dglGetProcAddress('glVertexAttrib4fARB');
16191   glVertexAttrib4fvARB := dglGetProcAddress('glVertexAttrib4fvARB');
16192   glVertexAttrib4ivARB := dglGetProcAddress('glVertexAttrib4ivARB');
16193   glVertexAttrib4sARB := dglGetProcAddress('glVertexAttrib4sARB');
16194   glVertexAttrib4svARB := dglGetProcAddress('glVertexAttrib4svARB');
16195   glVertexAttrib4ubvARB := dglGetProcAddress('glVertexAttrib4ubvARB');
16196   glVertexAttrib4uivARB := dglGetProcAddress('glVertexAttrib4uivARB');
16197   glVertexAttrib4usvARB := dglGetProcAddress('glVertexAttrib4usvARB');
16198   glVertexAttribPointerARB := dglGetProcAddress('glVertexAttribPointerARB');
16199   glEnableVertexAttribArrayARB := dglGetProcAddress('glEnableVertexAttribArrayARB');
16200   glDisableVertexAttribArrayARB := dglGetProcAddress('glDisableVertexAttribArrayARB');
16201   glProgramStringARB := dglGetProcAddress('glProgramStringARB');
16202   glBindProgramARB := dglGetProcAddress('glBindProgramARB');
16203   glDeleteProgramsARB := dglGetProcAddress('glDeleteProgramsARB');
16204   glGenProgramsARB := dglGetProcAddress('glGenProgramsARB');
16205   glProgramEnvParameter4dARB := dglGetProcAddress('glProgramEnvParameter4dARB');
16206   glProgramEnvParameter4dvARB := dglGetProcAddress('glProgramEnvParameter4dvARB');
16207   glProgramEnvParameter4fARB := dglGetProcAddress('glProgramEnvParameter4fARB');
16208   glProgramEnvParameter4fvARB := dglGetProcAddress('glProgramEnvParameter4fvARB');
16209   glProgramLocalParameter4dARB := dglGetProcAddress('glProgramLocalParameter4dARB');
16210   glProgramLocalParameter4dvARB := dglGetProcAddress('glProgramLocalParameter4dvARB');
16211   glProgramLocalParameter4fARB := dglGetProcAddress('glProgramLocalParameter4fARB');
16212   glProgramLocalParameter4fvARB := dglGetProcAddress('glProgramLocalParameter4fvARB');
16213   glGetProgramEnvParameterdvARB := dglGetProcAddress('glGetProgramEnvParameterdvARB');
16214   glGetProgramEnvParameterfvARB := dglGetProcAddress('glGetProgramEnvParameterfvARB');
16215   glGetProgramLocalParameterdvARB := dglGetProcAddress('glGetProgramLocalParameterdvARB');
16216   glGetProgramLocalParameterfvARB := dglGetProcAddress('glGetProgramLocalParameterfvARB');
16217   glGetProgramivARB := dglGetProcAddress('glGetProgramivARB');
16218   glGetProgramStringARB := dglGetProcAddress('glGetProgramStringARB');
16219   glGetVertexAttribdvARB := dglGetProcAddress('glGetVertexAttribdvARB');
16220   glGetVertexAttribfvARB := dglGetProcAddress('glGetVertexAttribfvARB');
16221   glGetVertexAttribivARB := dglGetProcAddress('glGetVertexAttribivARB');
16222   glGetVertexAttribPointervARB := dglGetProcAddress('glGetVertexAttribPointervARB');
16223   glIsProgramARB := dglGetProcAddress('glIsProgramARB');
16224 end;
16225
16226 procedure Read_GL_ARB_window_pos;
16227 begin
16228   glWindowPos2dARB := dglGetProcAddress('glWindowPos2dARB');
16229   glWindowPos2dvARB := dglGetProcAddress('glWindowPos2dvARB');
16230   glWindowPos2fARB := dglGetProcAddress('glWindowPos2fARB');
16231   glWindowPos2fvARB := dglGetProcAddress('glWindowPos2fvARB');
16232   glWindowPos2iARB := dglGetProcAddress('glWindowPos2iARB');
16233   glWindowPos2ivARB := dglGetProcAddress('glWindowPos2ivARB');
16234   glWindowPos2sARB := dglGetProcAddress('glWindowPos2sARB');
16235   glWindowPos2svARB := dglGetProcAddress('glWindowPos2svARB');
16236   glWindowPos3dARB := dglGetProcAddress('glWindowPos3dARB');
16237   glWindowPos3dvARB := dglGetProcAddress('glWindowPos3dvARB');
16238   glWindowPos3fARB := dglGetProcAddress('glWindowPos3fARB');
16239   glWindowPos3fvARB := dglGetProcAddress('glWindowPos3fvARB');
16240   glWindowPos3iARB := dglGetProcAddress('glWindowPos3iARB');
16241   glWindowPos3ivARB := dglGetProcAddress('glWindowPos3ivARB');
16242   glWindowPos3sARB := dglGetProcAddress('glWindowPos3sARB');
16243   glWindowPos3svARB := dglGetProcAddress('glWindowPos3svARB');
16244 end;
16245
16246 procedure Read_GL_ARB_draw_buffers;
16247 begin
16248   glDrawBuffersARB := dglGetProcAddress('glDrawBuffersARB');
16249 end;
16250
16251 procedure Read_GL_ARB_color_buffer_float;
16252 begin
16253   glClampColorARB := dglGetProcAddress('glClampColorARB');
16254 end;
16255
16256 procedure Read_GL_ARB_Shader_Objects;
16257 begin
16258   // GL_ARB_Shader_Objects
16259   glCreateShaderObjectARB := dglGetProcAddress('glCreateShaderObjectARB');
16260   glShaderSourceARB := dglGetProcAddress('glShaderSourceARB');
16261   glCompileShaderARB := dglGetProcAddress('glCompileShaderARB');
16262   glDeleteObjectARB := dglGetProcAddress('glDeleteObjectARB');
16263   glGetHandleARB := dglGetProcAddress('glGetHandleARB');
16264   glDetachObjectARB := dglGetProcAddress('glDetachObjectARB');
16265   glCreateProgramObjectARB := dglGetProcAddress('glCreateProgramObjectARB');
16266   glAttachObjectARB := dglGetProcAddress('glAttachObjectARB');
16267   glLinkProgramARB := dglGetProcAddress('glLinkProgramARB');
16268   glUseProgramObjectARB := dglGetProcAddress('glUseProgramObjectARB');
16269   glValidateProgramARB := dglGetProcAddress('glValidateProgramARB');
16270   glGetObjectParameterfvARB := dglGetProcAddress('glGetObjectParameterfvARB');
16271   glGetObjectParameterivARB := dglGetProcAddress('glGetObjectParameterivARB');
16272   glGetActiveUniformARB := dglGetProcAddress('glGetActiveUniformARB');
16273   glGetAttachedObjectsARB := dglGetProcAddress('glGetAttachedObjectsARB');
16274   glGetShaderSourceARB := dglGetProcAddress('glGetShaderSourceARB');
16275   glGetUniformfvARB := dglGetProcAddress('glGetUniformfvARB');
16276   glGetUniformivARB := dglGetProcAddress('glGetUniformivARB');
16277   glGetUniformLocationARB := dglGetProcAddress('glGetUniformLocationARB');
16278   glGetInfoLogARB := dglGetProcAddress('glGetInfoLogARB');
16279   glUniform1fARB := dglGetProcAddress('glUniform1fARB');
16280   glUniform2fARB := dglGetProcAddress('glUniform2fARB');
16281   glUniform3fARB := dglGetProcAddress('glUniform3fARB');
16282   glUniform4fARB := dglGetProcAddress('glUniform4fARB');
16283   glUniform1iARB := dglGetProcAddress('glUniform1iARB');
16284   glUniform2iARB := dglGetProcAddress('glUniform2iARB');
16285   glUniform3iARB := dglGetProcAddress('glUniform3iARB');
16286   glUniform4iARB := dglGetProcAddress('glUniform4iARB');
16287   glUniform1fvARB := dglGetProcAddress('glUniform1fvARB');
16288   glUniform2fvARB := dglGetProcAddress('glUniform2fvARB');
16289   glUniform3fvARB := dglGetProcAddress('glUniform3fvARB');
16290   glUniform4fvARB := dglGetProcAddress('glUniform4fvARB');
16291   glUniform1ivARB := dglGetProcAddress('glUniform1ivARB');
16292   glUniform2ivARB := dglGetProcAddress('glUniform2ivARB');
16293   glUniform3ivARB := dglGetProcAddress('glUniform3ivARB');
16294   glUniform4ivARB := dglGetProcAddress('glUniform4ivARB');
16295   glUniformMatrix2fvARB := dglGetProcAddress('glUniformMatrix2fvARB');
16296   glUniformMatrix3fvARB := dglGetProcAddress('glUniformMatrix3fvARB');
16297   glUniformMatrix4fvARB := dglGetProcAddress('glUniformMatrix4fvARB');
16298
16299   // GL_ARB_vertex_shader
16300   glGetActiveAttribARB := dglGetProcAddress('glGetActiveAttribARB');
16301   glGetAttribLocationARB := dglGetProcAddress('glGetAttribLocationARB');
16302   glBindAttribLocationARB := dglGetProcAddress('glBindAttribLocationARB');
16303   glGetVertexAttribPointervARB := dglGetProcAddress('glGetVertexAttribPointervARB');
16304 end;
16305
16306 procedure Read_GL_ARB_occlusion_query;
16307 begin
16308   glGenQueriesARB := dglGetProcAddress('glGenQueriesARB');
16309   glDeleteQueriesARB := dglGetProcAddress('glDeleteQueriesARB');
16310   glIsQueryARB := dglGetProcAddress('glIsQueryARB');
16311   glBeginQueryARB := dglGetProcAddress('glBeginQueryARB');
16312   glEndQueryARB := dglGetProcAddress('glEndQueryARB');
16313   glGetQueryivARB := dglGetProcAddress('glGetQueryivARB');
16314   glGetQueryObjectivARB := dglGetProcAddress('glGetQueryObjectivARB');
16315   glGetQueryObjectuivARB := dglGetProcAddress('glGetQueryObjectuivARB');
16316 end;
16317
16318 procedure Read_GL_ARB_draw_instanced;
16319 begin
16320   glDrawArraysInstancedARB := dglGetProcAddress('glDrawArraysInstancedARB');
16321   glDrawElementsInstancedARB := dglGetProcAddress('glDrawElementsInstancedARB');
16322 end;
16323
16324 procedure Read_GL_ARB_framebuffer_object;
16325 begin
16326   glIsRenderbuffer := dglGetProcAddress('glIsRenderbuffer');
16327   glBindRenderbuffer := dglGetProcAddress('glBindRenderbuffer');
16328   glDeleteRenderbuffers := dglGetProcAddress('glDeleteRenderbuffers');
16329   glGenRenderbuffers := dglGetProcAddress('glGenRenderbuffers');
16330   glRenderbufferStorage := dglGetProcAddress('glRenderbufferStorage');
16331   glGetRenderbufferParameteriv := dglGetProcAddress('glGetRenderbufferParameteriv');
16332   glIsFramebuffer := dglGetProcAddress('glIsFramebuffer');
16333   glBindFramebuffer := dglGetProcAddress('glBindFramebuffer');
16334   glDeleteFramebuffers := dglGetProcAddress('glDeleteFramebuffers');
16335   glGenFramebuffers := dglGetProcAddress('glGenFramebuffers');
16336   glCheckFramebufferStatus := dglGetProcAddress('glCheckFramebufferStatus');
16337   glFramebufferTexture1D := dglGetProcAddress('glFramebufferTexture1D');
16338   glFramebufferTexture2D := dglGetProcAddress('glFramebufferTexture2D');
16339   glFramebufferTexture3D := dglGetProcAddress('glFramebufferTexture3D');
16340   glFramebufferRenderbuffer := dglGetProcAddress('glFramebufferRenderbuffer');
16341   glGetFramebufferAttachmentParameteriv := dglGetProcAddress('glGetFramebufferAttachmentParameteriv');
16342   glGenerateMipmap := dglGetProcAddress('glGenerateMipmap');
16343   glBlitFramebuffer := dglGetProcAddress('glBlitFramebuffer');
16344   glRenderbufferStorageMultisample := dglGetProcAddress('glRenderbufferStorageMultisample');
16345   glFramebufferTextureLayer := dglGetProcAddress('glFramebufferTextureLayer');
16346 end;
16347
16348 procedure Read_GL_ARB_geometry_shader4;
16349 begin
16350   glProgramParameteriARB := dglGetProcAddress('glProgramParameteriARB');
16351   glFramebufferTextureARB := dglGetProcAddress('glFramebufferTextureARB');
16352   glFramebufferTextureLayerARB := dglGetProcAddress('glFramebufferTextureLayerARB');
16353   glFramebufferTextureFaceARB := dglGetProcAddress('glFramebufferTextureFaceARB');
16354 end;
16355
16356 procedure Read_GL_ARB_instanced_arrays;
16357 begin
16358   glVertexAttribDivisorARB := dglGetProcAddress('glVertexAttribDivisorARB');
16359 end;
16360
16361 procedure Read_GL_ARB_map_buffer_range;
16362 begin
16363   glMapBufferRange := dglGetProcAddress('glMapBufferRange');
16364   glFlushMappedBufferRange := dglGetProcAddress('glFlushMappedBufferRange');
16365 end;
16366
16367 procedure Read_GL_ARB_texture_buffer_object;
16368 begin
16369   glTexBufferARB := dglGetProcAddress('glTexBufferARB');
16370 end;
16371
16372 procedure Read_GL_ARB_vertex_array_object;
16373 begin
16374   glBindVertexArray := dglGetProcAddress('glBindVertexArray');
16375   glDeleteVertexArrays := dglGetProcAddress('glDeleteVertexArrays');
16376   glGenVertexArrays := dglGetProcAddress('glGenVertexArrays');
16377   glIsVertexArray := dglGetProcAddress('glIsVertexArray');
16378 end;
16379
16380 procedure Read_GL_ARB_uniform_buffer_object;
16381 begin
16382   glGetUniformIndices := dglGetProcAddress('glGetUniformIndices');
16383   glGetActiveUniformsiv := dglGetProcAddress('glGetActiveUniformsiv');
16384   glGetActiveUniformName := dglGetProcAddress('glGetActiveUniformName');
16385   glGetUniformBlockIndex := dglGetProcAddress('glGetUniformBlockIndex');
16386   glGetActiveUniformBlockiv := dglGetProcAddress('glGetActiveUniformBlockiv');
16387   glGetActiveUniformBlockName := dglGetProcAddress('glGetActiveUniformBlockName');
16388   glUniformBlockBinding := dglGetProcAddress('glUniformBlockBinding');
16389 end;
16390
16391 procedure Read_GL_ARB_copy_buffer;
16392 begin
16393   glCopyBufferSubData := dglGetProcAddress('glCopyBufferSubData');
16394 end;
16395
16396 procedure Read_GL_ARB_draw_elements_base_vertex;
16397 begin
16398   glDrawElementsBaseVertex := dglGetProcAddress('glDrawElementsBaseVertex');
16399   glDrawRangeElementsBaseVertex := dglGetProcAddress('glDrawRangeElementsBaseVertex');
16400   glDrawElementsInstancedBaseVertex := dglGetProcAddress('glDrawElementsInstancedBaseVertex');
16401   glMultiDrawElementsBaseVertex := dglGetProcAddress('glMultiDrawElementsBaseVertex');
16402 end;
16403
16404 procedure Read_GL_ARB_provoking_vertex;
16405 begin
16406   glProvokingVertex := dglGetProcAddress('glProvokingVertex');
16407 end;
16408
16409 procedure Read_GL_ARB_sync;
16410 begin
16411   glFenceSync := dglGetProcAddress('glFenceSync');
16412   glIsSync := dglGetProcAddress('glIsSync');
16413   glDeleteSync := dglGetProcAddress('glDeleteSync');
16414   glClientWaitSync := dglGetProcAddress('glClientWaitSync');
16415   glWaitSync := dglGetProcAddress('glWaitSync');
16416   glGetInteger64v := dglGetProcAddress('glGetInteger64v');
16417   glGetSynciv := dglGetProcAddress('glGetSynciv');
16418 end;
16419
16420 procedure Read_GL_ARB_texture_multisample;
16421 begin
16422   glTexImage2DMultisample := dglGetProcAddress('glTexImage2DMultisample');
16423   glTexImage3DMultisample := dglGetProcAddress('glTexImage3DMultisample');
16424   glGetMultisamplefv := dglGetProcAddress('glGetMultisamplefv');
16425   glSampleMaski := dglGetProcAddress('glSampleMaski');
16426 end;
16427
16428 procedure Read_GL_ARB_draw_buffers_blend;
16429 begin
16430   glBlendEquationiARB := dglGetProcAddress('glBlendEquationiARB');
16431   glBlendEquationSeparateiARB := dglGetProcAddress('glBlendEquationSeparateiARB');
16432   glBlendFunciARB := dglGetProcAddress('glBlendFunciARB');
16433   glBlendFuncSeparateiARB := dglGetProcAddress('glBlendFuncSeparateiARB');
16434 end;
16435
16436 procedure Read_GL_ARB_sample_shading;
16437 begin
16438   glMinSampleShadingARB := dglGetProcAddress('glMinSampleShadingARB');
16439 end;
16440
16441 procedure Read_GL_ARB_shading_language_include;
16442 begin
16443   glNamedStringARB := dglGetProcAddress('glNamedStringARB');
16444   glDeleteNamedStringARB := dglGetProcAddress('glDeleteNamedStringARB');
16445   glCompileShaderIncludeARB := dglGetProcAddress('glCompileShaderIncludeARB');
16446   glIsNamedStringARB := dglGetProcAddress('glIsNamedStringARB');
16447   glGetNamedStringARB := dglGetProcAddress('glGetNamedStringARB');
16448   glGetNamedStringivARB := dglGetProcAddress('glGetNamedStringivARB');
16449 end;
16450
16451 procedure Read_GL_ARB_sparse_texture;
16452 begin
16453   glTexPageCommitmentARB := dglGetProcAddress('glTexPageCommitmentARB');
16454 end;
16455
16456 procedure Read_GL_ARB_sparse_buffer;
16457 begin
16458   glBufferPageCommitmentARB := dglGetProcAddress('glBufferPageCommitmentARB');
16459   glNamedBufferPageCommitmentEXT := dglGetProcAddress('glNamedBufferPageCommitmentEXT');
16460   glNamedBufferPageCommitmentARB := dglGetProcAddress('glNamedBufferPageCommitmentARB');
16461 end;
16462
16463 procedure Read_GL_KHR_blend_equation_advanced;
16464 begin
16465   glBlendBarrierKHR := dglGetProcAddress('glBlendBarrierKHR');
16466 end;
16467
16468
16469 procedure Read_GL_ARB_blend_func_extended;
16470 begin
16471   glBindFragDataLocationIndexed := dglGetProcAddress('glBindFragDataLocationIndexed');
16472   glGetFragDataIndex := dglGetProcAddress('glGetFragDataIndex');
16473 end;
16474
16475 procedure Read_GL_ARB_sampler_objects;
16476 begin
16477   glGenSamplers := dglGetProcAddress('glGenSamplers');
16478   glDeleteSamplers := dglGetProcAddress('glDeleteSamplers');
16479   glIsSampler := dglGetProcAddress('glIsSampler');
16480   glBindSampler := dglGetProcAddress('glBindSampler');
16481   glSamplerParameteri := dglGetProcAddress('glSamplerParameteri');
16482   glSamplerParameteriv := dglGetProcAddress('glSamplerParameteriv');
16483   glSamplerParameterf := dglGetProcAddress('glSamplerParameterf');
16484   glSamplerParameterfv := dglGetProcAddress('glSamplerParameterfv');
16485   glSamplerParameterIiv := dglGetProcAddress('glSamplerParameterIiv');
16486   glSamplerParameterIuiv := dglGetProcAddress('glSamplerParameterIuiv');
16487   glGetSamplerParameteriv := dglGetProcAddress('glGetSamplerParameteriv');
16488   glGetSamplerParameterIiv := dglGetProcAddress('glGetSamplerParameterIiv');
16489   glGetSamplerParameterfv := dglGetProcAddress('glGetSamplerParameterfv');
16490   glGetSamplerParameterIuiv := dglGetProcAddress('glGetSamplerParameterIuiv');
16491 end;
16492
16493 procedure Read_GL_ARB_timer_query;
16494 begin
16495   glQueryCounter := dglGetProcAddress('glQueryCounter');
16496   glGetQueryObjecti64v := dglGetProcAddress('glGetQueryObjecti64v');
16497   glGetQueryObjectui64v := dglGetProcAddress('glGetQueryObjectui64v');
16498 end;
16499
16500 procedure Read_GL_ARB_vertex_type_2_10_10_10_rev;
16501 begin
16502   glVertexP2ui := dglGetProcAddress('glVertexP2ui');
16503   glVertexP2uiv := dglGetProcAddress('glVertexP2uiv');
16504   glVertexP3ui := dglGetProcAddress('glVertexP3ui');
16505   glVertexP3uiv := dglGetProcAddress('glVertexP3uiv');
16506   glVertexP4ui := dglGetProcAddress('glVertexP4ui');
16507   glVertexP4uiv := dglGetProcAddress('glVertexP4uiv');
16508   glTexCoordP1ui := dglGetProcAddress('glTexCoordP1ui');
16509   glTexCoordP1uiv := dglGetProcAddress('glTexCoordP1uiv');
16510   glTexCoordP2ui := dglGetProcAddress('glTexCoordP2ui');
16511   glTexCoordP2uiv := dglGetProcAddress('glTexCoordP2uiv');
16512   glTexCoordP3ui := dglGetProcAddress('glTexCoordP3ui');
16513   glTexCoordP3uiv := dglGetProcAddress('glTexCoordP3uiv');
16514   glTexCoordP4ui := dglGetProcAddress('glTexCoordP4ui');
16515   glTexCoordP4uiv := dglGetProcAddress('glTexCoordP4uiv');
16516   glMultiTexCoordP1ui := dglGetProcAddress('glMultiTexCoordP1ui');
16517   glMultiTexCoordP1uiv := dglGetProcAddress('glMultiTexCoordP1uiv');
16518   glMultiTexCoordP2ui := dglGetProcAddress('glMultiTexCoordP2ui');
16519   glMultiTexCoordP2uiv := dglGetProcAddress('glMultiTexCoordP2uiv');
16520   glMultiTexCoordP3ui := dglGetProcAddress('glMultiTexCoordP3ui');
16521   glMultiTexCoordP3uiv := dglGetProcAddress('glMultiTexCoordP3uiv');
16522   glMultiTexCoordP4ui := dglGetProcAddress('glMultiTexCoordP4ui');
16523   glMultiTexCoordP4uiv := dglGetProcAddress('glMultiTexCoordP4uiv');
16524   glNormalP3ui := dglGetProcAddress('glNormalP3ui');
16525   glNormalP3uiv := dglGetProcAddress('glNormalP3uiv');
16526   glColorP3ui := dglGetProcAddress('glColorP3ui');
16527   glColorP3uiv := dglGetProcAddress('glColorP3uiv');
16528   glColorP4ui := dglGetProcAddress('glColorP4ui');
16529   glColorP4uiv := dglGetProcAddress('glColorP4uiv');
16530   glSecondaryColorP3ui := dglGetProcAddress('glSecondaryColorP3ui');
16531   glSecondaryColorP3uiv := dglGetProcAddress('glSecondaryColorP3uiv');
16532   glVertexAttribP1ui := dglGetProcAddress('glVertexAttribP1ui');
16533   glVertexAttribP1uiv := dglGetProcAddress('glVertexAttribP1uiv');
16534   glVertexAttribP2ui := dglGetProcAddress('glVertexAttribP2ui');
16535   glVertexAttribP2uiv := dglGetProcAddress('glVertexAttribP2uiv');
16536   glVertexAttribP3ui := dglGetProcAddress('glVertexAttribP3ui');
16537   glVertexAttribP3uiv := dglGetProcAddress('glVertexAttribP3uiv');
16538   glVertexAttribP4ui := dglGetProcAddress('glVertexAttribP4ui');
16539   glVertexAttribP4uiv := dglGetProcAddress('glVertexAttribP4uiv');
16540 end;
16541
16542 procedure Read_GL_ARB_draw_indirect;
16543 begin
16544   glDrawArraysIndirect := dglGetProcAddress('glDrawArraysIndirect');
16545   glDrawElementsIndirect := dglGetProcAddress('glDrawElementsIndirect');
16546 end;
16547
16548 procedure Read_GL_ARB_gpu_shader_fp64;
16549 begin
16550   glUniform1d := dglGetProcAddress('glUniform1d');
16551   glUniform2d := dglGetProcAddress('glUniform2d');
16552   glUniform3d := dglGetProcAddress('glUniform3d');
16553   glUniform4d := dglGetProcAddress('glUniform4d');
16554   glUniform1dv := dglGetProcAddress('glUniform1dv');
16555   glUniform2dv := dglGetProcAddress('glUniform2dv');
16556   glUniform3dv := dglGetProcAddress('glUniform3dv');
16557   glUniform4dv := dglGetProcAddress('glUniform4dv');
16558   glUniformMatrix2dv := dglGetProcAddress('glUniformMatrix2dv');
16559   glUniformMatrix3dv := dglGetProcAddress('glUniformMatrix3dv');
16560   glUniformMatrix4dv := dglGetProcAddress('glUniformMatrix4dv');
16561   glUniformMatrix2x3dv := dglGetProcAddress('glUniformMatrix2x3dv');
16562   glUniformMatrix2x4dv := dglGetProcAddress('glUniformMatrix2x4dv');
16563   glUniformMatrix3x2dv := dglGetProcAddress('glUniformMatrix3x2dv');
16564   glUniformMatrix3x4dv := dglGetProcAddress('glUniformMatrix3x4dv');
16565   glUniformMatrix4x2dv := dglGetProcAddress('glUniformMatrix4x2dv');
16566   glUniformMatrix4x3dv := dglGetProcAddress('glUniformMatrix4x3dv');
16567   glGetUniformdv := dglGetProcAddress('glGetUniformdv');
16568 end;
16569
16570 procedure Read_GL_ARB_shader_subroutine;
16571 begin
16572   glGetSubroutineUniformLocation := dglGetProcAddress('glGetSubroutineUniformLocation');
16573   glGetSubroutineIndex := dglGetProcAddress('glGetSubroutineIndex');
16574   glGetActiveSubroutineUniformiv := dglGetProcAddress('glGetActiveSubroutineUniformiv');
16575   glGetActiveSubroutineUniformName := dglGetProcAddress('glGetActiveSubroutineUniformName');
16576   glGetActiveSubroutineName := dglGetProcAddress('glGetActiveSubroutineName');
16577   glUniformSubroutinesuiv := dglGetProcAddress('glUniformSubroutinesuiv');
16578   glGetUniformSubroutineuiv := dglGetProcAddress('glGetUniformSubroutineuiv');
16579   glGetProgramStageiv := dglGetProcAddress('glGetProgramStageiv');
16580 end;
16581
16582 procedure Read_GL_ARB_tessellation_shader;
16583 begin
16584   glPatchParameteri := dglGetProcAddress('glPatchParameteri');
16585   glPatchParameterfv := dglGetProcAddress('glPatchParameterfv');
16586 end;
16587
16588 procedure Read_GL_ARB_transform_feedback2;
16589 begin
16590   glBindTransformFeedback := dglGetProcAddress('glBindTransformFeedback');
16591   glDeleteTransformFeedbacks := dglGetProcAddress('glDeleteTransformFeedbacks');
16592   glGenTransformFeedbacks := dglGetProcAddress('glGenTransformFeedbacks');
16593   glIsTransformFeedback := dglGetProcAddress('glIsTransformFeedback');
16594   glPauseTransformFeedback := dglGetProcAddress('glPauseTransformFeedback');
16595   glResumeTransformFeedback := dglGetProcAddress('glResumeTransformFeedback');
16596   glDrawTransformFeedback := dglGetProcAddress('glDrawTransformFeedback');
16597 end;
16598
16599 procedure Read_GL_ARB_transform_feedback3;
16600 begin
16601   glDrawTransformFeedbackStream := dglGetProcAddress('glDrawTransformFeedbackStream');
16602   glBeginQueryIndexed := dglGetProcAddress('glBeginQueryIndexed');
16603   glEndQueryIndexed := dglGetProcAddress('glEndQueryIndexed');
16604   glGetQueryIndexediv := dglGetProcAddress('glGetQueryIndexediv');
16605 end;
16606
16607 procedure Read_GL_ARB_ES2_compatibility;
16608 begin
16609   glReleaseShaderCompiler := dglGetProcAddress('glReleaseShaderCompiler');
16610   glShaderBinary := dglGetProcAddress('glShaderBinary');
16611   glGetShaderPrecisionFormat := dglGetProcAddress('glGetShaderPrecisionFormat');
16612   glDepthRangef := dglGetProcAddress('glDepthRangef');
16613   glClearDepthf := dglGetProcAddress('glClearDepthf');
16614 end;
16615
16616 procedure Read_GL_ARB_get_program_binary;
16617 begin
16618   glGetProgramBinary := dglGetProcAddress('glGetProgramBinary');
16619   glProgramBinary := dglGetProcAddress('glProgramBinary');
16620   glProgramParameteri := dglGetProcAddress('glProgramParameteri');
16621 end;
16622
16623 procedure Read_GL_ARB_separate_shader_objects;
16624 begin
16625   glUseProgramStages := dglGetProcAddress('glUseProgramStages');
16626   glActiveShaderProgram := dglGetProcAddress('glActiveShaderProgram');
16627   glCreateShaderProgramv := dglGetProcAddress('glCreateShaderProgramv');
16628   glBindProgramPipeline := dglGetProcAddress('glBindProgramPipeline');
16629   glDeleteProgramPipelines := dglGetProcAddress('glDeleteProgramPipelines');
16630   glGenProgramPipelines := dglGetProcAddress('glGenProgramPipelines');
16631   glIsProgramPipeline := dglGetProcAddress('glIsProgramPipeline');
16632   glGetProgramPipelineiv := dglGetProcAddress('glGetProgramPipelineiv');
16633   glProgramUniform1i := dglGetProcAddress('glProgramUniform1i');
16634   glProgramUniform1iv := dglGetProcAddress('glProgramUniform1iv');
16635   glProgramUniform1f := dglGetProcAddress('glProgramUniform1f');
16636   glProgramUniform1fv := dglGetProcAddress('glProgramUniform1fv');
16637   glProgramUniform1d := dglGetProcAddress('glProgramUniform1d');
16638   glProgramUniform1dv := dglGetProcAddress('glProgramUniform1dv');
16639   glProgramUniform1ui := dglGetProcAddress('glProgramUniform1ui');
16640   glProgramUniform1uiv := dglGetProcAddress('glProgramUniform1uiv');
16641   glProgramUniform2i := dglGetProcAddress('glProgramUniform2i');
16642   glProgramUniform2iv := dglGetProcAddress('glProgramUniform2iv');
16643   glProgramUniform2f := dglGetProcAddress('glProgramUniform2f');
16644   glProgramUniform2fv := dglGetProcAddress('glProgramUniform2fv');
16645   glProgramUniform2d := dglGetProcAddress('glProgramUniform2d');
16646   glProgramUniform2dv := dglGetProcAddress('glProgramUniform2dv');
16647   glProgramUniform2ui := dglGetProcAddress('glProgramUniform2ui');
16648   glProgramUniform2uiv := dglGetProcAddress('glProgramUniform2uiv');
16649   glProgramUniform3i := dglGetProcAddress('glProgramUniform3i');
16650   glProgramUniform3iv := dglGetProcAddress('glProgramUniform3iv');
16651   glProgramUniform3f := dglGetProcAddress('glProgramUniform3f');
16652   glProgramUniform3fv := dglGetProcAddress('glProgramUniform3fv');
16653   glProgramUniform3d := dglGetProcAddress('glProgramUniform3d');
16654   glProgramUniform3dv := dglGetProcAddress('glProgramUniform3dv');
16655   glProgramUniform3ui := dglGetProcAddress('glProgramUniform3ui');
16656   glProgramUniform3uiv := dglGetProcAddress('glProgramUniform3uiv');
16657   glProgramUniform4i := dglGetProcAddress('glProgramUniform4i');
16658   glProgramUniform4iv := dglGetProcAddress('glProgramUniform4iv');
16659   glProgramUniform4f := dglGetProcAddress('glProgramUniform4f');
16660   glProgramUniform4fv := dglGetProcAddress('glProgramUniform4fv');
16661   glProgramUniform4d := dglGetProcAddress('glProgramUniform4d');
16662   glProgramUniform4dv := dglGetProcAddress('glProgramUniform4dv');
16663   glProgramUniform4ui := dglGetProcAddress('glProgramUniform4ui');
16664   glProgramUniform4uiv := dglGetProcAddress('glProgramUniform4uiv');
16665   glProgramUniformMatrix2fv := dglGetProcAddress('glProgramUniformMatrix2fv');
16666   glProgramUniformMatrix3fv := dglGetProcAddress('glProgramUniformMatrix3fv');
16667   glProgramUniformMatrix4fv := dglGetProcAddress('glProgramUniformMatrix4fv');
16668   glProgramUniformMatrix2dv := dglGetProcAddress('glProgramUniformMatrix2dv');
16669   glProgramUniformMatrix3dv := dglGetProcAddress('glProgramUniformMatrix3dv');
16670   glProgramUniformMatrix4dv := dglGetProcAddress('glProgramUniformMatrix4dv');
16671   glProgramUniformMatrix2x3fv := dglGetProcAddress('glProgramUniformMatrix2x3fv');
16672   glProgramUniformMatrix3x2fv := dglGetProcAddress('glProgramUniformMatrix3x2fv');
16673   glProgramUniformMatrix2x4fv := dglGetProcAddress('glProgramUniformMatrix2x4fv');
16674   glProgramUniformMatrix4x2fv := dglGetProcAddress('glProgramUniformMatrix4x2fv');
16675   glProgramUniformMatrix3x4fv := dglGetProcAddress('glProgramUniformMatrix3x4fv');
16676   glProgramUniformMatrix4x3fv := dglGetProcAddress('glProgramUniformMatrix4x3fv');
16677   glProgramUniformMatrix2x3dv := dglGetProcAddress('glProgramUniformMatrix2x3dv');
16678   glProgramUniformMatrix3x2dv := dglGetProcAddress('glProgramUniformMatrix3x2dv');
16679   glProgramUniformMatrix2x4dv := dglGetProcAddress('glProgramUniformMatrix2x4dv');
16680   glProgramUniformMatrix4x2dv := dglGetProcAddress('glProgramUniformMatrix4x2dv');
16681   glProgramUniformMatrix3x4dv := dglGetProcAddress('glProgramUniformMatrix3x4dv');
16682   glProgramUniformMatrix4x3dv := dglGetProcAddress('glProgramUniformMatrix4x3dv');
16683   glValidateProgramPipeline := dglGetProcAddress('glValidateProgramPipeline');
16684   glGetProgramPipelineInfoLog := dglGetProcAddress('glGetProgramPipelineInfoLog');
16685 end;
16686
16687 procedure Read_GL_ARB_vertex_attrib_64bit;
16688 begin
16689   glVertexAttribL1d := dglGetProcAddress('glVertexAttribL1d');
16690   glVertexAttribL2d := dglGetProcAddress('glVertexAttribL2d');
16691   glVertexAttribL3d := dglGetProcAddress('glVertexAttribL3d');
16692   glVertexAttribL4d := dglGetProcAddress('glVertexAttribL4d');
16693   glVertexAttribL1dv := dglGetProcAddress('glVertexAttribL1dv');
16694   glVertexAttribL2dv := dglGetProcAddress('glVertexAttribL2dv');
16695   glVertexAttribL3dv := dglGetProcAddress('glVertexAttribL3dv');
16696   glVertexAttribL4dv := dglGetProcAddress('glVertexAttribL4dv');
16697   glVertexAttribLPointer := dglGetProcAddress('glVertexAttribLPointer');
16698   glGetVertexAttribLdv := dglGetProcAddress('glGetVertexAttribLdv');
16699 end;
16700
16701 procedure Read_GL_ARB_viewport_array;
16702 begin
16703   glViewportArrayv := dglGetProcAddress('glViewportArrayv');
16704   glViewportIndexedf := dglGetProcAddress('glViewportIndexedf');
16705   glViewportIndexedfv := dglGetProcAddress('glViewportIndexedfv');
16706   glScissorArrayv := dglGetProcAddress('glScissorArrayv');
16707   glScissorIndexed := dglGetProcAddress('glScissorIndexed');
16708   glScissorIndexedv := dglGetProcAddress('glScissorIndexedv');
16709   glDepthRangeArrayv := dglGetProcAddress('glDepthRangeArrayv');
16710   glDepthRangeIndexed := dglGetProcAddress('glDepthRangeIndexed');
16711   glGetFloati_v := dglGetProcAddress('glGetFloati_v');
16712   glGetDoublei_v := dglGetProcAddress('glGetDoublei_v');
16713 end;
16714
16715 // GL 4.2
16716
16717 procedure Read_GL_ARB_base_instance;
16718 begin
16719 glDrawArraysInstancedBaseInstance := dglGetProcAddress('glDrawArraysInstancedBaseInstance');
16720 glDrawElementsInstancedBaseInstance := dglGetProcAddress('glDrawElementsInstancedBaseInstance');
16721 glDrawElementsInstancedBaseVertexBaseInstance := dglGetProcAddress('glDrawElementsInstancedBaseVertexBaseInstance');
16722 end;
16723
16724 procedure Read_GL_ARB_transform_feedback_instanced;
16725 begin
16726 glDrawTransformFeedbackInstanced := dglGetProcAddress('glDrawTransformFeedbackInstanced');
16727 glDrawTransformFeedbackStreamInstanced := dglGetProcAddress('glDrawTransformFeedbackStreamInstanced');
16728 end;
16729
16730 procedure Read_GL_ARB_internalformat_query;
16731 begin
16732 glGetInternalformativ := dglGetProcAddress('glGetInternalformativ');
16733 end;
16734
16735 procedure Read_GL_ARB_shader_atomic_counters;
16736 begin
16737 glGetActiveAtomicCounterBufferiv := dglGetProcAddress('glGetActiveAtomicCounterBufferiv');
16738 end;
16739
16740 procedure Read_GL_ARB_shader_image_load_store;
16741 begin
16742 glBindImageTexture := dglGetProcAddress('glBindImageTexture');
16743 glMemoryBarrier := dglGetProcAddress('glMemoryBarrier');
16744 end;
16745
16746 procedure Read_GL_ARB_texture_storage;
16747 begin
16748 glTexStorage1D := dglGetProcAddress('glTexStorage1D');
16749 glTexStorage2D := dglGetProcAddress('glTexStorage2D');
16750 glTexStorage3D := dglGetProcAddress('glTexStorage3D');
16751 glTextureStorage1DEXT := dglGetProcAddress('glTextureStorage1DEXT');
16752 glTextureStorage2DEXT := dglGetProcAddress('glTextureStorage2DEXT');
16753 glTextureStorage3DEXT := dglGetProcAddress('glTextureStorage3DEXT');
16754 end;
16755
16756
16757 // GL 4.3
16758 procedure Read_GL_KHR_debug;
16759 begin
16760   glDebugMessageControl := dglGetProcAddress('glDebugMessageControl');
16761   glDebugMessageInsert := dglGetProcAddress('glDebugMessageInsert');
16762   glDebugMessageCallback := dglGetProcAddress('glDebugMessageCallback');
16763   glGetDebugMessageLog := dglGetProcAddress('glGetDebugMessageLog');
16764   glPushDebugGroup := dglGetProcAddress('glPushDebugGroup');
16765   glPopDebugGroup := dglGetProcAddress('glPopDebugGroup');
16766   glObjectLabel := dglGetProcAddress('glObjectLabel');
16767   glGetObjectLabel := dglGetProcAddress('glGetObjectLabel');
16768   glObjectPtrLabel := dglGetProcAddress('glObjectPtrLabel');
16769   glGetObjectPtrLabel := dglGetProcAddress('glGetObjectPtrLabel');
16770 end;
16771
16772 procedure Read_GL_ARB_clear_buffer_object;
16773 begin
16774   glClearBufferData := dglGetProcAddress('glClearBufferData');
16775   glClearBufferSubData := dglGetProcAddress('glClearBufferSubData');
16776   glClearNamedBufferDataEXT := dglGetProcAddress('glClearNamedBufferDataEXT');
16777   glClearNamedBufferSubDataEXT := dglGetProcAddress('glClearNamedBufferSubDataEXT');
16778 end;
16779
16780 procedure Read_GL_ARB_compute_shader;
16781 begin
16782   glDispatchCompute := dglGetProcAddress('glDispatchCompute');
16783   glDispatchComputeIndirect := dglGetProcAddress('glDispatchComputeIndirect');
16784 end;
16785
16786 procedure Read_GL_ARB_copy_image;
16787 begin
16788   glCopyImageSubData := dglGetProcAddress('glCopyImageSubData');
16789 end;
16790
16791 procedure Read_GL_ARB_framebuffer_no_attachments;
16792 begin
16793   glFramebufferParameteri := dglGetProcAddress('glFramebufferParameteri');
16794   glGetFramebufferParameteriv := dglGetProcAddress('glGetFramebufferParameteriv');
16795   glNamedFramebufferParameteriEXT := dglGetProcAddress('glNamedFramebufferParameteriEXT');
16796   glGetNamedFramebufferParameterivEXT := dglGetProcAddress('glGetNamedFramebufferParameterivEXT');
16797 end;
16798
16799 procedure Read_GL_ARB_internalformat_query2;
16800 begin
16801   glGetInternalformati64v := dglGetProcAddress('glGetInternalformati64v');;
16802 end;
16803
16804 procedure Read_GL_ARB_invalidate_subdata;
16805 begin
16806   glInvalidateTexSubImage := dglGetProcAddress('glInvalidateTexSubImage');
16807   glInvalidateTexImage := dglGetProcAddress('glInvalidateTexImage');
16808   glInvalidateBufferSubData := dglGetProcAddress('glInvalidateBufferSubData');
16809   glInvalidateBufferData := dglGetProcAddress('glInvalidateBufferData');
16810   glInvalidateFramebuffer := dglGetProcAddress('glInvalidateFramebuffer');
16811   glInvalidateSubFramebuffer := dglGetProcAddress('glInvalidateSubFramebuffer');
16812 end;
16813
16814 procedure Read_GL_ARB_multi_draw_indirect;
16815 begin
16816   glMultiDrawArraysIndirect := dglGetProcAddress('glMultiDrawArraysIndirect');
16817   glMultiDrawElementsIndirect := dglGetProcAddress('glMultiDrawElementsIndirect');
16818 end;
16819
16820 procedure Read_GL_ARB_program_interface_query;
16821 begin
16822   glGetProgramInterfaceiv := dglGetProcAddress('glGetProgramInterfaceiv');
16823   glGetProgramResourceIndex := dglGetProcAddress('glGetProgramResourceIndex');
16824   glGetProgramResourceName := dglGetProcAddress('glGetProgramResourceName');
16825   glGetProgramResourceiv := dglGetProcAddress('glGetProgramResourceiv');
16826   glGetProgramResourceLocation := dglGetProcAddress('glGetProgramResourceLocation');
16827   glGetProgramResourceLocationIndex := dglGetProcAddress('glGetProgramResourceLocationIndex');
16828 end;
16829
16830 procedure Read_GL_ARB_shader_storage_buffer_object;
16831 begin
16832   glShaderStorageBlockBinding := dglGetProcAddress('glShaderStorageBlockBinding');
16833 end;
16834
16835 procedure Read_GL_ARB_texture_buffer_range;
16836 begin
16837   glTexBufferRange := dglGetProcAddress('glTexBufferRange');
16838   glTextureBufferRangeEXT := dglGetProcAddress('glTextureBufferRangeEXT');
16839 end;
16840
16841 procedure Read_GL_ARB_texture_storage_multisample;
16842 begin
16843   glTexStorage2DMultisample := dglGetProcAddress('glTexStorage2DMultisample');
16844   glTexStorage3DMultisample := dglGetProcAddress('glTexStorage3DMultisample');
16845   glTextureStorage2DMultisampleEXT := dglGetProcAddress('glTextureStorage2DMultisampleEXT');
16846   glTextureStorage3DMultisampleEXT := dglGetProcAddress('glTextureStorage3DMultisampleEXT');
16847 end;
16848
16849 procedure Read_GL_ARB_texture_view;
16850 begin
16851   glTextureView := dglGetProcAddress('glTextureView');
16852 end;
16853
16854 procedure Read_GL_ARB_vertex_attrib_binding;
16855 begin
16856   glBindVertexBuffer := dglGetProcAddress('glBindVertexBuffer');
16857   glVertexAttribFormat := dglGetProcAddress('glVertexAttribFormat');
16858   glVertexAttribIFormat := dglGetProcAddress('glVertexAttribIFormat');
16859   glVertexAttribLFormat := dglGetProcAddress('glVertexAttribLFormat');
16860   glVertexAttribBinding := dglGetProcAddress('glVertexAttribBinding');
16861   glVertexBindingDivisor := dglGetProcAddress('glVertexBindingDivisor');
16862   glVertexArrayBindVertexBufferEXT := dglGetProcAddress('glVertexArrayBindVertexBufferEXT');
16863   glVertexArrayVertexAttribFormatEXT := dglGetProcAddress('glVertexArrayVertexAttribFormatEXT');
16864   glVertexArrayVertexAttribIFormatEXT := dglGetProcAddress('glVertexArrayVertexAttribIFormatEXT');
16865   glVertexArrayVertexAttribLFormatEXT := dglGetProcAddress('glVertexArrayVertexAttribLFormatEXT');
16866   glVertexArrayVertexAttribBindingEXT := dglGetProcAddress('glVertexArrayVertexAttribBindingEXT');
16867   glVertexArrayVertexBindingDivisorEXT := dglGetProcAddress('glVertexArrayVertexBindingDivisorEXT');
16868 end;
16869
16870 procedure Read_GL_4_4;
16871 begin
16872   glBufferStorage     := dglGetProcAddress('glBufferStorage');
16873   glClearTexImage     := dglGetProcAddress('glClearTexImage');
16874   glClearTexSubImage  := dglGetProcAddress('glClearTexSubImage');
16875   glBindBuffersBase   := dglGetProcAddress('glBindBuffersBase');
16876   glBindBuffersRange  := dglGetProcAddress('glBindBuffersRange');
16877   glBindTextures      := dglGetProcAddress('glBindTextures');
16878   glBindSamplers      := dglGetProcAddress('glBindSamplers');
16879   glBindImageTextures := dglGetProcAddress('glBindImageTextures');
16880   glBindVertexBuffers := dglGetProcAddress('glBindVertexBuffers');
16881 end;
16882
16883 procedure Read_GL_4_5;
16884 begin
16885   glClipControl:= dglGetProcAddress('glClipControl');
16886   glCreateTransformFeedbacks:= dglGetProcAddress('glCreateTransformFeedbacks');
16887   glTransformFeedbackBufferBase:= dglGetProcAddress('glTransformFeedbackBufferBase');
16888   glTransformFeedbackBufferRange:= dglGetProcAddress('glTransformFeedbackBufferRange');
16889   glGetTransformFeedbackiv:= dglGetProcAddress('glGetTransformFeedbackiv');
16890   glGetTransformFeedbacki_v:= dglGetProcAddress('glGetTransformFeedbacki_v');
16891   glGetTransformFeedbacki64_v:= dglGetProcAddress('glGetTransformFeedbacki64_v');
16892   glCreateBuffers:= dglGetProcAddress('glCreateBuffers');
16893   glNamedBufferStorage:= dglGetProcAddress('glNamedBufferStorage');
16894   glNamedBufferData:= dglGetProcAddress('glNamedBufferData');
16895   glNamedBufferSubData:= dglGetProcAddress('glNamedBufferSubData');
16896   glCopyNamedBufferSubData:= dglGetProcAddress('glCopyNamedBufferSubData');
16897   glClearNamedBufferData:= dglGetProcAddress('glClearNamedBufferData');
16898   glClearNamedBufferSubData:= dglGetProcAddress('glClearNamedBufferSubData');
16899   glMapNamedBuffer:= dglGetProcAddress('glMapNamedBuffer');
16900   glMapNamedBufferRange:= dglGetProcAddress('glMapNamedBufferRange');
16901   glUnmapNamedBuffer:= dglGetProcAddress('glUnmapNamedBuffer');
16902   glFlushMappedNamedBufferRange:= dglGetProcAddress('glFlushMappedNamedBufferRange');
16903   glGetNamedBufferParameteriv:= dglGetProcAddress('glGetNamedBufferParameteriv');
16904   glGetNamedBufferParameteri64v:= dglGetProcAddress('glGetNamedBufferParameteri64v');
16905   glGetNamedBufferPointerv:= dglGetProcAddress('glGetNamedBufferPointerv');
16906   glGetNamedBufferSubData:= dglGetProcAddress('glGetNamedBufferSubData');
16907   glCreateFramebuffers:= dglGetProcAddress('glCreateFramebuffers');
16908   glNamedFramebufferRenderbuffer:= dglGetProcAddress('glNamedFramebufferRenderbuffer');
16909   glNamedFramebufferParameteri:= dglGetProcAddress('glNamedFramebufferParameteri');
16910   glNamedFramebufferTexture:= dglGetProcAddress('glNamedFramebufferTexture');
16911   glNamedFramebufferTextureLayer:= dglGetProcAddress('glNamedFramebufferTextureLayer');
16912   glNamedFramebufferDrawBuffer:= dglGetProcAddress('glNamedFramebufferDrawBuffer');
16913   glNamedFramebufferDrawBuffers:= dglGetProcAddress('glNamedFramebufferDrawBuffers');
16914   glNamedFramebufferReadBuffer:= dglGetProcAddress('glNamedFramebufferReadBuffer');
16915   glInvalidateNamedFramebufferData:= dglGetProcAddress('glInvalidateNamedFramebufferData');
16916   glInvalidateNamedFramebufferSubData:= dglGetProcAddress('glInvalidateNamedFramebufferSubData');
16917   glClearNamedFramebufferiv:= dglGetProcAddress('glClearNamedFramebufferiv');
16918   glClearNamedFramebufferuiv:= dglGetProcAddress('glClearNamedFramebufferuiv');
16919   glClearNamedFramebufferfv:= dglGetProcAddress('glClearNamedFramebufferfv');
16920   glClearNamedFramebufferfi:= dglGetProcAddress('glClearNamedFramebufferfi');
16921   glBlitNamedFramebuffer:= dglGetProcAddress('glBlitNamedFramebuffer');
16922   glCheckNamedFramebufferStatus:= dglGetProcAddress('glCheckNamedFramebufferStatus');
16923   glGetNamedFramebufferParameteriv:= dglGetProcAddress('glGetNamedFramebufferParameteriv');
16924   glGetNamedFramebufferAttachmentParameteriv:= dglGetProcAddress('glGetNamedFramebufferAttachmentParameteriv');
16925   glCreateRenderbuffers:= dglGetProcAddress('glCreateRenderbuffers');
16926   glNamedRenderbufferStorage:= dglGetProcAddress('glNamedRenderbufferStorage');
16927   glNamedRenderbufferStorageMultisample:= dglGetProcAddress('glNamedRenderbufferStorageMultisample');
16928   glGetNamedRenderbufferParameteriv:= dglGetProcAddress('glGetNamedRenderbufferParameteriv');
16929   glCreateTextures:= dglGetProcAddress('glCreateTextures');
16930   glTextureBuffer:= dglGetProcAddress('glTextureBuffer');
16931   glTextureBufferRange:= dglGetProcAddress('glTextureBufferRange');
16932   glTextureStorage1D:= dglGetProcAddress('glTextureStorage1D');
16933   glTextureStorage2D:= dglGetProcAddress('glTextureStorage2D');
16934   glTextureStorage3D:= dglGetProcAddress('glTextureStorage3D');
16935   glTextureStorage2DMultisample:= dglGetProcAddress('glTextureStorage2DMultisample');
16936   glTextureStorage3DMultisample:= dglGetProcAddress('glTextureStorage3DMultisample');
16937   glTextureSubImage1D:= dglGetProcAddress('glTextureSubImage1D');
16938   glTextureSubImage2D:= dglGetProcAddress('glTextureSubImage2D');
16939   glTextureSubImage3D:= dglGetProcAddress('glTextureSubImage3D');
16940   glCompressedTextureSubImage1D:= dglGetProcAddress('glCompressedTextureSubImage1D');
16941   glCompressedTextureSubImage2D:= dglGetProcAddress('glCompressedTextureSubImage2D');
16942   glCompressedTextureSubImage3D:= dglGetProcAddress('glCompressedTextureSubImage3D');
16943   glCopyTextureSubImage1D:= dglGetProcAddress('glCopyTextureSubImage1D');
16944   glCopyTextureSubImage2D:= dglGetProcAddress('glCopyTextureSubImage2D');
16945   glCopyTextureSubImage3D:= dglGetProcAddress('glCopyTextureSubImage3D');
16946   glTextureParameterf:= dglGetProcAddress('glTextureParameterf');
16947   glTextureParameterfv:= dglGetProcAddress('glTextureParameterfv');
16948   glTextureParameteri:= dglGetProcAddress('glTextureParameteri');
16949   glTextureParameterIiv:= dglGetProcAddress('glTextureParameterIiv');
16950   glTextureParameterIuiv:= dglGetProcAddress('glTextureParameterIuiv');
16951   glTextureParameteriv:= dglGetProcAddress('glTextureParameteriv');
16952   glGenerateTextureMipmap:= dglGetProcAddress('glGenerateTextureMipmap');
16953   glBindTextureUnit:= dglGetProcAddress('glBindTextureUnit');
16954   glGetTextureImage:= dglGetProcAddress('glGetTextureImage');
16955   glGetCompressedTextureImage:= dglGetProcAddress('glGetCompressedTextureImage');
16956   glGetTextureLevelParameterfv:= dglGetProcAddress('glGetTextureLevelParameterfv');
16957   glGetTextureLevelParameteriv:= dglGetProcAddress('glGetTextureLevelParameteriv');
16958   glGetTextureParameterfv:= dglGetProcAddress('glGetTextureParameterfv');
16959   glGetTextureParameterIiv:= dglGetProcAddress('glGetTextureParameterIiv');
16960   glGetTextureParameterIuiv:= dglGetProcAddress('glGetTextureParameterIuiv');
16961   glGetTextureParameteriv:= dglGetProcAddress('glGetTextureParameteriv');
16962   glCreateVertexArrays:= dglGetProcAddress('glCreateVertexArrays');
16963   glDisableVertexArrayAttrib:= dglGetProcAddress('glDisableVertexArrayAttrib');
16964   glEnableVertexArrayAttrib:= dglGetProcAddress('glEnableVertexArrayAttrib');
16965   glVertexArrayElementBuffer:= dglGetProcAddress('glVertexArrayElementBuffer');
16966   glVertexArrayVertexBuffer:= dglGetProcAddress('glVertexArrayVertexBuffer');
16967   glVertexArrayVertexBuffers:= dglGetProcAddress('glVertexArrayVertexBuffers');
16968   glVertexArrayAttribBinding:= dglGetProcAddress('glVertexArrayAttribBinding');
16969   glVertexArrayAttribFormat:= dglGetProcAddress('glVertexArrayAttribFormat');
16970   glVertexArrayAttribIFormat:= dglGetProcAddress('glVertexArrayAttribIFormat');
16971   glVertexArrayAttribLFormat:= dglGetProcAddress('glVertexArrayAttribLFormat');
16972   glVertexArrayBindingDivisor:= dglGetProcAddress('glVertexArrayBindingDivisor');
16973   glGetVertexArrayiv:= dglGetProcAddress('glGetVertexArrayiv');
16974   glGetVertexArrayIndexediv:= dglGetProcAddress('glGetVertexArrayIndexediv');
16975   glGetVertexArrayIndexed64iv:= dglGetProcAddress('glGetVertexArrayIndexed64iv');
16976   glCreateSamplers:= dglGetProcAddress('glCreateSamplers');
16977   glCreateProgramPipelines:= dglGetProcAddress('glCreateProgramPipelines');
16978   glCreateQueries:= dglGetProcAddress('glCreateQueries');
16979   glMemoryBarrierByRegion:= dglGetProcAddress('glMemoryBarrierByRegion');
16980   glGetTextureSubImage:= dglGetProcAddress('glGetTextureSubImage');
16981   glGetCompressedTextureSubImage:= dglGetProcAddress('glGetCompressedTextureSubImage');
16982   glGetGraphicsResetStatus:= dglGetProcAddress('glGetGraphicsResetStatus');
16983   glGetnCompressedTexImage:= dglGetProcAddress('glGetnCompressedTexImage');
16984   glGetnTexImage:= dglGetProcAddress('glGetnTexImage');
16985   glGetnUniformdv:= dglGetProcAddress('glGetnUniformdv');
16986   glGetnUniformfv:= dglGetProcAddress('glGetnUniformfv');
16987   glGetnUniformiv:= dglGetProcAddress('glGetnUniformiv');
16988   glGetnUniformuiv:= dglGetProcAddress('glGetnUniformuiv');
16989   glReadnPixels:= dglGetProcAddress('glReadnPixels');
16990   glGetnMapdv:= dglGetProcAddress('glGetnMapdv');
16991   glGetnMapfv:= dglGetProcAddress('glGetnMapfv');
16992   glGetnMapiv:= dglGetProcAddress('glGetnMapiv');
16993   glGetnPixelMapfv:= dglGetProcAddress('glGetnPixelMapfv');
16994   glGetnPixelMapuiv:= dglGetProcAddress('glGetnPixelMapuiv');
16995   glGetnPixelMapusv:= dglGetProcAddress('glGetnPixelMapusv');
16996   glGetnPolygonStipple:= dglGetProcAddress('glGetnPolygonStipple');
16997   glGetnColorTable:= dglGetProcAddress('glGetnColorTable');
16998   glGetnConvolutionFilter:= dglGetProcAddress('glGetnConvolutionFilter');
16999   glGetnSeparableFilter:= dglGetProcAddress('glGetnSeparableFilter');
17000   glGetnHistogram:= dglGetProcAddress('glGetnHistogram');
17001   glGetnMinmax:= dglGetProcAddress('glGetnMinmax');
17002   glTextureBarrier:= dglGetProcAddress('glTextureBarrier');
17003 end;
17004
17005 procedure Read_GL_NV_path_rendering;
17006 begin
17007   glGenPathsNV := dglGetProcAddress('glGenPathsNV');
17008   glDeletePathsNV := dglGetProcAddress('glDeletePathsNV');
17009   glIsPathNV := dglGetProcAddress('glIsPathNV');
17010   glPathCommandsNV := dglGetProcAddress('glPathCommandsNV');
17011   glPathCoordsNV := dglGetProcAddress('glPathCoordsNV');
17012   glPathSubCommandsNV := dglGetProcAddress('glPathSubCommandsNV');
17013   glPathSubCoordsNV := dglGetProcAddress('glPathSubCoordsNV');
17014   glPathStringNV := dglGetProcAddress('glPathStringNV');
17015   glPathGlyphsNV := dglGetProcAddress('glPathGlyphsNV');
17016   glPathGlyphRangeNV := dglGetProcAddress('glPathGlyphRangeNV');
17017   glWeightPathsNV := dglGetProcAddress('glWeightPathsNV');
17018   glCopyPathNV := dglGetProcAddress('glCopyPathNV');
17019   glInterpolatePathsNV := dglGetProcAddress('glInterpolatePathsNV');
17020   glTransformPathNV := dglGetProcAddress('glTransformPathNV');
17021   glPathParameterivNV := dglGetProcAddress('glPathParameterivNV');
17022   glPathParameteriNV := dglGetProcAddress('glPathParameteriNV');
17023   glPathParameterfvNV := dglGetProcAddress('glPathParameterfvNV');
17024   glPathParameterfNV := dglGetProcAddress('glPathParameterfNV');
17025   glPathDashArrayNV := dglGetProcAddress('glPathDashArrayNV');
17026   glPathStencilFuncNV := dglGetProcAddress('glPathStencilFuncNV');
17027   glPathStencilDepthOffsetNV := dglGetProcAddress('glPathStencilDepthOffsetNV');
17028   glStencilFillPathNV := dglGetProcAddress('glStencilFillPathNV');
17029   glStencilStrokePathNV := dglGetProcAddress('glStencilStrokePathNV');
17030   glStencilFillPathInstancedNV := dglGetProcAddress('glStencilFillPathInstancedNV');
17031   glStencilStrokePathInstancedNV := dglGetProcAddress('glStencilStrokePathInstancedNV');
17032   glPathCoverDepthFuncNV := dglGetProcAddress('glPathCoverDepthFuncNV');
17033   glPathColorGenNV := dglGetProcAddress('glPathColorGenNV');
17034   glPathTexGenNV := dglGetProcAddress('glPathTexGenNV');
17035   glPathFogGenNV := dglGetProcAddress('glPathFogGenNV');
17036   glCoverFillPathNV := dglGetProcAddress('glCoverFillPathNV');
17037   glCoverStrokePathNV := dglGetProcAddress('glCoverStrokePathNV');
17038   glCoverFillPathInstancedNV := dglGetProcAddress('glCoverFillPathInstancedNV');
17039   glCoverStrokePathInstancedNV := dglGetProcAddress('glCoverStrokePathInstancedNV');
17040   glGetPathParameterivNV := dglGetProcAddress('glGetPathParameterivNV');
17041   glGetPathParameterfvNV := dglGetProcAddress('glGetPathParameterfvNV');
17042   glGetPathCommandsNV := dglGetProcAddress('glGetPathCommandsNV');
17043   glGetPathCoordsNV := dglGetProcAddress('glGetPathCoordsNV');
17044   glGetPathDashArrayNV := dglGetProcAddress('glGetPathDashArrayNV');
17045   glGetPathMetricsNV := dglGetProcAddress('glGetPathMetricsNV');
17046   glGetPathMetricRangeNV := dglGetProcAddress('glGetPathMetricRangeNV');
17047   glGetPathSpacingNV := dglGetProcAddress('glGetPathSpacingNV');
17048   glGetPathColorGenivNV := dglGetProcAddress('glGetPathColorGenivNV');
17049   glGetPathColorGenfvNV := dglGetProcAddress('glGetPathColorGenfvNV');
17050   glGetPathTexGenivNV := dglGetProcAddress('glGetPathTexGenivNV');
17051   glGetPathTexGenfvNV := dglGetProcAddress('glGetPathTexGenfvNV');
17052   glIsPointInFillPathNV := dglGetProcAddress('glIsPointInFillPathNV');
17053   glIsPointInStrokePathNV := dglGetProcAddress('glIsPointInStrokePathNV');
17054   glGetPathLengthNV := dglGetProcAddress('glGetPathLengthNV');
17055   glPointAlongPathNV := dglGetProcAddress('glPointAlongPathNV');
17056 end;
17057
17058 procedure Read_GL_AMD_stencil_operation_extended;
17059 begin
17060         glStencilOpValueAMD := dglGetProcAddress('glStencilOpValueAMD');
17061 end;
17062
17063 procedure Read_GL_NV_bindless_texture;
17064 begin
17065   glGetTextureHandleNV := dglGetProcAddress('glGetTextureHandleNV');
17066   glGetTextureSamplerHandleNV := dglGetProcAddress('glGetTextureSamplerHandleNV');
17067   glMakeTextureHandleResidentNV := dglGetProcAddress('glMakeTextureHandleResidentNV');
17068   glMakeTextureHandleNonResidentNV := dglGetProcAddress('glMakeTextureHandleNonResidentNV');
17069   glGetImageHandleNV := dglGetProcAddress('glGetImageHandleNV');
17070   glMakeImageHandleResidentNV := dglGetProcAddress('glMakeImageHandleResidentNV');
17071   glMakeImageHandleNonResidentNV := dglGetProcAddress('glMakeImageHandleNonResidentNV');
17072   glUniformHandleui64NV := dglGetProcAddress('glUniformHandleui64NV');
17073   glUniformHandleui64vNV := dglGetProcAddress('glUniformHandleui64vNV');
17074   glProgramUniformHandleui64NV := dglGetProcAddress('glProgramUniformHandleui64NV');
17075   glProgramUniformHandleui64vNV := dglGetProcAddress('glProgramUniformHandleui64vNV');
17076   glIsTextureHandleResidentNV := dglGetProcAddress('glIsTextureHandleResidentNV');
17077   glIsImageHandleResidentNV := dglGetProcAddress('glIsImageHandleResidentNV');
17078 end;
17079
17080 procedure Read_GL_ARB_bindless_texture;
17081 begin
17082   glGetTextureHandleARB := dglGetProcAddress('TglGetTextureHandleARB');
17083   glGetTextureSamplerHandleARB := dglGetProcAddress('TglGetTextureSamplerHandleARB');
17084   glMakeTextureHandleResidentARB := dglGetProcAddress('TglMakeTextureHandleResidentARB');
17085   glMakeTextureHandleNonResidentARB := dglGetProcAddress('TglMakeTextureHandleNonResidentARB');
17086   glGetImageHandleARB := dglGetProcAddress('TglGetImageHandleARB');
17087   glMakeImageHandleResidentARB := dglGetProcAddress('TglMakeImageHandleResidentARB');
17088   glMakeImageHandleNonResidentARB := dglGetProcAddress('TglMakeImageHandleNonResidentARB');
17089   glUniformHandleui64ARB := dglGetProcAddress('TglUniformHandleui64ARB');
17090   glUniformHandleui64vARB := dglGetProcAddress('TglUniformHandleui64vARB');
17091   glProgramUniformHandleui64ARB := dglGetProcAddress('TglProgramUniformHandleui64ARB');
17092   glProgramUniformHandleui64vARB := dglGetProcAddress('TglProgramUniformHandleui64vARB');
17093   glIsTextureHandleResidentARB := dglGetProcAddress('TglIsTextureHandleResidentARB');
17094   glIsImageHandleResidentARB := dglGetProcAddress('TglIsImageHandleResidentARB');
17095   glVertexAttribL1ui64ARB := dglGetProcAddress('TglVertexAttribL1ui64ARB');
17096   glVertexAttribL1ui64vARB := dglGetProcAddress('TglVertexAttribL1ui64vARB');
17097   glGetVertexAttribLui64vARB := dglGetProcAddress('TglGetVertexAttribLui64vARB');
17098 end;
17099
17100 procedure Read_GL_ARB_cl_event;
17101 begin
17102   glCreateSyncFromCLeventARB := dglGetProcAddress('glCreateSyncFromCLeventARB');
17103 end;
17104
17105 procedure Read_GL_ARB_compute_variable_group_size;
17106 begin
17107   glDispatchComputeGroupSizeARB := dglGetProcAddress('glDispatchComputeGroupSizeARB');
17108 end;
17109
17110 procedure Read_GL_ARB_debug_output;
17111 begin
17112   glDebugMessageControlARB := dglGetProcAddress('glDebugMessageControlARB');
17113   glDebugMessageInsertARB := dglGetProcAddress('glDebugMessageInsertARB');
17114   glDebugMessageCallbackARB := dglGetProcAddress('glDebugMessageCallbackARB');
17115   glGetDebugMessageLogARB := dglGetProcAddress('glGetDebugMessageLogARB');
17116 end;
17117
17118 procedure Read_GL_ARB_robustness;
17119 begin
17120   glGetGraphicsResetStatusARB := dglGetProcAddress('glGetGraphicsResetStatusARB');
17121   glGetnMapdvARB := dglGetProcAddress('glGetnMapdvARB');
17122   glGetnMapfvARB := dglGetProcAddress('glGetnMapfvARB');
17123   glGetnMapivARB := dglGetProcAddress('glGetnMapivARB');
17124   glGetnPixelMapfvARB := dglGetProcAddress('glGetnPixelMapfvARB');
17125   glGetnPixelMapuivARB := dglGetProcAddress('glGetnPixelMapuivARB');
17126   glGetnPixelMapusvARB := dglGetProcAddress('glGetnPixelMapusvARB');
17127   glGetnPolygonStippleARB := dglGetProcAddress('glGetnPolygonStippleARB');
17128   glGetnColorTableARB := dglGetProcAddress('glGetnColorTableARB');
17129   glGetnConvolutionFilterARB := dglGetProcAddress('glGetnConvolutionFilterARB');
17130   glGetnSeparableFilterARB := dglGetProcAddress('glGetnSeparableFilterARB');
17131   glGetnHistogramARB := dglGetProcAddress('glGetnHistogramARB');
17132   glGetnMinmaxARB := dglGetProcAddress('glGetnMinmaxARB');
17133   glGetnTexImageARB := dglGetProcAddress('glGetnTexImageARB');
17134   glReadnPixelsARB := dglGetProcAddress('glReadnPixelsARB');
17135   glGetnCompressedTexImageARB := dglGetProcAddress('glGetnCompressedTexImageARB');
17136   glGetnUniformfvARB := dglGetProcAddress('glGetnUniformfvARB');
17137   glGetnUniformivARB := dglGetProcAddress('glGetnUniformivARB');
17138   glGetnUniformuivARB := dglGetProcAddress('glGetnUniformuivARB');
17139   glGetnUniformdvARB := dglGetProcAddress('glGetnUniformdvARB');
17140 end;
17141
17142 procedure Read_GL_ATI_draw_buffers;
17143 begin
17144   glDrawBuffersATI := dglGetProcAddress('glDrawBuffersATI');
17145 end;
17146
17147 procedure Read_GL_ATI_element_array;
17148 begin
17149   glElementPointerATI := dglGetProcAddress('glElementPointerATI');
17150   glDrawElementArrayATI := dglGetProcAddress('glDrawElementArrayATI');
17151   glDrawRangeElementArrayATI := dglGetProcAddress('glDrawRangeElementArrayATI');
17152 end;
17153
17154 procedure Read_GL_ATI_envmap_bumpmap;
17155 begin
17156   glTexBumpParameterivATI := dglGetProcAddress('glTexBumpParameterivATI');
17157   glTexBumpParameterfvATI := dglGetProcAddress('glTexBumpParameterfvATI');
17158   glGetTexBumpParameterivATI := dglGetProcAddress('glGetTexBumpParameterivATI');
17159   glGetTexBumpParameterfvATI := dglGetProcAddress('glGetTexBumpParameterfvATI');
17160 end;
17161
17162 procedure Read_GL_ATI_fragment_shader;
17163 begin
17164   glGenFragmentShadersATI := dglGetProcAddress('glGenFragmentShadersATI');
17165   glBindFragmentShaderATI := dglGetProcAddress('glBindFragmentShaderATI');
17166   glDeleteFragmentShaderATI := dglGetProcAddress('glDeleteFragmentShaderATI');
17167   glBeginFragmentShaderATI := dglGetProcAddress('glBeginFragmentShaderATI');
17168   glEndFragmentShaderATI := dglGetProcAddress('glEndFragmentShaderATI');
17169   glPassTexCoordATI := dglGetProcAddress('glPassTexCoordATI');
17170   glSampleMapATI := dglGetProcAddress('glSampleMapATI');
17171   glColorFragmentOp1ATI := dglGetProcAddress('glColorFragmentOp1ATI');
17172   glColorFragmentOp2ATI := dglGetProcAddress('glColorFragmentOp2ATI');
17173   glColorFragmentOp3ATI := dglGetProcAddress('glColorFragmentOp3ATI');
17174   glAlphaFragmentOp1ATI := dglGetProcAddress('glAlphaFragmentOp1ATI');
17175   glAlphaFragmentOp2ATI := dglGetProcAddress('glAlphaFragmentOp2ATI');
17176   glAlphaFragmentOp3ATI := dglGetProcAddress('glAlphaFragmentOp3ATI');
17177   glSetFragmentShaderConstantATI := dglGetProcAddress('glSetFragmentShaderConstantATI');
17178 end;
17179
17180 procedure Read_GL_ATI_map_object_buffer;
17181 begin
17182   glMapObjectBufferATI := dglGetProcAddress('glMapObjectBufferATI');
17183   glUnmapObjectBufferATI := dglGetProcAddress('glUnmapObjectBufferATI');
17184 end;
17185
17186 procedure Read_GL_ATI_pn_triangles;
17187 begin
17188   glPNTrianglesiATI := dglGetProcAddress('glPNTrianglesiATI');
17189   glPNTrianglesfATI := dglGetProcAddress('glPNTrianglesfATI');
17190 end;
17191
17192 procedure Read_GL_ATI_separate_stencil;
17193 begin
17194   glStencilOpSeparateATI := dglGetProcAddress('glStencilOpSeparateATI');
17195   glStencilFuncSeparateATI := dglGetProcAddress('glStencilFuncSeparateATI');
17196 end;
17197
17198 procedure Read_GL_ATI_vertex_array_object;
17199 begin
17200   glNewObjectBufferATI := dglGetProcAddress('glNewObjectBufferATI');
17201   glIsObjectBufferATI := dglGetProcAddress('glIsObjectBufferATI');
17202   glUpdateObjectBufferATI := dglGetProcAddress('glUpdateObjectBufferATI');
17203   glGetObjectBufferfvATI := dglGetProcAddress('glGetObjectBufferfvATI');
17204   glGetObjectBufferivATI := dglGetProcAddress('glGetObjectBufferivATI');
17205   glFreeObjectBufferATI := dglGetProcAddress('glFreeObjectBufferATI');
17206   glArrayObjectATI := dglGetProcAddress('glArrayObjectATI');
17207   glGetArrayObjectfvATI := dglGetProcAddress('glGetArrayObjectfvATI');
17208   glGetArrayObjectivATI := dglGetProcAddress('glGetArrayObjectivATI');
17209   glVariantArrayObjectATI := dglGetProcAddress('glVariantArrayObjectATI');
17210   glGetVariantArrayObjectfvATI := dglGetProcAddress('glGetVariantArrayObjectfvATI');
17211   glGetVariantArrayObjectivATI := dglGetProcAddress('glGetVariantArrayObjectivATI');
17212
17213 end;
17214
17215 procedure Read_GL_ATI_vertex_attrib_array_object;
17216 begin
17217   glVertexAttribArrayObjectATI := dglGetProcAddress('glVertexAttribArrayObjectATI');
17218   glGetVertexAttribArrayObjectfvATI := dglGetProcAddress('glGetVertexAttribArrayObjectfvATI');
17219   glGetVertexAttribArrayObjectivATI := dglGetProcAddress('glGetVertexAttribArrayObjectivATI');
17220 end;
17221
17222 procedure Read_GL_ATI_vertex_streams;
17223 begin
17224   glVertexStream1sATI := dglGetProcAddress('glVertexStream1sATI');
17225   glVertexStream1svATI := dglGetProcAddress('glVertexStream1svATI');
17226   glVertexStream1iATI := dglGetProcAddress('glVertexStream1iATI');
17227   glVertexStream1ivATI := dglGetProcAddress('glVertexStream1ivATI');
17228   glVertexStream1fATI := dglGetProcAddress('glVertexStream1fATI');
17229   glVertexStream1fvATI := dglGetProcAddress('glVertexStream1fvATI');
17230   glVertexStream1dATI := dglGetProcAddress('glVertexStream1dATI');
17231   glVertexStream1dvATI := dglGetProcAddress('glVertexStream1dvATI');
17232   glVertexStream2sATI := dglGetProcAddress('glVertexStream2sATI');
17233   glVertexStream2svATI := dglGetProcAddress('glVertexStream2svATI');
17234   glVertexStream2iATI := dglGetProcAddress('glVertexStream2iATI');
17235   glVertexStream2ivATI := dglGetProcAddress('glVertexStream2ivATI');
17236   glVertexStream2fATI := dglGetProcAddress('glVertexStream2fATI');
17237   glVertexStream2fvATI := dglGetProcAddress('glVertexStream2fvATI');
17238   glVertexStream2dATI := dglGetProcAddress('glVertexStream2dATI');
17239   glVertexStream2dvATI := dglGetProcAddress('glVertexStream2dvATI');
17240   glVertexStream3sATI := dglGetProcAddress('glVertexStream3sATI');
17241   glVertexStream3svATI := dglGetProcAddress('glVertexStream3svATI');
17242   glVertexStream3iATI := dglGetProcAddress('glVertexStream3iATI');
17243   glVertexStream3ivATI := dglGetProcAddress('glVertexStream3ivATI');
17244   glVertexStream3fATI := dglGetProcAddress('glVertexStream3fATI');
17245   glVertexStream3fvATI := dglGetProcAddress('glVertexStream3fvATI');
17246   glVertexStream3dATI := dglGetProcAddress('glVertexStream3dATI');
17247   glVertexStream3dvATI := dglGetProcAddress('glVertexStream3dvATI');
17248   glVertexStream4sATI := dglGetProcAddress('glVertexStream4sATI');
17249   glVertexStream4svATI := dglGetProcAddress('glVertexStream4svATI');
17250   glVertexStream4iATI := dglGetProcAddress('glVertexStream4iATI');
17251   glVertexStream4ivATI := dglGetProcAddress('glVertexStream4ivATI');
17252   glVertexStream4fATI := dglGetProcAddress('glVertexStream4fATI');
17253   glVertexStream4fvATI := dglGetProcAddress('glVertexStream4fvATI');
17254   glVertexStream4dATI := dglGetProcAddress('glVertexStream4dATI');
17255   glVertexStream4dvATI := dglGetProcAddress('glVertexStream4dvATI');
17256   glNormalStream3bATI := dglGetProcAddress('glNormalStream3bATI');
17257   glNormalStream3bvATI := dglGetProcAddress('glNormalStream3bvATI');
17258   glNormalStream3sATI := dglGetProcAddress('glNormalStream3sATI');
17259   glNormalStream3svATI := dglGetProcAddress('glNormalStream3svATI');
17260   glNormalStream3iATI := dglGetProcAddress('glNormalStream3iATI');
17261   glNormalStream3ivATI := dglGetProcAddress('glNormalStream3ivATI');
17262   glNormalStream3fATI := dglGetProcAddress('glNormalStream3fATI');
17263   glNormalStream3fvATI := dglGetProcAddress('glNormalStream3fvATI');
17264   glNormalStream3dATI := dglGetProcAddress('glNormalStream3dATI');
17265   glNormalStream3dvATI := dglGetProcAddress('glNormalStream3dvATI');
17266   glClientActiveVertexStreamATI := dglGetProcAddress('glClientActiveVertexStreamATI');
17267   glVertexBlendEnviATI := dglGetProcAddress('glVertexBlendEnviATI');
17268   glVertexBlendEnvfATI := dglGetProcAddress('glVertexBlendEnvfATI');
17269 end;
17270
17271 procedure Read_GL_AMD_performance_monitor;
17272 begin
17273   glGetPerfMonitorGroupsAMD := dglGetProcAddress('glGetPerfMonitorGroupsAMD');
17274   glGetPerfMonitorCountersAMD := dglGetProcAddress('glGetPerfMonitorCountersAMD');
17275   glGetPerfMonitorGroupStringAMD := dglGetProcAddress('glGetPerfMonitorGroupStringAMD');
17276   glGetPerfMonitorCounterStringAMD := dglGetProcAddress('glGetPerfMonitorCounterStringAMD');
17277   glGetPerfMonitorCounterInfoAMD := dglGetProcAddress('glGetPerfMonitorCounterInfoAMD');
17278   glGenPerfMonitorsAMD := dglGetProcAddress('glGenPerfMonitorsAMD');
17279   glDeletePerfMonitorsAMD := dglGetProcAddress('glDeletePerfMonitorsAMD');
17280   glSelectPerfMonitorCountersAMD := dglGetProcAddress('glSelectPerfMonitorCountersAMD');
17281   glBeginPerfMonitorAMD := dglGetProcAddress('glBeginPerfMonitorAMD');
17282   glEndPerfMonitorAMD := dglGetProcAddress('glEndPerfMonitorAMD');
17283   glGetPerfMonitorCounterDataAMD := dglGetProcAddress('glGetPerfMonitorCounterDataAMD');
17284 end;
17285
17286 procedure Read_GL_AMD_vertex_shader_tesselator;
17287 begin
17288   glTessellationFactorAMD := dglGetProcAddress('glTessellationFactorAMD');
17289   glTessellationModeAMD := dglGetProcAddress('glTessellationModeAMD');
17290 end;
17291
17292 procedure Read_GL_AMD_draw_buffers_blend;
17293 begin
17294   glBlendFuncIndexedAMD := dglGetProcAddress('glBlendFuncIndexedAMD');
17295   glBlendFuncSeparateIndexedAMD := dglGetProcAddress('glBlendFuncSeparateIndexedAMD');
17296   glBlendEquationIndexedAMD := dglGetProcAddress('glBlendEquationIndexedAMD');
17297   glBlendEquationSeparateIndexedAMD := dglGetProcAddress('glBlendEquationSeparateIndexedAMD');
17298 end;
17299
17300 procedure Read_GL_AMD_name_gen_delete;
17301 begin
17302   glGenNamesAMD := dglGetProcAddress('glGenNamesAMD');
17303   glDeleteNamesAMD := dglGetProcAddress('glDeleteNamesAMD');
17304   glIsNameAMD := dglGetProcAddress('glIsNameAMD');
17305 end;
17306
17307 procedure Read_GL_AMD_debug_output;
17308 begin
17309   glDebugMessageEnableAMD := dglGetProcAddress('glDebugMessageEnableAMD');
17310   glDebugMessageInsertAMD := dglGetProcAddress('glDebugMessageInsertAMD');
17311   glDebugMessageCallbackAMD := dglGetProcAddress('glDebugMessageCallbackAMD');
17312   glGetDebugMessageLogAMD := dglGetProcAddress('glGetDebugMessageLogAMD');
17313 end;
17314
17315 procedure Read_GL_EXT_blend_color;
17316 begin
17317   glBlendColorEXT := dglGetProcAddress('glBlendColorEXT');
17318 end;
17319
17320 procedure Read_GL_EXT_blend_func_separate;
17321 begin
17322   glBlendFuncSeparateEXT := dglGetProcAddress('glBlendFuncSeparateEXT');
17323 end;
17324
17325 procedure Read_GL_EXT_blend_minmax;
17326 begin
17327   glBlendEquationEXT := dglGetProcAddress('glBlendEquationEXT');
17328 end;
17329
17330 procedure Read_GL_EXT_color_subtable;
17331 begin
17332   glColorSubTableEXT := dglGetProcAddress('glColorSubTableEXT');
17333   glCopyColorSubTableEXT := dglGetProcAddress('glCopyColorSubTableEXT');
17334 end;
17335
17336 procedure Read_GL_EXT_compiled_vertex_array;
17337 begin
17338   glLockArraysEXT := dglGetProcAddress('glLockArraysEXT');
17339   glUnlockArraysEXT := dglGetProcAddress('glUnlockArraysEXT');
17340 end;
17341
17342 procedure Read_GL_EXT_convolution;
17343 begin
17344   glConvolutionFilter1DEXT := dglGetProcAddress('glConvolutionFilter1DEXT');
17345   glConvolutionFilter2DEXT := dglGetProcAddress('glConvolutionFilter2DEXT');
17346   glConvolutionParameterfEXT := dglGetProcAddress('glConvolutionParameterfEXT');
17347   glConvolutionParameterfvEXT := dglGetProcAddress('glConvolutionParameterfvEXT');
17348   glConvolutionParameteriEXT := dglGetProcAddress('glConvolutionParameteriEXT');
17349   glConvolutionParameterivEXT := dglGetProcAddress('glConvolutionParameterivEXT');
17350   glCopyConvolutionFilter1DEXT := dglGetProcAddress('glCopyConvolutionFilter1DEXT');
17351   glCopyConvolutionFilter2DEXT := dglGetProcAddress('glCopyConvolutionFilter2DEXT');
17352   glGetConvolutionFilterEXT := dglGetProcAddress('glGetConvolutionFilterEXT');
17353   glGetConvolutionParameterfvEXT := dglGetProcAddress('glGetConvolutionParameterfvEXT');
17354   glGetConvolutionParameterivEXT := dglGetProcAddress('glGetConvolutionParameterivEXT');
17355   glGetSeparableFilterEXT := dglGetProcAddress('glGetSeparableFilterEXT');
17356   glSeparableFilter2DEXT := dglGetProcAddress('glSeparableFilter2DEXT');
17357 end;
17358
17359 procedure Read_GL_EXT_coordinate_frame;
17360 begin
17361   glTangent3bEXT := dglGetProcAddress('glTangent3bEXT');
17362   glTangent3bvEXT := dglGetProcAddress('glTangent3bvEXT');
17363   glTangent3dEXT := dglGetProcAddress('glTangent3dEXT');
17364   glTangent3dvEXT := dglGetProcAddress('glTangent3dvEXT');
17365   glTangent3fEXT := dglGetProcAddress('glTangent3fEXT');
17366   glTangent3fvEXT := dglGetProcAddress('glTangent3fvEXT');
17367   glTangent3iEXT := dglGetProcAddress('glTangent3iEXT');
17368   glTangent3ivEXT := dglGetProcAddress('glTangent3ivEXT');
17369   glTangent3sEXT := dglGetProcAddress('glTangent3sEXT');
17370   glTangent3svEXT := dglGetProcAddress('glTangent3svEXT');
17371   glBinormal3bEXT := dglGetProcAddress('glBinormal3bEXT');
17372   glBinormal3bvEXT := dglGetProcAddress('glBinormal3bvEXT');
17373   glBinormal3dEXT := dglGetProcAddress('glBinormal3dEXT');
17374   glBinormal3dvEXT := dglGetProcAddress('glBinormal3dvEXT');
17375   glBinormal3fEXT := dglGetProcAddress('glBinormal3fEXT');
17376   glBinormal3fvEXT := dglGetProcAddress('glBinormal3fvEXT');
17377   glBinormal3iEXT := dglGetProcAddress('glBinormal3iEXT');
17378   glBinormal3ivEXT := dglGetProcAddress('glBinormal3ivEXT');
17379   glBinormal3sEXT := dglGetProcAddress('glBinormal3sEXT');
17380   glBinormal3svEXT := dglGetProcAddress('glBinormal3svEXT');
17381   glTangentPointerEXT := dglGetProcAddress('glTangentPointerEXT');
17382   glBinormalPointerEXT := dglGetProcAddress('glBinormalPointerEXT');
17383 end;
17384
17385 procedure Read_GL_EXT_copy_texture;
17386 begin
17387   glCopyTexImage1DEXT := dglGetProcAddress('glCopyTexImage1DEXT');
17388   glCopyTexImage2DEXT := dglGetProcAddress('glCopyTexImage2DEXT');
17389   glCopyTexSubImage1DEXT := dglGetProcAddress('glCopyTexSubImage1DEXT');
17390   glCopyTexSubImage2DEXT := dglGetProcAddress('glCopyTexSubImage2DEXT');
17391   glCopyTexSubImage3DEXT := dglGetProcAddress('glCopyTexSubImage3DEXT');
17392 end;
17393
17394 procedure Read_GL_EXT_cull_vertex;
17395 begin
17396   glCullParameterdvEXT := dglGetProcAddress('glCullParameterdvEXT');
17397   glCullParameterfvEXT := dglGetProcAddress('glCullParameterfvEXT');
17398 end;
17399
17400 procedure Read_GL_EXT_draw_range_elements;
17401 begin
17402   glDrawRangeElementsEXT := dglGetProcAddress('glDrawRangeElementsEXT');
17403 end;
17404
17405 procedure Read_GL_EXT_fog_coord;
17406 begin
17407   glFogCoordfEXT := dglGetProcAddress('glFogCoordfEXT');
17408   glFogCoordfvEXT := dglGetProcAddress('glFogCoordfvEXT');
17409   glFogCoorddEXT := dglGetProcAddress('glFogCoorddEXT');
17410   glFogCoorddvEXT := dglGetProcAddress('glFogCoorddvEXT');
17411   glFogCoordPointerEXT := dglGetProcAddress('glFogCoordPointerEXT');
17412 end;
17413
17414 procedure Read_GL_EXT_framebuffer_object;
17415 begin
17416   glIsRenderbufferEXT := dglGetProcAddress('glIsRenderbufferEXT');
17417   glBindRenderbufferEXT := dglGetProcAddress('glBindRenderbufferEXT');
17418   glDeleteRenderbuffersEXT := dglGetProcAddress('glDeleteRenderbuffersEXT');
17419   glGenRenderbuffersEXT := dglGetProcAddress('glGenRenderbuffersEXT');
17420   glRenderbufferStorageEXT := dglGetProcAddress('glRenderbufferStorageEXT');
17421   glGetRenderbufferParameterivEXT := dglGetProcAddress('glGetRenderbufferParameterivEXT');
17422   glIsFramebufferEXT := dglGetProcAddress('glIsFramebufferEXT');
17423   glBindFramebufferEXT := dglGetProcAddress('glBindFramebufferEXT');
17424   glDeleteFramebuffersEXT := dglGetProcAddress('glDeleteFramebuffersEXT');
17425   glGenFramebuffersEXT := dglGetProcAddress('glGenFramebuffersEXT');
17426   glCheckFramebufferStatusEXT := dglGetProcAddress('glCheckFramebufferStatusEXT');
17427   glFramebufferTexture1DEXT := dglGetProcAddress('glFramebufferTexture1DEXT');
17428   glFramebufferTexture2DEXT := dglGetProcAddress('glFramebufferTexture2DEXT');
17429   glFramebufferTexture3DEXT := dglGetProcAddress('glFramebufferTexture3DEXT');
17430   glFramebufferRenderbufferEXT := dglGetProcAddress('glFramebufferRenderbufferEXT');
17431   glGetFramebufferAttachmentParameterivEXT := dglGetProcAddress('glGetFramebufferAttachmentParameterivEXT');
17432   glGenerateMipmapEXT := dglGetProcAddress('glGenerateMipmapEXT');
17433 end;
17434
17435 procedure Read_GL_EXT_histogram;
17436 begin
17437   glGetHistogramEXT := dglGetProcAddress('glGetHistogramEXT');
17438   glGetHistogramParameterfvEXT := dglGetProcAddress('glGetHistogramParameterfvEXT');
17439   glGetHistogramParameterivEXT := dglGetProcAddress('glGetHistogramParameterivEXT');
17440   glGetMinmaxEXT := dglGetProcAddress('glGetMinmaxEXT');
17441   glGetMinmaxParameterfvEXT := dglGetProcAddress('glGetMinmaxParameterfvEXT');
17442   glGetMinmaxParameterivEXT := dglGetProcAddress('glGetMinmaxParameterivEXT');
17443   glHistogramEXT := dglGetProcAddress('glHistogramEXT');
17444   glMinmaxEXT := dglGetProcAddress('glMinmaxEXT');
17445   glResetHistogramEXT := dglGetProcAddress('glResetHistogramEXT');
17446   glResetMinmaxEXT := dglGetProcAddress('glResetMinmaxEXT');
17447 end;
17448
17449 procedure Read_GL_EXT_index_func;
17450 begin
17451   glIndexFuncEXT := dglGetProcAddress('glIndexFuncEXT');
17452 end;
17453
17454 procedure Read_GL_EXT_index_material;
17455 begin
17456   glIndexMaterialEXT := dglGetProcAddress('glIndexMaterialEXT');
17457 end;
17458
17459 procedure Read_GL_EXT_light_texture;
17460 begin
17461   glApplyTextureEXT := dglGetProcAddress('glApplyTextureEXT');
17462   glTextureLightEXT := dglGetProcAddress('glTextureLightEXT');
17463   glTextureMaterialEXT := dglGetProcAddress('glTextureMaterialEXT');
17464 end;
17465
17466 procedure Read_GL_EXT_multi_draw_arrays;
17467 begin
17468   glMultiDrawArraysEXT := dglGetProcAddress('glMultiDrawArraysEXT');
17469   glMultiDrawElementsEXT := dglGetProcAddress('glMultiDrawElementsEXT');
17470 end;
17471
17472 procedure Read_GL_EXT_multisample;
17473 begin
17474   glSampleMaskEXT := dglGetProcAddress('glSampleMaskEXT');
17475   glSamplePatternEXT := dglGetProcAddress('glSamplePatternEXT');
17476 end;
17477
17478 procedure Read_GL_EXT_paletted_texture;
17479 begin
17480   glColorTableEXT := dglGetProcAddress('glColorTableEXT');
17481   glGetColorTableEXT := dglGetProcAddress('glGetColorTableEXT');
17482   glGetColorTableParameterivEXT := dglGetProcAddress('glGetColorTableParameterivEXT');
17483   glGetColorTableParameterfvEXT := dglGetProcAddress('glGetColorTableParameterfvEXT');
17484 end;
17485
17486 procedure Read_GL_EXT_pixel_transform;
17487 begin
17488   glPixelTransformParameteriEXT := dglGetProcAddress('glPixelTransformParameteriEXT');
17489   glPixelTransformParameterfEXT := dglGetProcAddress('glPixelTransformParameterfEXT');
17490   glPixelTransformParameterivEXT := dglGetProcAddress('glPixelTransformParameterivEXT');
17491   glPixelTransformParameterfvEXT := dglGetProcAddress('glPixelTransformParameterfvEXT');
17492 end;
17493
17494 procedure Read_GL_EXT_point_parameters;
17495 begin
17496   glPointParameterfEXT := dglGetProcAddress('glPointParameterfEXT');
17497   glPointParameterfvEXT := dglGetProcAddress('glPointParameterfvEXT');
17498 end;
17499
17500 procedure Read_GL_EXT_polygon_offset;
17501 begin
17502   glPolygonOffsetEXT := dglGetProcAddress('glPolygonOffsetEXT');
17503 end;
17504
17505 procedure Read_GL_EXT_secondary_color;
17506 begin
17507   glSecondaryColor3bEXT := dglGetProcAddress('glSecondaryColor3bEXT');
17508   glSecondaryColor3bvEXT := dglGetProcAddress('glSecondaryColor3bvEXT');
17509   glSecondaryColor3dEXT := dglGetProcAddress('glSecondaryColor3dEXT');
17510   glSecondaryColor3dvEXT := dglGetProcAddress('glSecondaryColor3dvEXT');
17511   glSecondaryColor3fEXT := dglGetProcAddress('glSecondaryColor3fEXT');
17512   glSecondaryColor3fvEXT := dglGetProcAddress('glSecondaryColor3fvEXT');
17513   glSecondaryColor3iEXT := dglGetProcAddress('glSecondaryColor3iEXT');
17514   glSecondaryColor3ivEXT := dglGetProcAddress('glSecondaryColor3ivEXT');
17515   glSecondaryColor3sEXT := dglGetProcAddress('glSecondaryColor3sEXT');
17516   glSecondaryColor3svEXT := dglGetProcAddress('glSecondaryColor3svEXT');
17517   glSecondaryColor3ubEXT := dglGetProcAddress('glSecondaryColor3ubEXT');
17518   glSecondaryColor3ubvEXT := dglGetProcAddress('glSecondaryColor3ubvEXT');
17519   glSecondaryColor3uiEXT := dglGetProcAddress('glSecondaryColor3uiEXT');
17520   glSecondaryColor3uivEXT := dglGetProcAddress('glSecondaryColor3uivEXT');
17521   glSecondaryColor3usEXT := dglGetProcAddress('glSecondaryColor3usEXT');
17522   glSecondaryColor3usvEXT := dglGetProcAddress('glSecondaryColor3usvEXT');
17523   glSecondaryColorPointerEXT := dglGetProcAddress('glSecondaryColorPointerEXT');
17524 end;
17525
17526 procedure Read_GL_EXT_stencil_two_side;
17527 begin
17528   glActiveStencilFaceEXT := dglGetProcAddress('glActiveStencilFaceEXT');
17529 end;
17530
17531 procedure Read_GL_EXT_subtexture;
17532 begin
17533   glTexSubImage1DEXT := dglGetProcAddress('glTexSubImage1DEXT');
17534   glTexSubImage2DEXT := dglGetProcAddress('glTexSubImage2DEXT');
17535 end;
17536
17537 procedure Read_GL_EXT_texture3D;
17538 begin
17539   glTexImage3DEXT := dglGetProcAddress('glTexImage3DEXT');
17540   glTexSubImage3DEXT := dglGetProcAddress('glTexSubImage3DEXT');
17541 end;
17542
17543 procedure Read_GL_EXT_texture_object;
17544 begin
17545   glAreTexturesResidentEXT := dglGetProcAddress('glAreTexturesResidentEXT');
17546   glBindTextureEXT := dglGetProcAddress('glBindTextureEXT');
17547   glDeleteTexturesEXT := dglGetProcAddress('glDeleteTexturesEXT');
17548   glGenTexturesEXT := dglGetProcAddress('glGenTexturesEXT');
17549   glIsTextureEXT := dglGetProcAddress('glIsTextureEXT');
17550   glPrioritizeTexturesEXT := dglGetProcAddress('glPrioritizeTexturesEXT');
17551 end;
17552
17553 procedure Read_GL_EXT_texture_perturb_normal;
17554 begin
17555   glTextureNormalEXT := dglGetProcAddress('glTextureNormalEXT');
17556 end;
17557
17558 procedure Read_GL_EXT_vertex_array;
17559 begin
17560   glArrayElementEXT := dglGetProcAddress('glArrayElementEXT');
17561   glColorPointerEXT := dglGetProcAddress('glColorPointerEXT');
17562   glDrawArraysEXT := dglGetProcAddress('glDrawArraysEXT');
17563   glEdgeFlagPointerEXT := dglGetProcAddress('glEdgeFlagPointerEXT');
17564   glGetPointervEXT := dglGetProcAddress('glGetPointervEXT');
17565   glIndexPointerEXT := dglGetProcAddress('glIndexPointerEXT');
17566   glNormalPointerEXT := dglGetProcAddress('glNormalPointerEXT');
17567   glTexCoordPointerEXT := dglGetProcAddress('glTexCoordPointerEXT');
17568   glVertexPointerEXT := dglGetProcAddress('glVertexPointerEXT');
17569 end;
17570
17571 procedure Read_GL_EXT_vertex_shader;
17572 begin
17573   glBeginVertexShaderEXT := dglGetProcAddress('glBeginVertexShaderEXT');
17574   glEndVertexShaderEXT := dglGetProcAddress('glEndVertexShaderEXT');
17575   glBindVertexShaderEXT := dglGetProcAddress('glBindVertexShaderEXT');
17576   glGenVertexShadersEXT := dglGetProcAddress('glGenVertexShadersEXT');
17577   glDeleteVertexShaderEXT := dglGetProcAddress('glDeleteVertexShaderEXT');
17578   glShaderOp1EXT := dglGetProcAddress('glShaderOp1EXT');
17579   glShaderOp2EXT := dglGetProcAddress('glShaderOp2EXT');
17580   glShaderOp3EXT := dglGetProcAddress('glShaderOp3EXT');
17581   glSwizzleEXT := dglGetProcAddress('glSwizzleEXT');
17582   glWriteMaskEXT := dglGetProcAddress('glWriteMaskEXT');
17583   glInsertComponentEXT := dglGetProcAddress('glInsertComponentEXT');
17584   glExtractComponentEXT := dglGetProcAddress('glExtractComponentEXT');
17585   glGenSymbolsEXT := dglGetProcAddress('glGenSymbolsEXT');
17586   glSetInvariantEXT := dglGetProcAddress('glSetInvariantEXT');
17587   glSetLocalConstantEXT := dglGetProcAddress('glSetLocalConstantEXT');
17588   glVariantbvEXT := dglGetProcAddress('glVariantbvEXT');
17589   glVariantsvEXT := dglGetProcAddress('glVariantsvEXT');
17590   glVariantivEXT := dglGetProcAddress('glVariantivEXT');
17591   glVariantfvEXT := dglGetProcAddress('glVariantfvEXT');
17592   glVariantdvEXT := dglGetProcAddress('glVariantdvEXT');
17593   glVariantubvEXT := dglGetProcAddress('glVariantubvEXT');
17594   glVariantusvEXT := dglGetProcAddress('glVariantusvEXT');
17595   glVariantuivEXT := dglGetProcAddress('glVariantuivEXT');
17596   glVariantPointerEXT := dglGetProcAddress('glVariantPointerEXT');
17597   glEnableVariantClientStateEXT := dglGetProcAddress('glEnableVariantClientStateEXT');
17598   glDisableVariantClientStateEXT := dglGetProcAddress('glDisableVariantClientStateEXT');
17599   glBindLightParameterEXT := dglGetProcAddress('glBindLightParameterEXT');
17600   glBindMaterialParameterEXT := dglGetProcAddress('glBindMaterialParameterEXT');
17601   glBindTexGenParameterEXT := dglGetProcAddress('glBindTexGenParameterEXT');
17602   glBindTextureUnitParameterEXT := dglGetProcAddress('glBindTextureUnitParameterEXT');
17603   glBindParameterEXT := dglGetProcAddress('glBindParameterEXT');
17604   glIsVariantEnabledEXT := dglGetProcAddress('glIsVariantEnabledEXT');
17605   glGetVariantBooleanvEXT := dglGetProcAddress('glGetVariantBooleanvEXT');
17606   glGetVariantIntegervEXT := dglGetProcAddress('glGetVariantIntegervEXT');
17607   glGetVariantFloatvEXT := dglGetProcAddress('glGetVariantFloatvEXT');
17608   glGetVariantPointervEXT := dglGetProcAddress('glGetVariantPointervEXT');
17609   glGetInvariantBooleanvEXT := dglGetProcAddress('glGetInvariantBooleanvEXT');
17610   glGetInvariantIntegervEXT := dglGetProcAddress('glGetInvariantIntegervEXT');
17611   glGetInvariantFloatvEXT := dglGetProcAddress('glGetInvariantFloatvEXT');
17612   glGetLocalConstantBooleanvEXT := dglGetProcAddress('glGetLocalConstantBooleanvEXT');
17613   glGetLocalConstantIntegervEXT := dglGetProcAddress('glGetLocalConstantIntegervEXT');
17614   glGetLocalConstantFloatvEXT := dglGetProcAddress('glGetLocalConstantFloatvEXT');
17615 end;
17616
17617 procedure Read_GL_EXT_vertex_weighting;
17618 begin
17619   glVertexWeightfEXT := dglGetProcAddress('glVertexWeightfEXT');
17620   glVertexWeightfvEXT := dglGetProcAddress('glVertexWeightfvEXT');
17621   glVertexWeightPointerEXT := dglGetProcAddress('glVertexWeightPointerEXT');
17622 end;
17623
17624 procedure Read_GL_EXT_depth_bounds_test;
17625 begin
17626   glImageTransformParameteriHP := dglGetProcAddress('glImageTransformParameteriHP');
17627   glDepthBoundsEXT := dglGetProcAddress('glDepthBoundsEXT');
17628 end;
17629
17630 procedure Read_GL_EXT_blend_equation_separate;
17631 begin
17632   glBlendEquationSeparateEXT := dglGetProcAddress('glBlendEquationSeparateEXT');
17633 end;
17634
17635 procedure Read_GL_EXT_stencil_clear_tag;
17636 begin
17637   glStencilClearTagEXT := dglGetProcAddress('glStencilClearTagEXT');
17638 end;
17639
17640 procedure Read_GL_EXT_framebuffer_blit;
17641 begin
17642   glBlitFramebufferEXT := dglGetProcAddress('glBlitFramebufferEXT');
17643 end;
17644
17645 procedure Read_GL_EXT_framebuffer_multisample;
17646 begin
17647   glRenderbufferStorageMultisampleEXT := dglGetProcAddress('glRenderbufferStorageMultisampleEXT');
17648 end;
17649
17650 procedure Read_GL_EXT_timer_query;
17651 begin
17652   glGetQueryObjecti64vEXT := dglGetProcAddress('glGetQueryObjecti64vEXT');
17653   glGetQueryObjectui64vEXT := dglGetProcAddress('glGetQueryObjectui64vEXT');
17654 end;
17655
17656 procedure Read_GL_EXT_gpu_program_parameters;
17657 begin
17658   glProgramEnvParameters4fvEXT := dglGetProcAddress('glProgramEnvParameters4fvEXT');
17659   glProgramLocalParameters4fvEXT := dglGetProcAddress('glProgramLocalParameters4fvEXT');
17660 end;
17661
17662 procedure Read_GL_EXT_bindable_uniform;
17663 begin
17664   glUniformBufferEXT := dglGetProcAddress('glUniformBufferEXT');
17665   glGetUniformBufferSizeEXT := dglGetProcAddress('glGetUniformBufferSizeEXT');
17666   glGetUniformOffsetEXT := dglGetProcAddress('glGetUniformOffsetEXT');
17667 end;
17668
17669 procedure Read_GL_EXT_draw_buffers2;
17670 begin
17671   glColorMaskIndexedEXT := dglGetProcAddress('glColorMaskIndexedEXT');
17672   glGetBooleanIndexedvEXT := dglGetProcAddress('glGetBooleanIndexedvEXT');
17673   glGetIntegerIndexedvEXT := dglGetProcAddress('glGetIntegerIndexedvEXT');
17674   glEnableIndexedEXT := dglGetProcAddress('glEnableIndexedEXT');
17675   glDisableIndexedEXT := dglGetProcAddress('glDisableIndexedEXT');
17676   glIsEnabledIndexedEXT := dglGetProcAddress('glIsEnabledIndexedEXT');
17677 end;
17678
17679 procedure Read_GL_EXT_draw_instanced;
17680 begin
17681   glDrawArraysInstancedEXT := dglGetProcAddress('glDrawArraysInstancedEXT');
17682   glDrawElementsInstancedEXT := dglGetProcAddress('glDrawElementsInstancedEXT');
17683 end;
17684
17685 procedure Read_GL_EXT_geometry_shader4;
17686 begin
17687   glProgramParameteriEXT := dglGetProcAddress('glProgramParameteriEXT');
17688   glFramebufferTextureEXT := dglGetProcAddress('glFramebufferTextureEXT');
17689 //  glFramebufferTextureLayerEXT := dglGetProcAddress('glFramebufferTextureLayerEXT');
17690   glFramebufferTextureFaceEXT := dglGetProcAddress('glFramebufferTextureFaceEXT');
17691 end;
17692
17693 procedure Read_GL_EXT_gpu_shader4;
17694 begin
17695   glVertexAttribI1iEXT := dglGetProcAddress('glVertexAttribI1iEXT');
17696   glVertexAttribI2iEXT := dglGetProcAddress('glVertexAttribI2iEXT');
17697   glVertexAttribI3iEXT := dglGetProcAddress('glVertexAttribI3iEXT');
17698   glVertexAttribI4iEXT := dglGetProcAddress('glVertexAttribI4iEXT');
17699   glVertexAttribI1uiEXT := dglGetProcAddress('glVertexAttribI1uiEXT');
17700   glVertexAttribI2uiEXT := dglGetProcAddress('glVertexAttribI2uiEXT');
17701   glVertexAttribI3uiEXT := dglGetProcAddress('glVertexAttribI3uiEXT');
17702   glVertexAttribI4uiEXT := dglGetProcAddress('glVertexAttribI4uiEXT');
17703   glVertexAttribI1ivEXT := dglGetProcAddress('glVertexAttribI1ivEXT');
17704   glVertexAttribI2ivEXT := dglGetProcAddress('glVertexAttribI2ivEXT');
17705   glVertexAttribI3ivEXT := dglGetProcAddress('glVertexAttribI3ivEXT');
17706   glVertexAttribI4ivEXT := dglGetProcAddress('glVertexAttribI4ivEXT');
17707   glVertexAttribI1uivEXT := dglGetProcAddress('glVertexAttribI1uivEXT');
17708   glVertexAttribI2uivEXT := dglGetProcAddress('glVertexAttribI2uivEXT');
17709   glVertexAttribI3uivEXT := dglGetProcAddress('glVertexAttribI3uivEXT');
17710   glVertexAttribI4uivEXT := dglGetProcAddress('glVertexAttribI4uivEXT');
17711   glVertexAttribI4bvEXT := dglGetProcAddress('glVertexAttribI4bvEXT');
17712   glVertexAttribI4svEXT := dglGetProcAddress('glVertexAttribI4svEXT');
17713   glVertexAttribI4ubvEXT := dglGetProcAddress('glVertexAttribI4ubvEXT');
17714   glVertexAttribI4usvEXT := dglGetProcAddress('glVertexAttribI4usvEXT');
17715   glVertexAttribIPointerEXT := dglGetProcAddress('glVertexAttribIPointerEXT');
17716   glGetVertexAttribIivEXT := dglGetProcAddress('glGetVertexAttribIivEXT');
17717   glGetVertexAttribIuivEXT := dglGetProcAddress('glGetVertexAttribIuivEXT');
17718   glUniform1uiEXT := dglGetProcAddress('glUniform1uiEXT');
17719   glUniform2uiEXT := dglGetProcAddress('glUniform2uiEXT');
17720   glUniform3uiEXT := dglGetProcAddress('glUniform3uiEXT');
17721   glUniform4uiEXT := dglGetProcAddress('glUniform4uiEXT');
17722   glUniform1uivEXT := dglGetProcAddress('glUniform1uivEXT');
17723   glUniform2uivEXT := dglGetProcAddress('glUniform2uivEXT');
17724   glUniform3uivEXT := dglGetProcAddress('glUniform3uivEXT');
17725   glUniform4uivEXT := dglGetProcAddress('glUniform4uivEXT');
17726   glGetUniformuivEXT := dglGetProcAddress('glGetUniformuivEXT');
17727   glBindFragDataLocationEXT := dglGetProcAddress('glBindFragDataLocationEXT');
17728   glGetFragDataLocationEXT := dglGetProcAddress('glGetFragDataLocationEXT');
17729 end;
17730
17731 procedure Read_GL_EXT_texture_array;
17732 begin
17733   glFramebufferTextureLayerEXT := dglGetProcAddress('glFramebufferTextureLayerEXT');
17734 end;
17735
17736 procedure Read_GL_EXT_texture_buffer_object;
17737 begin
17738   glTexBufferEXT := dglGetProcAddress('glTexBufferEXT');
17739 end;
17740
17741 procedure Read_GL_EXT_texture_integer;
17742 begin
17743   glClearColorIiEXT := dglGetProcAddress('glClearColorIiEXT');
17744   glClearColorIuiEXT := dglGetProcAddress('glClearColorIuiEXT');
17745   glTexParameterIivEXT := dglGetProcAddress('glTexParameterIivEXT');
17746   glTexParameterIuivEXT := dglGetProcAddress('glTexParameterIuivEXT');
17747   glGetTexParameterIivEXT := dglGetProcAddress('glGetTexParameterIivEXT');
17748   glGetTexParameterIiuvEXT := dglGetProcAddress('glGetTexParameterIiuvEXT');
17749 end;
17750
17751 procedure Read_GL_EXT_transform_feedback;
17752 begin
17753   glBeginTransformFeedbackEXT := dglGetProcAddress('lBeginTransformFeedbackEXT');
17754   glEndTransformFeedbackEXT := dglGetProcAddress('glEndTransformFeedbackEXT');
17755   glBindBufferRangeEXT := dglGetProcAddress('glBindBufferRangeEXT');
17756   glBindBufferOffsetEXT := dglGetProcAddress('glBindBufferOffsetEXT');
17757   glBindBufferBaseEXT := dglGetProcAddress('glBindBufferBaseEXT');
17758   glTransformFeedbackVaryingsEXT := dglGetProcAddress('glTransformFeedbackVaryingsEXT');
17759   glGetTransformFeedbackVaryingEXT := dglGetProcAddress('glGetTransformFeedbackVaryingEXT');
17760 end;
17761
17762 procedure Read_GL_EXT_direct_state_access;
17763 begin
17764   glClientAttribDefaultEXT := dglGetProcAddress('glClientAttribDefaultEXT');
17765   glPushClientAttribDefaultEXT := dglGetProcAddress('glPushClientAttribDefaultEXT');
17766   glMatrixLoadfEXT := dglGetProcAddress('glMatrixLoadfEXT');
17767   glMatrixLoaddEXT := dglGetProcAddress('glMatrixLoaddEXT');
17768   glMatrixMultfEXT := dglGetProcAddress('glMatrixMultfEXT');
17769   glMatrixMultdEXT := dglGetProcAddress('glMatrixMultdEXT');
17770   glMatrixLoadIdentityEXT := dglGetProcAddress('glMatrixLoadIdentityEXT');
17771   glMatrixRotatefEXT := dglGetProcAddress('glMatrixRotatefEXT');
17772   glMatrixRotatedEXT := dglGetProcAddress('glMatrixRotatedEXT');
17773   glMatrixScalefEXT := dglGetProcAddress('glMatrixScalefEXT');
17774   glMatrixScaledEXT := dglGetProcAddress('glMatrixScaledEXT');
17775   glMatrixTranslatefEXT := dglGetProcAddress('glMatrixTranslatefEXT');
17776   glMatrixTranslatedEXT := dglGetProcAddress('glMatrixTranslatedEXT');
17777   glMatrixFrustumEXT := dglGetProcAddress('glMatrixFrustumEXT');
17778   glMatrixOrthoEXT := dglGetProcAddress('glMatrixOrthoEXT');
17779   glMatrixPopEXT := dglGetProcAddress('glMatrixPopEXT');
17780   glMatrixPushEXT := dglGetProcAddress('glMatrixPushEXT');
17781   glMatrixLoadTransposefEXT := dglGetProcAddress('glMatrixLoadTransposefEXT');
17782   glMatrixLoadTransposedEXT := dglGetProcAddress('glMatrixLoadTransposedEXT');
17783   glMatrixMultTransposefEXT := dglGetProcAddress('glMatrixMultTransposefEXT');
17784   glMatrixMultTransposedEXT := dglGetProcAddress('glMatrixMultTransposedEXT');
17785   glTextureParameterfEXT := dglGetProcAddress('glTextureParameterfEXT');
17786   glTextureParameterfvEXT := dglGetProcAddress('glTextureParameterfvEXT');
17787   glTextureParameteriEXT := dglGetProcAddress('glTextureParameteriEXT');
17788   glTextureParameterivEXT := dglGetProcAddress('glTextureParameterivEXT');
17789   glTextureImage1DEXT := dglGetProcAddress('glTextureImage1DEXT');
17790   glTextureImage2DEXT := dglGetProcAddress('glTextureImage2DEXT');
17791   glTextureSubImage1DEXT := dglGetProcAddress('glTextureSubImage1DEXT');
17792   glTextureSubImage2DEXT := dglGetProcAddress('glTextureSubImage2DEXT');
17793   glCopyTextureImage1DEXT := dglGetProcAddress('glCopyTextureImage1DEXT');
17794   glCopyTextureImage2DEXT := dglGetProcAddress('glCopyTextureImage2DEXT');
17795   glCopyTextureSubImage1DEXT := dglGetProcAddress('glCopyTextureSubImage1DEXT');
17796   glCopyTextureSubImage2DEXT := dglGetProcAddress('glCopyTextureSubImage2DEXT');
17797   glGetTextureImageEXT := dglGetProcAddress('glGetTextureImageEXT');
17798   glGetTextureParameterfvEXT := dglGetProcAddress('glGetTextureParameterfvEXT');
17799   glGetTextureParameterivEXT := dglGetProcAddress('glGetTextureParameterivEXT');
17800   glGetTextureLevelParameterfvEXT := dglGetProcAddress('glGetTextureLevelParameterfvEXT');
17801   glGetTextureLevelParameterivEXT := dglGetProcAddress('glGetTextureLevelParameterivEXT');
17802   glTextureImage3DEXT := dglGetProcAddress('glTextureImage3DEXT');
17803   glTextureSubImage3DEXT := dglGetProcAddress('glTextureSubImage3DEXT');
17804   glCopyTextureSubImage3DEXT := dglGetProcAddress('glCopyTextureSubImage3DEXT');
17805   glMultiTexParameterfEXT := dglGetProcAddress('glMultiTexParameterfEXT');
17806   glMultiTexParameterfvEXT := dglGetProcAddress('glMultiTexParameterfvEXT');
17807   glMultiTexParameteriEXT := dglGetProcAddress('glMultiTexParameteriEXT');
17808   glMultiTexParameterivEXT := dglGetProcAddress('glMultiTexParameterivEXT');
17809   glMultiTexImage1DEXT := dglGetProcAddress('glMultiTexImage1DEXT');
17810   glMultiTexImage2DEXT := dglGetProcAddress('glMultiTexImage2DEXT');
17811   glMultiTexSubImage1DEXT := dglGetProcAddress('glMultiTexSubImage1DEXT');
17812   glMultiTexSubImage2DEXT := dglGetProcAddress('glMultiTexSubImage2DEXT');
17813   glCopyMultiTexImage1DEXT := dglGetProcAddress('glCopyMultiTexImage1DEXT');
17814   glCopyMultiTexImage2DEXT := dglGetProcAddress('glCopyMultiTexImage2DEXT');
17815   glCopyMultiTexSubImage1DEXT := dglGetProcAddress('glCopyMultiTexSubImage1DEXT');
17816   glCopyMultiTexSubImage2DEXT := dglGetProcAddress('glCopyMultiTexSubImage2DEXT');
17817   glGetMultiTexImageEXT := dglGetProcAddress('glGetMultiTexImageEXT');
17818   glGetMultiTexParameterfvEXT := dglGetProcAddress('glGetMultiTexParameterfvEXT');
17819   glGetMultiTexParameterivEXT := dglGetProcAddress('glGetMultiTexParameterivEXT');
17820   glGetMultiTexLevelParameterfvEXT := dglGetProcAddress('glGetMultiTexLevelParameterfvEXT');
17821   glGetMultiTexLevelParameterivEXT := dglGetProcAddress('glGetMultiTexLevelParameterivEXT');
17822   glMultiTexImage3DEXT := dglGetProcAddress('glMultiTexImage3DEXT');
17823   glMultiTexSubImage3DEXT := dglGetProcAddress('glMultiTexSubImage3DEXT');
17824   glCopyMultiTexSubImage3DEXT := dglGetProcAddress('glCopyMultiTexSubImage3DEXT');
17825   glBindMultiTextureEXT := dglGetProcAddress('glBindMultiTextureEXT');
17826   glEnableClientStateIndexedEXT := dglGetProcAddress('glEnableClientStateIndexedEXT');
17827   glDisableClientStateIndexedEXT := dglGetProcAddress('glDisableClientStateIndexedEXT');
17828   glMultiTexCoordPointerEXT := dglGetProcAddress('glMultiTexCoordPointerEXT');
17829   glMultiTexEnvfEXT := dglGetProcAddress('glMultiTexEnvfEXT');
17830   glMultiTexEnvfvEXT := dglGetProcAddress('glMultiTexEnvfvEXT');
17831   glMultiTexEnviEXT := dglGetProcAddress('glMultiTexEnviEXT');
17832   glMultiTexEnvivEXT := dglGetProcAddress('glMultiTexEnvivEXT');
17833   glMultiTexGendEXT := dglGetProcAddress('glMultiTexGendEXT');
17834   glMultiTexGendvEXT := dglGetProcAddress('glMultiTexGendvEXT');
17835   glMultiTexGenfEXT := dglGetProcAddress('glMultiTexGenfEXT');
17836   glMultiTexGenfvEXT := dglGetProcAddress('glMultiTexGenfvEXT');
17837   glMultiTexGeniEXT := dglGetProcAddress('glMultiTexGeniEXT');
17838   glMultiTexGenivEXT := dglGetProcAddress('glMultiTexGenivEXT');
17839   glGetMultiTexEnvfvEXT := dglGetProcAddress('glGetMultiTexEnvfvEXT');
17840   glGetMultiTexEnvivEXT := dglGetProcAddress('glGetMultiTexEnvivEXT');
17841   glGetMultiTexGendvEXT := dglGetProcAddress('glGetMultiTexGendvEXT');
17842   glGetMultiTexGenfvEXT := dglGetProcAddress('glGetMultiTexGenfvEXT');
17843   glGetMultiTexGenivEXT := dglGetProcAddress('glGetMultiTexGenivEXT');
17844   glGetFloatIndexedvEXT := dglGetProcAddress('glGetFloatIndexedvEXT');
17845   glGetDoubleIndexedvEXT := dglGetProcAddress('glGetDoubleIndexedvEXT');
17846   glGetPointerIndexedvEXT := dglGetProcAddress('glGetPointerIndexedvEXT');
17847   glCompressedTextureImage3DEXT := dglGetProcAddress('glCompressedTextureImage3DEXT');
17848   glCompressedTextureImage2DEXT := dglGetProcAddress('glCompressedTextureImage2DEXT');
17849   glCompressedTextureImage1DEXT := dglGetProcAddress('glCompressedTextureImage1DEXT');
17850   glCompressedTextureSubImage3DEXT := dglGetProcAddress('glCompressedTextureSubImage3DEXT');
17851   glCompressedTextureSubImage2DEXT := dglGetProcAddress('glCompressedTextureSubImage2DEXT');
17852   glCompressedTextureSubImage1DEXT := dglGetProcAddress('glCompressedTextureSubImage1DEXT');
17853   glGetCompressedTextureImageEXT := dglGetProcAddress('glGetCompressedTextureImageEXT');
17854   glCompressedMultiTexImage3DEXT := dglGetProcAddress('glCompressedMultiTexImage3DEXT');
17855   glCompressedMultiTexImage2DEXT := dglGetProcAddress('glCompressedMultiTexImage2DEXT');
17856   glCompressedMultiTexImage1DEXT := dglGetProcAddress('glCompressedMultiTexImage1DEXT');
17857   glCompressedMultiTexSubImage3DEXT := dglGetProcAddress('glCompressedMultiTexSubImage3DEXT');
17858   glCompressedMultiTexSubImage2DEXT := dglGetProcAddress('glCompressedMultiTexSubImage2DEXT');
17859   glCompressedMultiTexSubImage1DEXT := dglGetProcAddress('glCompressedMultiTexSubImage1DEXT');
17860   glGetCompressedMultiTexImageEXT := dglGetProcAddress('glGetCompressedMultiTexImageEXT');
17861   glNamedProgramStringEXT := dglGetProcAddress('glNamedProgramStringEXT');
17862   glNamedProgramLocalParameter4dEXT := dglGetProcAddress('glNamedProgramLocalParameter4dEXT');
17863   glNamedProgramLocalParameter4dvEXT := dglGetProcAddress('glNamedProgramLocalParameter4dvEXT');
17864   glNamedProgramLocalParameter4fEXT := dglGetProcAddress('glNamedProgramLocalParameter4fEXT');
17865   glNamedProgramLocalParameter4fvEXT := dglGetProcAddress('glNamedProgramLocalParameter4fvEXT');
17866   glGetNamedProgramLocalParameterdvEXT := dglGetProcAddress('glGetNamedProgramLocalParameterdvEXT');
17867   glGetNamedProgramLocalParameterfvEXT := dglGetProcAddress('glGetNamedProgramLocalParameterfvEXT');
17868   glGetNamedProgramivEXT := dglGetProcAddress('glGetNamedProgramivEXT');
17869   glGetNamedProgramStringEXT := dglGetProcAddress('glGetNamedProgramStringEXT');
17870   glNamedProgramLocalParameters4fvEXT := dglGetProcAddress('glNamedProgramLocalParameters4fvEXT');
17871   glNamedProgramLocalParameterI4iEXT := dglGetProcAddress('glNamedProgramLocalParameterI4iEXT');
17872   glNamedProgramLocalParameterI4ivEXT := dglGetProcAddress('glNamedProgramLocalParameterI4ivEXT');
17873   glNamedProgramLocalParametersI4ivEXT := dglGetProcAddress('glNamedProgramLocalParametersI4ivEXT');
17874   glNamedProgramLocalParameterI4uiEXT := dglGetProcAddress('glNamedProgramLocalParameterI4uiEXT');
17875   glNamedProgramLocalParameterI4uivEXT := dglGetProcAddress('glNamedProgramLocalParameterI4uivEXT');
17876   glNamedProgramLocalParametersI4uivEXT := dglGetProcAddress('glNamedProgramLocalParametersI4uivEXT');
17877   glGetNamedProgramLocalParameterIivEXT := dglGetProcAddress('glGetNamedProgramLocalParameterIivEXT');
17878   glGetNamedProgramLocalParameterIuivEXT := dglGetProcAddress('glGetNamedProgramLocalParameterIuivEXT');
17879   glTextureParameterIivEXT := dglGetProcAddress('glTextureParameterIivEXT');
17880   glTextureParameterIuivEXT := dglGetProcAddress('glTextureParameterIuivEXT');
17881   glGetTextureParameterIivEXT := dglGetProcAddress('glGetTextureParameterIivEXT');
17882   glGetTextureParameterIuivEXT := dglGetProcAddress('glGetTextureParameterIuivEXT');
17883   glMultiTexParameterIivEXT := dglGetProcAddress('glMultiTexParameterIivEXT');
17884   glMultiTexParameterIuivEXT := dglGetProcAddress('glMultiTexParameterIuivEXT');
17885   glGetMultiTexParameterIivEXT := dglGetProcAddress('glGetMultiTexParameterIivEXT');
17886   glGetMultiTexParameterIuivEXT := dglGetProcAddress('glGetMultiTexParameterIuivEXT');
17887   glProgramUniform1fEXT := dglGetProcAddress('glProgramUniform1fEXT');
17888   glProgramUniform2fEXT := dglGetProcAddress('glProgramUniform2fEXT');
17889   glProgramUniform3fEXT := dglGetProcAddress('glProgramUniform3fEXT');
17890   glProgramUniform4fEXT := dglGetProcAddress('glProgramUniform4fEXT');
17891   glProgramUniform1iEXT := dglGetProcAddress('glProgramUniform1iEXT');
17892   glProgramUniform2iEXT := dglGetProcAddress('glProgramUniform2iEXT');
17893   glProgramUniform3iEXT := dglGetProcAddress('glProgramUniform3iEXT');
17894   glProgramUniform4iEXT := dglGetProcAddress('glProgramUniform4iEXT');
17895   glProgramUniform1fvEXT := dglGetProcAddress('glProgramUniform1fvEXT');
17896   glProgramUniform2fvEXT := dglGetProcAddress('glProgramUniform2fvEXT');
17897   glProgramUniform3fvEXT := dglGetProcAddress('glProgramUniform3fvEXT');
17898   glProgramUniform4fvEXT := dglGetProcAddress('glProgramUniform4fvEXT');
17899   glProgramUniform1ivEXT := dglGetProcAddress('glProgramUniform1ivEXT');
17900   glProgramUniform2ivEXT := dglGetProcAddress('glProgramUniform2ivEXT');
17901   glProgramUniform3ivEXT := dglGetProcAddress('glProgramUniform3ivEXT');
17902   glProgramUniform4ivEXT := dglGetProcAddress('glProgramUniform4ivEXT');
17903   glProgramUniformMatrix2fvEXT := dglGetProcAddress('glProgramUniformMatrix2fvEXT');
17904   glProgramUniformMatrix3fvEXT := dglGetProcAddress('glProgramUniformMatrix3fvEXT');
17905   glProgramUniformMatrix4fvEXT := dglGetProcAddress('glProgramUniformMatrix4fvEXT');
17906   glProgramUniformMatrix2x3fvEXT := dglGetProcAddress('glProgramUniformMatrix2x3fvEXT');
17907   glProgramUniformMatrix3x2fvEXT := dglGetProcAddress('glProgramUniformMatrix3x2fvEXT');
17908   glProgramUniformMatrix2x4fvEXT := dglGetProcAddress('glProgramUniformMatrix2x4fvEXT');
17909   glProgramUniformMatrix4x2fvEXT := dglGetProcAddress('glProgramUniformMatrix4x2fvEXT');
17910   glProgramUniformMatrix3x4fvEXT := dglGetProcAddress('glProgramUniformMatrix3x4fvEXT');
17911   glProgramUniformMatrix4x3fvEXT := dglGetProcAddress('glProgramUniformMatrix4x3fvEXT');
17912   glProgramUniform1uiEXT := dglGetProcAddress('glProgramUniform1uiEXT');
17913   glProgramUniform2uiEXT := dglGetProcAddress('glProgramUniform2uiEXT');
17914   glProgramUniform3uiEXT := dglGetProcAddress('glProgramUniform3uiEXT');
17915   glProgramUniform4uiEXT := dglGetProcAddress('glProgramUniform4uiEXT');
17916   glProgramUniform1uivEXT := dglGetProcAddress('glProgramUniform1uivEXT');
17917   glProgramUniform2uivEXT := dglGetProcAddress('glProgramUniform2uivEXT');
17918   glProgramUniform3uivEXT := dglGetProcAddress('glProgramUniform3uivEXT');
17919   glProgramUniform4uivEXT := dglGetProcAddress('glProgramUniform4uivEXT');
17920   glNamedBufferDataEXT := dglGetProcAddress('glNamedBufferDataEXT');
17921   glNamedBufferSubDataEXT := dglGetProcAddress('glNamedBufferSubDataEXT');
17922   glMapNamedBufferEXT := dglGetProcAddress('glMapNamedBufferEXT');
17923   glUnmapNamedBufferEXT := dglGetProcAddress('glUnmapNamedBufferEXT');
17924   glMapNamedBufferRangeEXT := dglGetProcAddress('glMapNamedBufferRangeEXT');
17925   glFlushMappedNamedBufferRangeEXT := dglGetProcAddress('glFlushMappedNamedBufferRangeEXT');
17926   glNamedCopyBufferSubDataEXT := dglGetProcAddress('glNamedCopyBufferSubDataEXT');
17927   glGetNamedBufferParameterivEXT := dglGetProcAddress('glGetNamedBufferParameterivEXT');
17928   glGetNamedBufferPointervEXT := dglGetProcAddress('glGetNamedBufferPointervEXT');
17929   glGetNamedBufferSubDataEXT := dglGetProcAddress('glGetNamedBufferSubDataEXT');
17930   glTextureBufferEXT := dglGetProcAddress('glTextureBufferEXT');
17931   glMultiTexBufferEXT := dglGetProcAddress('glMultiTexBufferEXT');
17932   glNamedRenderbufferStorageEXT := dglGetProcAddress('glNamedRenderbufferStorageEXT');
17933   glGetNamedRenderbufferParameterivEXT := dglGetProcAddress('glGetNamedRenderbufferParameterivEXT');
17934   glCheckNamedFramebufferStatusEXT := dglGetProcAddress('glCheckNamedFramebufferStatusEXT');
17935   glNamedFramebufferTexture1DEXT := dglGetProcAddress('glNamedFramebufferTexture1DEXT');
17936   glNamedFramebufferTexture2DEXT := dglGetProcAddress('glNamedFramebufferTexture2DEXT');
17937   glNamedFramebufferTexture3DEXT := dglGetProcAddress('glNamedFramebufferTexture3DEXT');
17938   glNamedFramebufferRenderbufferEXT := dglGetProcAddress('glNamedFramebufferRenderbufferEXT');
17939   glGetNamedFramebufferAttachmentParameterivEXT := dglGetProcAddress('glGetNamedFramebufferAttachmentParameterivEXT');
17940   glGenerateTextureMipmapEXT := dglGetProcAddress('glGenerateTextureMipmapEXT');
17941   glGenerateMultiTexMipmapEXT := dglGetProcAddress('glGenerateMultiTexMipmapEXT');
17942   glFramebufferDrawBufferEXT := dglGetProcAddress('glFramebufferDrawBufferEXT');
17943   glFramebufferDrawBuffersEXT := dglGetProcAddress('glFramebufferDrawBuffersEXT');
17944   glFramebufferReadBufferEXT := dglGetProcAddress('glFramebufferReadBufferEXT');
17945   glGetFramebufferParameterivEXT := dglGetProcAddress('glGetFramebufferParameterivEXT');
17946   glNamedRenderbufferStorageMultisampleEXT := dglGetProcAddress('glNamedRenderbufferStorageMultisampleEXT');
17947   glNamedRenderbufferStorageMultisampleCoverageEXT := dglGetProcAddress('glNamedRenderbufferStorageMultisampleCoverageEXT');
17948   glNamedFramebufferTextureEXT := dglGetProcAddress('glNamedFramebufferTextureEXT');
17949   glNamedFramebufferTextureLayerEXT := dglGetProcAddress('glNamedFramebufferTextureLayerEXT');
17950   glNamedFramebufferTextureFaceEXT := dglGetProcAddress('glNamedFramebufferTextureFaceEXT');
17951   glTextureRenderbufferEXT := dglGetProcAddress('glTextureRenderbufferEXT');
17952   glMultiTexRenderbufferEXT := dglGetProcAddress('glMultiTexRenderbufferEXT');
17953   glProgramUniform1dEXT := dglGetProcAddress('glProgramUniform1dEXT');
17954   glProgramUniform2dEXT := dglGetProcAddress('glProgramUniform2dEXT');
17955   glProgramUniform3dEXT := dglGetProcAddress('glProgramUniform3dEXT');
17956   glProgramUniform4dEXT := dglGetProcAddress('glProgramUniform4dEXT');
17957   glProgramUniform1dvEXT := dglGetProcAddress('glProgramUniform1dvEXT');
17958   glProgramUniform2dvEXT := dglGetProcAddress('glProgramUniform2dvEXT');
17959   glProgramUniform3dvEXT := dglGetProcAddress('glProgramUniform3dvEXT');
17960   glProgramUniform4dvEXT := dglGetProcAddress('glProgramUniform4dvEXT');
17961   glProgramUniformMatrix2dvEXT := dglGetProcAddress('glProgramUniformMatrix2dvEXT');
17962   glProgramUniformMatrix3dvEXT := dglGetProcAddress('glProgramUniformMatrix3dvEXT');
17963   glProgramUniformMatrix4dvEXT := dglGetProcAddress('glProgramUniformMatrix4dvEXT');
17964   glProgramUniformMatrix2x3dvEXT := dglGetProcAddress('glProgramUniformMatrix2x3dvEXT');
17965   glProgramUniformMatrix2x4dvEXT := dglGetProcAddress('glProgramUniformMatrix2x4dvEXT');
17966   glProgramUniformMatrix3x2dvEXT := dglGetProcAddress('glProgramUniformMatrix3x2dvEXT');
17967   glProgramUniformMatrix3x4dvEXT := dglGetProcAddress('glProgramUniformMatrix3x4dvEXT');
17968   glProgramUniformMatrix4x2dvEXT := dglGetProcAddress('glProgramUniformMatrix4x2dvEXT');
17969   glProgramUniformMatrix4x3dvEXT := dglGetProcAddress('glProgramUniformMatrix4x3dvEXT');
17970 end;
17971
17972 procedure Read_GL_EXT_separate_shader_objects;
17973 begin
17974   glUseShaderProgramEXT := dglGetProcAddress('glUseShaderProgramEXT');
17975   glActiveProgramEXT := dglGetProcAddress('glActiveProgramEXT');
17976   glCreateShaderProgramEXT := dglGetProcAddress('glCreateShaderProgramEXT');
17977 end;
17978
17979 procedure Read_GL_EXT_shader_image_load_store;
17980 begin
17981   glBindImageTextureEXT := dglGetProcAddress('glBindImageTextureEXT');
17982   glMemoryBarrierEXT := dglGetProcAddress('glMemoryBarrierEXT');
17983 end;
17984
17985 procedure Read_GL_EXT_vertex_attrib_64bit;
17986 begin
17987   glVertexAttribL1dEXT := dglGetProcAddress('glVertexAttribL1dEXT');
17988   glVertexAttribL2dEXT := dglGetProcAddress('glVertexAttribL2dEXT');
17989   glVertexAttribL3dEXT := dglGetProcAddress('glVertexAttribL3dEXT');
17990   glVertexAttribL4dEXT := dglGetProcAddress('glVertexAttribL4dEXT');
17991   glVertexAttribL1dvEXT := dglGetProcAddress('glVertexAttribL1dvEXT');
17992   glVertexAttribL2dvEXT := dglGetProcAddress('glVertexAttribL2dvEXT');
17993   glVertexAttribL3dvEXT := dglGetProcAddress('glVertexAttribL3dvEXT');
17994   glVertexAttribL4dvEXT := dglGetProcAddress('glVertexAttribL4dvEXT');
17995   glVertexAttribLPointerEXT := dglGetProcAddress('glVertexAttribLPointerEXT');
17996   glGetVertexAttribLdvEXT := dglGetProcAddress('glGetVertexAttribLdvEXT');
17997   glVertexArrayVertexAttribLOffsetEXT := dglGetProcAddress('glVertexArrayVertexAttribLOffsetEXT');
17998 end;
17999
18000 procedure Read_GL_HP_image_transform;
18001 begin
18002   glImageTransformParameteriHP := dglGetProcAddress('glImageTransformParameteriHP');
18003   glImageTransformParameterfHP := dglGetProcAddress('glImageTransformParameterfHP');
18004   glImageTransformParameterivHP := dglGetProcAddress('glImageTransformParameterivHP');
18005   glImageTransformParameterfvHP := dglGetProcAddress('glImageTransformParameterfvHP');
18006   glGetImageTransformParameterivHP := dglGetProcAddress('glGetImageTransformParameterivHP');
18007   glGetImageTransformParameterfvHP := dglGetProcAddress('glGetImageTransformParameterfvHP');
18008 end;
18009
18010 procedure Read_GL_IBM_multimode_draw_arrays;
18011 begin
18012   glMultiModeDrawArraysIBM := dglGetProcAddress('glMultiModeDrawArraysIBM');
18013   glMultiModeDrawElementsIBM := dglGetProcAddress('glMultiModeDrawElementsIBM');
18014 end;
18015
18016 procedure Read_GL_IBM_vertex_array_lists;
18017 begin
18018   glColorPointerListIBM := dglGetProcAddress('glColorPointerListIBM');
18019   glSecondaryColorPointerListIBM := dglGetProcAddress('glSecondaryColorPointerListIBM');
18020   glEdgeFlagPointerListIBM := dglGetProcAddress('glEdgeFlagPointerListIBM');
18021   glFogCoordPointerListIBM := dglGetProcAddress('glFogCoordPointerListIBM');
18022   glIndexPointerListIBM := dglGetProcAddress('glIndexPointerListIBM');
18023   glNormalPointerListIBM := dglGetProcAddress('glNormalPointerListIBM');
18024   glTexCoordPointerListIBM := dglGetProcAddress('glTexCoordPointerListIBM');
18025   glVertexPointerListIBM := dglGetProcAddress('glVertexPointerListIBM');
18026 end;
18027
18028 procedure Read_GL_INGR_blend_func_separate;
18029 begin
18030   glBlendFuncSeparateINGR := dglGetProcAddress('glBlendFuncSeparateINGR');
18031 end;
18032
18033 procedure Read_GL_INTEL_parallel_arrays;
18034 begin
18035   glVertexPointervINTEL := dglGetProcAddress('glVertexPointervINTEL');
18036   glNormalPointervINTEL := dglGetProcAddress('glNormalPointervINTEL');
18037   glColorPointervINTEL := dglGetProcAddress('glColorPointervINTEL');
18038   glTexCoordPointervINTEL := dglGetProcAddress('glTexCoordPointervINTEL');
18039 end;
18040
18041 procedure Read_GL_MESA_resize_buffers;
18042 begin
18043   glResizeBuffersMESA := dglGetProcAddress('glResizeBuffersMESA');
18044 end;
18045
18046 procedure Read_GL_MESA_window_pos;
18047 begin
18048   glWindowPos2dMESA := dglGetProcAddress('glWindowPos2dMESA');
18049   glWindowPos2dvMESA := dglGetProcAddress('glWindowPos2dvMESA');
18050   glWindowPos2fMESA := dglGetProcAddress('glWindowPos2fMESA');
18051   glWindowPos2fvMESA := dglGetProcAddress('glWindowPos2fvMESA');
18052   glWindowPos2iMESA := dglGetProcAddress('glWindowPos2iMESA');
18053   glWindowPos2ivMESA := dglGetProcAddress('glWindowPos2ivMESA');
18054   glWindowPos2sMESA := dglGetProcAddress('glWindowPos2sMESA');
18055   glWindowPos2svMESA := dglGetProcAddress('glWindowPos2svMESA');
18056   glWindowPos3dMESA := dglGetProcAddress('glWindowPos3dMESA');
18057   glWindowPos3dvMESA := dglGetProcAddress('glWindowPos3dvMESA');
18058   glWindowPos3fMESA := dglGetProcAddress('glWindowPos3fMESA');
18059   glWindowPos3fvMESA := dglGetProcAddress('glWindowPos3fvMESA');
18060   glWindowPos3iMESA := dglGetProcAddress('glWindowPos3iMESA');
18061   glWindowPos3ivMESA := dglGetProcAddress('glWindowPos3ivMESA');
18062   glWindowPos3sMESA := dglGetProcAddress('glWindowPos3sMESA');
18063   glWindowPos3svMESA := dglGetProcAddress('glWindowPos3svMESA');
18064   glWindowPos4dMESA := dglGetProcAddress('glWindowPos4dMESA');
18065   glWindowPos4dvMESA := dglGetProcAddress('glWindowPos4dvMESA');
18066   glWindowPos4fMESA := dglGetProcAddress('glWindowPos4fMESA');
18067   glWindowPos4fvMESA := dglGetProcAddress('glWindowPos4fvMESA');
18068   glWindowPos4iMESA := dglGetProcAddress('glWindowPos4iMESA');
18069   glWindowPos4ivMESA := dglGetProcAddress('glWindowPos4ivMESA');
18070   glWindowPos4sMESA := dglGetProcAddress('glWindowPos4sMESA');
18071   glWindowPos4svMESA := dglGetProcAddress('glWindowPos4svMESA');
18072 end;
18073
18074 procedure Read_GL_NV_evaluators;
18075 begin
18076   glMapControlPointsNV := dglGetProcAddress('glMapControlPointsNV');
18077   glMapParameterivNV := dglGetProcAddress('glMapParameterivNV');
18078   glMapParameterfvNV := dglGetProcAddress('glMapParameterfvNV');
18079   glGetMapControlPointsNV := dglGetProcAddress('glGetMapControlPointsNV');
18080   glGetMapParameterivNV := dglGetProcAddress('glGetMapParameterivNV');
18081   glGetMapParameterfvNV := dglGetProcAddress('glGetMapParameterfvNV');
18082   glGetMapAttribParameterivNV := dglGetProcAddress('glGetMapAttribParameterivNV');
18083   glGetMapAttribParameterfvNV := dglGetProcAddress('glGetMapAttribParameterfvNV');
18084   glEvalMapsNV := dglGetProcAddress('glEvalMapsNV');
18085 end;
18086
18087 procedure Read_GL_NV_fence;
18088 begin
18089   glDeleteFencesNV := dglGetProcAddress('glDeleteFencesNV');
18090   glGenFencesNV := dglGetProcAddress('glGenFencesNV');
18091   glIsFenceNV := dglGetProcAddress('glIsFenceNV');
18092   glTestFenceNV := dglGetProcAddress('glTestFenceNV');
18093   glGetFenceivNV := dglGetProcAddress('glGetFenceivNV');
18094   glFinishFenceNV := dglGetProcAddress('glFinishFenceNV');
18095   glSetFenceNV := dglGetProcAddress('glSetFenceNV');
18096 end;
18097
18098 procedure Read_GL_NV_fragment_program;
18099 begin
18100   glProgramNamedParameter4fNV := dglGetProcAddress('glProgramNamedParameter4fNV');
18101   glProgramNamedParameter4dNV := dglGetProcAddress('glProgramNamedParameter4dNV');
18102   glProgramNamedParameter4fvNV := dglGetProcAddress('glProgramNamedParameter4fvNV');
18103   glProgramNamedParameter4dvNV := dglGetProcAddress('glProgramNamedParameter4dvNV');
18104   glGetProgramNamedParameterfvNV := dglGetProcAddress('glGetProgramNamedParameterfvNV');
18105   glGetProgramNamedParameterdvNV := dglGetProcAddress('glGetProgramNamedParameterdvNV');
18106 end;
18107
18108 procedure Read_GL_NV_half_float;
18109 begin
18110   glVertex2hNV := dglGetProcAddress('glVertex2hNV');
18111   glVertex2hvNV := dglGetProcAddress('glVertex2hvNV');
18112   glVertex3hNV := dglGetProcAddress('glVertex3hNV');
18113   glVertex3hvNV := dglGetProcAddress('glVertex3hvNV');
18114   glVertex4hNV := dglGetProcAddress('glVertex4hNV');
18115   glVertex4hvNV := dglGetProcAddress('glVertex4hvNV');
18116   glNormal3hNV := dglGetProcAddress('glNormal3hNV');
18117   glNormal3hvNV := dglGetProcAddress('glNormal3hvNV');
18118   glColor3hNV := dglGetProcAddress('glColor3hNV');
18119   glColor3hvNV := dglGetProcAddress('glColor3hvNV');
18120   glColor4hNV := dglGetProcAddress('glColor4hNV');
18121   glColor4hvNV := dglGetProcAddress('glColor4hvNV');
18122   glTexCoord1hNV := dglGetProcAddress('glTexCoord1hNV');
18123   glTexCoord1hvNV := dglGetProcAddress('glTexCoord1hvNV');
18124   glTexCoord2hNV := dglGetProcAddress('glTexCoord2hNV');
18125   glTexCoord2hvNV := dglGetProcAddress('glTexCoord2hvNV');
18126   glTexCoord3hNV := dglGetProcAddress('glTexCoord3hNV');
18127   glTexCoord3hvNV := dglGetProcAddress('glTexCoord3hvNV');
18128   glTexCoord4hNV := dglGetProcAddress('glTexCoord4hNV');
18129   glTexCoord4hvNV := dglGetProcAddress('glTexCoord4hvNV');
18130   glMultiTexCoord1hNV := dglGetProcAddress('glMultiTexCoord1hNV');
18131   glMultiTexCoord1hvNV := dglGetProcAddress('glMultiTexCoord1hvNV');
18132   glMultiTexCoord2hNV := dglGetProcAddress('glMultiTexCoord2hNV');
18133   glMultiTexCoord2hvNV := dglGetProcAddress('glMultiTexCoord2hvNV');
18134   glMultiTexCoord3hNV := dglGetProcAddress('glMultiTexCoord3hNV');
18135   glMultiTexCoord3hvNV := dglGetProcAddress('glMultiTexCoord3hvNV');
18136   glMultiTexCoord4hNV := dglGetProcAddress('glMultiTexCoord4hNV');
18137   glMultiTexCoord4hvNV := dglGetProcAddress('glMultiTexCoord4hvNV');
18138   glFogCoordhNV := dglGetProcAddress('glFogCoordhNV');
18139   glFogCoordhvNV := dglGetProcAddress('glFogCoordhvNV');
18140   glSecondaryColor3hNV := dglGetProcAddress('glSecondaryColor3hNV');
18141   glSecondaryColor3hvNV := dglGetProcAddress('glSecondaryColor3hvNV');
18142   glVertexWeighthNV := dglGetProcAddress('glVertexWeighthNV');
18143   glVertexWeighthvNV := dglGetProcAddress('glVertexWeighthvNV');
18144   glVertexAttrib1hNV := dglGetProcAddress('glVertexAttrib1hNV');
18145   glVertexAttrib1hvNV := dglGetProcAddress('glVertexAttrib1hvNV');
18146   glVertexAttrib2hNV := dglGetProcAddress('glVertexAttrib2hNV');
18147   glVertexAttrib2hvNV := dglGetProcAddress('glVertexAttrib2hvNV');
18148   glVertexAttrib3hNV := dglGetProcAddress('glVertexAttrib3hNV');
18149   glVertexAttrib3hvNV := dglGetProcAddress('glVertexAttrib3hvNV');
18150   glVertexAttrib4hNV := dglGetProcAddress('glVertexAttrib4hNV');
18151   glVertexAttrib4hvNV := dglGetProcAddress('glVertexAttrib4hvNV');
18152   glVertexAttribs1hvNV := dglGetProcAddress('glVertexAttribs1hvNV');
18153   glVertexAttribs2hvNV := dglGetProcAddress('glVertexAttribs2hvNV');
18154   glVertexAttribs3hvNV := dglGetProcAddress('glVertexAttribs3hvNV');
18155   glVertexAttribs4hvNV := dglGetProcAddress('glVertexAttribs4hvNV');
18156 end;
18157
18158 procedure Read_GL_NV_occlusion_query;
18159 begin
18160   glGenOcclusionQueriesNV := dglGetProcAddress('glGenOcclusionQueriesNV');
18161   glDeleteOcclusionQueriesNV := dglGetProcAddress('glDeleteOcclusionQueriesNV');
18162   glIsOcclusionQueryNV := dglGetProcAddress('glIsOcclusionQueryNV');
18163   glBeginOcclusionQueryNV := dglGetProcAddress('glBeginOcclusionQueryNV');
18164   glEndOcclusionQueryNV := dglGetProcAddress('glEndOcclusionQueryNV');
18165   glGetOcclusionQueryivNV := dglGetProcAddress('glGetOcclusionQueryivNV');
18166   glGetOcclusionQueryuivNV := dglGetProcAddress('glGetOcclusionQueryuivNV');
18167 end;
18168
18169 procedure Read_GL_NV_pixel_data_range;
18170 begin
18171   glPixelDataRangeNV := dglGetProcAddress('glPixelDataRangeNV');
18172   glFlushPixelDataRangeNV := dglGetProcAddress('glFlushPixelDataRangeNV');
18173 end;
18174
18175 procedure Read_GL_NV_point_sprite;
18176 begin
18177   glPointParameteriNV := dglGetProcAddress('glPointParameteriNV');
18178   glPointParameterivNV := dglGetProcAddress('glPointParameterivNV');
18179 end;
18180
18181 procedure Read_GL_NV_primitive_restart;
18182 begin
18183   glPrimitiveRestartNV := dglGetProcAddress('glPrimitiveRestartNV');
18184   glPrimitiveRestartIndexNV := dglGetProcAddress('glPrimitiveRestartIndexNV');
18185 end;
18186
18187 procedure Read_GL_NV_register_combiners;
18188 begin
18189   glCombinerParameterfvNV := dglGetProcAddress('glCombinerParameterfvNV');
18190   glCombinerParameterfNV := dglGetProcAddress('glCombinerParameterfNV');
18191   glCombinerParameterivNV := dglGetProcAddress('glCombinerParameterivNV');
18192   glCombinerParameteriNV := dglGetProcAddress('glCombinerParameteriNV');
18193   glCombinerInputNV := dglGetProcAddress('glCombinerInputNV');
18194   glCombinerOutputNV := dglGetProcAddress('glCombinerOutputNV');
18195   glFinalCombinerInputNV := dglGetProcAddress('glFinalCombinerInputNV');
18196   glGetCombinerInputParameterfvNV := dglGetProcAddress('glGetCombinerInputParameterfvNV');
18197   glGetCombinerInputParameterivNV := dglGetProcAddress('glGetCombinerInputParameterivNV');
18198   glGetCombinerOutputParameterfvNV := dglGetProcAddress('glGetCombinerOutputParameterfvNV');
18199   glGetCombinerOutputParameterivNV := dglGetProcAddress('glGetCombinerOutputParameterivNV');
18200   glGetFinalCombinerInputParameterfvNV := dglGetProcAddress('glGetFinalCombinerInputParameterfvNV');
18201   glGetFinalCombinerInputParameterivNV := dglGetProcAddress('glGetFinalCombinerInputParameterivNV');
18202 end;
18203
18204 procedure Read_GL_NV_register_combiners2;
18205 begin
18206   glCombinerStageParameterfvNV := dglGetProcAddress('glCombinerStageParameterfvNV');
18207   glGetCombinerStageParameterfvNV := dglGetProcAddress('glGetCombinerStageParameterfvNV');
18208 end;
18209
18210 procedure Read_GL_NV_vertex_array_range;
18211 begin
18212   glFlushVertexArrayRangeNV := dglGetProcAddress('glFlushVertexArrayRangeNV');
18213   glVertexArrayRangeNV := dglGetProcAddress('glVertexArrayRangeNV');
18214 end;
18215
18216 procedure Read_GL_NV_vertex_program;
18217 begin
18218   glAreProgramsResidentNV := dglGetProcAddress('glAreProgramsResidentNV');
18219   glBindProgramNV := dglGetProcAddress('glBindProgramNV');
18220   glDeleteProgramsNV := dglGetProcAddress('glDeleteProgramsNV');
18221   glExecuteProgramNV := dglGetProcAddress('glExecuteProgramNV');
18222   glGenProgramsNV := dglGetProcAddress('glGenProgramsNV');
18223   glGetProgramParameterdvNV := dglGetProcAddress('glGetProgramParameterdvNV');
18224   glGetProgramParameterfvNV := dglGetProcAddress('glGetProgramParameterfvNV');
18225   glGetProgramivNV := dglGetProcAddress('glGetProgramivNV');
18226   glGetProgramStringNV := dglGetProcAddress('glGetProgramStringNV');
18227   glGetTrackMatrixivNV := dglGetProcAddress('glGetTrackMatrixivNV');
18228   glGetVertexAttribdvNV := dglGetProcAddress('glGetVertexAttribdvNV');
18229   glGetVertexAttribfvNV := dglGetProcAddress('glGetVertexAttribfvNV');
18230   glGetVertexAttribivNV := dglGetProcAddress('glGetVertexAttribivNV');
18231   glGetVertexAttribPointervNV := dglGetProcAddress('glGetVertexAttribPointervNV');
18232   glIsProgramNV := dglGetProcAddress('glIsProgramNV');
18233   glLoadProgramNV := dglGetProcAddress('glLoadProgramNV');
18234   glProgramParameter4dNV := dglGetProcAddress('glProgramParameter4dNV');
18235   glProgramParameter4dvNV := dglGetProcAddress('glProgramParameter4dvNV');
18236   glProgramParameter4fNV := dglGetProcAddress('glProgramParameter4fNV');
18237   glProgramParameter4fvNV := dglGetProcAddress('glProgramParameter4fvNV');
18238   glProgramParameters4dvNV := dglGetProcAddress('glProgramParameters4dvNV');
18239   glProgramParameters4fvNV := dglGetProcAddress('glProgramParameters4fvNV');
18240   glRequestResidentProgramsNV := dglGetProcAddress('glRequestResidentProgramsNV');
18241   glTrackMatrixNV := dglGetProcAddress('glTrackMatrixNV');
18242   glVertexAttribPointerNV := dglGetProcAddress('glVertexAttribPointerNV');
18243   glVertexAttrib1dNV := dglGetProcAddress('glVertexAttrib1dNV');
18244   glVertexAttrib1dvNV := dglGetProcAddress('glVertexAttrib1dvNV');
18245   glVertexAttrib1fNV := dglGetProcAddress('glVertexAttrib1fNV');
18246   glVertexAttrib1fvNV := dglGetProcAddress('glVertexAttrib1fvNV');
18247   glVertexAttrib1sNV := dglGetProcAddress('glVertexAttrib1sNV');
18248   glVertexAttrib1svNV := dglGetProcAddress('glVertexAttrib1svNV');
18249   glVertexAttrib2dNV := dglGetProcAddress('glVertexAttrib2dNV');
18250   glVertexAttrib2dvNV := dglGetProcAddress('glVertexAttrib2dvNV');
18251   glVertexAttrib2fNV := dglGetProcAddress('glVertexAttrib2fNV');
18252   glVertexAttrib2fvNV := dglGetProcAddress('glVertexAttrib2fvNV');
18253   glVertexAttrib2sNV := dglGetProcAddress('glVertexAttrib2sNV');
18254   glVertexAttrib2svNV := dglGetProcAddress('glVertexAttrib2svNV');
18255   glVertexAttrib3dNV := dglGetProcAddress('glVertexAttrib3dNV');
18256   glVertexAttrib3dvNV := dglGetProcAddress('glVertexAttrib3dvNV');
18257   glVertexAttrib3fNV := dglGetProcAddress('glVertexAttrib3fNV');
18258   glVertexAttrib3fvNV := dglGetProcAddress('glVertexAttrib3fvNV');
18259   glVertexAttrib3sNV := dglGetProcAddress('glVertexAttrib3sNV');
18260   glVertexAttrib3svNV := dglGetProcAddress('glVertexAttrib3svNV');
18261   glVertexAttrib4dNV := dglGetProcAddress('glVertexAttrib4dNV');
18262   glVertexAttrib4dvNV := dglGetProcAddress('glVertexAttrib4dvNV');
18263   glVertexAttrib4fNV := dglGetProcAddress('glVertexAttrib4fNV');
18264   glVertexAttrib4fvNV := dglGetProcAddress('glVertexAttrib4fvNV');
18265   glVertexAttrib4sNV := dglGetProcAddress('glVertexAttrib4sNV');
18266   glVertexAttrib4svNV := dglGetProcAddress('glVertexAttrib4svNV');
18267   glVertexAttrib4ubNV := dglGetProcAddress('glVertexAttrib4ubNV');
18268   glVertexAttrib4ubvNV := dglGetProcAddress('glVertexAttrib4ubvNV');
18269   glVertexAttribs1dvNV := dglGetProcAddress('glVertexAttribs1dvNV');
18270   glVertexAttribs1fvNV := dglGetProcAddress('glVertexAttribs1fvNV');
18271   glVertexAttribs1svNV := dglGetProcAddress('glVertexAttribs1svNV');
18272   glVertexAttribs2dvNV := dglGetProcAddress('glVertexAttribs2dvNV');
18273   glVertexAttribs2fvNV := dglGetProcAddress('glVertexAttribs2fvNV');
18274   glVertexAttribs2svNV := dglGetProcAddress('glVertexAttribs2svNV');
18275   glVertexAttribs3dvNV := dglGetProcAddress('glVertexAttribs3dvNV');
18276   glVertexAttribs3fvNV := dglGetProcAddress('glVertexAttribs3fvNV');
18277   glVertexAttribs3svNV := dglGetProcAddress('glVertexAttribs3svNV');
18278   glVertexAttribs4dvNV := dglGetProcAddress('glVertexAttribs4dvNV');
18279   glVertexAttribs4fvNV := dglGetProcAddress('glVertexAttribs4fvNV');
18280   glVertexAttribs4svNV := dglGetProcAddress('glVertexAttribs4svNV');
18281   glVertexAttribs4ubvNV := dglGetProcAddress('glVertexAttribs4ubvNV');
18282 end;
18283
18284 procedure Read_GL_NV_depth_buffer_float;
18285 begin
18286   glDepthRangedNV := dglGetProcAddress('glDepthRangedNV');
18287   glClearDepthdNV := dglGetProcAddress('glClearDepthdNV');
18288   glDepthBoundsdNV := dglGetProcAddress('glDepthBoundsdNV');
18289 end;
18290
18291 procedure Read_GL_NV_framebuffer_multisample_coverage;
18292 begin
18293   glRenderbufferStorageMultsampleCoverageNV := dglGetProcAddress('glRenderbufferStorageMultsampleCoverageNV');
18294 end;
18295
18296 procedure Read_GL_NV_geometry_program4;
18297 begin
18298   glProgramVertexLimitNV := dglGetProcAddress('glProgramVertexLimitNV');
18299 end;
18300
18301 procedure Read_GL_NV_gpu_program4;
18302 begin
18303   glProgramLocalParameterI4iNV := dglGetProcAddress('glProgramLocalParameterI4iNV');
18304   glProgramLocalParameterI4ivNV := dglGetProcAddress('glProgramLocalParameterI4ivNV');
18305   glProgramLocalParametersI4ivNV := dglGetProcAddress('glProgramLocalParametersI4ivNV');
18306   glProgramLocalParameterI4uiNV := dglGetProcAddress('glProgramLocalParameterI4uiNV');
18307   glProgramLocalParameterI4uivNV := dglGetProcAddress('glProgramLocalParameterI4uivNV');
18308   glProgramLocalParametersI4uivNV := dglGetProcAddress('glProgramLocalParametersI4uivNV');
18309   glProgramEnvParameterI4iNV := dglGetProcAddress('glProgramEnvParameterI4iNV');
18310   glProgramEnvParameterI4ivNV := dglGetProcAddress('glProgramEnvParameterI4ivNV');
18311   glProgramEnvParametersI4ivNV := dglGetProcAddress('glProgramEnvParametersI4ivNV');
18312   glProgramEnvParameterI4uiNV := dglGetProcAddress('glProgramEnvParameterI4uiNV');
18313   glProgramEnvParameterI4uivNV := dglGetProcAddress('glProgramEnvParameterI4uivNV');
18314   glProgramEnvParametersI4uivNV := dglGetProcAddress('glProgramEnvParametersI4uivNV');
18315   glGetProgramLocalParameterIivNV := dglGetProcAddress('glGetProgramLocalParameterIivNV');
18316   glGetProgramLocalParameterIuivNV := dglGetProcAddress('glGetProgramLocalParameterIuivNV');
18317   glGetProgramEnvParameterIivNV := dglGetProcAddress('glGetProgramEnvParameterIivNV');
18318   glGetProgramEnvParameterIuivNV := dglGetProcAddress('glGetProgramEnvParameterIuivNV');
18319 end;
18320
18321 procedure Read_GL_NV_parameter_buffer_object;
18322 begin
18323   glProgramBufferParametersfvNV := dglGetProcAddress('glProgramBufferParametersfvNV');
18324   glProgramBufferParametersIivNV := dglGetProcAddress('glProgramBufferParametersIivNV');
18325   glProgramBufferParametersIuivNV := dglGetProcAddress('glProgramBufferParametersIuivNV');
18326 end;
18327
18328 procedure Read_GL_NV_transform_feedback;
18329 begin
18330   glBeginTransformFeedbackNV := dglGetProcAddress('glBeginTransformFeedbackNV');
18331   glEndTransformFeedbackNV := dglGetProcAddress('glEndTransformFeedbackNV');
18332   glTransformFeedbackAttribsNV := dglGetProcAddress('glTransformFeedbackAttribsNV');
18333   glBindBufferRangeNV := dglGetProcAddress('glBindBufferRangeNV');
18334   glBindBufferOffsetNV := dglGetProcAddress('glBindBufferOffsetNV');
18335   glBindBufferBaseNV := dglGetProcAddress('glBindBufferBaseNV');
18336   glTransformFeedbackVaryingsNV := dglGetProcAddress('glTransformFeedbackVaryingsNV');
18337   glActiveVaryingNV := dglGetProcAddress('glActiveVaryingNV');
18338   glGetVaryingLocationNV := dglGetProcAddress('glGetVaryingLocationNV');
18339   glGetActiveVaryingNV := dglGetProcAddress('glGetActiveVaryingNV');
18340   glGetTransformFeedbackVaryingNV := dglGetProcAddress('glGetTransformFeedbackVaryingNV');
18341   glTransformFeedbackStreamAttribsNV := dglGetProcAddress('glTransformFeedbackStreamAttribsNV');
18342 end;
18343
18344 procedure Read_GL_NV_conditional_render;
18345 begin
18346   glBeginConditionalRenderNV := dglGetProcAddress('glBeginConditionalRenderNV');
18347   glEndConditionalRenderNV := dglGetProcAddress('glEndConditionalRenderNV');
18348 end;
18349
18350 procedure Read_GL_NV_present_video;
18351 begin
18352   glPresentFrameKeyedNV := dglGetProcAddress('glPresentFrameKeyedNV');
18353   glPresentFrameDualFillNV := dglGetProcAddress('glPresentFrameDualFillNV');
18354   glGetVideoivNV := dglGetProcAddress('glGetVideoivNV');
18355   glGetVideouivNV := dglGetProcAddress('glGetVideouivNV');
18356   glGetVideoi64vNV := dglGetProcAddress('glGetVideoi64vNV');
18357   glGetVideoui64vNV := dglGetProcAddress('glGetVideoui64vNV');
18358 //  glVideoParameterivNV := dglGetProcAddress('glVideoParameterivNV');
18359 end;
18360
18361 procedure Read_GL_NV_explicit_multisample;
18362 begin
18363   glGetMultisamplefvNV := dglGetProcAddress('glGetMultisamplefvNV');
18364   glSampleMaskIndexedNV := dglGetProcAddress('glSampleMaskIndexedNV');
18365   glTexRenderbufferNV := dglGetProcAddress('glTexRenderbufferNV');
18366 end;
18367
18368 procedure Read_GL_NV_transform_feedback2;
18369 begin
18370   glBindTransformFeedbackNV := dglGetProcAddress('glBindTransformFeedbackNV');
18371   glDeleteTransformFeedbacksNV := dglGetProcAddress('glDeleteTransformFeedbacksNV');
18372   glGenTransformFeedbacksNV := dglGetProcAddress('glGenTransformFeedbacksNV');
18373   glIsTransformFeedbackNV := dglGetProcAddress('glIsTransformFeedbackNV');
18374   glPauseTransformFeedbackNV := dglGetProcAddress('glPauseTransformFeedbackNV');
18375   glResumeTransformFeedbackNV := dglGetProcAddress('glResumeTransformFeedbackNV');
18376   glDrawTransformFeedbackNV := dglGetProcAddress('glDrawTransformFeedbackNV');
18377 end;
18378
18379 procedure Read_GL_NV_video_capture;
18380 begin
18381   glBeginVideoCaptureNV := dglGetProcAddress('glBeginVideoCaptureNV');
18382   glBindVideoCaptureStreamBufferNV := dglGetProcAddress('glBindVideoCaptureStreamBufferNV');
18383   glBindVideoCaptureStreamTextureNV := dglGetProcAddress('glBindVideoCaptureStreamTextureNV');
18384   glEndVideoCaptureNV := dglGetProcAddress('glEndVideoCaptureNV');
18385   glGetVideoCaptureivNV := dglGetProcAddress('glGetVideoCaptureivNV');
18386   glGetVideoCaptureStreamivNV := dglGetProcAddress('glGetVideoCaptureStreamivNV');
18387   glGetVideoCaptureStreamfvNV := dglGetProcAddress('glGetVideoCaptureStreamfvNV');
18388   glGetVideoCaptureStreamdvNV := dglGetProcAddress('glGetVideoCaptureStreamdvNV');
18389   glVideoCaptureNV := dglGetProcAddress('glVideoCaptureNV');
18390   glVideoCaptureStreamParameterivNV := dglGetProcAddress('glVideoCaptureStreamParameterivNV');
18391   glVideoCaptureStreamParameterfvNV := dglGetProcAddress('glVideoCaptureStreamParameterfvNV');
18392   glVideoCaptureStreamParameterdvNV := dglGetProcAddress('glVideoCaptureStreamParameterdvNV');
18393 end;
18394
18395 procedure Read_GL_NV_copy_image;
18396 begin
18397   glCopyImageSubDataNV := dglGetProcAddress('glCopyImageSubDataNV');
18398 end;
18399
18400 procedure Read_GL_NV_shader_buffer_load;
18401 begin
18402   glMakeBufferResidentNV := dglGetProcAddress('glMakeBufferResidentNV');
18403   glMakeBufferNonResidentNV := dglGetProcAddress('glMakeBufferNonResidentNV');
18404   glIsBufferResidentNV := dglGetProcAddress('glIsBufferResidentNV');
18405   glMakeNamedBufferResidentNV := dglGetProcAddress('glMakeNamedBufferResidentNV');
18406   glMakeNamedBufferNonResidentNV := dglGetProcAddress('glMakeNamedBufferNonResidentNV');
18407   glIsNamedBufferResidentNV := dglGetProcAddress('glIsNamedBufferResidentNV');
18408   glGetBufferParameterui64vNV := dglGetProcAddress('glGetBufferParameterui64vNV');
18409   glGetNamedBufferParameterui64vNV := dglGetProcAddress('glGetNamedBufferParameterui64vNV');
18410   glGetIntegerui64vNV := dglGetProcAddress('glGetIntegerui64vNV');
18411   glUniformui64NV := dglGetProcAddress('glUniformui64NV');
18412   glUniformui64vNV := dglGetProcAddress('glUniformui64vNV');
18413   glGetUniformui64vNV := dglGetProcAddress('glGetUniformui64vNV');
18414   glProgramUniformui64NV := dglGetProcAddress('glProgramUniformui64NV');
18415   glProgramUniformui64vNV := dglGetProcAddress('glProgramUniformui64vNV');
18416 end;
18417
18418 procedure Read_GL_NV_vertex_buffer_unified_memory;
18419 begin
18420   glBufferAddressRangeNV := dglGetProcAddress('glBufferAddressRangeNV');
18421   glVertexFormatNV := dglGetProcAddress('glVertexFormatNV');
18422   glNormalFormatNV := dglGetProcAddress('glNormalFormatNV');
18423   glColorFormatNV := dglGetProcAddress('glColorFormatNV');
18424   glIndexFormatNV := dglGetProcAddress('glIndexFormatNV');
18425   glTexCoordFormatNV := dglGetProcAddress('glTexCoordFormatNV');
18426   glEdgeFlagFormatNV := dglGetProcAddress('glEdgeFlagFormatNV');
18427   glSecondaryColorFormatNV := dglGetProcAddress('glSecondaryColorFormatNV');
18428   glFogCoordFormatNV := dglGetProcAddress('glFogCoordFormatNV');
18429   glVertexAttribFormatNV := dglGetProcAddress('glVertexAttribFormatNV');
18430   glVertexAttribIFormatNV := dglGetProcAddress('glVertexAttribIFormatNV');
18431   glGetIntegerui64i_vNV := dglGetProcAddress('glGetIntegerui64i_vNV');
18432 end;
18433
18434 procedure Read_GL_NV_gpu_program5;
18435 begin
18436   glProgramSubroutineParametersuivNV := dglGetProcAddress('glProgramSubroutineParametersuivNV');
18437   glGetProgramSubroutineParameteruivNV := dglGetProcAddress('glGetProgramSubroutineParameteruivNV');
18438 end;
18439
18440 procedure Read_GL_NV_gpu_shader5;
18441 begin
18442   glUniform1i64NV := dglGetProcAddress('glUniform1i64NV');
18443   glUniform2i64NV := dglGetProcAddress('glUniform2i64NV');
18444   glUniform3i64NV := dglGetProcAddress('glUniform3i64NV');
18445   glUniform4i64NV := dglGetProcAddress('glUniform4i64NV');
18446   glUniform1i64vNV := dglGetProcAddress('glUniform1i64vNV');
18447   glUniform2i64vNV := dglGetProcAddress('glUniform2i64vNV');
18448   glUniform3i64vNV := dglGetProcAddress('glUniform3i64vNV');
18449   glUniform4i64vNV := dglGetProcAddress('glUniform4i64vNV');
18450   glUniform1ui64NV := dglGetProcAddress('glUniform1ui64NV');
18451   glUniform2ui64NV := dglGetProcAddress('glUniform2ui64NV');
18452   glUniform3ui64NV := dglGetProcAddress('glUniform3ui64NV');
18453   glUniform4ui64NV := dglGetProcAddress('glUniform4ui64NV');
18454   glUniform1ui64vNV := dglGetProcAddress('glUniform1ui64vNV');
18455   glUniform2ui64vNV := dglGetProcAddress('glUniform2ui64vNV');
18456   glUniform3ui64vNV := dglGetProcAddress('glUniform3ui64vNV');
18457   glUniform4ui64vNV := dglGetProcAddress('glUniform4ui64vNV');
18458   glGetUniformi64vNV := dglGetProcAddress('glGetUniformi64vNV');
18459   glProgramUniform1i64NV := dglGetProcAddress('glProgramUniform1i64NV');
18460   glProgramUniform2i64NV := dglGetProcAddress('glProgramUniform2i64NV');
18461   glProgramUniform3i64NV := dglGetProcAddress('glProgramUniform3i64NV');
18462   glProgramUniform4i64NV := dglGetProcAddress('glProgramUniform4i64NV');
18463   glProgramUniform1i64vNV := dglGetProcAddress('glProgramUniform1i64vNV');
18464   glProgramUniform2i64vNV := dglGetProcAddress('glProgramUniform2i64vNV');
18465   glProgramUniform3i64vNV := dglGetProcAddress('glProgramUniform3i64vNV');
18466   glProgramUniform4i64vNV := dglGetProcAddress('glProgramUniform4i64vNV');
18467   glProgramUniform1ui64NV := dglGetProcAddress('glProgramUniform1ui64NV');
18468   glProgramUniform2ui64NV := dglGetProcAddress('glProgramUniform2ui64NV');
18469   glProgramUniform3ui64NV := dglGetProcAddress('glProgramUniform3ui64NV');
18470   glProgramUniform4ui64NV := dglGetProcAddress('glProgramUniform4ui64NV');
18471   glProgramUniform1ui64vNV := dglGetProcAddress('glProgramUniform1ui64vNV');
18472   glProgramUniform2ui64vNV := dglGetProcAddress('glProgramUniform2ui64vNV');
18473   glProgramUniform3ui64vNV := dglGetProcAddress('glProgramUniform3ui64vNV');
18474   glProgramUniform4ui64vNV := dglGetProcAddress('glProgramUniform4ui64vNV');
18475 end;
18476
18477 procedure Read_GL_NV_vertex_attrib_integer_64bit;
18478 begin
18479   glVertexAttribL1i64NV := dglGetProcAddress('glVertexAttribL1i64NV');
18480   glVertexAttribL2i64NV := dglGetProcAddress('glVertexAttribL2i64NV');
18481   glVertexAttribL3i64NV := dglGetProcAddress('glVertexAttribL3i64NV');
18482   glVertexAttribL4i64NV := dglGetProcAddress('glVertexAttribL4i64NV');
18483   glVertexAttribL1i64vNV := dglGetProcAddress('glVertexAttribL1i64vNV');
18484   glVertexAttribL2i64vNV := dglGetProcAddress('glVertexAttribL2i64vNV');
18485   glVertexAttribL3i64vNV := dglGetProcAddress('glVertexAttribL3i64vNV');
18486   glVertexAttribL4i64vNV := dglGetProcAddress('glVertexAttribL4i64vNV');
18487   glVertexAttribL1ui64NV := dglGetProcAddress('glVertexAttribL1ui64NV');
18488   glVertexAttribL2ui64NV := dglGetProcAddress('glVertexAttribL2ui64NV');
18489   glVertexAttribL3ui64NV := dglGetProcAddress('glVertexAttribL3ui64NV');
18490   glVertexAttribL4ui64NV := dglGetProcAddress('glVertexAttribL4ui64NV');
18491   glVertexAttribL1ui64vNV := dglGetProcAddress('glVertexAttribL1ui64vNV');
18492   glVertexAttribL2ui64vNV := dglGetProcAddress('glVertexAttribL2ui64vNV');
18493   glVertexAttribL3ui64vNV := dglGetProcAddress('glVertexAttribL3ui64vNV');
18494   glVertexAttribL4ui64vNV := dglGetProcAddress('glVertexAttribL4ui64vNV');
18495   glGetVertexAttribLi64vNV := dglGetProcAddress('glGetVertexAttribLi64vNV');
18496   glGetVertexAttribLui64vNV := dglGetProcAddress('glGetVertexAttribLui64vNV');
18497   glVertexAttribLFormatNV := dglGetProcAddress('glVertexAttribLFormatNV');
18498 end;
18499
18500 procedure Read_GL_NV_vdpau_interop;
18501 begin
18502   glVDPAUInitNV := dglGetProcAddress('glVDPAUInitNV');
18503   glVDPAUFiniNV := dglGetProcAddress('glVDPAUFiniNV');
18504   glVDPAURegisterVideoSurfaceNV := dglGetProcAddress('glVDPAURegisterVideoSurfaceNV');
18505   glVDPAURegisterOutputSurfaceNV := dglGetProcAddress('glVDPAURegisterOutputSurfaceNV');
18506   glVDPAUIsSurfaceNV := dglGetProcAddress('glVDPAUIsSurfaceNV');
18507   glVDPAUUnregisterSurfaceNV := dglGetProcAddress('glVDPAUUnregisterSurfaceNV');
18508   glVDPAUGetSurfaceivNV := dglGetProcAddress('glVDPAUGetSurfaceivNV');
18509   glVDPAUSurfaceAccessNV := dglGetProcAddress('glVDPAUSurfaceAccessNV');
18510   glVDPAUMapSurfacesNV := dglGetProcAddress('glVDPAUMapSurfacesNV');
18511   glVDPAUUnmapSurfacesNV := dglGetProcAddress('glVDPAUUnmapSurfacesNV');
18512 end;
18513
18514 procedure Read_GL_NV_texture_barrier;
18515 begin
18516   glTextureBarrierNV := dglGetProcAddress('glTextureBarrierNV');
18517 end;
18518
18519 procedure Read_GL_PGI_misc_hints;
18520 begin
18521   glHintPGI := dglGetProcAddress('glHintPGI');
18522 end;
18523
18524 procedure Read_GL_SGIS_detail_texture;
18525 begin
18526   glDetailTexFuncSGIS := dglGetProcAddress('glDetailTexFuncSGIS');
18527   glGetDetailTexFuncSGIS := dglGetProcAddress('glGetDetailTexFuncSGIS');
18528 end;
18529
18530 procedure Read_GL_SGIS_fog_function;
18531 begin
18532   glFogFuncSGIS := dglGetProcAddress('glFogFuncSGIS');
18533   glGetFogFuncSGIS := dglGetProcAddress('glGetFogFuncSGIS');
18534 end;
18535
18536 procedure Read_GL_SGIS_multisample;
18537 begin
18538   glSampleMaskSGIS := dglGetProcAddress('glSampleMaskSGIS');
18539   glSamplePatternSGIS := dglGetProcAddress('glSamplePatternSGIS');
18540 end;
18541
18542 procedure Read_GL_SGIS_pixel_texture;
18543 begin
18544   glPixelTexGenParameteriSGIS := dglGetProcAddress('glPixelTexGenParameteriSGIS');
18545   glPixelTexGenParameterivSGIS := dglGetProcAddress('glPixelTexGenParameterivSGIS');
18546   glPixelTexGenParameterfSGIS := dglGetProcAddress('glPixelTexGenParameterfSGIS');
18547   glPixelTexGenParameterfvSGIS := dglGetProcAddress('glPixelTexGenParameterfvSGIS');
18548   glGetPixelTexGenParameterivSGIS := dglGetProcAddress('glGetPixelTexGenParameterivSGIS');
18549   glGetPixelTexGenParameterfvSGIS := dglGetProcAddress('glGetPixelTexGenParameterfvSGIS');
18550 end;
18551
18552 procedure Read_GL_SGIS_point_parameters;
18553 begin
18554   glPointParameterfSGIS := dglGetProcAddress('glPointParameterfSGIS');
18555   glPointParameterfvSGIS := dglGetProcAddress('glPointParameterfvSGIS');
18556 end;
18557
18558 procedure Read_GL_SGIS_sharpen_texture;
18559 begin
18560   glSharpenTexFuncSGIS := dglGetProcAddress('glSharpenTexFuncSGIS');
18561   glGetSharpenTexFuncSGIS := dglGetProcAddress('glGetSharpenTexFuncSGIS');
18562 end;
18563
18564 procedure Read_GL_SGIS_texture4D;
18565 begin
18566   glTexImage4DSGIS := dglGetProcAddress('glTexImage4DSGIS');
18567   glTexSubImage4DSGIS := dglGetProcAddress('glTexSubImage4DSGIS');
18568 end;
18569
18570 procedure Read_GL_SGIS_texture_color_mask;
18571 begin
18572   glTextureColorMaskSGIS := dglGetProcAddress('glTextureColorMaskSGIS');
18573 end;
18574
18575 procedure Read_GL_SGIS_texture_filter4;
18576 begin
18577   glGetTexFilterFuncSGIS := dglGetProcAddress('glGetTexFilterFuncSGIS');
18578   glTexFilterFuncSGIS := dglGetProcAddress('glTexFilterFuncSGIS');
18579 end;
18580
18581 procedure Read_GL_SGIX_async;
18582 begin
18583   glAsyncMarkerSGIX := dglGetProcAddress('glAsyncMarkerSGIX');
18584   glFinishAsyncSGIX := dglGetProcAddress('glFinishAsyncSGIX');
18585   glPollAsyncSGIX := dglGetProcAddress('glPollAsyncSGIX');
18586   glGenAsyncMarkersSGIX := dglGetProcAddress('glGenAsyncMarkersSGIX');
18587   glDeleteAsyncMarkersSGIX := dglGetProcAddress('glDeleteAsyncMarkersSGIX');
18588   glIsAsyncMarkerSGIX := dglGetProcAddress('glIsAsyncMarkerSGIX');
18589 end;
18590
18591 procedure Read_GL_SGIX_flush_raster;
18592 begin
18593   glFlushRasterSGIX := dglGetProcAddress('glFlushRasterSGIX');
18594 end;
18595
18596 procedure Read_GL_SGIX_fragment_lighting;
18597 begin
18598   glFragmentColorMaterialSGIX := dglGetProcAddress('glFragmentColorMaterialSGIX');
18599   glFragmentLightfSGIX := dglGetProcAddress('glFragmentLightfSGIX');
18600   glFragmentLightfvSGIX := dglGetProcAddress('glFragmentLightfvSGIX');
18601   glFragmentLightiSGIX := dglGetProcAddress('glFragmentLightiSGIX');
18602   glFragmentLightivSGIX := dglGetProcAddress('glFragmentLightivSGIX');
18603   glFragmentLightModelfSGIX := dglGetProcAddress('glFragmentLightModelfSGIX');
18604   glFragmentLightModelfvSGIX := dglGetProcAddress('glFragmentLightModelfvSGIX');
18605   glFragmentLightModeliSGIX := dglGetProcAddress('glFragmentLightModeliSGIX');
18606   glFragmentLightModelivSGIX := dglGetProcAddress('glFragmentLightModelivSGIX');
18607   glFragmentMaterialfSGIX := dglGetProcAddress('glFragmentMaterialfSGIX');
18608   glFragmentMaterialfvSGIX := dglGetProcAddress('glFragmentMaterialfvSGIX');
18609   glFragmentMaterialiSGIX := dglGetProcAddress('glFragmentMaterialiSGIX');
18610   glFragmentMaterialivSGIX := dglGetProcAddress('glFragmentMaterialivSGIX');
18611   glGetFragmentLightfvSGIX := dglGetProcAddress('glGetFragmentLightfvSGIX');
18612   glGetFragmentLightivSGIX := dglGetProcAddress('glGetFragmentLightivSGIX');
18613   glGetFragmentMaterialfvSGIX := dglGetProcAddress('glGetFragmentMaterialfvSGIX');
18614   glGetFragmentMaterialivSGIX := dglGetProcAddress('glGetFragmentMaterialivSGIX');
18615   glLightEnviSGIX := dglGetProcAddress('glLightEnviSGIX');
18616 end;
18617
18618 procedure Read_GL_SGIX_framezoom;
18619 begin
18620   glFrameZoomSGIX := dglGetProcAddress('glFrameZoomSGIX');
18621 end;
18622
18623 procedure Read_GL_SGIX_igloo_interface;
18624 begin
18625   glIglooInterfaceSGIX := dglGetProcAddress('glIglooInterfaceSGIX');
18626 end;
18627
18628 procedure Read_GL_SGIX_instruments;
18629 begin
18630   glGetInstrumentsSGIX := dglGetProcAddress('glGetInstrumentsSGIX');
18631   glInstrumentsBufferSGIX := dglGetProcAddress('glInstrumentsBufferSGIX');
18632   glPollInstrumentsSGIX := dglGetProcAddress('glPollInstrumentsSGIX');
18633   glReadInstrumentsSGIX := dglGetProcAddress('glReadInstrumentsSGIX');
18634   glStartInstrumentsSGIX := dglGetProcAddress('glStartInstrumentsSGIX');
18635   glStopInstrumentsSGIX := dglGetProcAddress('glStopInstrumentsSGIX');
18636 end;
18637
18638 procedure Read_GL_SGIX_list_priority;
18639 begin
18640   glGetListParameterfvSGIX := dglGetProcAddress('glGetListParameterfvSGIX');
18641   glGetListParameterivSGIX := dglGetProcAddress('glGetListParameterivSGIX');
18642   glListParameterfSGIX := dglGetProcAddress('glListParameterfSGIX');
18643   glListParameterfvSGIX := dglGetProcAddress('glListParameterfvSGIX');
18644   glListParameteriSGIX := dglGetProcAddress('glListParameteriSGIX');
18645   glListParameterivSGIX := dglGetProcAddress('glListParameterivSGIX');
18646 end;
18647
18648 procedure Read_GL_SGIX_pixel_texture;
18649 begin
18650   glPixelTexGenSGIX := dglGetProcAddress('glPixelTexGenSGIX');
18651 end;
18652
18653 procedure Read_GL_SGIX_polynomial_ffd;
18654 begin
18655   glDeformationMap3dSGIX := dglGetProcAddress('glDeformationMap3dSGIX');
18656   glDeformationMap3fSGIX := dglGetProcAddress('glDeformationMap3fSGIX');
18657   glDeformSGIX := dglGetProcAddress('glDeformSGIX');
18658   glLoadIdentityDeformationMapSGIX := dglGetProcAddress('glLoadIdentityDeformationMapSGIX');
18659 end;
18660
18661 procedure Read_GL_SGIX_reference_plane;
18662 begin
18663   glReferencePlaneSGIX := dglGetProcAddress('glReferencePlaneSGIX');
18664 end;
18665
18666 procedure Read_GL_SGIX_sprite;
18667 begin
18668   glSpriteParameterfSGIX := dglGetProcAddress('glSpriteParameterfSGIX');
18669   glSpriteParameterfvSGIX := dglGetProcAddress('glSpriteParameterfvSGIX');
18670   glSpriteParameteriSGIX := dglGetProcAddress('glSpriteParameteriSGIX');
18671   glSpriteParameterivSGIX := dglGetProcAddress('glSpriteParameterivSGIX');
18672 end;
18673
18674 procedure Read_GL_SGIX_tag_sample_buffer;
18675 begin
18676   glTagSampleBufferSGIX := dglGetProcAddress('glTagSampleBufferSGIX');
18677 end;
18678
18679 procedure Read_GL_SGI_color_table;
18680 begin
18681   glColorTableSGI := dglGetProcAddress('glColorTableSGI');
18682   glColorTableParameterfvSGI := dglGetProcAddress('glColorTableParameterfvSGI');
18683   glColorTableParameterivSGI := dglGetProcAddress('glColorTableParameterivSGI');
18684   glCopyColorTableSGI := dglGetProcAddress('glCopyColorTableSGI');
18685   glGetColorTableSGI := dglGetProcAddress('glGetColorTableSGI');
18686   glGetColorTableParameterfvSGI := dglGetProcAddress('glGetColorTableParameterfvSGI');
18687   glGetColorTableParameterivSGI := dglGetProcAddress('glGetColorTableParameterivSGI');
18688 end;
18689
18690 procedure Read_GL_SUNX_constant_data;
18691 begin
18692   glFinishTextureSUNX := dglGetProcAddress('glFinishTextureSUNX');
18693 end;
18694
18695 procedure Read_GL_SUN_global_alpha;
18696 begin
18697   glGlobalAlphaFactorbSUN := dglGetProcAddress('glGlobalAlphaFactorbSUN');
18698   glGlobalAlphaFactorsSUN := dglGetProcAddress('glGlobalAlphaFactorsSUN');
18699   glGlobalAlphaFactoriSUN := dglGetProcAddress('glGlobalAlphaFactoriSUN');
18700   glGlobalAlphaFactorfSUN := dglGetProcAddress('glGlobalAlphaFactorfSUN');
18701   glGlobalAlphaFactordSUN := dglGetProcAddress('glGlobalAlphaFactordSUN');
18702   glGlobalAlphaFactorubSUN := dglGetProcAddress('glGlobalAlphaFactorubSUN');
18703   glGlobalAlphaFactorusSUN := dglGetProcAddress('glGlobalAlphaFactorusSUN');
18704   glGlobalAlphaFactoruiSUN := dglGetProcAddress('glGlobalAlphaFactoruiSUN');
18705 end;
18706
18707 procedure Read_GL_SUN_mesh_array;
18708 begin
18709   glDrawMeshArraysSUN := dglGetProcAddress('glDrawMeshArraysSUN');
18710 end;
18711
18712 procedure Read_GL_SUN_triangle_list;
18713 begin
18714   glReplacementCodeuiSUN := dglGetProcAddress('glReplacementCodeuiSUN');
18715   glReplacementCodeusSUN := dglGetProcAddress('glReplacementCodeusSUN');
18716   glReplacementCodeubSUN := dglGetProcAddress('glReplacementCodeubSUN');
18717   glReplacementCodeuivSUN := dglGetProcAddress('glReplacementCodeuivSUN');
18718   glReplacementCodeusvSUN := dglGetProcAddress('glReplacementCodeusvSUN');
18719   glReplacementCodeubvSUN := dglGetProcAddress('glReplacementCodeubvSUN');
18720   glReplacementCodePointerSUN := dglGetProcAddress('glReplacementCodePointerSUN');
18721 end;
18722
18723 procedure Read_GL_SUN_vertex;
18724 begin
18725   glColor4ubVertex2fSUN := dglGetProcAddress('glColor4ubVertex2fSUN');
18726   glColor4ubVertex2fvSUN := dglGetProcAddress('glColor4ubVertex2fvSUN');
18727   glColor4ubVertex3fSUN := dglGetProcAddress('glColor4ubVertex3fSUN');
18728   glColor4ubVertex3fvSUN := dglGetProcAddress('glColor4ubVertex3fvSUN');
18729   glColor3fVertex3fSUN := dglGetProcAddress('glColor3fVertex3fSUN');
18730   glColor3fVertex3fvSUN := dglGetProcAddress('glColor3fVertex3fvSUN');
18731   glNormal3fVertex3fSUN := dglGetProcAddress('glNormal3fVertex3fSUN');
18732   glNormal3fVertex3fvSUN := dglGetProcAddress('glNormal3fVertex3fvSUN');
18733   glColor4fNormal3fVertex3fSUN := dglGetProcAddress('glColor4fNormal3fVertex3fSUN');
18734   glColor4fNormal3fVertex3fvSUN := dglGetProcAddress('glColor4fNormal3fVertex3fvSUN');
18735   glTexCoord2fVertex3fSUN := dglGetProcAddress('glTexCoord2fVertex3fSUN');
18736   glTexCoord2fVertex3fvSUN := dglGetProcAddress('glTexCoord2fVertex3fvSUN');
18737   glTexCoord4fVertex4fSUN := dglGetProcAddress('glTexCoord4fVertex4fSUN');
18738   glTexCoord4fVertex4fvSUN := dglGetProcAddress('glTexCoord4fVertex4fvSUN');
18739   glTexCoord2fColor4ubVertex3fSUN := dglGetProcAddress('glTexCoord2fColor4ubVertex3fSUN');
18740   glTexCoord2fColor4ubVertex3fvSUN := dglGetProcAddress('glTexCoord2fColor4ubVertex3fvSUN');
18741   glTexCoord2fColor3fVertex3fSUN := dglGetProcAddress('glTexCoord2fColor3fVertex3fSUN');
18742   glTexCoord2fColor3fVertex3fvSUN := dglGetProcAddress('glTexCoord2fColor3fVertex3fvSUN');
18743   glTexCoord2fNormal3fVertex3fSUN := dglGetProcAddress('glTexCoord2fNormal3fVertex3fSUN');
18744   glTexCoord2fNormal3fVertex3fvSUN := dglGetProcAddress('glTexCoord2fNormal3fVertex3fvSUN');
18745   glTexCoord2fColor4fNormal3fVertex3fSUN := dglGetProcAddress('glTexCoord2fColor4fNormal3fVertex3fSUN');
18746   glTexCoord2fColor4fNormal3fVertex3fvSUN := dglGetProcAddress('glTexCoord2fColor4fNormal3fVertex3fvSUN');
18747   glTexCoord4fColor4fNormal3fVertex4fSUN := dglGetProcAddress('glTexCoord4fColor4fNormal3fVertex4fSUN');
18748   glTexCoord4fColor4fNormal3fVertex4fvSUN := dglGetProcAddress('glTexCoord4fColor4fNormal3fVertex4fvSUN');
18749   glReplacementCodeuiVertex3fSUN := dglGetProcAddress('glReplacementCodeuiVertex3fSUN');
18750   glReplacementCodeuiVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiVertex3fvSUN');
18751   glReplacementCodeuiColor4ubVertex3fSUN := dglGetProcAddress('glReplacementCodeuiColor4ubVertex3fSUN');
18752   glReplacementCodeuiColor4ubVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiColor4ubVertex3fvSUN');
18753   glReplacementCodeuiColor3fVertex3fSUN := dglGetProcAddress('glReplacementCodeuiColor3fVertex3fSUN');
18754   glReplacementCodeuiColor3fVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiColor3fVertex3fvSUN');
18755   glReplacementCodeuiNormal3fVertex3fSUN := dglGetProcAddress('glReplacementCodeuiNormal3fVertex3fSUN');
18756   glReplacementCodeuiNormal3fVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiNormal3fVertex3fvSUN');
18757   glReplacementCodeuiColor4fNormal3fVertex3fSUN := dglGetProcAddress('glReplacementCodeuiColor4fNormal3fVertex3fSUN');
18758   glReplacementCodeuiColor4fNormal3fVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiColor4fNormal3fVertex3fvSUN');
18759   glReplacementCodeuiTexCoord2fVertex3fSUN := dglGetProcAddress('glReplacementCodeuiTexCoord2fVertex3fSUN');
18760   glReplacementCodeuiTexCoord2fVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiTexCoord2fVertex3fvSUN');
18761   glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN := dglGetProcAddress('glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN');
18762   glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN');
18763   glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN := dglGetProcAddress('glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN');
18764   glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN');
18765 end;
18766
18767 {$IFDEF DGL_WIN}
18768 procedure Read_WGL_ARB_buffer_region;
18769 begin
18770   wglCreateBufferRegionARB := dglGetProcAddress('wglCreateBufferRegionARB');
18771   wglDeleteBufferRegionARB := dglGetProcAddress('wglDeleteBufferRegionARB');
18772   wglSaveBufferRegionARB := dglGetProcAddress('wglSaveBufferRegionARB');
18773   wglRestoreBufferRegionARB := dglGetProcAddress('wglRestoreBufferRegionARB');
18774 end;
18775
18776 procedure Read_WGL_ARB_extensions_string;
18777 begin
18778   wglGetExtensionsStringARB := dglGetProcAddress('wglGetExtensionsStringARB');
18779 end;
18780
18781 procedure Read_WGL_ARB_make_current_read;
18782 begin
18783   wglMakeContextCurrentARB := dglGetProcAddress('wglMakeContextCurrentARB');
18784   wglGetCurrentReadDCARB := dglGetProcAddress('wglGetCurrentReadDCARB');
18785 end;
18786
18787 procedure Read_WGL_ARB_pbuffer;
18788 begin
18789   wglCreatePbufferARB := dglGetProcAddress('wglCreatePbufferARB');
18790   wglGetPbufferDCARB := dglGetProcAddress('wglGetPbufferDCARB');
18791   wglReleasePbufferDCARB := dglGetProcAddress('wglReleasePbufferDCARB');
18792   wglDestroyPbufferARB := dglGetProcAddress('wglDestroyPbufferARB');
18793   wglQueryPbufferARB := dglGetProcAddress('wglQueryPbufferARB');
18794 end;
18795
18796 procedure Read_WGL_ARB_pixel_format;
18797 begin
18798   wglGetPixelFormatAttribivARB := dglGetProcAddress('wglGetPixelFormatAttribivARB');
18799   wglGetPixelFormatAttribfvARB := dglGetProcAddress('wglGetPixelFormatAttribfvARB');
18800   wglChoosePixelFormatARB := dglGetProcAddress('wglChoosePixelFormatARB');
18801 end;
18802
18803 procedure Read_WGL_ARB_pixel_format_float;
18804 begin
18805   wglClampColorARB := dglGetProcAddress('wglClampColorARB');
18806 end;
18807
18808 procedure Read_WGL_ARB_render_texture;
18809 begin
18810   wglBindTexImageARB := dglGetProcAddress('wglBindTexImageARB');
18811   wglReleaseTexImageARB := dglGetProcAddress('wglReleaseTexImageARB');
18812   wglSetPbufferAttribARB := dglGetProcAddress('wglSetPbufferAttribARB');
18813 end;
18814
18815 procedure Read_WGL_ARB_create_context;
18816 begin
18817   wglCreateContextAttribsARB := dglGetProcAddress('wglCreateContextAttribsARB');
18818 end;
18819
18820 procedure Read_WGL_AMD_gpu_association;
18821 begin
18822   wglGetGPUIDsAMD := dglGetProcAddress('wglGetGPUIDsAMD');
18823   wglGetGPUInfoAMD := dglGetProcAddress('wglGetGPUInfoAMD');
18824   wglGetContextGPUIDAMD := dglGetProcAddress('wglGetContextGPUIDAMD');
18825   wglCreateAssociatedContextAMD := dglGetProcAddress('wglCreateAssociatedContextAMD');
18826   wglCreateAssociatedContextAttribsAMD := dglGetProcAddress('wglCreateAssociatedContextAttribsAMD');
18827   wglDeleteAssociatedContextAMD := dglGetProcAddress('wglDeleteAssociatedContextAMD');
18828   wglMakeAssociatedContextCurrentAMD := dglGetProcAddress('wglMakeAssociatedContextCurrentAMD');
18829   wglGetCurrentAssociatedContextAMD := dglGetProcAddress('wglGetCurrentAssociatedContextAMD');
18830   wglBlitContextFramebufferAMD := dglGetProcAddress('wglBlitContextFramebufferAMD');
18831 end;
18832
18833 procedure Read_WGL_EXT_display_color_table;
18834 begin
18835   wglCreateDisplayColorTableEXT := dglGetProcAddress('wglCreateDisplayColorTableEXT');
18836   wglLoadDisplayColorTableEXT := dglGetProcAddress('wglLoadDisplayColorTableEXT');
18837   wglBindDisplayColorTableEXT := dglGetProcAddress('wglBindDisplayColorTableEXT');
18838   wglDestroyDisplayColorTableEXT := dglGetProcAddress('wglDestroyDisplayColorTableEXT');
18839 end;
18840
18841 procedure Read_WGL_EXT_extensions_string;
18842 begin
18843   wglGetExtensionsStringEXT := dglGetProcAddress('wglGetExtensionsStringEXT');
18844 end;
18845
18846 procedure Read_WGL_EXT_make_current_read;
18847 begin
18848   wglMakeContextCurrentEXT := dglGetProcAddress('wglMakeContextCurrentEXT');
18849   wglGetCurrentReadDCEXT := dglGetProcAddress('wglGetCurrentReadDCEXT');
18850 end;
18851
18852 procedure Read_WGL_EXT_pbuffer;
18853 begin
18854   wglCreatePbufferEXT := dglGetProcAddress('wglCreatePbufferEXT');
18855   wglGetPbufferDCEXT := dglGetProcAddress('wglGetPbufferDCEXT');
18856   wglReleasePbufferDCEXT := dglGetProcAddress('wglReleasePbufferDCEXT');
18857   wglDestroyPbufferEXT := dglGetProcAddress('wglDestroyPbufferEXT');
18858   wglQueryPbufferEXT := dglGetProcAddress('wglQueryPbufferEXT');
18859 end;
18860
18861 procedure Read_WGL_EXT_pixel_format;
18862 begin
18863   wglGetPixelFormatAttribivEXT := dglGetProcAddress('wglGetPixelFormatAttribivEXT');
18864   wglGetPixelFormatAttribfvEXT := dglGetProcAddress('wglGetPixelFormatAttribfvEXT');
18865   wglChoosePixelFormatEXT := dglGetProcAddress('wglChoosePixelFormatEXT');
18866 end;
18867
18868 procedure Read_WGL_EXT_swap_control;
18869 begin
18870   wglSwapIntervalEXT := dglGetProcAddress('wglSwapIntervalEXT');
18871   wglGetSwapIntervalEXT := dglGetProcAddress('wglGetSwapIntervalEXT');
18872 end;
18873
18874 procedure Read_WGL_I3D_digital_video_control;
18875 begin
18876   wglGetDigitalVideoParametersI3D := dglGetProcAddress('wglGetDigitalVideoParametersI3D');
18877   wglSetDigitalVideoParametersI3D := dglGetProcAddress('wglSetDigitalVideoParametersI3D');
18878 end;
18879
18880 procedure Read_WGL_I3D_gamma;
18881 begin
18882   wglGetGammaTableParametersI3D := dglGetProcAddress('wglGetGammaTableParametersI3D');
18883   wglSetGammaTableParametersI3D := dglGetProcAddress('wglSetGammaTableParametersI3D');
18884   wglGetGammaTableI3D := dglGetProcAddress('wglGetGammaTableI3D');
18885   wglSetGammaTableI3D := dglGetProcAddress('wglSetGammaTableI3D');
18886 end;
18887
18888 procedure Read_WGL_I3D_genlock;
18889 begin
18890   wglEnableGenlockI3D := dglGetProcAddress('wglEnableGenlockI3D');
18891   wglDisableGenlockI3D := dglGetProcAddress('wglDisableGenlockI3D');
18892   wglIsEnabledGenlockI3D := dglGetProcAddress('wglIsEnabledGenlockI3D');
18893   wglGenlockSourceI3D := dglGetProcAddress('wglGenlockSourceI3D');
18894   wglGetGenlockSourceI3D := dglGetProcAddress('wglGetGenlockSourceI3D');
18895   wglGenlockSourceEdgeI3D := dglGetProcAddress('wglGenlockSourceEdgeI3D');
18896   wglGetGenlockSourceEdgeI3D := dglGetProcAddress('wglGetGenlockSourceEdgeI3D');
18897   wglGenlockSampleRateI3D := dglGetProcAddress('wglGenlockSampleRateI3D');
18898   wglGetGenlockSampleRateI3D := dglGetProcAddress('wglGetGenlockSampleRateI3D');
18899   wglGenlockSourceDelayI3D := dglGetProcAddress('wglGenlockSourceDelayI3D');
18900   wglGetGenlockSourceDelayI3D := dglGetProcAddress('wglGetGenlockSourceDelayI3D');
18901   wglQueryGenlockMaxSourceDelayI3D := dglGetProcAddress('wglQueryGenlockMaxSourceDelayI3D');
18902 end;
18903
18904 procedure Read_WGL_I3D_image_buffer;
18905 begin
18906   wglCreateImageBufferI3D := dglGetProcAddress('wglCreateImageBufferI3D');
18907   wglDestroyImageBufferI3D := dglGetProcAddress('wglDestroyImageBufferI3D');
18908   wglAssociateImageBufferEventsI3D := dglGetProcAddress('wglAssociateImageBufferEventsI3D');
18909   wglReleaseImageBufferEventsI3D := dglGetProcAddress('wglReleaseImageBufferEventsI3D');
18910 end;
18911
18912 procedure Read_WGL_I3D_swap_frame_lock;
18913 begin
18914   wglEnableFrameLockI3D := dglGetProcAddress('wglEnableFrameLockI3D');
18915   wglDisableFrameLockI3D := dglGetProcAddress('wglDisableFrameLockI3D');
18916   wglIsEnabledFrameLockI3D := dglGetProcAddress('wglIsEnabledFrameLockI3D');
18917   wglQueryFrameLockMasterI3D := dglGetProcAddress('wglQueryFrameLockMasterI3D');
18918 end;
18919
18920 procedure Read_WGL_I3D_swap_frame_usage;
18921 begin
18922   wglGetFrameUsageI3D := dglGetProcAddress('wglGetFrameUsageI3D');
18923   wglBeginFrameTrackingI3D := dglGetProcAddress('wglBeginFrameTrackingI3D');
18924   wglEndFrameTrackingI3D := dglGetProcAddress('wglEndFrameTrackingI3D');
18925   wglQueryFrameTrackingI3D := dglGetProcAddress('wglQueryFrameTrackingI3D');
18926 end;
18927
18928 procedure Read_WGL_NV_vertex_array_range;
18929 begin
18930   wglAllocateMemoryNV := dglGetProcAddress('wglAllocateMemoryNV');
18931   wglFreeMemoryNV := dglGetProcAddress('wglFreeMemoryNV');
18932 end;
18933
18934 procedure Read_WGL_NV_present_video;
18935 begin
18936   wglEnumerateVideoDevicesNV := dglGetProcAddress('wglEnumerateVideoDevicesNV');
18937   wglBindVideoDeviceNV := dglGetProcAddress('wglBindVideoDeviceNV');
18938   wglQueryCurrentContextNV := dglGetProcAddress('wglQueryCurrentContextNV');
18939 end;
18940
18941 procedure Read_WGL_NV_video_output;
18942 begin
18943   wglGetVideoDeviceNV := dglGetProcAddress('wglGetVideoDeviceNV');
18944   wglReleaseVideoDeviceNV := dglGetProcAddress('wglReleaseVideoDeviceNV');
18945   wglBindVideoImageNV := dglGetProcAddress('wglBindVideoImageNV');
18946   wglReleaseVideoImageNV := dglGetProcAddress('wglReleaseVideoImageNV');
18947   wglSendPbufferToVideoNV := dglGetProcAddress('wglSendPbufferToVideoNV');
18948   wglGetVideoInfoNV := dglGetProcAddress('wglGetVideoInfoNV');
18949 end;
18950
18951 procedure Read_WGL_NV_swap_group;
18952 begin
18953   wglJoinSwapGroupNV := dglGetProcAddress('wglJoinSwapGroupNV');
18954   wglBindSwapBarrierNV := dglGetProcAddress('wglBindSwapBarrierNV');
18955   wglQuerySwapGroupNV := dglGetProcAddress('wglQuerySwapGroupNV');
18956   wglQueryMaxSwapGroupsNV := dglGetProcAddress('wglQueryMaxSwapGroupsNV');
18957   wglQueryFrameCountNV := dglGetProcAddress('wglQueryFrameCountNV');
18958   wglResetFrameCountNV := dglGetProcAddress('wglResetFrameCountNV');
18959 end;
18960
18961 procedure Read_WGL_NV_gpu_affinity;
18962 begin
18963   wglEnumGpusNV := dglGetProcAddress('wglEnumGpusNV');
18964   wglEnumGpuDevicesNV := dglGetProcAddress('wglEnumGpuDevicesNV');
18965   wglCreateAffinityDCNV := dglGetProcAddress('wglCreateAffinityDCNV');
18966   wglEnumGpusFromAffinityDCNV := dglGetProcAddress('wglEnumGpusFromAffinityDCNV');
18967   wglDeleteDCNV := dglGetProcAddress('wglDeleteDCNV');
18968 end;
18969
18970 procedure Read_WGL_NV_video_capture;
18971 begin
18972   wglBindVideoCaptureDeviceNV := dglGetProcAddress('wglBindVideoCaptureDeviceNV');
18973   wglEnumerateVideoCaptureDevicesNV := dglGetProcAddress('wglEnumerateVideoCaptureDevicesNV');
18974   wglLockVideoCaptureDeviceNV := dglGetProcAddress('wglLockVideoCaptureDeviceNV');
18975   wglQueryVideoCaptureDeviceNV := dglGetProcAddress('wglQueryVideoCaptureDeviceNV');
18976   wglReleaseVideoCaptureDeviceNV := dglGetProcAddress('wglReleaseVideoCaptureDeviceNV');
18977 end;
18978
18979 procedure Read_WGL_NV_copy_image;
18980 begin
18981   wglCopyImageSubDataNV := dglGetProcAddress('wglCopyImageSubDataNV');
18982 end;
18983
18984 procedure Read_WGL_NV_DX_interop;
18985 begin
18986   wglDXSetResourceShareHandleNV := dglGetProcAddress('wglDXSetResourceShareHandleNV');
18987   wglDXOpenDeviceNV := dglGetProcAddress('wglDXOpenDeviceNV');
18988   wglDXCloseDeviceNV := dglGetProcAddress('wglDXCloseDeviceNV');
18989   wglDXRegisterObjectNV := dglGetProcAddress('wglDXRegisterObjectNV');
18990   wglDXUnregisterObjectNV := dglGetProcAddress('wglDXUnregisterObjectNV');
18991   wglDXObjectAccessNV := dglGetProcAddress('wglDXObjectAccessNV');
18992   wglDXLockObjectsNV := dglGetProcAddress('wglDXLockObjectsNV');
18993   wglDXUnlockObjectsNV := dglGetProcAddress('wglDXUnlockObjectsNV');
18994 end;
18995
18996
18997 procedure Read_WGL_OML_sync_control;
18998 begin
18999   wglGetSyncValuesOML := dglGetProcAddress('wglGetSyncValuesOML');
19000   wglGetMscRateOML := dglGetProcAddress('wglGetMscRateOML');
19001   wglSwapBuffersMscOML := dglGetProcAddress('wglSwapBuffersMscOML');
19002   wglSwapLayerBuffersMscOML := dglGetProcAddress('wglSwapLayerBuffersMscOML');
19003   wglWaitForMscOML := dglGetProcAddress('wglWaitForMscOML');
19004   wglWaitForSbcOML := dglGetProcAddress('wglWaitForSbcOML');
19005 end;
19006
19007 procedure Read_WGL_3DL_stereo_control;
19008 begin
19009   wglSetStereoEmitterState3DL := dglGetProcAddress('wglSetStereoEmitterState3DL');
19010 end;
19011
19012 procedure Read_WIN_draw_range_elements;
19013 begin
19014   glDrawRangeElementsWIN := dglGetProcAddress('glDrawRangeElementsWIN');
19015 end;
19016
19017 procedure Read_WIN_swap_hint;
19018 begin
19019   glAddSwapHintRectWIN := dglGetProcAddress('glAddSwapHintRectWIN');
19020 end;
19021 {$ENDIF}
19022
19023
19024 procedure ReadExtensions;
19025 begin
19026   ReadOpenGLCore;
19027
19028   Read_GL_3DFX_tbuffer;
19029   Read_GL_APPLE_element_array;
19030   Read_GL_APPLE_fence;
19031   Read_GL_APPLE_vertex_array_object;
19032   Read_GL_APPLE_vertex_array_range;
19033   Read_GL_APPLE_texture_range;
19034   Read_GL_APPLE_vertex_program_evaluators;
19035   Read_GL_APPLE_object_purgeable;
19036   Read_GL_ARB_matrix_palette;
19037   Read_GL_ARB_multitexture;
19038   Read_GL_ARB_point_parameters;
19039   Read_GL_ARB_texture_compression;
19040   Read_GL_ARB_transpose_matrix;
19041   Read_GL_ARB_vertex_blend;
19042   Read_GL_ARB_vertex_buffer_object;
19043   Read_GL_ARB_vertex_program;
19044   Read_GL_ARB_window_pos;
19045   Read_GL_ARB_color_buffer_float;
19046   Read_GL_ARB_Shader_Objects;
19047   Read_GL_ARB_occlusion_query;
19048   Read_GL_ARB_draw_instanced;
19049   Read_GL_ARB_framebuffer_object;
19050   Read_GL_ARB_geometry_shader4;
19051   Read_GL_ARB_instanced_arrays;
19052   Read_GL_ARB_map_buffer_range;
19053   Read_GL_ARB_texture_buffer_object;
19054   Read_GL_ARB_vertex_array_object;
19055   Read_GL_ARB_uniform_buffer_object;
19056   Read_GL_ARB_copy_buffer;
19057   Read_GL_ARB_draw_elements_base_vertex;
19058   Read_GL_ARB_provoking_vertex;
19059   Read_GL_ARB_sync;
19060   Read_GL_ARB_texture_multisample;
19061   Read_GL_ARB_draw_buffers_blend;
19062   Read_GL_ARB_sample_shading;
19063   Read_GL_ARB_shading_language_include;
19064   Read_GL_ARB_sparse_texture;
19065   Read_GL_ARB_sparse_buffer;
19066   Read_GL_ARB_blend_func_extended;
19067   Read_GL_ARB_sampler_objects;
19068   Read_GL_ARB_timer_query;
19069   Read_GL_ARB_vertex_type_2_10_10_10_rev;
19070   Read_GL_ARB_draw_indirect;
19071   Read_GL_ARB_gpu_shader_fp64;
19072   Read_GL_ARB_shader_subroutine;
19073   Read_GL_ARB_tessellation_shader;
19074   Read_GL_ARB_transform_feedback2;
19075   Read_GL_ARB_transform_feedback3;
19076   Read_GL_ARB_ES2_compatibility;
19077   Read_GL_ARB_get_program_binary;
19078   Read_GL_ARB_separate_shader_objects;
19079   Read_GL_ARB_vertex_attrib_64bit;
19080   Read_GL_ARB_viewport_array;
19081   Read_GL_ARB_cl_event;
19082   Read_GL_ARB_compute_variable_group_size;
19083   Read_GL_ARB_debug_output;
19084   Read_GL_ARB_robustness;
19085   //
19086   Read_GL_ATI_draw_buffers;
19087   Read_GL_ATI_element_array;
19088   Read_GL_ATI_envmap_bumpmap;
19089   Read_GL_ATI_fragment_shader;
19090   Read_GL_ATI_map_object_buffer;
19091   Read_GL_ATI_pn_triangles;
19092   Read_GL_ATI_separate_stencil;
19093   Read_GL_ATI_vertex_array_object;
19094   Read_GL_ATI_vertex_attrib_array_object;
19095   Read_GL_ATI_vertex_streams;
19096   Read_GL_AMD_performance_monitor;
19097   Read_GL_AMD_vertex_shader_tesselator;
19098   Read_GL_AMD_draw_buffers_blend;
19099   Read_GL_AMD_name_gen_delete;
19100   Read_GL_AMD_debug_output;
19101   Read_GL_AMD_stencil_operation_extended;
19102   Read_GL_EXT_blend_color;
19103   Read_GL_EXT_blend_func_separate;
19104   Read_GL_EXT_blend_minmax;
19105   Read_GL_EXT_color_subtable;
19106   Read_GL_EXT_compiled_vertex_array;
19107   Read_GL_EXT_convolution;
19108   Read_GL_EXT_coordinate_frame;
19109   Read_GL_EXT_copy_texture;
19110   Read_GL_EXT_cull_vertex;
19111   Read_GL_EXT_draw_range_elements;
19112   Read_GL_EXT_fog_coord;
19113   Read_GL_EXT_framebuffer_object;
19114   Read_GL_EXT_histogram;
19115   Read_GL_EXT_index_func;
19116   Read_GL_EXT_index_material;
19117   Read_GL_EXT_multi_draw_arrays;
19118   Read_GL_EXT_multisample;
19119   Read_GL_EXT_paletted_texture;
19120   Read_GL_EXT_pixel_transform;
19121   Read_GL_EXT_point_parameters;
19122   Read_GL_EXT_polygon_offset;
19123   Read_GL_EXT_secondary_color;
19124   Read_GL_EXT_stencil_two_side;
19125   Read_GL_EXT_subtexture;
19126   Read_GL_EXT_texture3D;
19127   Read_GL_EXT_texture_object;
19128   Read_GL_EXT_texture_perturb_normal;
19129   Read_GL_EXT_vertex_array;
19130   Read_GL_EXT_vertex_shader;
19131   Read_GL_EXT_vertex_weighting;
19132   Read_GL_EXT_depth_bounds_test;
19133   Read_GL_EXT_blend_equation_separate;
19134   Read_GL_EXT_stencil_clear_tag;
19135   Read_GL_EXT_framebuffer_blit;
19136   Read_GL_EXT_framebuffer_multisample;
19137   Read_GL_EXT_timer_query;
19138   Read_GL_EXT_gpu_program_parameters;
19139   Read_GL_EXT_bindable_uniform;
19140   Read_GL_EXT_draw_buffers2;
19141   Read_GL_EXT_draw_instanced;
19142   Read_GL_EXT_geometry_shader4;
19143   Read_GL_EXT_gpu_shader4;
19144   Read_GL_EXT_texture_array;
19145   Read_GL_EXT_texture_buffer_object;
19146   Read_GL_EXT_texture_integer;
19147   Read_GL_EXT_transform_feedback;
19148   Read_GL_EXT_direct_state_access;
19149   Read_GL_EXT_separate_shader_objects;
19150   Read_GL_EXT_shader_image_load_store;
19151   Read_GL_EXT_vertex_attrib_64bit;
19152   Read_GL_HP_image_transform;
19153   Read_GL_IBM_multimode_draw_arrays;
19154   Read_GL_IBM_vertex_array_lists;
19155   Read_GL_INGR_blend_func_separate;
19156   Read_GL_INTEL_parallel_arrays;
19157   Read_GL_KHR_blend_equation_advanced;
19158   Read_GL_MESA_resize_buffers;
19159   Read_GL_MESA_window_pos;
19160   Read_GL_NV_evaluators;
19161   Read_GL_NV_fence;
19162   Read_GL_NV_fragment_program;
19163   Read_GL_NV_half_float;
19164   Read_GL_NV_occlusion_query;
19165   Read_GL_NV_pixel_data_range;
19166   Read_GL_NV_point_sprite;
19167   Read_GL_NV_primitive_restart;
19168   Read_GL_NV_register_combiners;
19169   Read_GL_NV_register_combiners2;
19170   Read_GL_NV_vertex_array_range;
19171   Read_GL_NV_vertex_program;
19172   Read_GL_NV_depth_buffer_float;
19173   Read_GL_NV_framebuffer_multisample_coverage;
19174   Read_GL_NV_geometry_program4;
19175   Read_GL_NV_gpu_program4;
19176   Read_GL_NV_parameter_buffer_object;
19177   Read_GL_NV_transform_feedback;
19178   Read_GL_NV_conditional_render;
19179   Read_GL_NV_present_video;
19180   Read_GL_NV_explicit_multisample;
19181   Read_GL_NV_transform_feedback2;
19182   Read_GL_NV_video_capture;
19183   Read_GL_NV_copy_image;
19184   Read_GL_NV_shader_buffer_load;
19185   Read_GL_NV_vertex_buffer_unified_memory;
19186   Read_GL_NV_gpu_program5;
19187   Read_GL_NV_gpu_shader5;
19188   Read_GL_NV_vertex_attrib_integer_64bit;
19189   Read_GL_NV_vdpau_interop;
19190   Read_GL_NV_texture_barrier;
19191   Read_GL_NV_path_rendering;
19192   Read_GL_NV_bindless_texture;
19193   Read_GL_PGI_misc_hints;
19194   Read_GL_SGIS_detail_texture;
19195   Read_GL_SGIS_fog_function;
19196   Read_GL_SGIS_multisample;
19197   Read_GL_SGIS_pixel_texture;
19198   Read_GL_SGIS_point_parameters;
19199   Read_GL_SGIS_sharpen_texture;
19200   Read_GL_SGIS_texture4D;
19201   Read_GL_SGIS_texture_color_mask;
19202   Read_GL_SGIS_texture_filter4;
19203   Read_GL_SGIX_async;
19204   Read_GL_SGIX_flush_raster;
19205   Read_GL_SGIX_fragment_lighting;
19206   Read_GL_SGIX_framezoom;
19207   Read_GL_SGIX_igloo_interface;
19208   Read_GL_SGIX_instruments;
19209   Read_GL_SGIX_list_priority;
19210   Read_GL_SGIX_pixel_texture;
19211   Read_GL_SGIX_polynomial_ffd;
19212   Read_GL_SGIX_reference_plane;
19213   Read_GL_SGIX_sprite;
19214   Read_GL_SGIX_tag_sample_buffer;
19215   Read_GL_SGI_color_table;
19216   Read_GL_SUNX_constant_data;
19217   Read_GL_SUN_global_alpha;
19218   Read_GL_SUN_mesh_array;
19219   Read_GL_SUN_triangle_list;
19220   Read_GL_SUN_vertex;
19221
19222 {$IFDEF DGL_WIN}
19223   Read_WGL_ARB_buffer_region;
19224   Read_WGL_ARB_extensions_string;
19225   Read_WGL_ARB_make_current_read;
19226   Read_WGL_ARB_pbuffer;
19227   Read_WGL_ARB_pixel_format;
19228   Read_WGL_ARB_pixel_format_float;
19229   Read_WGL_ARB_render_texture;
19230   Read_WGL_ARB_create_context;
19231   Read_WGL_AMD_gpu_association;
19232   Read_WGL_EXT_display_color_table;
19233   Read_WGL_EXT_extensions_string;
19234   Read_WGL_EXT_make_current_read;
19235   Read_WGL_EXT_pbuffer;
19236   Read_WGL_EXT_pixel_format;
19237   Read_WGL_EXT_swap_control;
19238   Read_WGL_I3D_digital_video_control;
19239   Read_WGL_I3D_gamma;
19240   Read_WGL_I3D_genlock;
19241   Read_WGL_I3D_image_buffer;
19242   Read_WGL_I3D_swap_frame_lock;
19243   Read_WGL_I3D_swap_frame_usage;
19244   Read_WGL_NV_vertex_array_range;
19245   Read_WGL_NV_present_video;
19246   Read_WGL_NV_video_output;
19247   Read_WGL_NV_swap_group;
19248   Read_WGL_NV_gpu_affinity;
19249   Read_WGL_NV_video_capture;
19250   Read_WGL_NV_copy_image;
19251   Read_WGL_NV_DX_interop;
19252   Read_WGL_OML_sync_control;
19253   Read_WGL_3DL_stereo_control;
19254
19255   Read_WIN_draw_range_elements;
19256   Read_WIN_swap_hint;
19257 {$ENDIF}
19258
19259   ExtensionsRead := True;
19260 end;
19261
19262 // =============================================================================
19263 //  ReadCoreVersion
19264 // =============================================================================
19265
19266 procedure ReadCoreVersion;
19267 var
19268   AnsiBuffer: AnsiString;
19269   Buffer: String;
19270   MajorVersion, MinorVersion: Integer;
19271
19272   procedure TrimAndSplitVersionString(Buffer: String; var Max, Min: Integer);
19273     // Peels out the X.Y form from the given Buffer which must contain a version string like "text Minor.Major.Build text"
19274     // at least however "Major.Minor".
19275   var
19276     Separator: Integer;
19277   begin
19278     try
19279       // There must be at least one dot to separate major and minor version number.
19280       Separator := Pos('.', Buffer);
19281       // At least one number must be before and one after the dot.
19282       if (Separator > 1) and (Separator < Length(Buffer)) and (AnsiChar(Buffer[Separator - 1]) in ['0'..'9']) and
19283       (AnsiChar(Buffer[Separator + 1]) in ['0'..'9']) then
19284       begin
19285         // OK, it's a valid version string. Now remove unnecessary parts.
19286         Dec(Separator);
19287         // Find last non-numeric character before version number.
19288         while (Separator > 0) and (AnsiChar(Buffer[Separator]) in ['0'..'9']) do
19289           Dec(Separator);
19290         // Delete leading characters which do not belong to the version string.
19291         Delete(Buffer, 1, Separator);
19292         Separator := Pos('.', Buffer) + 1;
19293         // Find first non-numeric character after version number
19294         while (Separator <= Length(Buffer)) and (AnsiChar(Buffer[Separator]) in ['0'..'9']) do
19295           Inc(Separator);
19296         // delete trailing characters not belonging to the version string
19297         Delete(Buffer, Separator, 255);
19298         // Now translate the numbers.
19299         Separator := Pos('.', Buffer); // This is necessary because the buffer length might have changed.
19300         Max := StrToInt(Copy(Buffer, 1, Separator - 1));
19301         Min := StrToInt(Copy(Buffer, Separator + 1, 1));
19302       end
19303       else
19304         Abort;
19305     except
19306       Min := 0;
19307       Max := 0;
19308     end;
19309   end;
19310
19311
19312 begin
19313   // determine version of implementation
19314   // GL
19315   if not Assigned(@glGetString) then
19316     glGetString := dglGetProcAddress('glGetString');
19317
19318   AnsiBuffer := glGetString(GL_VERSION);
19319   Buffer := String(AnsiBuffer);
19320
19321   TrimAndSplitVersionString(Buffer, MajorVersion, MinorVersion);
19322
19323   GL_VERSION_1_0 := True;
19324   GL_VERSION_1_1 := False;
19325   GL_VERSION_1_2 := False;
19326   GL_VERSION_1_3 := False;
19327   GL_VERSION_1_4 := False;
19328   GL_VERSION_1_5 := False;
19329   GL_VERSION_2_0 := False;
19330   GL_VERSION_2_1 := False;
19331   GL_VERSION_3_0 := False;
19332   GL_VERSION_3_1 := False;
19333   GL_VERSION_3_2 := False;
19334   GL_VERSION_3_3 := False;
19335   GL_VERSION_4_0 := False;
19336   GL_VERSION_4_1 := False;
19337   GL_VERSION_4_2 := False;
19338   GL_VERSION_4_3 := False;
19339   GL_VERSION_4_4 := False;
19340   GL_VERSION_4_5 := False;
19341
19342   if MajorVersion = 1 then
19343   begin
19344     if MinorVersion >= 1 then
19345       GL_VERSION_1_1 := True;
19346     if MinorVersion >= 2 then
19347       GL_VERSION_1_2 := True;
19348     if MinorVersion >= 3 then
19349       GL_VERSION_1_3 := True;
19350     if MinorVersion >= 4 then
19351       GL_VERSION_1_4 := True;
19352     if MinorVersion >= 5 then
19353       GL_VERSION_1_5 := True;
19354   end;
19355
19356   if MajorVersion >= 2 then
19357   begin
19358     GL_VERSION_1_1 := True;
19359     GL_VERSION_1_2 := True;
19360     GL_VERSION_1_3 := True;
19361     GL_VERSION_1_4 := True;
19362     GL_VERSION_1_5 := True;
19363     GL_VERSION_2_0 := True;
19364
19365     if MinorVersion >= 1 then
19366       GL_VERSION_2_1 := True;
19367   end;
19368
19369   if MajorVersion >= 3 then
19370   begin
19371     GL_VERSION_2_1 := True;
19372     GL_VERSION_3_0 := True;
19373
19374     if MinorVersion >= 1 then
19375       GL_VERSION_3_1 := True;
19376     if MinorVersion >= 2 then
19377       GL_VERSION_3_2 := True;
19378     if MinorVersion >= 3 then
19379       GL_VERSION_3_3 := True;
19380   end;
19381
19382   if MajorVersion >= 4 then
19383   begin
19384     GL_VERSION_3_1 := True;
19385     GL_VERSION_3_2 := True;
19386     GL_VERSION_3_3 := True;
19387     GL_VERSION_4_0 := True;
19388
19389     if MinorVersion >= 1 then
19390       GL_VERSION_4_1 := True;
19391     if MinorVersion >= 2 then
19392       GL_VERSION_4_2 := True;
19393     if MinorVersion >= 3 then
19394       GL_VERSION_4_3 := True;
19395     if MinorVersion >= 4 then
19396       GL_VERSION_4_4 := True;
19397     if MinorVersion >= 4 then
19398       GL_VERSION_4_5:= True;
19399   end;
19400
19401   // GLU
19402   GLU_VERSION_1_1 := False;
19403   GLU_VERSION_1_2 := False;
19404   GLU_VERSION_1_3 := False;
19405
19406   if Assigned(gluGetString) then begin
19407     AnsiBuffer := gluGetString(GLU_VERSION);
19408     Buffer := String(AnsiBuffer);
19409
19410     TrimAndSplitVersionString(Buffer, Majorversion, MinorVersion);
19411
19412     GLU_VERSION_1_1 := True;
19413
19414     if MinorVersion >= 2 then
19415       GLU_VERSION_1_2 := True;
19416
19417     if MinorVersion >= 3 then
19418       GLU_VERSION_1_3 := True;
19419   end;
19420 end;
19421
19422
19423 // =============================================================================
19424 //  ReadImplementationProperties
19425 // =============================================================================
19426
19427 procedure ReadImplementationProperties;
19428 var
19429   Buffer: Ansistring;
19430 begin
19431   ReadCoreVersion;
19432
19433   // Check all extensions
19434   Buffer := Int_GetExtensionString;
19435
19436   // 3DFX
19437   GL_3DFX_multisample := Int_CheckExtension(Buffer, 'GL_3DFX_multisample');
19438   GL_3DFX_tbuffer := Int_CheckExtension(Buffer, 'GL_3DFX_tbuffer');
19439   GL_3DFX_texture_compression_FXT1 := Int_CheckExtension(Buffer, 'GL_3DFX_texture_compression_FXT1');
19440
19441   // APPLE
19442   GL_APPLE_client_storage := Int_CheckExtension(Buffer, 'GL_APPLE_client_storage');
19443   GL_APPLE_element_array := Int_CheckExtension(Buffer, 'GL_APPLE_element_array');
19444   GL_APPLE_fence := Int_CheckExtension(Buffer, 'GL_APPLE_fence');
19445   GL_APPLE_specular_vector := Int_CheckExtension(Buffer, 'GL_APPLE_specular_vector');
19446   GL_APPLE_transform_hint := Int_CheckExtension(Buffer, 'GL_APPLE_transform_hint');
19447   GL_APPLE_vertex_array_object := Int_CheckExtension(Buffer, 'GL_APPLE_vertex_array_object');
19448   GL_APPLE_vertex_array_range := Int_CheckExtension(Buffer, 'GL_APPLE_vertex_array_range');
19449   GL_APPLE_ycbcr_422 := Int_CheckExtension(Buffer, 'GL_APPLE_ycbcr_422');
19450   GL_APPLE_texture_range := Int_CheckExtension(Buffer, 'GL_APPLE_texture_range');
19451   GL_APPLE_float_pixels := Int_CheckExtension(Buffer, 'GL_APPLE_float_pixels');
19452   GL_APPLE_vertex_program_evaluators := Int_CheckExtension(Buffer, 'GL_APPLE_vertex_program_evaluators');
19453   GL_APPLE_aux_depth_stencil := Int_CheckExtension(Buffer, 'GL_APPLE_aux_depth_stencil');
19454   GL_APPLE_object_purgeable := Int_CheckExtension(Buffer, 'GL_APPLE_object_purgeable');
19455   GL_APPLE_row_bytes := Int_CheckExtension(Buffer, 'GL_APPLE_row_bytes');
19456   GL_APPLE_rgb_422 := Int_CheckExtension(Buffer, 'GL_APPLE_rgb_422');
19457
19458   // ARB
19459   GL_ARB_depth_texture := Int_CheckExtension(Buffer, 'GL_ARB_depth_texture');
19460   GL_ARB_fragment_program := Int_CheckExtension(Buffer, 'GL_ARB_fragment_program');
19461   GL_ARB_imaging := Int_CheckExtension(Buffer, 'GL_ARB_imaging');
19462   GL_ARB_matrix_palette := Int_CheckExtension(Buffer, 'GL_ARB_matrix_palette');
19463   GL_ARB_multisample := Int_CheckExtension(Buffer, 'GL_ARB_multisample');
19464   GL_ARB_multitexture := Int_CheckExtension(Buffer, 'GL_ARB_multitexture');
19465   GL_ARB_point_parameters := Int_CheckExtension(Buffer, 'GL_ARB_point_parameters');
19466   GL_ARB_shadow := Int_CheckExtension(Buffer, 'GL_ARB_shadow');
19467   GL_ARB_shadow_ambient := Int_CheckExtension(Buffer, 'GL_ARB_shadow_ambient');
19468   GL_ARB_sparse_texture := Int_CheckExtension(Buffer, 'GL_ARB_sparse_texture');
19469   GL_ARB_texture_border_clamp := Int_CheckExtension(Buffer, 'GL_ARB_texture_border_clamp');
19470   GL_ARB_texture_compression := Int_CheckExtension(Buffer, 'GL_ARB_texture_compression');
19471   GL_ARB_texture_cube_map := Int_CheckExtension(Buffer, 'GL_ARB_texture_cube_map');
19472   GL_ARB_texture_env_add := Int_CheckExtension(Buffer, 'GL_ARB_texture_env_add');
19473   GL_ARB_texture_env_combine := Int_CheckExtension(Buffer, 'GL_ARB_texture_env_combine');
19474   GL_ARB_texture_env_crossbar := Int_CheckExtension(Buffer, 'GL_ARB_texture_env_crossbar');
19475   GL_ARB_texture_env_dot3 := Int_CheckExtension(Buffer, 'GL_ARB_texture_env_dot3');
19476   GL_ARB_texture_mirrored_repeat := Int_CheckExtension(Buffer, 'GL_ARB_texture_mirrored_repeat');
19477   GL_ARB_transpose_matrix := Int_CheckExtension(Buffer, 'GL_ARB_transpose_matrix');
19478   GL_ARB_vertex_blend := Int_CheckExtension(Buffer, 'GL_ARB_vertex_blend');
19479   GL_ARB_vertex_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_vertex_buffer_object');
19480   GL_ARB_vertex_program := Int_CheckExtension(Buffer, 'GL_ARB_vertex_program');
19481   GL_ARB_window_pos := Int_CheckExtension(Buffer, 'GL_ARB_window_pos');
19482   GL_ARB_shader_objects := Int_CheckExtension(Buffer, 'GL_ARB_shader_objects');
19483   GL_ARB_vertex_shader := Int_CheckExtension(Buffer, 'GL_ARB_vertex_shader');
19484   GL_ARB_fragment_shader := Int_CheckExtension(Buffer, 'GL_ARB_fragment_shader');
19485   GL_ARB_occlusion_query := Int_CheckExtension(Buffer, 'GL_ARB_occlusion_query');
19486   GL_ARB_shading_language_100 := Int_CheckExtension(Buffer, 'GL_ARB_shading_language_100');
19487   GL_ARB_point_sprite := Int_CheckExtension(Buffer, 'GL_ARB_point_sprite');
19488   GL_ARB_texture_non_power_of_two := Int_CheckExtension(Buffer, 'GL_ARB_texture_non_power_of_two');
19489   GL_ARB_fragment_program_shadow := Int_CheckExtension(Buffer, 'GL_ARB_fragment_program_shadow');
19490   GL_ARB_draw_buffers := Int_CheckExtension(Buffer, 'GL_ARB_draw_buffers');
19491   GL_ARB_texture_rectangle := Int_CheckExtension(Buffer, 'GL_ARB_texture_rectangle');
19492   GL_ARB_color_buffer_float := Int_CheckExtension(Buffer, 'GL_ARB_color_buffer_float');
19493   GL_ARB_half_float_pixel := Int_CheckExtension(Buffer, 'GL_ARB_half_float_pixel');
19494   GL_ARB_texture_float := Int_CheckExtension(Buffer, 'GL_ARB_texture_float');
19495   GL_ARB_pixel_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_pixel_buffer_object');
19496   GL_ARB_depth_buffer_float := Int_CheckExtension(Buffer, 'GL_ARB_depth_buffer_float');
19497   GL_ARB_draw_instanced := Int_CheckExtension(Buffer, 'GL_ARB_draw_instanced');
19498   GL_ARB_framebuffer_object := Int_CheckExtension(Buffer, 'GL_ARB_framebuffer_object');
19499   GL_ARB_framebuffer_sRGB := Int_CheckExtension(Buffer, 'GL_ARB_framebuffer_sRGB');
19500   GL_ARB_geometry_shader4 := Int_CheckExtension(Buffer, 'GL_ARB_geometry_shader4');
19501   GL_ARB_half_float_vertex := Int_CheckExtension(Buffer, 'GL_ARB_half_float_vertex');
19502   GL_ARB_instanced_arrays := Int_CheckExtension(Buffer, 'GL_ARB_instanced_arrays');
19503   GL_ARB_map_buffer_range := Int_CheckExtension(Buffer, 'GL_ARB_map_buffer_range');
19504   GL_ARB_texture_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_texture_buffer_object');
19505   GL_ARB_texture_compression_rgtc := Int_CheckExtension(Buffer, 'GL_ARB_texture_compression_rgtc');
19506   GL_ARB_texture_rg := Int_CheckExtension(Buffer, 'GL_ARB_texture_rg');
19507   GL_ARB_vertex_array_object := Int_CheckExtension(Buffer, 'GL_ARB_vertex_array_object');
19508   GL_ARB_uniform_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_uniform_buffer_object');
19509   GL_ARB_compatibility := Int_CheckExtension(Buffer, 'GL_ARB_compatibility');
19510   GL_ARB_copy_buffer := Int_CheckExtension(Buffer, 'GL_ARB_copy_buffer');
19511   GL_ARB_shader_texture_lod := Int_CheckExtension(Buffer, 'GL_ARB_shader_texture_lod');
19512   GL_ARB_depth_clamp := Int_CheckExtension(Buffer, 'GL_ARB_depth_clamp');
19513   GL_ARB_draw_elements_base_vertex := Int_CheckExtension(Buffer, 'GL_ARB_draw_elements_base_vertex');
19514   GL_ARB_fragment_coord_conventions := Int_CheckExtension(Buffer, 'GL_ARB_fragment_coord_conventions');
19515   GL_ARB_provoking_vertex := Int_CheckExtension(Buffer, 'GL_ARB_provoking_vertex');
19516   GL_ARB_seamless_cube_map := Int_CheckExtension(Buffer, 'GL_ARB_seamless_cube_map');
19517   GL_ARB_sync := Int_CheckExtension(Buffer, 'GL_ARB_sync');
19518   GL_ARB_texture_multisample := Int_CheckExtension(Buffer, 'GL_ARB_texture_multisample');
19519   GL_ARB_vertex_array_bgra := Int_CheckExtension(Buffer, 'GL_ARB_vertex_array_bgra');
19520   GL_ARB_draw_buffers_blend := Int_CheckExtension(Buffer, 'GL_ARB_draw_buffers_blend');
19521   GL_ARB_sample_shading := Int_CheckExtension(Buffer, 'GL_ARB_sample_shading');
19522   GL_ARB_texture_cube_map_array := Int_CheckExtension(Buffer, 'GL_ARB_texture_cube_map_array');
19523   GL_ARB_texture_gather := Int_CheckExtension(Buffer, 'GL_ARB_texture_gather');
19524   GL_ARB_texture_query_lod := Int_CheckExtension(Buffer, 'GL_ARB_texture_query_lod');
19525   GL_ARB_shading_language_include := Int_CheckExtension(Buffer, 'GL_ARB_shading_language_include');
19526   GL_ARB_texture_compression_bptc := Int_CheckExtension(Buffer, 'GL_ARB_texture_compression_bptc');
19527   GL_ARB_blend_func_extended := Int_CheckExtension(Buffer, 'GL_ARB_blend_func_extended');
19528   GL_ARB_explicit_attrib_location := Int_CheckExtension(Buffer, 'GL_ARB_explicit_attrib_location');
19529   GL_ARB_occlusion_query2 := Int_CheckExtension(Buffer, 'GL_ARB_occlusion_query2');
19530   GL_ARB_sampler_objects := Int_CheckExtension(Buffer, 'GL_ARB_sampler_objects');
19531   GL_ARB_shader_bit_encoding := Int_CheckExtension(Buffer, 'GL_ARB_shader_bit_encoding');
19532   GL_ARB_texture_rgb10_a2ui := Int_CheckExtension(Buffer, 'GL_ARB_texture_rgb10_a2ui');
19533   GL_ARB_texture_swizzle := Int_CheckExtension(Buffer, 'GL_ARB_texture_swizzle');
19534   GL_ARB_timer_query := Int_CheckExtension(Buffer, 'GL_ARB_timer_query');
19535   GL_ARB_vertex_type_2_10_10_10_rev := Int_CheckExtension(Buffer, 'GL_ARB_vertex_type_2_10_10_10_rev');
19536   GL_ARB_draw_indirect := Int_CheckExtension(Buffer, 'GL_ARB_draw_indirect');
19537   GL_ARB_gpu_shader5 := Int_CheckExtension(Buffer, 'GL_ARB_gpu_shader5');
19538   GL_ARB_gpu_shader_fp64 := Int_CheckExtension(Buffer, 'GL_ARB_gpu_shader_fp64');
19539   GL_ARB_shader_subroutine := Int_CheckExtension(Buffer, 'GL_ARB_shader_subroutine');
19540   GL_ARB_tessellation_shader := Int_CheckExtension(Buffer, 'GL_ARB_tessellation_shader');
19541   GL_ARB_texture_buffer_object_rgb32 := Int_CheckExtension(Buffer, 'GL_ARB_texture_buffer_object_rgb32');
19542   GL_ARB_transform_feedback2 := Int_CheckExtension(Buffer, 'GL_ARB_transform_feedback2');
19543   GL_ARB_transform_feedback3 := Int_CheckExtension(Buffer, 'GL_ARB_transform_feedback3');
19544   GL_ARB_ES2_compatibility := Int_CheckExtension(Buffer, 'GL_ARB_ES2_compatibility');
19545   GL_ARB_get_program_binary := Int_CheckExtension(Buffer, 'GL_ARB_get_program_binary');
19546   GL_ARB_separate_shader_objects := Int_CheckExtension(Buffer, 'GL_ARB_separate_shader_objects');
19547   GL_ARB_shader_precision := Int_CheckExtension(Buffer, 'GL_ARB_shader_precision');
19548   GL_ARB_vertex_attrib_64bit := Int_CheckExtension(Buffer, 'GL_ARB_vertex_attrib_64bit');
19549   GL_ARB_viewport_array := Int_CheckExtension(Buffer, 'GL_ARB_viewport_array');
19550   GL_ARB_compute_variable_group_size := Int_CheckExtension(Buffer, 'GL_ARB_compute_variable_group_size');
19551
19552   // GL 4.2
19553   GL_ARB_base_instance := Int_CheckExtension(Buffer, 'GL_ARB_base_instance');
19554   GL_ARB_shading_language_420pack := Int_CheckExtension(Buffer, 'GL_ARB_shading_language_420pack');
19555   GL_ARB_transform_feedback_instanced := Int_CheckExtension(Buffer, 'GL_ARB_transform_feedback_instanced');
19556   GL_ARB_compressed_texture_pixel_storage := Int_CheckExtension(Buffer, 'GL_ARB_compressed_texture_pixel_storage');
19557   GL_ARB_conservative_depth := Int_CheckExtension(Buffer, 'GL_ARB_conservative_depth');
19558   GL_ARB_internalformat_query := Int_CheckExtension(Buffer, 'GL_ARB_internalformat_query');
19559   GL_ARB_map_buffer_alignment := Int_CheckExtension(Buffer, 'GL_ARB_map_buffer_alignment');
19560   GL_ARB_shader_atomic_counters := Int_CheckExtension(Buffer, 'GL_ARB_shader_atomic_counters');
19561   GL_ARB_shader_image_load_store := Int_CheckExtension(Buffer, 'GL_ARB_shader_image_load_store');
19562   GL_ARB_shading_language_packing := Int_CheckExtension(Buffer, 'GL_ARB_shading_language_packing');
19563   GL_ARB_texture_storage := Int_CheckExtension(Buffer, 'GL_ARB_texture_storage');
19564
19565   // GL 4.3
19566   GL_ARB_arrays_of_arrays := Int_CheckExtension(Buffer, 'GL_ARB_arrays_of_arrays');
19567   GL_ARB_fragment_layer_viewport := Int_CheckExtension(Buffer, 'GL_ARB_fragment_layer_viewport');
19568   GL_ARB_shader_image_size := Int_CheckExtension(Buffer, 'GL_ARB_shader_image_size');
19569   GL_ARB_ES3_compatibility := Int_CheckExtension(Buffer, 'GL_ARB_ES3_compatibility');
19570   GL_ARB_clear_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_clear_buffer_object');
19571   GL_ARB_compute_shader := Int_CheckExtension(Buffer, 'GL_ARB_compute_shader');
19572   GL_ARB_copy_image := Int_CheckExtension(Buffer, 'GL_ARB_copy_image');
19573   GL_KHR_debug := Int_CheckExtension(Buffer, 'GL_KHR_debug');
19574   GL_ARB_explicit_uniform_location := Int_CheckExtension(Buffer, 'GL_ARB_explicit_uniform_location');
19575   GL_ARB_framebuffer_no_attachments := Int_CheckExtension(Buffer, 'GL_ARB_framebuffer_no_attachments');
19576   GL_ARB_internalformat_query2 := Int_CheckExtension(Buffer, 'GL_ARB_internalformat_query2');
19577   GL_ARB_invalidate_subdata := Int_CheckExtension(Buffer, 'GL_ARB_invalidate_subdata');
19578   GL_ARB_multi_draw_indirect := Int_CheckExtension(Buffer, 'GL_ARB_multi_draw_indirect');
19579   GL_ARB_program_interface_query := Int_CheckExtension(Buffer, 'GL_ARB_program_interface_query');
19580   GL_ARB_robust_buffer_access_behavior := Int_CheckExtension(Buffer, 'GL_ARB_robust_buffer_access_behavior');
19581   GL_ARB_shader_storage_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_shader_storage_buffer_object');
19582   GL_ARB_stencil_texturing := Int_CheckExtension(Buffer, 'GL_ARB_stencil_texturing');
19583   GL_ARB_texture_buffer_range := Int_CheckExtension(Buffer, 'GL_ARB_texture_buffer_range');
19584   GL_ARB_texture_query_levels := Int_CheckExtension(Buffer, 'GL_ARB_texture_query_levels');
19585   GL_ARB_texture_storage_multisample := Int_CheckExtension(Buffer, 'GL_ARB_texture_storage_multisample');
19586   GL_ARB_texture_view := Int_CheckExtension(Buffer, 'GL_ARB_texture_view');
19587   GL_ARB_vertex_attrib_binding := Int_CheckExtension(Buffer, 'GL_ARB_vertex_attrib_binding');
19588   GL_ARB_cl_event := Int_CheckExtension(Buffer, 'GL_ARB_cl_event');
19589   GL_ARB_debug_output := Int_CheckExtension(Buffer, 'GL_ARB_debug_output');
19590   GL_ARB_robustness := Int_CheckExtension(Buffer, 'GL_ARB_robustness');
19591   GL_ARB_shader_stencil_export := Int_CheckExtension(Buffer, 'GL_ARB_shader_stencil_export');
19592
19593   // GL 4.4
19594   GL_ARB_buffer_storage := Int_CheckExtension(Buffer, 'GL_ARB_buffer_storage');
19595   GL_ARB_clear_texture := Int_CheckExtension(Buffer, 'GL_ARB_clear_texture');
19596   GL_ARB_enhanced_layouts := Int_CheckExtension(Buffer, 'GL_ARB_enhanced_layouts');
19597   GL_ARB_multi_bind := Int_CheckExtension(Buffer, 'GL_ARB_multi_bind');
19598   GL_ARB_query_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_query_buffer_object');
19599   GL_ARB_texture_mirror_clamp_to_edge:= Int_CheckExtension(Buffer, 'GL_ARB_texture_mirror_clamp_to_edge');
19600   GL_ARB_texture_stencil8 := Int_CheckExtension(Buffer, 'GL_ARB_texture_stencil8');
19601   GL_ARB_vertex_type_10f_11f_11f_rev := Int_CheckExtension(Buffer, 'GL_ARB_vertex_type_10f_11f_11f_rev');
19602   GL_ARB_bindless_texture := Int_CheckExtension(Buffer, 'GL_ARB_bindless_texture');
19603   GL_ARB_sparse_texture := Int_CheckExtension(Buffer, 'GL_ARB_sparse_texture');
19604
19605   // GL 4.5
19606   GL_ARB_clip_control := Int_CheckExtension(Buffer, 'GL_ARB_clip_control');
19607   GL_ARB_cull_distance := Int_CheckExtension(Buffer, 'GL_ARB_cull_distance');
19608   GL_ARB_ES3_1_compatibility := Int_CheckExtension(Buffer, 'GL_ARB_ES3_1_compatibility');
19609   GL_ARB_conditional_render_inverted := Int_CheckExtension(Buffer, 'GL_ARB_conditional_render_inverted');
19610   GL_KHR_context_flush_control := Int_CheckExtension(Buffer, 'GL_KHR_context_flush_control');
19611   GL_ARB_derivative_control := Int_CheckExtension(Buffer, 'GL_ARB_derivative_control');
19612   GL_ARB_direct_state_access := Int_CheckExtension(Buffer, 'GL_ARB_direct_state_access');
19613   GL_ARB_get_texture_sub_image := Int_CheckExtension(Buffer, 'GL_ARB_get_texture_sub_image');
19614   GL_KHR_robustness := Int_CheckExtension(Buffer, 'GL_KHR_robustness');
19615   GL_ARB_shader_texture_image_samples := Int_CheckExtension(Buffer, 'GL_ARB_shader_texture_image_samples');
19616   GL_ARB_texture_barrier := Int_CheckExtension(Buffer, 'GL_ARB_texture_barrier');
19617
19618   // ATI/AMD
19619   GL_ATI_draw_buffers := Int_CheckExtension(Buffer, 'GL_ATI_draw_buffers');
19620   GL_ATI_element_array := Int_CheckExtension(Buffer, 'GL_ATI_element_array');
19621   GL_ATI_envmap_bumpmap := Int_CheckExtension(Buffer, 'GL_ATI_envmap_bumpmap');
19622   GL_ATI_fragment_shader := Int_CheckExtension(Buffer, 'GL_ATI_fragment_shader');
19623   GL_ATI_map_object_buffer := Int_CheckExtension(Buffer, 'GL_ATI_map_object_buffer');
19624   GL_ATI_pn_triangles := Int_CheckExtension(Buffer, 'GL_ATI_pn_triangles');
19625   GL_ATI_separate_stencil := Int_CheckExtension(Buffer, 'GL_ATI_separate_stencil');
19626   GL_ATI_text_fragment_shader := Int_CheckExtension(Buffer, 'GL_ATI_text_fragment_shader');
19627   GL_ATI_texture_env_combine3 := Int_CheckExtension(Buffer, 'GL_ATI_texture_env_combine3');
19628   GL_ATI_texture_float := Int_CheckExtension(Buffer, 'GL_ATI_texture_float');
19629   GL_ATI_texture_mirror_once := Int_CheckExtension(Buffer, 'GL_ATI_texture_mirror_once');
19630   GL_ATI_vertex_array_object := Int_CheckExtension(Buffer, 'GL_ATI_vertex_array_object');
19631   GL_ATI_vertex_attrib_array_object := Int_CheckExtension(Buffer, 'GL_ATI_vertex_attrib_array_object');
19632   GL_ATI_vertex_streams := Int_CheckExtension(Buffer, 'GL_ATI_vertex_streams');
19633   GL_ATI_meminfo := Int_CheckExtension(Buffer, 'GL_ATI_meminfo');
19634   GL_AMD_performance_monitor := Int_CheckExtension(Buffer, 'GL_AMD_performance_monitor');
19635   GL_AMD_texture_texture4 := Int_CheckExtension(Buffer, 'GL_AMD_texture_texture4');
19636   GL_AMD_vertex_shader_tesselator := Int_CheckExtension(Buffer, 'GL_AMD_vertex_shader_tesselator');
19637   GL_AMD_draw_buffers_blend := Int_CheckExtension(Buffer, 'GL_AMD_draw_buffers_blend');
19638   GL_AMD_shader_stencil_export := Int_CheckExtension(Buffer, 'GL_AMD_shader_stencil_export');
19639   GL_AMD_seamless_cubemap_per_texture := Int_CheckExtension(Buffer, 'GL_AMD_seamless_cubemap_per_texture');
19640   GL_AMD_conservative_depth := Int_CheckExtension(Buffer, 'GL_AMD_conservative_depth');
19641   GL_AMD_name_gen_delete := Int_CheckExtension(Buffer, 'GL_AMD_name_gen_delete');
19642   GL_AMD_debug_output := Int_CheckExtension(Buffer, 'GL_AMD_debug_output');
19643   GL_AMD_transform_feedback3_lines_triangles := Int_CheckExtension(Buffer, 'GL_AMD_transform_feedback3_lines_triangles');
19644   GL_AMD_depth_clamp_separate := Int_CheckExtension(Buffer, 'GL_AMD_depth_clamp_separate');
19645   // 4.3
19646   GL_AMD_pinned_memory := Int_CheckExtension(Buffer, 'GL_AMD_pinned_memory');
19647   GL_AMD_stencil_operation_extended := Int_CheckExtension(Buffer, 'GL_AMD_stencil_operation_extended');
19648   GL_AMD_vertex_shader_viewport_index := Int_CheckExtension(Buffer, 'GL_AMD_vertex_shader_viewport_index');
19649   GL_AMD_vertex_shader_layer := Int_CheckExtension(Buffer, 'GL_AMD_vertex_shader_layer');
19650   GL_AMD_query_buffer_object := Int_CheckExtension(Buffer, 'GL_AMD_query_buffer_object');
19651
19652   // EXT
19653   GL_EXT_422_pixels := Int_CheckExtension(Buffer, 'GL_EXT_422_pixels');
19654   GL_EXT_abgr := Int_CheckExtension(Buffer, 'GL_EXT_abgr');
19655   GL_EXT_bgra := Int_CheckExtension(Buffer, 'GL_EXT_bgra');
19656   GL_EXT_blend_color := Int_CheckExtension(Buffer, 'GL_EXT_blend_color');
19657   GL_EXT_blend_func_separate := Int_CheckExtension(Buffer, 'GL_EXT_blend_func_separate');
19658   GL_EXT_blend_logic_op := Int_CheckExtension(Buffer, 'GL_EXT_blend_logic_op');
19659   GL_EXT_blend_minmax := Int_CheckExtension(Buffer, 'GL_EXT_blend_minmax');
19660   GL_EXT_blend_subtract := Int_CheckExtension(Buffer, 'GL_EXT_blend_subtract');
19661   GL_EXT_clip_volume_hint := Int_CheckExtension(Buffer, 'GL_EXT_clip_volume_hint');
19662   GL_EXT_cmyka := Int_CheckExtension(Buffer, 'GL_EXT_cmyka');
19663   GL_EXT_color_matrix := Int_CheckExtension(Buffer, 'GL_EXT_color_matrix');
19664   GL_EXT_color_subtable := Int_CheckExtension(Buffer, 'GL_EXT_color_subtable');
19665   GL_EXT_compiled_vertex_array := Int_CheckExtension(Buffer, 'GL_EXT_compiled_vertex_array');
19666   GL_EXT_convolution := Int_CheckExtension(Buffer, 'GL_EXT_convolution');
19667   GL_EXT_coordinate_frame := Int_CheckExtension(Buffer, 'GL_EXT_coordinate_frame');
19668   GL_EXT_copy_texture := Int_CheckExtension(Buffer, 'GL_EXT_copy_texture');
19669   GL_EXT_cull_vertex := Int_CheckExtension(Buffer, 'GL_EXT_cull_vertex');
19670   GL_EXT_draw_range_elements := Int_CheckExtension(Buffer, 'GL_EXT_draw_range_elements');
19671   GL_EXT_fog_coord := Int_CheckExtension(Buffer, 'GL_EXT_fog_coord');
19672   GL_EXT_framebuffer_object := Int_CheckExtension(Buffer, 'GL_EXT_framebuffer_object');
19673   GL_EXT_histogram := Int_CheckExtension(Buffer, 'GL_EXT_histogram');
19674   GL_EXT_index_array_formats := Int_CheckExtension(Buffer, 'GL_EXT_index_array_formats');
19675   GL_EXT_index_func := Int_CheckExtension(Buffer, 'GL_EXT_index_func');
19676   GL_EXT_index_material := Int_CheckExtension(Buffer, 'GL_EXT_index_material');
19677   GL_EXT_index_texture := Int_CheckExtension(Buffer, 'GL_EXT_index_texture');
19678   GL_EXT_light_texture := Int_CheckExtension(Buffer, 'GL_EXT_light_texture');
19679   GL_EXT_misc_attribute := Int_CheckExtension(Buffer, 'GL_EXT_misc_attribute');
19680   GL_EXT_multi_draw_arrays := Int_CheckExtension(Buffer, 'GL_EXT_multi_draw_arrays');
19681   GL_EXT_multisample := Int_CheckExtension(Buffer, 'GL_EXT_multisample');
19682   GL_EXT_packed_pixels := Int_CheckExtension(Buffer, 'GL_EXT_packed_pixels');
19683   GL_EXT_paletted_texture := Int_CheckExtension(Buffer, 'GL_EXT_paletted_texture');
19684   GL_EXT_pixel_transform := Int_CheckExtension(Buffer, 'GL_EXT_pixel_transform');
19685   GL_EXT_pixel_transform_color_table := Int_CheckExtension(Buffer, 'GL_EXT_pixel_transform_color_table');
19686   GL_EXT_point_parameters := Int_CheckExtension(Buffer, 'GL_EXT_point_parameters');
19687   GL_EXT_polygon_offset := Int_CheckExtension(Buffer, 'GL_EXT_polygon_offset');
19688   GL_EXT_rescale_normal := Int_CheckExtension(Buffer, 'GL_EXT_rescale_normal');
19689   GL_EXT_secondary_color := Int_CheckExtension(Buffer, 'GL_EXT_secondary_color');
19690   GL_EXT_separate_specular_color := Int_CheckExtension(Buffer, 'GL_EXT_separate_specular_color');
19691   GL_EXT_shadow_funcs := Int_CheckExtension(Buffer, 'GL_EXT_shadow_funcs');
19692   GL_EXT_shared_texture_palette := Int_CheckExtension(Buffer, 'GL_EXT_shared_texture_palette');
19693   GL_EXT_stencil_two_side := Int_CheckExtension(Buffer, 'GL_EXT_stencil_two_side');
19694   GL_EXT_stencil_wrap := Int_CheckExtension(Buffer, 'GL_EXT_stencil_wrap');
19695   GL_EXT_subtexture := Int_CheckExtension(Buffer, 'GL_EXT_subtexture');
19696   GL_EXT_texture := Int_CheckExtension(Buffer, 'GL_EXT_texture');
19697   GL_EXT_texture3D := Int_CheckExtension(Buffer, 'GL_EXT_texture3D');
19698   GL_EXT_texture_compression_s3tc := Int_CheckExtension(Buffer, 'GL_EXT_texture_compression_s3tc');
19699   GL_EXT_texture_cube_map := Int_CheckExtension(Buffer, 'GL_EXT_texture_cube_map');
19700   GL_EXT_texture_edge_clamp := Int_CheckExtension(Buffer, 'GL_EXT_texture_edge_clamp');
19701   GL_EXT_texture_env_add := Int_CheckExtension(Buffer, 'GL_EXT_texture_env_add');
19702   GL_EXT_texture_env_combine := Int_CheckExtension(Buffer, 'GL_EXT_texture_env_combine');
19703   GL_EXT_texture_env_dot3 := Int_CheckExtension(Buffer, 'GL_EXT_texture_env_dot3');
19704   GL_EXT_texture_filter_anisotropic := Int_CheckExtension(Buffer, 'GL_EXT_texture_filter_anisotropic');
19705   GL_EXT_texture_lod_bias := Int_CheckExtension(Buffer, 'GL_EXT_texture_lod_bias');
19706   GL_EXT_texture_object := Int_CheckExtension(Buffer, 'GL_EXT_texture_object');
19707   GL_EXT_texture_perturb_normal := Int_CheckExtension(Buffer, 'GL_EXT_texture_perturb_normal');
19708   GL_EXT_texture_rectangle := Int_CheckExtension(Buffer, 'GL_EXT_texture_rectangle');
19709   GL_EXT_vertex_array := Int_CheckExtension(Buffer, 'GL_EXT_vertex_array');
19710   GL_EXT_vertex_shader := Int_CheckExtension(Buffer, 'GL_EXT_vertex_shader');
19711   GL_EXT_vertex_weighting := Int_CheckExtension(Buffer, 'GL_EXT_vertex_weighting');
19712   GL_EXT_depth_bounds_test := Int_CheckExtension(Buffer, 'GL_EXT_depth_bounds_test');
19713   GL_EXT_texture_mirror_clamp := Int_CheckExtension(Buffer, 'GL_EXT_texture_mirror_clamp');
19714   GL_EXT_blend_equation_separate := Int_CheckExtension(Buffer, 'GL_EXT_blend_equation_separate');
19715   GL_EXT_pixel_buffer_object := Int_CheckExtension(Buffer, 'GL_EXT_pixel_buffer_object');
19716   GL_EXT_texture_compression_dxt1 := Int_CheckExtension(Buffer, 'GL_EXT_texture_compression_dxt1');
19717   GL_EXT_stencil_clear_tag := Int_CheckExtension(Buffer, 'GL_EXT_stencil_clear_tag');
19718   GL_EXT_packed_depth_stencil := Int_CheckExtension(Buffer, 'GL_EXT_packed_depth_stencil');
19719   GL_EXT_texture_sRGB := Int_CheckExtension(Buffer, 'GL_EXT_texture_sRGB');
19720   GL_EXT_framebuffer_blit := Int_CheckExtension(Buffer, 'GL_EXT_framebuffer_blit');
19721   GL_EXT_framebuffer_multisample := Int_CheckExtension(Buffer, 'GL_EXT_framebuffer_multisample');
19722   GL_EXT_timer_query := Int_CheckExtension(Buffer, 'GL_EXT_timer_query');
19723   GL_EXT_gpu_program_parameters := Int_CheckExtension(Buffer, 'GL_EXT_gpu_program_parameters');
19724   GL_EXT_bindable_uniform := Int_CheckExtension(Buffer, 'GL_EXT_bindable_uniform');
19725   GL_EXT_draw_buffers2 := Int_CheckExtension(Buffer, 'GL_EXT_draw_buffers2');
19726   GL_EXT_draw_instanced := Int_CheckExtension(Buffer, 'GL_EXT_draw_instanced');
19727   GL_EXT_framebuffer_sRGB := Int_CheckExtension(Buffer, 'GL_EXT_framebuffer_sRGB');
19728   GL_EXT_geometry_shader4 := Int_CheckExtension(Buffer, 'GL_EXT_geometry_shader4');
19729   GL_EXT_gpu_shader4 := Int_CheckExtension(Buffer, 'GL_EXT_gpu_shader4');
19730   GL_EXT_packed_float := Int_CheckExtension(Buffer, 'GL_EXT_packed_float');
19731   GL_EXT_texture_array := Int_CheckExtension(Buffer, 'GL_EXT_texture_array');
19732   GL_EXT_texture_buffer_object := Int_CheckExtension(Buffer, 'GL_EXT_texture_buffer_object');
19733   GL_EXT_texture_compression_latc := Int_CheckExtension(Buffer, 'GL_EXT_texture_compression_latc');
19734   GL_EXT_texture_compression_rgtc := Int_CheckExtension(Buffer, 'GL_EXT_texture_compression_rgtc');
19735   GL_EXT_texture_integer := Int_CheckExtension(Buffer, 'GL_EXT_texture_integer');
19736   GL_EXT_texture_shared_exponent := Int_CheckExtension(Buffer, 'GL_EXT_texture_shared_exponent');
19737   GL_EXT_transform_feedback := Int_CheckExtension(Buffer, 'GL_EXT_transform_feedback');
19738   GL_EXT_direct_state_access := Int_CheckExtension(Buffer, 'GL_EXT_direct_state_access');
19739   GL_EXT_vertex_array_bgra := Int_CheckExtension(Buffer, 'GL_EXT_vertex_array_bgra');
19740   GL_EXT_texture_swizzle := Int_CheckExtension(Buffer, 'GL_EXT_texture_swizzle');
19741   GL_EXT_provoking_vertex := Int_CheckExtension(Buffer, 'GL_EXT_provoking_vertex');
19742   GL_EXT_texture_snorm := Int_CheckExtension(Buffer, 'GL_EXT_texture_snorm');
19743   GL_EXT_separate_shader_objects := Int_CheckExtension(Buffer, 'GL_EXT_separate_shader_objects');
19744   GL_EXT_shader_image_load_store := Int_CheckExtension(Buffer, 'GL_EXT_shader_image_load_store');
19745   GL_EXT_vertex_attrib_64bit := Int_CheckExtension(Buffer, 'GL_EXT_vertex_attrib_64bit');
19746   GL_EXT_texture_sRGB_decode := Int_CheckExtension(Buffer, 'GL_EXT_texture_sRGB_decode');
19747
19748   // HP
19749   GL_HP_convolution_border_modes := Int_CheckExtension(Buffer, 'GL_HP_convolution_border_modes');
19750   GL_HP_image_transform := Int_CheckExtension(Buffer, 'GL_HP_image_transform');
19751   GL_HP_occlusion_test := Int_CheckExtension(Buffer, 'GL_HP_occlusion_test');
19752   GL_HP_texture_lighting := Int_CheckExtension(Buffer, 'GL_HP_texture_lighting');
19753
19754   // IBM
19755   GL_IBM_cull_vertex := Int_CheckExtension(Buffer, 'GL_IBM_cull_vertex');
19756   GL_IBM_multimode_draw_arrays := Int_CheckExtension(Buffer, 'GL_IBM_multimode_draw_arrays');
19757   GL_IBM_rasterpos_clip := Int_CheckExtension(Buffer, 'GL_IBM_rasterpos_clip');
19758   GL_IBM_texture_mirrored_repeat := Int_CheckExtension(Buffer, 'GL_IBM_texture_mirrored_repeat');
19759   GL_IBM_vertex_array_lists := Int_CheckExtension(Buffer, 'GL_IBM_vertex_array_lists');
19760
19761   // INGR
19762   GL_INGR_blend_func_separate := Int_CheckExtension(Buffer, 'GL_INGR_blend_func_separate');
19763   GL_INGR_color_clamp := Int_CheckExtension(Buffer, 'GL_INGR_color_clamp');
19764   GL_INGR_interlace_read := Int_CheckExtension(Buffer, 'GL_INGR_interlace_read');
19765   GL_INGR_palette_buffer := Int_CheckExtension(Buffer, 'GL_INGR_palette_buffer');
19766
19767   // INTEL
19768   GL_INTEL_parallel_arrays := Int_CheckExtension(Buffer, 'GL_INTEL_parallel_arrays');
19769   GL_INTEL_texture_scissor := Int_CheckExtension(Buffer, 'GL_INTEL_texture_scissor');
19770
19771   // MESA
19772   GL_MESA_resize_buffers := Int_CheckExtension(Buffer, 'GL_MESA_resize_buffers');
19773   GL_MESA_window_pos := Int_CheckExtension(Buffer, 'GL_MESA_window_pos');
19774
19775   // Khronos
19776   // 4.5
19777   GL_KHR_blend_equation_advanced := Int_CheckExtension(Buffer, 'GL_KHR_blend_equation_advanced');
19778   GL_KHR_blend_equation_advanced_coherent := Int_CheckExtension(Buffer, 'GL_KHR_blend_equation_advanced_coherent');
19779   GL_KHR_robustness := Int_CheckExtension(Buffer, 'GL_KHR_robustness');
19780   GL_KHR_robust_buffer_access_behavior := Int_CheckExtension(Buffer, 'GL_KHR_robust_buffer_access_behavior');
19781
19782   // NVIDIA
19783   GL_NV_blend_square := Int_CheckExtension(Buffer, 'GL_NV_blend_square');
19784   GL_NV_copy_depth_to_color := Int_CheckExtension(Buffer, 'GL_NV_copy_depth_to_color');
19785   GL_NV_depth_clamp := Int_CheckExtension(Buffer, 'GL_NV_depth_clamp');
19786   GL_NV_evaluators := Int_CheckExtension(Buffer, 'GL_NV_evaluators');
19787   GL_NV_fence := Int_CheckExtension(Buffer, 'GL_NV_fence');
19788   GL_NV_float_buffer := Int_CheckExtension(Buffer, 'GL_NV_float_buffer');
19789   GL_NV_fog_distance := Int_CheckExtension(Buffer, 'GL_NV_fog_distance');
19790   GL_NV_fragment_program := Int_CheckExtension(Buffer, 'GL_NV_fragment_program');
19791   GL_NV_half_float := Int_CheckExtension(Buffer, 'GL_NV_half_float');
19792   GL_NV_light_max_exponent := Int_CheckExtension(Buffer, 'GL_NV_light_max_exponent');
19793   GL_NV_multisample_filter_hint := Int_CheckExtension(Buffer, 'GL_NV_multisample_filter_hint');
19794   GL_NV_occlusion_query := Int_CheckExtension(Buffer, 'GL_NV_occlusion_query');
19795   GL_NV_packed_depth_stencil := Int_CheckExtension(Buffer, 'GL_NV_packed_depth_stencil');
19796   GL_NV_pixel_data_range := Int_CheckExtension(Buffer, 'GL_NV_pixel_data_range');
19797   GL_NV_point_sprite := Int_CheckExtension(Buffer, 'GL_NV_point_sprite');
19798   GL_NV_primitive_restart := Int_CheckExtension(Buffer, 'GL_NV_primitive_restart');
19799   GL_NV_register_combiners := Int_CheckExtension(Buffer, 'GL_NV_register_combiners');
19800   GL_NV_register_combiners2 := Int_CheckExtension(Buffer, 'GL_NV_register_combiners2');
19801   GL_NV_texgen_emboss := Int_CheckExtension(Buffer, 'GL_NV_texgen_emboss');
19802   GL_NV_texgen_reflection := Int_CheckExtension(Buffer, 'GL_NV_texgen_reflection');
19803   GL_NV_texture_compression_vtc := Int_CheckExtension(Buffer, 'GL_NV_texture_compression_vtc');
19804   GL_NV_texture_env_combine4 := Int_CheckExtension(Buffer, 'GL_NV_texture_env_combine4');
19805   GL_NV_texture_expand_normal := Int_CheckExtension(Buffer, 'GL_NV_texture_expand_normal');
19806   GL_NV_texture_rectangle := Int_CheckExtension(Buffer, 'GL_NV_texture_rectangle');
19807   GL_NV_texture_shader := Int_CheckExtension(Buffer, 'GL_NV_texture_shader');
19808   GL_NV_texture_shader2 := Int_CheckExtension(Buffer, 'GL_NV_texture_shader2');
19809   GL_NV_texture_shader3 := Int_CheckExtension(Buffer, 'GL_NV_texture_shader3');
19810   GL_NV_vertex_array_range := Int_CheckExtension(Buffer, 'GL_NV_vertex_array_range');
19811   GL_NV_vertex_array_range2 := Int_CheckExtension(Buffer, 'GL_NV_vertex_array_range2');
19812   GL_NV_vertex_program := Int_CheckExtension(Buffer, 'GL_NV_vertex_program');
19813   GL_NV_vertex_program1_1 := Int_CheckExtension(Buffer, 'GL_NV_vertex_program1_1');
19814   GL_NV_vertex_program2 := Int_CheckExtension(Buffer, 'GL_NV_vertex_program2');
19815   GL_NV_fragment_program_option := Int_CheckExtension(Buffer, 'GL_NV_fragment_program_option');
19816   GL_NV_fragment_program2 := Int_CheckExtension(Buffer, 'GL_NV_fragment_program2');
19817   GL_NV_vertex_program2_option := Int_CheckExtension(Buffer, 'GL_NV_vertex_program2_option');
19818   GL_NV_vertex_program3 := Int_CheckExtension(Buffer, 'GL_NV_vertex_program3');
19819   GL_NV_depth_buffer_float := Int_CheckExtension(Buffer, 'GL_NV_depth_buffer_float');
19820   GL_NV_fragment_program4 := Int_CheckExtension(Buffer, 'GL_NV_fragment_program4');
19821   GL_NV_framebuffer_multisample_coverage := Int_CheckExtension(Buffer, 'GL_NV_framebuffer_multisample_coverage');
19822   GL_NV_geometry_program4 := Int_CheckExtension(Buffer, 'GL_NV_geometry_program4');
19823   GL_NV_gpu_program4 := Int_CheckExtension(Buffer, 'GL_NV_gpu_program4');
19824   GL_NV_parameter_buffer_object := Int_CheckExtension(Buffer, 'GL_NV_parameter_buffer_object');
19825   GL_NV_transform_feedback := Int_CheckExtension(Buffer, 'GL_NV_transform_feedback');
19826   GL_NV_vertex_program4 := Int_CheckExtension(Buffer, 'GL_NV_vertex_program4');
19827   GL_NV_conditional_render := Int_CheckExtension(Buffer, 'GL_NV_conditional_render');
19828   GL_NV_present_video := Int_CheckExtension(Buffer, 'GL_NV_present_video');
19829   GL_NV_explicit_multisample := Int_CheckExtension(Buffer, 'GL_NV_explicit_multisample');
19830   GL_NV_transform_feedback2 := Int_CheckExtension(Buffer, 'GL_NV_transform_feedback2');
19831   GL_NV_video_capture := Int_CheckExtension(Buffer, 'GL_NV_video_capture');
19832   GL_NV_copy_image := Int_CheckExtension(Buffer, 'GL_NV_copy_image');
19833   GL_NV_parameter_buffer_object2 := Int_CheckExtension(Buffer, 'GL_NV_parameter_buffer_object2');
19834   GL_NV_shader_buffer_load := Int_CheckExtension(Buffer, 'GL_NV_shader_buffer_load');
19835   GL_NV_vertex_buffer_unified_memory := Int_CheckExtension(Buffer, 'GL_NV_vertex_buffer_unified_memory');
19836   GL_NV_gpu_program5 := Int_CheckExtension(Buffer, 'GL_NV_gpu_program5');
19837   GL_NV_gpu_shader5 := Int_CheckExtension(Buffer, 'GL_NV_gpu_shader5');
19838   GL_NV_shader_buffer_store := Int_CheckExtension(Buffer, 'GL_NV_shader_buffer_store');
19839   GL_NV_tessellation_program5 := Int_CheckExtension(Buffer, 'GL_NV_tessellation_program5');
19840   GL_NV_vertex_attrib_integer_64bit := Int_CheckExtension(Buffer, 'GL_NV_vertex_attrib_integer_64bit');
19841   GL_NV_multisample_coverage := Int_CheckExtension(Buffer, 'GL_NV_multisample_coverage');
19842   GL_NV_vdpau_interop := Int_CheckExtension(Buffer, 'GL_NV_vdpau_interop');
19843   GL_NV_texture_barrier := Int_CheckExtension(Buffer, 'GL_NV_texture_barrier');
19844   // 4.3
19845   GL_NV_path_rendering := Int_CheckExtension(Buffer, 'GL_NV_path_rendering');
19846   GL_NV_bindless_texture := Int_CheckExtension(Buffer, 'GL_NV_bindless_texture');
19847   GL_NV_shader_atomic_float := Int_CheckExtension(Buffer, 'GL_NV_shader_atomic_float');
19848
19849   // OML
19850   GL_OML_interlace := Int_CheckExtension(Buffer, 'GL_OML_interlace');
19851   GL_OML_resample := Int_CheckExtension(Buffer, 'GL_OML_resample');
19852   GL_OML_subsample := Int_CheckExtension(Buffer, 'GL_OML_subsample');
19853
19854   // PGI
19855   GL_PGI_misc_hints := Int_CheckExtension(Buffer, 'GL_PGI_misc_hints');
19856   GL_PGI_vertex_hints := Int_CheckExtension(Buffer, 'GL_PGI_vertex_hints');
19857
19858   // REND
19859   GL_REND_screen_coordinates := Int_CheckExtension(Buffer, 'GL_REND_screen_coordinates');
19860
19861   // S3
19862   GL_S3_s3tc := Int_CheckExtension(Buffer, 'GL_S3_s3tc');
19863
19864   // SGIS
19865   GL_SGIS_detail_texture := Int_CheckExtension(Buffer, 'GL_SGIS_detail_texture');
19866   GL_SGIS_fog_function := Int_CheckExtension(Buffer, 'GL_SGIS_fog_function');
19867   GL_SGIS_generate_mipmap := Int_CheckExtension(Buffer, 'GL_SGIS_generate_mipmap');
19868   GL_SGIS_multisample := Int_CheckExtension(Buffer, 'GL_SGIS_multisample');
19869   GL_SGIS_pixel_texture := Int_CheckExtension(Buffer, 'GL_SGIS_pixel_texture');
19870   GL_SGIS_point_line_texgen := Int_CheckExtension(Buffer, 'GL_SGIS_point_line_texgen');
19871   GL_SGIS_point_parameters := Int_CheckExtension(Buffer, 'GL_SGIS_point_parameters');
19872   GL_SGIS_sharpen_texture := Int_CheckExtension(Buffer, 'GL_SGIS_sharpen_texture');
19873   GL_SGIS_texture4D := Int_CheckExtension(Buffer, 'GL_SGIS_texture4D');
19874   GL_SGIS_texture_border_clamp := Int_CheckExtension(Buffer, 'GL_SGIS_texture_border_clamp');
19875   GL_SGIS_texture_color_mask := Int_CheckExtension(Buffer, 'GL_SGIS_texture_color_mask');
19876   GL_SGIS_texture_edge_clamp := Int_CheckExtension(Buffer, 'GL_SGIS_texture_edge_clamp');
19877   GL_SGIS_texture_filter4 := Int_CheckExtension(Buffer, 'GL_SGIS_texture_filter4');
19878   GL_SGIS_texture_lod := Int_CheckExtension(Buffer, 'GL_SGIS_texture_lod');
19879   GL_SGIS_texture_select := Int_CheckExtension(Buffer, 'GL_SGIS_texture_select');
19880
19881   // SGIX
19882   GL_FfdMaskSGIX := Int_CheckExtension(Buffer, 'GL_FfdMaskSGIX');
19883   GL_SGIX_async := Int_CheckExtension(Buffer, 'GL_SGIX_async');
19884   GL_SGIX_async_histogram := Int_CheckExtension(Buffer, 'GL_SGIX_async_histogram');
19885   GL_SGIX_async_pixel := Int_CheckExtension(Buffer, 'GL_SGIX_async_pixel');
19886   GL_SGIX_blend_alpha_minmax := Int_CheckExtension(Buffer, 'GL_SGIX_blend_alpha_minmax');
19887   GL_SGIX_calligraphic_fragment := Int_CheckExtension(Buffer, 'GL_SGIX_calligraphic_fragment');
19888   GL_SGIX_clipmap := Int_CheckExtension(Buffer, 'GL_SGIX_clipmap');
19889   GL_SGIX_convolution_accuracy := Int_CheckExtension(Buffer, 'GL_SGIX_convolution_accuracy');
19890   GL_SGIX_depth_pass_instrument := Int_CheckExtension(Buffer, 'GL_SGIX_depth_pass_instrument');
19891   GL_SGIX_depth_texture := Int_CheckExtension(Buffer, 'GL_SGIX_depth_texture');
19892   GL_SGIX_flush_raster := Int_CheckExtension(Buffer, 'GL_SGIX_flush_raster');
19893   GL_SGIX_fog_offset := Int_CheckExtension(Buffer, 'GL_SGIX_fog_offset');
19894   GL_SGIX_fog_scale := Int_CheckExtension(Buffer, 'GL_SGIX_fog_scale');
19895   GL_SGIX_fragment_lighting := Int_CheckExtension(Buffer, 'GL_SGIX_fragment_lighting');
19896   GL_SGIX_framezoom := Int_CheckExtension(Buffer, 'GL_SGIX_framezoom');
19897   GL_SGIX_igloo_interface := Int_CheckExtension(Buffer, 'GL_SGIX_igloo_interface');
19898   GL_SGIX_impact_pixel_texture := Int_CheckExtension(Buffer, 'GL_SGIX_impact_pixel_texture');
19899   GL_SGIX_instruments := Int_CheckExtension(Buffer, 'GL_SGIX_instruments');
19900   GL_SGIX_interlace := Int_CheckExtension(Buffer, 'GL_SGIX_interlace');
19901   GL_SGIX_ir_instrument1 := Int_CheckExtension(Buffer, 'GL_SGIX_ir_instrument1');
19902   GL_SGIX_list_priority := Int_CheckExtension(Buffer, 'GL_SGIX_list_priority');
19903   GL_SGIX_pixel_texture := Int_CheckExtension(Buffer, 'GL_SGIX_pixel_texture');
19904   GL_SGIX_pixel_tiles := Int_CheckExtension(Buffer, 'GL_SGIX_pixel_tiles');
19905   GL_SGIX_polynomial_ffd := Int_CheckExtension(Buffer, 'GL_SGIX_polynomial_ffd');
19906   GL_SGIX_reference_plane := Int_CheckExtension(Buffer, 'GL_SGIX_reference_plane');
19907   GL_SGIX_resample := Int_CheckExtension(Buffer, 'GL_SGIX_resample');
19908   GL_SGIX_scalebias_hint := Int_CheckExtension(Buffer, 'GL_SGIX_scalebias_hint');
19909   GL_SGIX_shadow := Int_CheckExtension(Buffer, 'GL_SGIX_shadow');
19910   GL_SGIX_shadow_ambient := Int_CheckExtension(Buffer, 'GL_SGIX_shadow_ambient');
19911   GL_SGIX_sprite := Int_CheckExtension(Buffer, 'GL_SGIX_sprite');
19912   GL_SGIX_subsample := Int_CheckExtension(Buffer, 'GL_SGIX_subsample');
19913   GL_SGIX_tag_sample_buffer := Int_CheckExtension(Buffer, 'GL_SGIX_tag_sample_buffer');
19914   GL_SGIX_texture_add_env := Int_CheckExtension(Buffer, 'GL_SGIX_texture_add_env');
19915   GL_SGIX_texture_coordinate_clamp := Int_CheckExtension(Buffer, 'GL_SGIX_texture_coordinate_clamp');
19916   GL_SGIX_texture_lod_bias := Int_CheckExtension(Buffer, 'GL_SGIX_texture_lod_bias');
19917   GL_SGIX_texture_multi_buffer := Int_CheckExtension(Buffer, 'GL_SGIX_texture_multi_buffer');
19918   GL_SGIX_texture_scale_bias := Int_CheckExtension(Buffer, 'GL_SGIX_texture_scale_bias');
19919   GL_SGIX_texture_select := Int_CheckExtension(Buffer, 'GL_SGIX_texture_select');
19920   GL_SGIX_vertex_preclip := Int_CheckExtension(Buffer, 'GL_SGIX_vertex_preclip');
19921   GL_SGIX_ycrcb := Int_CheckExtension(Buffer, 'GL_SGIX_ycrcb');
19922   GL_SGIX_ycrcb_subsample := Int_CheckExtension(Buffer, 'GL_SGIX_ycrcb_subsample');
19923   GL_SGIX_ycrcba := Int_CheckExtension(Buffer, 'GL_SGIX_ycrcba');
19924
19925   // SGI
19926   GL_SGI_color_matrix := Int_CheckExtension(Buffer, 'GL_SGI_color_matrix');
19927   GL_SGI_color_table := Int_CheckExtension(Buffer, 'GL_SGI_color_table');
19928   GL_SGI_depth_pass_instrument := Int_CheckExtension(Buffer, 'GL_SGI_depth_pass_instrument');
19929   GL_SGI_texture_color_table := Int_CheckExtension(Buffer, 'GL_SGI_texture_color_table');
19930
19931   // SUN
19932   GL_SUNX_constant_data := Int_CheckExtension(Buffer, 'GL_SUNX_constant_data');
19933   GL_SUN_convolution_border_modes := Int_CheckExtension(Buffer, 'GL_SUN_convolution_border_modes');
19934   GL_SUN_global_alpha := Int_CheckExtension(Buffer, 'GL_SUN_global_alpha');
19935   GL_SUN_mesh_array := Int_CheckExtension(Buffer, 'GL_SUN_mesh_array');
19936   GL_SUN_slice_accum := Int_CheckExtension(Buffer, 'GL_SUN_slice_accum');
19937   GL_SUN_triangle_list := Int_CheckExtension(Buffer, 'GL_SUN_triangle_list');
19938   GL_SUN_vertex := Int_CheckExtension(Buffer, 'GL_SUN_vertex');
19939
19940   // WIN
19941   GL_WIN_phong_shading := Int_CheckExtension(Buffer, 'GL_WIN_phong_shading');
19942   GL_WIN_specular_fog := Int_CheckExtension(Buffer, 'GL_WIN_specular_fog');
19943
19944   {$IFDEF DGL_WIN}
19945   // WGL
19946   WGL_3DFX_multisample := Int_CheckExtension(Buffer, 'WGL_3DFX_multisample');
19947   WGL_ARB_buffer_region := Int_CheckExtension(Buffer, 'WGL_ARB_buffer_region');
19948   WGL_ARB_extensions_string := Int_CheckExtension(Buffer, 'WGL_ARB_extensions_string');
19949   WGL_ARB_make_current_read := Int_CheckExtension(Buffer, 'WGL_ARB_make_current_read');
19950   WGL_ARB_multisample := Int_CheckExtension(Buffer, 'WGL_ARB_multisample');
19951   WGL_ARB_pbuffer := Int_CheckExtension(Buffer, 'WGL_ARB_pbuffer');
19952   WGL_ARB_pixel_format := Int_CheckExtension(Buffer, 'WGL_ARB_pixel_format');
19953   WGL_ARB_pixel_format_float := Int_CheckExtension(Buffer, 'WGL_ARB_pixel_format_float');
19954   WGL_ARB_render_texture := Int_CheckExtension(Buffer, 'WGL_ARB_render_texture');
19955   WGL_ARB_create_context := Int_CheckExtension(Buffer, 'WGL_ARB_create_context');
19956   WGL_ARB_create_context_profile := Int_CheckExtension(Buffer, 'WGL_ARB_create_context_profile');
19957   WGL_ARB_framebuffer_sRGB := Int_CheckExtension(Buffer, 'WGL_ARB_framebuffer_sRGB');
19958   WGL_ARB_create_context_robustness := Int_CheckExtension(Buffer, 'WGL_ARB_create_context_robustness');
19959   WGL_ATI_pixel_format_float := Int_CheckExtension(Buffer, 'WGL_ATI_pixel_format_float');
19960   WGL_AMD_gpu_association := Int_CheckExtension(Buffer, 'WGL_AMD_gpu_association');
19961   WGL_EXT_depth_float := Int_CheckExtension(Buffer, 'WGL_EXT_depth_float');
19962   WGL_EXT_display_color_table := Int_CheckExtension(Buffer, 'WGL_EXT_display_color_table');
19963   WGL_EXT_extensions_string := Int_CheckExtension(Buffer, 'WGL_EXT_extensions_string');
19964   WGL_EXT_make_current_read := Int_CheckExtension(Buffer, 'WGL_EXT_make_current_read');
19965   WGL_EXT_multisample := Int_CheckExtension(Buffer, 'WGL_EXT_multisample');
19966   WGL_EXT_pbuffer := Int_CheckExtension(Buffer, 'WGL_EXT_pbuffer');
19967   WGL_EXT_pixel_format := Int_CheckExtension(Buffer, 'WGL_EXT_pixel_format');
19968   WGL_EXT_swap_control := Int_CheckExtension(Buffer, 'WGL_EXT_swap_control');
19969   WGL_EXT_create_context_es2_profile := Int_CheckExtension(Buffer, 'WGL_EXT_create_context_es2_profile');
19970   WGL_I3D_digital_video_control := Int_CheckExtension(Buffer, 'WGL_I3D_digital_video_control');
19971   WGL_I3D_gamma := Int_CheckExtension(Buffer, 'WGL_I3D_gamma');
19972   WGL_I3D_genlock := Int_CheckExtension(Buffer, 'WGL_I3D_genlock');
19973   WGL_I3D_image_buffer := Int_CheckExtension(Buffer, 'WGL_I3D_image_buffer');
19974   WGL_I3D_swap_frame_lock := Int_CheckExtension(Buffer, 'WGL_I3D_swap_frame_lock');
19975   WGL_I3D_swap_frame_usage := Int_CheckExtension(Buffer, 'WGL_I3D_swap_frame_usage');
19976   WGL_NV_float_buffer := Int_CheckExtension(Buffer, 'WGL_NV_float_buffer');
19977   WGL_NV_render_depth_texture := Int_CheckExtension(Buffer, 'WGL_NV_render_depth_texture');
19978   WGL_NV_render_texture_rectangle := Int_CheckExtension(Buffer, 'WGL_NV_render_texture_rectangle');
19979   WGL_NV_vertex_array_range := Int_CheckExtension(Buffer, 'WGL_NV_vertex_array_range');
19980   WGL_NV_present_video := Int_CheckExtension(Buffer, 'WGL_NV_present_video');
19981   WGL_NV_video_output := Int_CheckExtension(Buffer, 'WGL_NV_video_output');
19982   WGL_NV_swap_group := Int_CheckExtension(Buffer, 'WGL_NV_swap_group');
19983   WGL_NV_gpu_affinity := Int_CheckExtension(Buffer, 'WGL_NV_gpu_affinity');
19984   WGL_NV_video_capture := Int_CheckExtension(Buffer, 'WGL_NV_video_capture');
19985   WGL_NV_copy_image := Int_CheckExtension(Buffer, 'WGL_NV_copy_image');
19986   WGL_NV_multisample_coverage := Int_CheckExtension(Buffer, 'WGL_NV_multisample_coverage');
19987   WGL_NV_DX_interop := Int_CheckExtension(Buffer, 'WGL_NV_multisample_coverage');
19988   WGL_OML_sync_control := Int_CheckExtension(Buffer, 'WGL_OML_sync_control');
19989   WGL_3DL_stereo_control := Int_CheckExtension(Buffer, 'WGL_3DL_stereo_control');
19990   WGL_ARB_context_flush_control := Int_CheckExtension(Buffer, 'WGL_ARB_context_flush_control');
19991   WIN_draw_range_elements := Int_CheckExtension(Buffer, 'WIN_draw_range_elements');
19992   WIN_swap_hint := Int_CheckExtension(Buffer, 'WIN_swap_hint');
19993   {$ENDIF}
19994
19995   {$IFDEF DGL_LINUX}
19996   // GLX
19997   GLX_ARB_multisample := Int_CheckExtension(Buffer, 'GLX_ARB_multisample');
19998   GLX_ARB_fbconfig_float := Int_CheckExtension(Buffer, 'GLX_ARB_fbconfig_float');
19999   GLX_ARB_get_proc_address := Int_CheckExtension(Buffer, 'GLX_ARB_get_proc_address');
20000   GLX_ARB_create_context := Int_CheckExtension(Buffer, 'GLX_ARB_create_context');
20001   GLX_ARB_create_context_profile := Int_CheckExtension(Buffer, 'GLX_ARB_create_context_profile');
20002   GLX_ARB_vertex_buffer_object := Int_CheckExtension(Buffer, 'GLX_ARB_vertex_buffer_object');
20003   GLX_ARB_framebuffer_sRGB := Int_CheckExtension(Buffer, 'GLX_ARB_framebuffer_sRGB');
20004   GLX_ARB_create_context_robustness := Int_CheckExtension(Buffer, 'GLX_ARB_create_context_robustness');
20005   GLX_EXT_visual_info := Int_CheckExtension(Buffer, 'GLX_EXT_visual_info');
20006   GLX_EXT_visual_rating := Int_CheckExtension(Buffer, 'GLX_EXT_visual_rating');
20007   GLX_EXT_import_context := Int_CheckExtension(Buffer, 'GLX_EXT_import_context');
20008   GLX_EXT_fbconfig_packed_float := Int_CheckExtension(Buffer, 'GLX_EXT_fbconfig_packed_float');
20009   GLX_EXT_framebuffer_sRGB := Int_CheckExtension(Buffer, 'GLX_EXT_framebuffer_sRGB');
20010   GLX_EXT_texture_from_pixmap := Int_CheckExtension(Buffer, 'GLX_EXT_texture_from_pixmap');
20011   GLX_EXT_swap_control := Int_CheckExtension(Buffer, 'GLX_EXT_swap_control');
20012   GLX_EXT_create_context_es2_profile := Int_CheckExtension(Buffer, 'GLX_EXT_create_context_es2_profile');
20013   GLX_ARB_context_flush_control := Int_CheckExtension(Buffer, 'GLX_ARB_context_flush_control');
20014   {$ENDIF}
20015
20016   ImplementationRead := True;
20017 end;
20018
20019 {$IFDEF DGL_WIN}
20020 // =============================================================================
20021 // RaiseLastOSError
20022 // =============================================================================
20023 // Needed for compatibility with older Delphiversions
20024 // =============================================================================
20025
20026 procedure RaiseLastOSError;
20027 begin
20028 {$IFDEF FPC}
20029   raise Exception.Create('RaiseLastOSError!'); // To-Do: find a better solution
20030 {$ELSE}
20031   {$IFDEF DELPHI6_AND_DOWN} // If Delphi 6 or later
20032     SysUtils.RaiseLastWin32Error;
20033   {$ELSE}
20034     SysUtils.RaiseLastOSError;
20035   {$ENDIF}
20036 {$ENDIF}
20037 end;
20038
20039 // =============================================================================
20040 // CreateRenderingContext
20041 // =============================================================================
20042
20043 function CreateRenderingContext(DC: HDC; Options: TRCOptions; ColorBits, ZBits, StencilBits, AccumBits, AuxBuffers: Integer; Layer: Integer): HGLRC;
20044 const
20045   OBJ_MEMDC = 10;
20046   OBJ_ENHMETADC = 12;
20047   OBJ_METADC = 4;
20048   PFD_DOUBLEBUFFER = $00000001;
20049   PFD_STEREO = $00000002;
20050   PFD_DRAW_TO_WINDOW = $00000004;
20051   PFD_DRAW_TO_BITMAP = $00000008;
20052   PFD_SUPPORT_GDI = $00000010;
20053   PFD_SUPPORT_OPENGL = $00000020;
20054   PFD_TYPE_RGBA = 0;
20055   PFD_MAIN_PLANE = 0;
20056   PFD_OVERLAY_PLANE = 1;
20057   PFD_UNDERLAY_PLANE = LongWord(-1);
20058   MemoryDCs = [OBJ_MEMDC, OBJ_METADC, OBJ_ENHMETADC];
20059 var
20060   PFDescriptor: TPixelFormatDescriptor;
20061   PixelFormat: Integer;
20062   AType: DWORD;
20063 begin
20064   if GL_LibHandle = nil then
20065     InitOpenGL;
20066
20067   FillChar(PFDescriptor, SizeOf(PFDescriptor), 0);
20068
20069   with PFDescriptor do
20070   begin
20071     nSize := SizeOf(PFDescriptor);
20072     nVersion := 1;
20073     dwFlags := PFD_SUPPORT_OPENGL;
20074
20075     AType := GetObjectType(DC);
20076
20077     if AType = 0 then
20078       RaiseLastOSError;
20079
20080     if AType in MemoryDCs then
20081       dwFlags := dwFlags or PFD_DRAW_TO_BITMAP
20082     else
20083       dwFlags := dwFlags or PFD_DRAW_TO_WINDOW;
20084
20085     if opDoubleBuffered in Options then
20086       dwFlags := dwFlags or PFD_DOUBLEBUFFER;
20087
20088     if opGDI in Options then
20089       dwFlags := dwFlags or PFD_SUPPORT_GDI;
20090
20091     if opStereo in Options then
20092       dwFlags := dwFlags or PFD_STEREO;
20093
20094     iPixelType := PFD_TYPE_RGBA;
20095     cColorBits := ColorBits;
20096     cDepthBits := zBits;
20097     cStencilBits := StencilBits;
20098     cAccumBits := AccumBits;
20099     cAuxBuffers := AuxBuffers;
20100
20101     if Layer = 0 then
20102       iLayerType := PFD_MAIN_PLANE
20103     else
20104     if Layer > 0 then
20105       iLayerType := PFD_OVERLAY_PLANE
20106     else
20107       iLayerType := Byte(PFD_UNDERLAY_PLANE);
20108   end;
20109
20110   PixelFormat := ChoosePixelFormat(DC, @PFDescriptor);
20111
20112   if PixelFormat = 0 then
20113     RaiseLastOSError;
20114
20115   if GetPixelFormat(DC) <> PixelFormat then
20116     if not SetPixelFormat(DC, PixelFormat, @PFDescriptor) then
20117       RaiseLastOSError;
20118
20119   DescribePixelFormat(DC, PixelFormat, SizeOf(PFDescriptor), PFDescriptor);
20120
20121   Result := wglCreateContext(DC);
20122
20123   if Result = 0 then
20124     RaiseLastOSError
20125   else
20126     LastPixelFormat := 0;
20127 end;
20128
20129 // =============================================================================
20130 // CreateRenderingContextVersion
20131 // =============================================================================
20132 //  Creates a context for the more recent OpenGL versions (3.0) and up
20133 //  For that we first need to get a normal GL context for getting the
20134 //  function pointer to wglCreateContextAttribsARB first
20135 // =============================================================================
20136 function CreateRenderingContextVersion(DC: HDC; Options: TRCOptions; MajorVersion, MinorVersion : Integer; ForwardCompatible : Boolean; ColorBits, ZBits, StencilBits, AccumBits, AuxBuffers: Integer; Layer: Integer): HGLRC;
20137 const
20138   OBJ_MEMDC          = 10;
20139   OBJ_ENHMETADC      = 12;
20140   OBJ_METADC         = 4;
20141   PFD_DOUBLEBUFFER   = $00000001;
20142   PFD_STEREO         = $00000002;
20143   PFD_DRAW_TO_WINDOW = $00000004;
20144   PFD_DRAW_TO_BITMAP = $00000008;
20145   PFD_SUPPORT_GDI    = $00000010;
20146   PFD_SUPPORT_OPENGL = $00000020;
20147   PFD_TYPE_RGBA      = 0;
20148   PFD_MAIN_PLANE     = 0;
20149   PFD_OVERLAY_PLANE  = 1;
20150   PFD_UNDERLAY_PLANE = LongWord(-1);
20151   MemoryDCs          = [OBJ_MEMDC, OBJ_METADC, OBJ_ENHMETADC];
20152 var
20153   PFDescriptor : TPixelFormatDescriptor;
20154   PixelFormat  : Integer;
20155   AType        : DWORD;
20156   LegacyRC     : HGLRC;
20157   Attribs      : array of Integer;
20158 begin
20159   if GL_LibHandle = nil then
20160         InitOpenGL;
20161
20162   if not Assigned(GL_LibHandle) then
20163         raise Exception.Create('GL_LibHandle is NIL. Could not load OpenGL library!');
20164
20165   FillChar(PFDescriptor, SizeOf(PFDescriptor), 0);
20166
20167   with PFDescriptor do
20168     begin
20169       nSize    := SizeOf(PFDescriptor);
20170       nVersion := 1;
20171       dwFlags  := PFD_SUPPORT_OPENGL;
20172       AType    := GetObjectType(DC);
20173
20174       if AType = 0 then
20175         RaiseLastOSError;
20176
20177       if AType in MemoryDCs then
20178         dwFlags := dwFlags or PFD_DRAW_TO_BITMAP
20179       else
20180         dwFlags := dwFlags or PFD_DRAW_TO_WINDOW;
20181
20182       if opDoubleBuffered in Options then
20183         dwFlags := dwFlags or PFD_DOUBLEBUFFER;
20184
20185       if opGDI in Options then
20186         dwFlags := dwFlags or PFD_SUPPORT_GDI;
20187
20188       if opStereo in Options then
20189         dwFlags := dwFlags or PFD_STEREO;
20190
20191       iPixelType   := PFD_TYPE_RGBA;
20192       cColorBits   := ColorBits;
20193       cDepthBits   := zBits;
20194       cStencilBits := StencilBits;
20195       cAccumBits   := AccumBits;
20196       cAuxBuffers  := AuxBuffers;
20197
20198       if Layer = 0 then
20199         iLayerType := PFD_MAIN_PLANE
20200       else
20201         if Layer > 0 then
20202           iLayerType := PFD_OVERLAY_PLANE
20203         else
20204           iLayerType := Byte(PFD_UNDERLAY_PLANE);
20205     end;
20206
20207   PixelFormat := ChoosePixelFormat(DC, @PFDescriptor);
20208
20209   if PixelFormat = 0 then
20210         RaiseLastOSError;
20211
20212   if GetPixelFormat(DC) <> PixelFormat then
20213         if not SetPixelFormat(DC, PixelFormat, @PFDescriptor) then
20214                 RaiseLastOSError;
20215
20216   DescribePixelFormat(DC, PixelFormat, SizeOf(PFDescriptor), PFDescriptor);
20217
20218   // Create legacy render context first for we need function pointers to
20219   // create new OpenGL render contexts
20220   LegacyRC := wglCreateContext(DC);
20221   wglMakeCurrent(DC, LegacyRC);
20222
20223   // Set attributes to describe our requested context
20224   SetLength(Attribs, 5);
20225   Attribs[0] := WGL_CONTEXT_MAJOR_VERSION_ARB;
20226   Attribs[1] := MajorVersion;
20227   Attribs[2] := WGL_CONTEXT_MINOR_VERSION_ARB;
20228   Attribs[3] := MinorVersion;
20229
20230   // Add context flag for forward compatible context
20231   //  Forward compatible means no more support for legacy functions like
20232   //  immediate mode (glvertex, glrotate, gltranslate, etc.)
20233   if ForwardCompatible then
20234     begin
20235       SetLength(Attribs, Length(Attribs)+2);
20236       Attribs[4] := WGL_CONTEXT_FLAGS_ARB;
20237       Attribs[5] := WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB;
20238     end;
20239
20240   // Attribute flags must be finalized with a zero
20241   Attribs[High(Attribs)] := 0;
20242
20243   // Get function pointer for new context creation function
20244   wglCreateContextAttribsARB := wglGetProcAddress('wglCreateContextAttribsARB');
20245
20246   if not Assigned(wglCreateContextAttribsARB) then
20247     begin
20248       raise Exception.Create('Could not get function pointer adress for wglCreateContextAttribsARB - OpenGL 3.x and above not supported!');
20249       wglDeleteContext(LegacyRC);
20250       exit;
20251     end;
20252
20253   // Create context
20254   Result := wglCreateContextAttribsARB(DC, 0, @Attribs[0]);
20255
20256   if Result = 0 then
20257     begin
20258       raise Exception.Create('Could not create the desired OpenGL rendering context!');
20259       wglDeleteContext(LegacyRC);
20260       exit;
20261     end;
20262
20263   wglDeleteContext(LegacyRC);
20264
20265   if Result = 0 then
20266         RaiseLastOSError
20267   else
20268         LastPixelFormat := 0;
20269 end;
20270
20271 // =============================================================================
20272 // DestroyRenderingContext
20273 // =============================================================================
20274
20275 procedure DestroyRenderingContext(RC: HGLRC);
20276 begin
20277   wglDeleteContext(RC);
20278 end;
20279
20280
20281 // =============================================================================
20282 // ActivateRenderingContext
20283 // =============================================================================
20284
20285 procedure ActivateRenderingContext(DC: HDC; RC: HGLRC; loadext: boolean = true);
20286 begin
20287   Assert((DC <> 0), 'DC must not be 0');
20288   Assert((RC <> 0), 'RC must not be 0');
20289
20290   wglMakeCurrent(DC, RC);
20291
20292   {$ifdef DGL_TINY_HEADER}
20293   ReadCoreVersion;
20294   {$else}
20295   ReadImplementationProperties;
20296
20297   if (loadext) then
20298     ReadExtensions;
20299   {$endif}
20300 end;
20301
20302 // =============================================================================
20303 // DeactivateRenderingContext
20304 // =============================================================================
20305
20306 procedure DeactivateRenderingContext;
20307 begin
20308   wglMakeCurrent(0, 0);
20309 end;
20310 {$ENDIF}
20311
20312
20313 initialization
20314
20315 {$IFDEF CPU386}
20316   Set8087CW($133F);
20317 {$ENDIF}
20318
20319 finalization
20320
20321 end.
20322