Merge remote-tracking branch 'glBitmap.delphigl.com/unstable'
[LazOpenGLCore.git] / dglOpenGL.pas
1 { ============================================================================
2
3        OpenGL 4.5 - Headertranslation
4        Version 4.5a
5
6        Supported environments and targets :
7         - (Win32) Delphi 6 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 // 64 BIT architecture
138 // Free pascal
139 {$IFDEF CPU64}
140   {$DEFINE DGL_64BIT}
141 {$ENDIF}
142 // Delphi
143 {$IFDEF WIN64}
144   {$DEFINE DGL_64BIT}
145 {$ENDIF}
146
147
148 // generell options
149 {$H+,O+,X+}
150
151 // detecting Windows
152 {$IFDEF Win32}          // Delphi and fpc of 32 Bit Windows
153   {$DEFINE DGL_WIN}
154 {$ENDIF}
155
156 {$IFDEF Win64}          // Delphi and fpc of 32 Bit Windows
157   {$DEFINE DGL_WIN}
158 {$ENDIF}
159
160 // detecting Linux
161 {$IFDEF linux}          // Linux
162   {$DEFINE DGL_LINUX}
163 {$ENDIF}
164
165 {$IFDEF DARWIN}  // Mac OS X and FPC
166    {$DEFINE DGL_MAC}
167 {$ENDIF}
168
169 {$IFDEF DELPHI}  // Mac OS X add Delphi
170 {$IFDEF MACOS}
171    {$DEFINE DGL_MAC}
172 {$ENDIF}
173 {$ENDIF}
174
175 uses
176   {$IFDEF FPC}{$IFDEF DARWIN}dynlibs,{$ENDIF}{$ENDIF}  // LoadLibrary functions
177   SysUtils
178   {$IFDEF DGL_WIN}, Windows{$ENDIF}
179   {$IFDEF DGL_64BIT} ,math {$ENDIF}
180   {$IFDEF DGL_LINUX}, X, XLib, XUtil{$ENDIF}
181   ;
182
183 type
184   {$IFDEF DELPHI6_AND_DOWN}
185     // Delphi 6 compatibility
186     PPointer = ^Pointer;
187     PCardinal = ^Cardinal;
188   {$ENDIF}
189
190   GLenum = Cardinal;
191   GLboolean = BYTEBOOL;
192   GLbitfield = Cardinal;
193   GLbyte = Shortint;
194   GLshort = SmallInt;
195   GLint = Integer;
196   GLsizei = Integer;
197   GLubyte = Byte;
198   GLushort = Word;
199   GLuint = Cardinal;
200   GLfloat = Single;
201   GLclampf = Single;
202   GLdouble = Double;
203   GLclampd = Double;
204   GLvoid = Pointer;
205   GLint64 = Int64;
206   GLuint64 = {$IFDEF DELPHI6_AND_DOWN} Int64 {$ELSE} UInt64 {$ENDIF};
207
208   TGLenum = GLenum;
209   TGLboolean = GLboolean;
210   TGLbitfield = GLbitfield;
211   TGLbyte = GLbyte;
212   TGLshort = GLshort;
213   TGLint = GLint;
214   TGLsizei = GLsizei;
215   TGLubyte = GLubyte;
216   TGLushort = GLushort;
217   TGLuint = GLuint;
218   TGLfloat = GLfloat;
219   TGLclampf = GLclampf;
220   TGLdouble = GLdouble;
221   TGLclampd = GLclampd;
222   TGLvoid = GLvoid;
223   TGLint64 = GLint64;
224   TGLuint64 = GLuint64;
225
226   PGLboolean = ^GLboolean;
227   PGLbyte = ^GLbyte;
228   PGLshort = ^GLshort;
229   PGLint = ^GLint;
230   PGLsizei = ^GLsizei;
231   PGLubyte = ^GLubyte;
232   PGLushort = ^GLushort;
233   PGLuint = ^GLuint;
234   PGLclampf = ^GLclampf;
235   PGLfloat = ^GLfloat;
236   PGLdouble = ^GLdouble;
237   PGLclampd = ^GLclampd;
238   PGLenum = ^GLenum;
239   PGLvoid = Pointer;
240   PPGLvoid = ^PGLvoid;
241   PGLint64 = ^GLint64;
242   PGLuint64 = ^GLuint64;
243
244   // GL_NV_half_float
245   GLhalfNV = WORD;
246   TGLhalfNV = GLhalfNV;
247   PGLhalfNV = ^GLhalfNV;
248
249   // GL_ARB_shader_objects
250   PGLHandleARB = ^GLHandleARB;
251   GLHandleARB = Integer;
252   GLcharARB = AnsiChar;
253   PGLcharARB = PAnsiChar;
254   PPGLcharARB = ^PGLcharARB;
255
256   // GL_VERSION_1_5
257   GLintptr = GLint;
258   PGLintptr = ^GLintptr;
259   GLsizeiptr = GLsizei;
260
261   // GL_ARB_vertex_buffer_object
262   GLintptrARB = GLint;
263   GLsizeiptrARB = GLsizei;
264
265   // GL_VERSION_2_0
266   GLHandle = Integer;
267   PGLchar = PAnsiChar;
268   PPGLchar = ^PGLChar;
269
270   // GL_EXT_timer_query
271   GLint64EXT = Int64;
272   TGLint64EXT = GLint64EXT;
273   PGLint64EXT = ^GLint64EXT;
274
275   GLuint64EXT = GLuint64;
276   TGLuint64EXT = GLuint64EXT;
277   PGLuint64EXT = ^GLuint64EXT;
278
279   // WGL_ARB_pbuffer
280   HPBUFFERARB = THandle;
281
282   // WGL_EXT_pbuffer
283   HPBUFFEREXT = THandle;
284
285   // WGL_NV_present_video
286   PHVIDEOOUTPUTDEVICENV = ^HVIDEOOUTPUTDEVICENV;
287   HVIDEOOUTPUTDEVICENV = THandle;
288
289   // WGL_NV_video_output
290   PHPVIDEODEV = ^HPVIDEODEV;
291   HPVIDEODEV = THandle;
292
293   // WGL_NV_gpu_affinity
294   PHPGPUNV = ^HPGPUNV;
295   PHGPUNV = ^HGPUNV;
296
297   // WGL_NV_video_capture
298   HVIDEOINPUTDEVICENV = THandle;
299   PHVIDEOINPUTDEVICENV = ^HVIDEOINPUTDEVICENV;
300
301   HPGPUNV = THandle;
302   HGPUNV = THandle;
303
304   // GL_ARB_sync
305   GLsync = Pointer;
306
307   // GL_ARB_cl_event
308   { These incomplete types let us declare types compatible with OpenCL's cl_context and cl_event }
309   _cl_context = record end;
310   _cl_event = record end;
311   p_cl_context = ^_cl_context;
312   p_cl_event = ^_cl_event;
313
314   // GL_ARB_compute_variable_group_size
315   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}
316
317   // GL_ARB_debug_output
318   TglDebugProcARB = procedure (source: GLenum; type_: GLenum; id: GLuint; severity: GLenum; length: GLsizei; const message_: PGLchar; userParam: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
319
320   // GL_AMD_debug_output
321   TglDebugProcAMD = procedure (id: GLuint; category: GLenum; severity: GLenum; length: GLsizei; const message_: PGLchar; userParam: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
322
323   // GL_KHR_debug (4.3)
324   TglDebugProc = procedure(source : GLEnum; type_ : GLEnum; id : GLUInt; severity : GLUInt; length : GLsizei; const message_ : PGLCHar; userParam : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
325
326   // GL_NV_vdpau_interop
327   GLvdpauSurfaceNV = GLintptr;
328   PGLvdpauSurfaceNV = ^GLvdpauSurfaceNV;
329
330
331   // GLX
332   {$IFDEF DGL_LINUX}
333     GLXContext = Pointer;
334     GLXContextID = TXID;
335     GLXDrawable = TXID;
336     GLXFBConfig = Pointer;
337     GLXPbuffer = TXID;
338     GLXPixmap = TXID;
339     GLXWindow = TXID;
340
341     Window = TXID;
342     Colormap = TXID;
343     Pixmap = TXID;
344     Font = TXID;
345   {$ENDIF}
346
347   // Datatypes corresponding to GL's types TGL(name)(type)(count)
348   TGLVectorub2 = array[0..1] of GLubyte;
349   TGLVectori2  = array[0..1] of GLint;
350   TGLVectorf2  = array[0..1] of GLfloat;
351   TGLVectord2  = array[0..1] of GLdouble;
352   TGLVectorp2  = array[0..1] of Pointer;
353
354   TGLVectorub3 = array[0..2] of GLubyte;
355   TGLVectori3  = array[0..2] of GLint;
356   TGLVectorf3  = array[0..2] of GLfloat;
357   TGLVectord3  = array[0..2] of GLdouble;
358   TGLVectorp3  = array[0..2] of Pointer;
359
360   TGLVectorub4 = array[0..3] of GLubyte;
361   TGLVectori4  = array[0..3] of GLint;
362   TGLVectorf4  = array[0..3] of GLfloat;
363   TGLVectord4  = array[0..3] of GLdouble;
364   TGLVectorp4  = array[0..3] of Pointer;
365
366   TGLArrayf4 = TGLVectorf4;
367   TGLArrayf3 = TGLVectorf3;
368   TGLArrayd3 = TGLVectord3;
369   TGLArrayi4 = TGLVectori4;
370   TGLArrayp4 = TGLVectorp4;
371
372   TGlMatrixub3 = array[0..2, 0..2] of GLubyte;
373   TGlMatrixi3  = array[0..2, 0..2] of GLint;
374   TGLMatrixf3  = array[0..2, 0..2] of GLfloat;
375   TGLMatrixd3  = array[0..2, 0..2] of GLdouble;
376
377   TGlMatrixub4 = array[0..3, 0..3] of GLubyte;
378   TGlMatrixi4  = array[0..3, 0..3] of GLint;
379   TGLMatrixf4  = array[0..3, 0..3] of GLfloat;
380   TGLMatrixd4  = array[0..3, 0..3] of GLdouble;
381
382   TGLVector3f = TGLVectorf3;
383
384   // Datatypes corresponding to OpenGL12.pas for easy porting
385   TVector3f = TGLVectorf3;
386   TVector3d = TGLVectord3;
387
388   TVector4i = TGLVectori4;
389   TVector4f = TGLVectorf4;
390   TVector4p = TGLVectorp4;
391
392   TMatrix4f = TGLMatrixf4;
393   TMatrix4d = TGLMatrixd4;
394
395   PGLMatrixd4 = ^TGLMatrixd4;
396   PVector4i = ^TVector4i;
397
398
399
400 {$IFDEF FPC}
401   TRect = packed record
402     Left, Top, Right, Bottom: Longint;
403   end;
404 {$ENDIF}
405
406
407   PGPU_DEVICE = ^GPU_DEVICE;
408   GPU_DEVICE = record
409     cb: DWORD;
410     DeviceName: array [0..31] of AnsiChar;
411     DeviceString: array [0..127] of AnsiChar;
412     Flags: DWORD;
413     rcVirtualScreen: TRect;
414   end;
415
416
417 type
418 {$IFDEF FPC}
419   {$IFDEF DGL_WIN}
420     PWGLSwap = ^TWGLSwap;
421     {$EXTERNALSYM _WGLSWAP}
422       _WGLSWAP = packed record
423         hdc: HDC;
424         uiFlags: UINT;
425       end;
426
427     TWGLSwap = _WGLSWAP;
428   {$EXTERNALSYM WGLSWAP}
429     WGLSWAP = _WGLSWAP;
430
431   {$ENDIF}
432 {$ENDIF}
433
434   // GLU types
435   TGLUNurbs = record
436   end;
437   TGLUQuadric = record
438   end;
439   TGLUTesselator = record
440   end;
441   PGLUNurbs = ^TGLUNurbs;
442   PGLUQuadric = ^TGLUQuadric;
443   PGLUTesselator = ^TGLUTesselator;
444   // backwards compatibility
445   TGLUNurbsObj = TGLUNurbs;
446   TGLUQuadricObj = TGLUQuadric;
447   TGLUTesselatorObj = TGLUTesselator;
448   TGLUTriangulatorObj = TGLUTesselator;
449   PGLUNurbsObj = PGLUNurbs;
450   PGLUQuadricObj = PGLUQuadric;
451   PGLUTesselatorObj = PGLUTesselator;
452   PGLUTriangulatorObj = PGLUTesselator;
453
454   // GLUQuadricCallback
455   TGLUQuadricErrorProc = procedure(errorCode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
456   // GLUTessCallback
457   TGLUTessBeginProc = procedure(AType: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
458   TGLUTessEdgeFlagProc = procedure(Flag: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
459   TGLUTessVertexProc = procedure(VertexData: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
460   TGLUTessEndProc = procedure; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
461   TGLUTessErrorProc = procedure(ErrNo: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
462   TGLUTessCombineProc = procedure(Coords: TGLArrayd3; VertexData: TGLArrayp4; Weight: TGLArrayf4; OutData: PPointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
463   TGLUTessBeginDataProc = procedure(AType: GLenum; UserData: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
464   TGLUTessEdgeFlagDataProc = procedure(Flag: GLboolean; UserData: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
465   TGLUTessVertexDataProc = procedure(VertexData: Pointer; UserData: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
466   TGLUTessEndDataProc = procedure(UserData: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
467   TGLUTessErrorDataProc = procedure(ErrNo: GLenum; UserData: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
468   TGLUTessCombineDataProc = procedure(Coords: TGLArrayd3; VertexData: TGLArrayp4; Weight: TGLArrayf4; OutData: PPointer; UserData: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
469   // GLUNurbsCallback
470   TGLUNurbsErrorProc = procedure(ErrorCode: GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
471
472 var
473   GL_VERSION_1_0,
474   GL_VERSION_1_1,
475   GL_VERSION_1_2,
476   GL_VERSION_1_3,
477   GL_VERSION_1_4,
478   GL_VERSION_1_5,
479   GL_VERSION_2_0,
480   GL_VERSION_2_1,
481   GL_VERSION_3_0,
482   GL_VERSION_3_1,
483   GL_VERSION_3_2,
484   GL_VERSION_3_3,
485   GL_VERSION_4_0,
486   GL_VERSION_4_1,
487   GL_VERSION_4_2,
488   GL_VERSION_4_3,
489   GL_VERSION_4_4,
490   GL_VERSION_4_5,
491   GLU_VERSION_1_1,
492   GLU_VERSION_1_2,
493   GLU_VERSION_1_3,
494   GL_3DFX_multisample,
495   GL_3DFX_tbuffer,
496   GL_3DFX_texture_compression_FXT1,
497   GL_APPLE_client_storage,
498   GL_APPLE_element_array,
499   GL_APPLE_fence,
500   GL_APPLE_specular_vector,
501   GL_APPLE_transform_hint,
502   GL_APPLE_vertex_array_object,
503   GL_APPLE_vertex_array_range,
504   GL_APPLE_ycbcr_422,
505   GL_APPLE_texture_range,
506   GL_APPLE_float_pixels,
507   GL_APPLE_vertex_program_evaluators,
508   GL_APPLE_aux_depth_stencil,
509   GL_APPLE_object_purgeable,
510   GL_APPLE_row_bytes,
511   GL_APPLE_rgb_422,
512   GL_ARB_depth_texture,
513   GL_ARB_fragment_program,
514   GL_ARB_imaging,
515   GL_ARB_matrix_palette,
516   GL_ARB_multisample,
517   GL_ARB_multitexture,
518   GL_ARB_point_parameters,
519   GL_ARB_shadow,
520   GL_ARB_shadow_ambient,
521   GL_ARB_texture_border_clamp,
522   GL_ARB_texture_compression,
523   GL_ARB_texture_cube_map,
524   GL_ARB_texture_env_add,
525   GL_ARB_texture_env_combine,
526   GL_ARB_texture_env_crossbar,
527   GL_ARB_texture_env_dot3,
528   GL_ARB_texture_mirrored_repeat,
529   GL_ARB_transpose_matrix,
530   GL_ARB_vertex_blend,
531   GL_ARB_vertex_buffer_object,
532   GL_ARB_vertex_program,
533   GL_ARB_window_pos,
534   GL_ARB_shader_objects,
535   GL_ARB_vertex_shader,
536   GL_ARB_fragment_shader,
537   GL_ARB_shading_language_100,
538   GL_ARB_occlusion_query,
539   GL_ARB_texture_non_power_of_two,
540   GL_ARB_point_sprite,
541   GL_ARB_fragment_program_shadow,
542   GL_ARB_draw_buffers,
543   GL_ARB_texture_rectangle,
544   GL_ARB_color_buffer_float,
545   GL_ARB_half_float_pixel,
546   GL_ARB_texture_float,
547   GL_ARB_pixel_buffer_object,
548   GL_ARB_depth_buffer_float,
549   GL_ARB_draw_instanced,
550   GL_ARB_framebuffer_object,
551   GL_ARB_framebuffer_sRGB,
552   GL_ARB_geometry_shader4,
553   GL_ARB_half_float_vertex,
554   GL_ARB_instanced_arrays,
555   GL_ARB_map_buffer_range,
556   GL_ARB_texture_buffer_object,
557   GL_ARB_texture_compression_rgtc,
558   GL_ARB_texture_rg,
559   GL_ARB_vertex_array_object,
560   GL_ARB_uniform_buffer_object,
561   GL_ARB_compatibility,
562   GL_ARB_copy_buffer,
563   GL_ARB_shader_texture_lod,
564   GL_ARB_depth_clamp,
565   GL_ARB_draw_elements_base_vertex,
566   GL_ARB_fragment_coord_conventions,
567   GL_ARB_provoking_vertex,
568   GL_ARB_seamless_cube_map,
569   GL_ARB_sync,
570   GL_ARB_texture_multisample,
571   GL_ARB_vertex_array_bgra,
572   GL_ARB_draw_buffers_blend,
573   GL_ARB_sample_shading,
574   GL_ARB_texture_cube_map_array,
575   GL_ARB_texture_gather,
576   GL_ARB_texture_query_lod,
577   GL_ARB_shading_language_include,
578   GL_ARB_texture_compression_bptc,
579   GL_ARB_blend_func_extended,
580   GL_ARB_explicit_attrib_location,
581   GL_ARB_occlusion_query2,
582   GL_ARB_sampler_objects,
583   GL_ARB_shader_bit_encoding,
584   GL_ARB_texture_rgb10_a2ui,
585   GL_ARB_texture_swizzle,
586   GL_ARB_timer_query,
587   GL_ARB_vertex_type_2_10_10_10_rev,
588   GL_ARB_draw_indirect,
589   GL_ARB_gpu_shader5,
590   GL_ARB_gpu_shader_fp64,
591   GL_ARB_shader_subroutine,
592   GL_ARB_tessellation_shader,
593   GL_ARB_texture_buffer_object_rgb32,
594   GL_ARB_transform_feedback2,
595   GL_ARB_transform_feedback3,
596   GL_ARB_ES2_compatibility,
597   GL_ARB_get_program_binary,
598   GL_ARB_separate_shader_objects,
599   GL_ARB_shader_precision,
600   GL_ARB_vertex_attrib_64bit,
601   GL_ARB_viewport_array,
602
603   // GL 4.2
604   GL_ARB_base_instance,
605   GL_ARB_shading_language_420pack,
606   GL_ARB_transform_feedback_instanced,
607   GL_ARB_compressed_texture_pixel_storage,
608   GL_ARB_conservative_depth,
609   GL_ARB_internalformat_query,
610   GL_ARB_map_buffer_alignment,
611   GL_ARB_shader_atomic_counters,
612   GL_ARB_shader_image_load_store,
613   GL_ARB_shading_language_packing,
614   GL_ARB_texture_storage,
615
616
617   // GL 4.3
618   GL_ARB_arrays_of_arrays,
619   GL_ARB_fragment_layer_viewport,
620   GL_ARB_shader_image_size,
621   GL_ARB_ES3_compatibility,
622   GL_ARB_clear_buffer_object,
623   GL_ARB_compute_shader,
624   GL_ARB_copy_image,
625   GL_KHR_debug,
626   GL_ARB_explicit_uniform_location,
627   GL_ARB_framebuffer_no_attachments,
628   GL_ARB_internalformat_query2,
629   GL_ARB_invalidate_subdata,
630   GL_ARB_multi_draw_indirect,
631   GL_ARB_program_interface_query,
632   GL_ARB_robust_buffer_access_behavior,
633   GL_ARB_shader_storage_buffer_object,
634   GL_ARB_stencil_texturing,
635   GL_ARB_texture_buffer_range,
636   GL_ARB_texture_query_levels,
637   GL_ARB_texture_storage_multisample,
638   GL_ARB_texture_view,
639   GL_ARB_vertex_attrib_binding,
640   GL_NV_path_rendering,
641   GL_AMD_pinned_memory,
642   GL_AMD_stencil_operation_extended,
643   GL_AMD_vertex_shader_viewport_index,
644   GL_AMD_vertex_shader_layer,
645   GL_NV_bindless_texture,
646   GL_NV_shader_atomic_float,
647   GL_AMD_query_buffer_object,
648
649
650   // GL 4.4
651   GL_ARB_buffer_storage,
652   GL_ARB_clear_texture,
653   GL_ARB_enhanced_layouts,
654   GL_ARB_multi_bind,
655   GL_ARB_query_buffer_object,
656   GL_ARB_texture_mirror_clamp_to_edge,
657   GL_ARB_texture_stencil8,
658   GL_ARB_vertex_type_10f_11f_11f_rev,
659   GL_ARB_bindless_texture,
660   GL_ARB_sparse_texture,
661
662   // GL 4.5
663   GL_ARB_clip_control,
664   GL_ARB_cull_distance,
665   GL_ARB_ES3_1_compatibility,
666   GL_ARB_conditional_render_inverted,
667   GL_KHR_context_flush_control,
668   GL_ARB_derivative_control,
669   GL_ARB_direct_state_access,
670   GL_ARB_get_texture_sub_image,
671   GL_KHR_robustness,
672   GL_KHR_blend_equation_advanced,
673   GL_KHR_blend_equation_advanced_coherent,
674   GL_KHR_robust_buffer_access_behavior,
675   GL_ARB_shader_texture_image_samples,
676   GL_ARB_texture_barrier,
677
678   GL_ARB_cl_event,
679   GL_ARB_compute_variable_group_size,
680   GL_ARB_debug_output,
681   GL_ARB_robustness,
682   GL_ARB_shader_stencil_export,
683   GL_ATI_draw_buffers,
684   GL_ATI_element_array,
685   GL_ATI_envmap_bumpmap,
686   GL_ATI_fragment_shader,
687   GL_ATI_map_object_buffer,
688   GL_ATI_pn_triangles,
689   GL_ATI_separate_stencil,
690   GL_ATI_text_fragment_shader,
691   GL_ATI_texture_env_combine3,
692   GL_ATI_texture_float,
693   GL_ATI_texture_mirror_once,
694   GL_ATI_vertex_array_object,
695   GL_ATI_vertex_attrib_array_object,
696   GL_ATI_vertex_streams,
697   GL_ATI_meminfo,
698   GL_AMD_performance_monitor,
699   GL_AMD_texture_texture4,
700   GL_AMD_vertex_shader_tesselator,
701   GL_AMD_draw_buffers_blend,
702   GL_AMD_shader_stencil_export,
703   GL_AMD_seamless_cubemap_per_texture,
704   GL_AMD_conservative_depth,
705   GL_AMD_name_gen_delete,
706   GL_AMD_debug_output,
707   GL_AMD_transform_feedback3_lines_triangles,
708   GL_AMD_depth_clamp_separate,
709   GL_EXT_422_pixels,
710   GL_EXT_abgr,
711   GL_EXT_bgra,
712   GL_EXT_blend_color,
713   GL_EXT_blend_func_separate,
714   GL_EXT_blend_logic_op,
715   GL_EXT_blend_minmax,
716   GL_EXT_blend_subtract,
717   GL_EXT_clip_volume_hint,
718   GL_EXT_cmyka,
719   GL_EXT_color_matrix,
720   GL_EXT_color_subtable,
721   GL_EXT_compiled_vertex_array,
722   GL_EXT_convolution,
723   GL_EXT_coordinate_frame,
724   GL_EXT_copy_texture,
725   GL_EXT_cull_vertex,
726   GL_EXT_draw_range_elements,
727   GL_EXT_fog_coord,
728   GL_EXT_framebuffer_object,
729   GL_EXT_histogram,
730   GL_EXT_index_array_formats,
731   GL_EXT_index_func,
732   GL_EXT_index_material,
733   GL_EXT_index_texture,
734   GL_EXT_light_texture,
735   GL_EXT_misc_attribute,
736   GL_EXT_multi_draw_arrays,
737   GL_EXT_multisample,
738   GL_EXT_packed_pixels,
739   GL_EXT_paletted_texture,
740   GL_EXT_pixel_transform,
741   GL_EXT_pixel_transform_color_table,
742   GL_EXT_point_parameters,
743   GL_EXT_polygon_offset,
744   GL_EXT_rescale_normal,
745   GL_EXT_secondary_color,
746   GL_EXT_separate_specular_color,
747   GL_EXT_shadow_funcs,
748   GL_EXT_shared_texture_palette,
749   GL_EXT_stencil_two_side,
750   GL_EXT_stencil_wrap,
751   GL_EXT_subtexture,
752   GL_EXT_texture,
753   GL_EXT_texture3D,
754   GL_EXT_texture_compression_s3tc,
755   GL_EXT_texture_cube_map,
756   GL_EXT_texture_edge_clamp,
757   GL_EXT_texture_env_add,
758   GL_EXT_texture_env_combine,
759   GL_EXT_texture_env_dot3,
760   GL_EXT_texture_filter_anisotropic,
761   GL_EXT_texture_lod_bias,
762   GL_EXT_texture_object,
763   GL_EXT_texture_perturb_normal,
764   GL_EXT_texture_rectangle,
765   GL_EXT_vertex_array,
766   GL_EXT_vertex_shader,
767   GL_EXT_vertex_weighting,
768   GL_EXT_depth_bounds_test,
769   GL_EXT_texture_mirror_clamp,
770   GL_EXT_blend_equation_separate,
771   GL_EXT_pixel_buffer_object,
772   GL_EXT_texture_compression_dxt1,
773   GL_EXT_stencil_clear_tag,
774   GL_EXT_packed_depth_stencil,
775   GL_EXT_texture_sRGB,
776   GL_EXT_framebuffer_blit,
777   GL_EXT_framebuffer_multisample,
778   GL_EXT_timer_query,
779   GL_EXT_gpu_program_parameters,
780   GL_EXT_bindable_uniform,
781   GL_EXT_draw_buffers2,
782   GL_EXT_draw_instanced,
783   GL_EXT_framebuffer_sRGB,
784   GL_EXT_geometry_shader4,
785   GL_EXT_gpu_shader4,
786   GL_EXT_packed_float,
787   GL_EXT_texture_array,
788   GL_EXT_texture_buffer_object,
789   GL_EXT_texture_compression_latc,
790   GL_EXT_texture_compression_rgtc,
791   GL_EXT_texture_integer,
792   GL_EXT_texture_shared_exponent,
793   GL_EXT_transform_feedback,
794   GL_EXT_direct_state_access,
795   GL_EXT_vertex_array_bgra,
796   GL_EXT_texture_swizzle,
797   GL_EXT_provoking_vertex,
798   GL_EXT_texture_snorm,
799   GL_EXT_separate_shader_objects,
800   GL_EXT_shader_image_load_store,
801   GL_EXT_vertex_attrib_64bit,
802   GL_EXT_texture_sRGB_decode,
803   GL_FfdMaskSGIX,
804   GL_HP_convolution_border_modes,
805   GL_HP_image_transform,
806   GL_HP_occlusion_test,
807   GL_HP_texture_lighting,
808   GL_IBM_cull_vertex,
809   GL_IBM_multimode_draw_arrays,
810   GL_IBM_rasterpos_clip,
811   GL_IBM_texture_mirrored_repeat,
812   GL_IBM_vertex_array_lists,
813   GL_INGR_blend_func_separate,
814   GL_INGR_color_clamp,
815   GL_INGR_interlace_read,
816   GL_INGR_palette_buffer,
817   GL_INTEL_parallel_arrays,
818   GL_INTEL_texture_scissor,
819   GL_MESA_resize_buffers,
820   GL_MESA_window_pos,
821   GL_NV_blend_square,
822   GL_NV_copy_depth_to_color,
823   GL_NV_depth_clamp,
824   GL_NV_evaluators,
825   GL_NV_fence,
826   GL_NV_float_buffer,
827   GL_NV_fog_distance,
828   GL_NV_fragment_program,
829   GL_NV_half_float,
830   GL_NV_light_max_exponent,
831   GL_NV_multisample_filter_hint,
832   GL_NV_occlusion_query,
833   GL_NV_packed_depth_stencil,
834   GL_NV_pixel_data_range,
835   GL_NV_point_sprite,
836   GL_NV_primitive_restart,
837   GL_NV_register_combiners,
838   GL_NV_register_combiners2,
839   GL_NV_texgen_emboss,
840   GL_NV_texgen_reflection,
841   GL_NV_texture_compression_vtc,
842   GL_NV_texture_env_combine4,
843   GL_NV_texture_expand_normal,
844   GL_NV_texture_rectangle,
845   GL_NV_texture_shader,
846   GL_NV_texture_shader2,
847   GL_NV_texture_shader3,
848   GL_NV_vertex_array_range,
849   GL_NV_vertex_array_range2,
850   GL_NV_vertex_program,
851   GL_NV_vertex_program1_1,
852   GL_NV_vertex_program2,
853   GL_NV_fragment_program_option,
854   GL_NV_fragment_program2,
855   GL_NV_vertex_program2_option,
856   GL_NV_vertex_program3,
857   GL_NV_depth_buffer_float,
858   GL_NV_fragment_program4,
859   GL_NV_framebuffer_multisample_coverage,
860   GL_NV_geometry_program4,
861   GL_NV_gpu_program4,
862   GL_NV_parameter_buffer_object,
863   GL_NV_transform_feedback,
864   GL_NV_vertex_program4,
865   GL_NV_conditional_render,
866   GL_NV_present_video,
867   GL_NV_explicit_multisample,
868   GL_NV_transform_feedback2,
869   GL_NV_video_capture,
870   GL_NV_copy_image,
871   GL_NV_parameter_buffer_object2,
872   GL_NV_shader_buffer_load,
873   GL_NV_vertex_buffer_unified_memory,
874   GL_NV_gpu_program5,
875   GL_NV_gpu_shader5,
876   GL_NV_shader_buffer_store,
877   GL_NV_tessellation_program5,
878   GL_NV_vertex_attrib_integer_64bit,
879   GL_NV_multisample_coverage,
880   GL_NV_vdpau_interop,
881   GL_NV_texture_barrier,
882   GL_OML_interlace,
883   GL_OML_resample,
884   GL_OML_subsample,
885   GL_PGI_misc_hints,
886   GL_PGI_vertex_hints,
887   GL_REND_screen_coordinates,
888   GL_S3_s3tc,
889   GL_SGIS_detail_texture,
890   GL_SGIS_fog_function,
891   GL_SGIS_generate_mipmap,
892   GL_SGIS_multisample,
893   GL_SGIS_pixel_texture,
894   GL_SGIS_point_line_texgen,
895   GL_SGIS_point_parameters,
896   GL_SGIS_sharpen_texture,
897   GL_SGIS_texture4D,
898   GL_SGIS_texture_border_clamp,
899   GL_SGIS_texture_color_mask,
900   GL_SGIS_texture_edge_clamp,
901   GL_SGIS_texture_filter4,
902   GL_SGIS_texture_lod,
903   GL_SGIS_texture_select,
904   GL_SGIX_async,
905   GL_SGIX_async_histogram,
906   GL_SGIX_async_pixel,
907   GL_SGIX_blend_alpha_minmax,
908   GL_SGIX_calligraphic_fragment,
909   GL_SGIX_clipmap,
910   GL_SGIX_convolution_accuracy,
911   GL_SGIX_depth_pass_instrument,
912   GL_SGIX_depth_texture,
913   GL_SGIX_flush_raster,
914   GL_SGIX_fog_offset,
915   GL_SGIX_fog_scale,
916   GL_SGIX_fragment_lighting,
917   GL_SGIX_framezoom,
918   GL_SGIX_igloo_interface,
919   GL_SGIX_impact_pixel_texture,
920   GL_SGIX_instruments,
921   GL_SGIX_interlace,
922   GL_SGIX_ir_instrument1,
923   GL_SGIX_list_priority,
924   GL_SGIX_pixel_texture,
925   GL_SGIX_pixel_tiles,
926   GL_SGIX_polynomial_ffd,
927   GL_SGIX_reference_plane,
928   GL_SGIX_resample,
929   GL_SGIX_scalebias_hint,
930   GL_SGIX_shadow,
931   GL_SGIX_shadow_ambient,
932   GL_SGIX_sprite,
933   GL_SGIX_subsample,
934   GL_SGIX_tag_sample_buffer,
935   GL_SGIX_texture_add_env,
936   GL_SGIX_texture_coordinate_clamp,
937   GL_SGIX_texture_lod_bias,
938   GL_SGIX_texture_multi_buffer,
939   GL_SGIX_texture_scale_bias,
940   GL_SGIX_texture_select,
941   GL_SGIX_vertex_preclip,
942   GL_SGIX_ycrcb,
943   GL_SGIX_ycrcb_subsample,
944   GL_SGIX_ycrcba,
945   GL_SGI_color_matrix,
946   GL_SGI_color_table,
947   GL_SGI_depth_pass_instrument,
948   GL_SGI_texture_color_table,
949   GL_SUNX_constant_data,
950   GL_SUN_convolution_border_modes,
951   GL_SUN_global_alpha,
952   GL_SUN_mesh_array,
953   GL_SUN_slice_accum,
954   GL_SUN_triangle_list,
955   GL_SUN_vertex,
956
957   // WGL
958   GL_WIN_phong_shading,
959   GL_WIN_specular_fog,
960   WGL_3DFX_multisample,
961   WGL_ARB_buffer_region,
962   WGL_ARB_extensions_string,
963   WGL_ARB_make_current_read,
964   WGL_ARB_multisample,
965   WGL_ARB_pbuffer,
966   WGL_ARB_pixel_format,
967   WGL_ARB_pixel_format_float,
968   WGL_ARB_render_texture,
969   WGL_ARB_create_context,
970   WGL_ARB_create_context_profile,
971   WGL_ARB_framebuffer_sRGB,
972   WGL_ARB_create_context_robustness,
973   WGL_ATI_pixel_format_float,
974   WGL_AMD_gpu_association,
975   WGL_EXT_depth_float,
976   WGL_EXT_display_color_table,
977   WGL_EXT_extensions_string,
978   WGL_EXT_make_current_read,
979   WGL_EXT_multisample,
980   WGL_EXT_pbuffer,
981   WGL_EXT_pixel_format,
982   WGL_EXT_swap_control,
983   WGL_EXT_create_context_es2_profile,
984   WGL_I3D_digital_video_control,
985   WGL_I3D_gamma,
986   WGL_I3D_genlock,
987   WGL_I3D_image_buffer,
988   WGL_I3D_swap_frame_lock,
989   WGL_I3D_swap_frame_usage,
990   WGL_NV_float_buffer,
991   WGL_NV_render_depth_texture,
992   WGL_NV_render_texture_rectangle,
993   WGL_NV_vertex_array_range,
994   WGL_NV_present_video,
995   WGL_NV_video_output,
996   WGL_NV_swap_group,
997   WGL_NV_gpu_affinity,
998   WGL_NV_video_capture,
999   WGL_NV_copy_image,
1000   WGL_NV_multisample_coverage,
1001   WGL_NV_DX_interop,
1002   WGL_OML_sync_control,
1003   WGL_3DL_stereo_control,
1004   WGL_ARB_context_flush_control,
1005   WIN_draw_range_elements,
1006   WIN_swap_hint,
1007
1008   // GLX
1009   GLX_VERSION_1_3,
1010   GLX_VERSION_1_4,
1011   GLX_ARB_multisample,
1012   GLX_ARB_fbconfig_float,
1013   GLX_ARB_get_proc_address,
1014   GLX_ARB_create_context,
1015   GLX_ARB_create_context_profile,
1016   GLX_ARB_vertex_buffer_object,
1017   GLX_ARB_framebuffer_sRGB,
1018   GLX_ARB_create_context_robustness,
1019   GLX_EXT_visual_info,
1020   GLX_EXT_visual_rating,
1021   GLX_EXT_import_context,
1022   GLX_EXT_fbconfig_packed_float,
1023   GLX_EXT_framebuffer_sRGB,
1024   GLX_EXT_texture_from_pixmap,
1025   GLX_EXT_swap_control,
1026   GLX_ARB_context_flush_control,
1027   GLX_EXT_create_context_es2_profile : Boolean;
1028
1029 const
1030   // GL_VERSION_1_1
1031   { AttribMask }
1032   GL_DEPTH_BUFFER_BIT = $00000100;
1033   GL_STENCIL_BUFFER_BIT = $00000400;
1034   GL_COLOR_BUFFER_BIT = $00004000;
1035   { Boolean }
1036   GL_TRUE: ByteBool = True;
1037   GL_FALSE: ByteBool = False;
1038   { BeginMode }
1039   GL_POINTS = $0000;
1040   GL_LINES = $0001;
1041   GL_LINE_LOOP = $0002;
1042   GL_LINE_STRIP = $0003;
1043   GL_TRIANGLES = $0004;
1044   GL_TRIANGLE_STRIP = $0005;
1045   GL_TRIANGLE_FAN = $0006;
1046   { AlphaFunction }
1047   GL_NEVER = $0200;
1048   GL_LESS = $0201;
1049   GL_EQUAL = $0202;
1050   GL_LEQUAL = $0203;
1051   GL_GREATER = $0204;
1052   GL_NOTEQUAL = $0205;
1053   GL_GEQUAL = $0206;
1054   GL_ALWAYS = $0207;
1055   { BlendingFactorDest }
1056   GL_ZERO = 0;
1057   GL_ONE = 1;
1058   GL_SRC_COLOR = $0300;
1059   GL_ONE_MINUS_SRC_COLOR = $0301;
1060   GL_SRC_ALPHA = $0302;
1061   GL_ONE_MINUS_SRC_ALPHA = $0303;
1062   GL_DST_ALPHA = $0304;
1063   GL_ONE_MINUS_DST_ALPHA = $0305;
1064   { BlendingFactorSrc }
1065   GL_DST_COLOR = $0306;
1066   GL_ONE_MINUS_DST_COLOR = $0307;
1067   GL_SRC_ALPHA_SATURATE = $0308;
1068   { DrawBufferMode }
1069   GL_NONE = 0;
1070   GL_FRONT_LEFT = $0400;
1071   GL_FRONT_RIGHT = $0401;
1072   GL_BACK_LEFT = $0402;
1073   GL_BACK_RIGHT = $0403;
1074   GL_FRONT = $0404;
1075   GL_BACK = $0405;
1076   GL_LEFT = $0406;
1077   GL_RIGHT = $0407;
1078   GL_FRONT_AND_BACK = $0408;
1079   { ErrorCode }
1080   GL_NO_ERROR = 0;
1081   GL_INVALID_ENUM = $0500;
1082   GL_INVALID_VALUE = $0501;
1083   GL_INVALID_OPERATION = $0502;
1084   GL_OUT_OF_MEMORY = $0505;
1085   { FrontFaceDirection }
1086   GL_CW = $0900;
1087   GL_CCW = $0901;
1088   { GetPName }
1089   GL_POINT_SIZE = $0B11;
1090   GL_POINT_SIZE_RANGE = $0B12;
1091   GL_POINT_SIZE_GRANULARITY = $0B13;
1092   GL_LINE_SMOOTH = $0B20;
1093   GL_LINE_WIDTH = $0B21;
1094   GL_LINE_WIDTH_RANGE = $0B22;
1095   GL_LINE_WIDTH_GRANULARITY = $0B23;
1096   GL_POLYGON_SMOOTH = $0B41;
1097   GL_CULL_FACE = $0B44;
1098   GL_CULL_FACE_MODE = $0B45;
1099   GL_FRONT_FACE = $0B46;
1100   GL_DEPTH_RANGE = $0B70;
1101   GL_DEPTH_TEST = $0B71;
1102   GL_DEPTH_WRITEMASK = $0B72;
1103   GL_DEPTH_CLEAR_VALUE = $0B73;
1104   GL_DEPTH_FUNC = $0B74;
1105   GL_STENCIL_TEST = $0B90;
1106   GL_STENCIL_CLEAR_VALUE = $0B91;
1107   GL_STENCIL_FUNC = $0B92;
1108   GL_STENCIL_VALUE_MASK = $0B93;
1109   GL_STENCIL_FAIL = $0B94;
1110   GL_STENCIL_PASS_DEPTH_FAIL = $0B95;
1111   GL_STENCIL_PASS_DEPTH_PASS = $0B96;
1112   GL_STENCIL_REF = $0B97;
1113   GL_STENCIL_WRITEMASK = $0B98;
1114   GL_VIEWPORT = $0BA2;
1115   GL_DITHER = $0BD0;
1116   GL_BLEND_DST = $0BE0;
1117   GL_BLEND_SRC = $0BE1;
1118   GL_BLEND = $0BE2;
1119   GL_LOGIC_OP_MODE = $0BF0;
1120   GL_COLOR_LOGIC_OP = $0BF2;
1121   GL_DRAW_BUFFER = $0C01;
1122   GL_READ_BUFFER = $0C02;
1123   GL_SCISSOR_BOX = $0C10;
1124   GL_SCISSOR_TEST = $0C11;
1125   GL_COLOR_CLEAR_VALUE = $0C22;
1126   GL_COLOR_WRITEMASK = $0C23;
1127   GL_DOUBLEBUFFER = $0C32;
1128   GL_STEREO = $0C33;
1129   GL_LINE_SMOOTH_HINT = $0C52;
1130   GL_POLYGON_SMOOTH_HINT = $0C53;
1131   GL_UNPACK_SWAP_BYTES = $0CF0;
1132   GL_UNPACK_LSB_FIRST = $0CF1;
1133   GL_UNPACK_ROW_LENGTH = $0CF2;
1134   GL_UNPACK_SKIP_ROWS = $0CF3;
1135   GL_UNPACK_SKIP_PIXELS = $0CF4;
1136   GL_UNPACK_ALIGNMENT = $0CF5;
1137   GL_PACK_SWAP_BYTES = $0D00;
1138   GL_PACK_LSB_FIRST = $0D01;
1139   GL_PACK_ROW_LENGTH = $0D02;
1140   GL_PACK_SKIP_ROWS = $0D03;
1141   GL_PACK_SKIP_PIXELS = $0D04;
1142   GL_PACK_ALIGNMENT = $0D05;
1143   GL_MAX_TEXTURE_SIZE = $0D33;
1144   GL_MAX_VIEWPORT_DIMS = $0D3A;
1145   GL_SUBPIXEL_BITS = $0D50;
1146   GL_TEXTURE_1D = $0DE0;
1147   GL_TEXTURE_2D = $0DE1;
1148   GL_POLYGON_OFFSET_UNITS = $2A00;
1149   GL_POLYGON_OFFSET_POINT = $2A01;
1150   GL_POLYGON_OFFSET_LINE = $2A02;
1151   GL_POLYGON_OFFSET_FILL = $8037;
1152   GL_POLYGON_OFFSET_FACTOR = $8038;
1153   GL_TEXTURE_BINDING_1D = $8068;
1154   GL_TEXTURE_BINDING_2D = $8069;
1155   { GetTextureParameter }
1156   GL_TEXTURE_WIDTH = $1000;
1157   GL_TEXTURE_HEIGHT = $1001;
1158   GL_TEXTURE_INTERNAL_FORMAT = $1003;
1159   GL_TEXTURE_BORDER_COLOR = $1004;
1160   GL_TEXTURE_BORDER = $1005;
1161   GL_TEXTURE_RED_SIZE = $805C;
1162   GL_TEXTURE_GREEN_SIZE = $805D;
1163   GL_TEXTURE_BLUE_SIZE = $805E;
1164   GL_TEXTURE_ALPHA_SIZE = $805F;
1165   { HintMode }
1166   GL_DONT_CARE = $1100;
1167   GL_FASTEST = $1101;
1168   GL_NICEST = $1102;
1169   { DataType }
1170   GL_BYTE = $1400;
1171   GL_UNSIGNED_BYTE = $1401;
1172   GL_SHORT = $1402;
1173   GL_UNSIGNED_SHORT = $1403;
1174   GL_INT = $1404;
1175   GL_UNSIGNED_INT = $1405;
1176   GL_FLOAT = $1406;
1177   GL_DOUBLE = $140A;
1178   { LogicOp }
1179   GL_CLEAR = $1500;
1180   GL_AND = $1501;
1181   GL_AND_REVERSE = $1502;
1182   GL_COPY = $1503;
1183   GL_AND_INVERTED = $1504;
1184   GL_NOOP = $1505;
1185   GL_XOR = $1506;
1186   GL_OR = $1507;
1187   GL_NOR = $1508;
1188   GL_EQUIV = $1509;
1189   GL_INVERT = $150A;
1190   GL_OR_REVERSE = $150B;
1191   GL_COPY_INVERTED = $150C;
1192   GL_OR_INVERTED = $150D;
1193   GL_NAND = $150E;
1194   GL_SET = $150F;
1195   { MatrixMode (for gl3.h, FBO attachment type) }
1196   GL_TEXTURE = $1702;
1197   { PixelCopyType }
1198   GL_COLOR = $1800;
1199   GL_DEPTH = $1801;
1200   GL_STENCIL = $1802;
1201   { PixelFormat }
1202   GL_STENCIL_INDEX = $1901;
1203   GL_DEPTH_COMPONENT = $1902;
1204   GL_RED = $1903;
1205   GL_GREEN = $1904;
1206   GL_BLUE = $1905;
1207   GL_ALPHA = $1906;
1208   GL_RGB = $1907;
1209   GL_RGBA = $1908;
1210   { PolygonMode }
1211   GL_POINT = $1B00;
1212   GL_LINE = $1B01;
1213   GL_FILL = $1B02;
1214   { StencilOp }
1215   GL_KEEP = $1E00;
1216   GL_REPLACE = $1E01;
1217   GL_INCR = $1E02;
1218   GL_DECR = $1E03;
1219   { StringName }
1220   GL_VENDOR = $1F00;
1221   GL_RENDERER = $1F01;
1222   GL_VERSION = $1F02;
1223   GL_EXTENSIONS = $1F03;
1224   { TextureMagFilter }
1225   GL_NEAREST = $2600;
1226   GL_LINEAR = $2601;
1227   { TextureMinFilter }
1228   GL_NEAREST_MIPMAP_NEAREST = $2700;
1229   GL_LINEAR_MIPMAP_NEAREST = $2701;
1230   GL_NEAREST_MIPMAP_LINEAR = $2702;
1231   GL_LINEAR_MIPMAP_LINEAR = $2703;
1232   { TextureParameterName }
1233   GL_TEXTURE_MAG_FILTER = $2800;
1234   GL_TEXTURE_MIN_FILTER = $2801;
1235   GL_TEXTURE_WRAP_S = $2802;
1236   GL_TEXTURE_WRAP_T = $2803;
1237   { TextureTarget }
1238   GL_PROXY_TEXTURE_1D = $8063;
1239   GL_PROXY_TEXTURE_2D = $8064;
1240   { TextureWrapMode }
1241   GL_REPEAT = $2901;
1242   { PixelInternalFormat }
1243   GL_R3_G3_B2 = $2A10;
1244   GL_RGB4 = $804F;
1245   GL_RGB5 = $8050;
1246   GL_RGB8 = $8051;
1247   GL_RGB10 = $8052;
1248   GL_RGB12 = $8053;
1249   GL_RGB16 = $8054;
1250   GL_RGBA2 = $8055;
1251   GL_RGBA4 = $8056;
1252   GL_RGB5_A1 = $8057;
1253   GL_RGBA8 = $8058;
1254   GL_RGB10_A2 = $8059;
1255   GL_RGBA12 = $805A;
1256   GL_RGBA16 = $805B;
1257 {$ifdef DGL_DEPRECATED}
1258   GL_ACCUM = $0100;
1259   GL_LOAD = $0101;
1260   GL_RETURN = $0102;
1261   GL_MULT = $0103;
1262   GL_ADD = $0104;
1263   GL_CURRENT_BIT = $00000001;
1264   GL_POINT_BIT = $00000002;
1265   GL_LINE_BIT = $00000004;
1266   GL_POLYGON_BIT = $00000008;
1267   GL_POLYGON_STIPPLE_BIT = $00000010;
1268   GL_PIXEL_MODE_BIT = $00000020;
1269   GL_LIGHTING_BIT = $00000040;
1270   GL_FOG_BIT = $00000080;
1271   GL_ACCUM_BUFFER_BIT = $00000200;
1272   GL_VIEWPORT_BIT = $00000800;
1273   GL_TRANSFORM_BIT = $00001000;
1274   GL_ENABLE_BIT = $00002000;
1275   GL_HINT_BIT = $00008000;
1276   GL_EVAL_BIT = $00010000;
1277   GL_LIST_BIT = $00020000;
1278   GL_TEXTURE_BIT = $00040000;
1279   GL_SCISSOR_BIT = $00080000;
1280   GL_ALL_ATTRIB_BITS = $000FFFFF;
1281   GL_QUADS = $0007;
1282   GL_QUAD_STRIP = $0008;
1283   GL_POLYGON = $0009;
1284   GL_CLIP_PLANE0 = $3000;
1285   GL_CLIP_PLANE1 = $3001;
1286   GL_CLIP_PLANE2 = $3002;
1287   GL_CLIP_PLANE3 = $3003;
1288   GL_CLIP_PLANE4 = $3004;
1289   GL_CLIP_PLANE5 = $3005;
1290   GL_2_BYTES = $1407;
1291   GL_3_BYTES = $1408;
1292   GL_4_BYTES = $1409;
1293   GL_AUX0 = $0409;
1294   GL_AUX1 = $040A;
1295   GL_AUX2 = $040B;
1296   GL_AUX3 = $040C;
1297   GL_STACK_OVERFLOW = $0503;
1298   GL_STACK_UNDERFLOW = $0504;
1299   GL_2D = $0600;
1300   GL_3D = $0601;
1301   GL_3D_COLOR = $0602;
1302   GL_3D_COLOR_TEXTURE = $0603;
1303   GL_4D_COLOR_TEXTURE = $0604;
1304   GL_PASS_THROUGH_TOKEN = $0700;
1305   GL_POINT_TOKEN = $0701;
1306   GL_LINE_TOKEN = $0702;
1307   GL_POLYGON_TOKEN = $0703;
1308   GL_BITMAP_TOKEN = $0704;
1309   GL_DRAW_PIXEL_TOKEN = $0705;
1310   GL_COPY_PIXEL_TOKEN = $0706;
1311   GL_LINE_RESET_TOKEN = $0707;
1312   GL_EXP = $0800;
1313   GL_EXP2 = $0801;
1314   GL_COEFF = $0A00;
1315   GL_ORDER = $0A01;
1316   GL_DOMAIN = $0A02;
1317   GL_CURRENT_COLOR = $0B00;
1318   GL_CURRENT_INDEX = $0B01;
1319   GL_CURRENT_NORMAL = $0B02;
1320   GL_CURRENT_TEXTURE_COORDS = $0B03;
1321   GL_CURRENT_RASTER_COLOR = $0B04;
1322   GL_CURRENT_RASTER_INDEX = $0B05;
1323   GL_CURRENT_RASTER_TEXTURE_COORDS = $0B06;
1324   GL_CURRENT_RASTER_POSITION = $0B07;
1325   GL_CURRENT_RASTER_POSITION_VALID = $0B08;
1326   GL_CURRENT_RASTER_DISTANCE = $0B09;
1327   GL_POINT_SMOOTH = $0B10;
1328   GL_LINE_STIPPLE = $0B24;
1329   GL_LINE_STIPPLE_PATTERN = $0B25;
1330   GL_LINE_STIPPLE_REPEAT = $0B26;
1331   GL_LIST_MODE = $0B30;
1332   GL_MAX_LIST_NESTING = $0B31;
1333   GL_LIST_BASE = $0B32;
1334   GL_LIST_INDEX = $0B33;
1335   GL_POLYGON_MODE = $0B40;
1336   GL_POLYGON_STIPPLE = $0B42;
1337   GL_EDGE_FLAG = $0B43;
1338   GL_LIGHTING = $0B50;
1339   GL_LIGHT_MODEL_LOCAL_VIEWER = $0B51;
1340   GL_LIGHT_MODEL_TWO_SIDE = $0B52;
1341   GL_LIGHT_MODEL_AMBIENT = $0B53;
1342   GL_SHADE_MODEL = $0B54;
1343   GL_COLOR_MATERIAL_FACE = $0B55;
1344   GL_COLOR_MATERIAL_PARAMETER = $0B56;
1345   GL_COLOR_MATERIAL = $0B57;
1346   GL_FOG = $0B60;
1347   GL_FOG_INDEX = $0B61;
1348   GL_FOG_DENSITY = $0B62;
1349   GL_FOG_START = $0B63;
1350   GL_FOG_END = $0B64;
1351   GL_FOG_MODE = $0B65;
1352   GL_FOG_COLOR = $0B66;
1353   GL_ACCUM_CLEAR_VALUE = $0B80;
1354   GL_MATRIX_MODE = $0BA0;
1355   GL_NORMALIZE = $0BA1;
1356   GL_MODELVIEW_STACK_DEPTH = $0BA3;
1357   GL_PROJECTION_STACK_DEPTH = $0BA4;
1358   GL_TEXTURE_STACK_DEPTH = $0BA5;
1359   GL_MODELVIEW_MATRIX = $0BA6;
1360   GL_PROJECTION_MATRIX = $0BA7;
1361   GL_TEXTURE_MATRIX = $0BA8;
1362   GL_ATTRIB_STACK_DEPTH = $0BB0;
1363   GL_CLIENT_ATTRIB_STACK_DEPTH = $0BB1;
1364   GL_ALPHA_TEST = $0BC0;
1365   GL_ALPHA_TEST_FUNC = $0BC1;
1366   GL_ALPHA_TEST_REF = $0BC2;
1367   GL_INDEX_LOGIC_OP = $0BF1;
1368   GL_AUX_BUFFERS = $0C00;
1369   GL_INDEX_CLEAR_VALUE = $0C20;
1370   GL_INDEX_WRITEMASK = $0C21;
1371   GL_INDEX_MODE = $0C30;
1372   GL_RGBA_MODE = $0C31;
1373   GL_RENDER_MODE = $0C40;
1374   GL_PERSPECTIVE_CORRECTION_HINT = $0C50;
1375   GL_POINT_SMOOTH_HINT = $0C51;
1376   GL_FOG_HINT = $0C54;
1377   GL_TEXTURE_GEN_S = $0C60;
1378   GL_TEXTURE_GEN_T = $0C61;
1379   GL_TEXTURE_GEN_R = $0C62;
1380   GL_TEXTURE_GEN_Q = $0C63;
1381   GL_PIXEL_MAP_I_TO_I = $0C70;
1382   GL_PIXEL_MAP_S_TO_S = $0C71;
1383   GL_PIXEL_MAP_I_TO_R = $0C72;
1384   GL_PIXEL_MAP_I_TO_G = $0C73;
1385   GL_PIXEL_MAP_I_TO_B = $0C74;
1386   GL_PIXEL_MAP_I_TO_A = $0C75;
1387   GL_PIXEL_MAP_R_TO_R = $0C76;
1388   GL_PIXEL_MAP_G_TO_G = $0C77;
1389   GL_PIXEL_MAP_B_TO_B = $0C78;
1390   GL_PIXEL_MAP_A_TO_A = $0C79;
1391   GL_PIXEL_MAP_I_TO_I_SIZE = $0CB0;
1392   GL_PIXEL_MAP_S_TO_S_SIZE = $0CB1;
1393   GL_PIXEL_MAP_I_TO_R_SIZE = $0CB2;
1394   GL_PIXEL_MAP_I_TO_G_SIZE = $0CB3;
1395   GL_PIXEL_MAP_I_TO_B_SIZE = $0CB4;
1396   GL_PIXEL_MAP_I_TO_A_SIZE = $0CB5;
1397   GL_PIXEL_MAP_R_TO_R_SIZE = $0CB6;
1398   GL_PIXEL_MAP_G_TO_G_SIZE = $0CB7;
1399   GL_PIXEL_MAP_B_TO_B_SIZE = $0CB8;
1400   GL_PIXEL_MAP_A_TO_A_SIZE = $0CB9;
1401   GL_MAP_COLOR = $0D10;
1402   GL_MAP_STENCIL = $0D11;
1403   GL_INDEX_SHIFT = $0D12;
1404   GL_INDEX_OFFSET = $0D13;
1405   GL_RED_SCALE = $0D14;
1406   GL_RED_BIAS = $0D15;
1407   GL_ZOOM_X = $0D16;
1408   GL_ZOOM_Y = $0D17;
1409   GL_GREEN_SCALE = $0D18;
1410   GL_GREEN_BIAS = $0D19;
1411   GL_BLUE_SCALE = $0D1A;
1412   GL_BLUE_BIAS = $0D1B;
1413   GL_ALPHA_SCALE = $0D1C;
1414   GL_ALPHA_BIAS = $0D1D;
1415   GL_DEPTH_SCALE = $0D1E;
1416   GL_DEPTH_BIAS = $0D1F;
1417   GL_MAX_EVAL_ORDER = $0D30;
1418   GL_MAX_LIGHTS = $0D31;
1419   GL_MAX_CLIP_PLANES = $0D32;
1420   GL_MAX_PIXEL_MAP_TABLE = $0D34;
1421   GL_MAX_ATTRIB_STACK_DEPTH = $0D35;
1422   GL_MAX_MODELVIEW_STACK_DEPTH = $0D36;
1423   GL_MAX_NAME_STACK_DEPTH = $0D37;
1424   GL_MAX_PROJECTION_STACK_DEPTH = $0D38;
1425   GL_MAX_TEXTURE_STACK_DEPTH = $0D39;
1426   GL_MAX_CLIENT_ATTRIB_STACK_DEPTH = $0D3B;
1427   GL_INDEX_BITS = $0D51;
1428   GL_RED_BITS = $0D52;
1429   GL_GREEN_BITS = $0D53;
1430   GL_BLUE_BITS = $0D54;
1431   GL_ALPHA_BITS = $0D55;
1432   GL_DEPTH_BITS = $0D56;
1433   GL_STENCIL_BITS = $0D57;
1434   GL_ACCUM_RED_BITS = $0D58;
1435   GL_ACCUM_GREEN_BITS = $0D59;
1436   GL_ACCUM_BLUE_BITS = $0D5A;
1437   GL_ACCUM_ALPHA_BITS = $0D5B;
1438   GL_NAME_STACK_DEPTH = $0D70;
1439   GL_AUTO_NORMAL = $0D80;
1440   GL_MAP1_COLOR_4 = $0D90;
1441   GL_MAP1_INDEX = $0D91;
1442   GL_MAP1_NORMAL = $0D92;
1443   GL_MAP1_TEXTURE_COORD_1 = $0D93;
1444   GL_MAP1_TEXTURE_COORD_2 = $0D94;
1445   GL_MAP1_TEXTURE_COORD_3 = $0D95;
1446   GL_MAP1_TEXTURE_COORD_4 = $0D96;
1447   GL_MAP1_VERTEX_3 = $0D97;
1448   GL_MAP1_VERTEX_4 = $0D98;
1449   GL_MAP2_COLOR_4 = $0DB0;
1450   GL_MAP2_INDEX = $0DB1;
1451   GL_MAP2_NORMAL = $0DB2;
1452   GL_MAP2_TEXTURE_COORD_1 = $0DB3;
1453   GL_MAP2_TEXTURE_COORD_2 = $0DB4;
1454   GL_MAP2_TEXTURE_COORD_3 = $0DB5;
1455   GL_MAP2_TEXTURE_COORD_4 = $0DB6;
1456   GL_MAP2_VERTEX_3 = $0DB7;
1457   GL_MAP2_VERTEX_4 = $0DB8;
1458   GL_MAP1_GRID_DOMAIN = $0DD0;
1459   GL_MAP1_GRID_SEGMENTS = $0DD1;
1460   GL_MAP2_GRID_DOMAIN = $0DD2;
1461   GL_MAP2_GRID_SEGMENTS = $0DD3;
1462   GL_FEEDBACK_BUFFER_POINTER = $0DF0;
1463   GL_FEEDBACK_BUFFER_SIZE = $0DF1;
1464   GL_FEEDBACK_BUFFER_TYPE = $0DF2;
1465   GL_SELECTION_BUFFER_POINTER = $0DF3;
1466   GL_SELECTION_BUFFER_SIZE = $0DF4;
1467   GL_LIGHT0 = $4000;
1468   GL_LIGHT1 = $4001;
1469   GL_LIGHT2 = $4002;
1470   GL_LIGHT3 = $4003;
1471   GL_LIGHT4 = $4004;
1472   GL_LIGHT5 = $4005;
1473   GL_LIGHT6 = $4006;
1474   GL_LIGHT7 = $4007;
1475   GL_AMBIENT = $1200;
1476   GL_DIFFUSE = $1201;
1477   GL_SPECULAR = $1202;
1478   GL_POSITION = $1203;
1479   GL_SPOT_DIRECTION = $1204;
1480   GL_SPOT_EXPONENT = $1205;
1481   GL_SPOT_CUTOFF = $1206;
1482   GL_CONSTANT_ATTENUATION = $1207;
1483   GL_LINEAR_ATTENUATION = $1208;
1484   GL_QUADRATIC_ATTENUATION = $1209;
1485   GL_COMPILE = $1300;
1486   GL_COMPILE_AND_EXECUTE = $1301;
1487   GL_EMISSION = $1600;
1488   GL_SHININESS = $1601;
1489   GL_AMBIENT_AND_DIFFUSE = $1602;
1490   GL_COLOR_INDEXES = $1603;
1491   GL_MODELVIEW = $1700;
1492   GL_PROJECTION = $1701;
1493   GL_COLOR_INDEX = $1900;
1494   GL_LUMINANCE = $1909;
1495   GL_LUMINANCE_ALPHA = $190A;
1496   GL_BITMAP = $1A00;
1497   GL_RENDER = $1C00;
1498   GL_FEEDBACK = $1C01;
1499   GL_SELECT = $1C02;
1500   GL_FLAT = $1D00;
1501   GL_SMOOTH = $1D01;
1502   GL_S = $2000;
1503   GL_T = $2001;
1504   GL_R = $2002;
1505   GL_Q = $2003;
1506   GL_MODULATE = $2100;
1507   GL_DECAL = $2101;
1508   GL_TEXTURE_ENV_MODE = $2200;
1509   GL_TEXTURE_ENV_COLOR = $2201;
1510   GL_TEXTURE_ENV = $2300;
1511   GL_EYE_LINEAR = $2400;
1512   GL_OBJECT_LINEAR = $2401;
1513   GL_SPHERE_MAP = $2402;
1514   GL_TEXTURE_GEN_MODE = $2500;
1515   GL_OBJECT_PLANE = $2501;
1516   GL_EYE_PLANE = $2502;
1517   GL_CLAMP = $2900;
1518   GL_CLIENT_PIXEL_STORE_BIT = $00000001;
1519   GL_CLIENT_VERTEX_ARRAY_BIT = $00000002;
1520   GL_CLIENT_ALL_ATTRIB_BITS = $FFFFFFFF;
1521   GL_ALPHA4 = $803B;
1522   GL_ALPHA8 = $803C;
1523   GL_ALPHA12 = $803D;
1524   GL_ALPHA16 = $803E;
1525   GL_LUMINANCE4 = $803F;
1526   GL_LUMINANCE8 = $8040;
1527   GL_LUMINANCE12 = $8041;
1528   GL_LUMINANCE16 = $8042;
1529   GL_LUMINANCE4_ALPHA4 = $8043;
1530   GL_LUMINANCE6_ALPHA2 = $8044;
1531   GL_LUMINANCE8_ALPHA8 = $8045;
1532   GL_LUMINANCE12_ALPHA4 = $8046;
1533   GL_LUMINANCE12_ALPHA12 = $8047;
1534   GL_LUMINANCE16_ALPHA16 = $8048;
1535   GL_INTENSITY = $8049;
1536   GL_INTENSITY4 = $804A;
1537   GL_INTENSITY8 = $804B;
1538   GL_INTENSITY12 = $804C;
1539   GL_INTENSITY16 = $804D;
1540   GL_TEXTURE_LUMINANCE_SIZE = $8060;
1541   GL_TEXTURE_INTENSITY_SIZE = $8061;
1542   GL_TEXTURE_PRIORITY = $8066;
1543   GL_TEXTURE_RESIDENT = $8067;
1544   GL_VERTEX_ARRAY = $8074;
1545   GL_NORMAL_ARRAY = $8075;
1546   GL_COLOR_ARRAY = $8076;
1547   GL_INDEX_ARRAY = $8077;
1548   GL_TEXTURE_COORD_ARRAY = $8078;
1549   GL_EDGE_FLAG_ARRAY = $8079;
1550   GL_VERTEX_ARRAY_SIZE = $807A;
1551   GL_VERTEX_ARRAY_TYPE = $807B;
1552   GL_VERTEX_ARRAY_STRIDE = $807C;
1553   GL_NORMAL_ARRAY_TYPE = $807E;
1554   GL_NORMAL_ARRAY_STRIDE = $807F;
1555   GL_COLOR_ARRAY_SIZE = $8081;
1556   GL_COLOR_ARRAY_TYPE = $8082;
1557   GL_COLOR_ARRAY_STRIDE = $8083;
1558   GL_INDEX_ARRAY_TYPE = $8085;
1559   GL_INDEX_ARRAY_STRIDE = $8086;
1560   GL_TEXTURE_COORD_ARRAY_SIZE = $8088;
1561   GL_TEXTURE_COORD_ARRAY_TYPE = $8089;
1562   GL_TEXTURE_COORD_ARRAY_STRIDE = $808A;
1563   GL_EDGE_FLAG_ARRAY_STRIDE = $808C;
1564   GL_VERTEX_ARRAY_POINTER = $808E;
1565   GL_NORMAL_ARRAY_POINTER = $808F;
1566   GL_COLOR_ARRAY_POINTER = $8090;
1567   GL_INDEX_ARRAY_POINTER = $8091;
1568   GL_TEXTURE_COORD_ARRAY_POINTER = $8092;
1569   GL_EDGE_FLAG_ARRAY_POINTER = $8093;
1570   GL_V2F = $2A20;
1571   GL_V3F = $2A21;
1572   GL_C4UB_V2F = $2A22;
1573   GL_C4UB_V3F = $2A23;
1574   GL_C3F_V3F = $2A24;
1575   GL_N3F_V3F = $2A25;
1576   GL_C4F_N3F_V3F = $2A26;
1577   GL_T2F_V3F = $2A27;
1578   GL_T4F_V4F = $2A28;
1579   GL_T2F_C4UB_V3F = $2A29;
1580   GL_T2F_C3F_V3F = $2A2A;
1581   GL_T2F_N3F_V3F = $2A2B;
1582   GL_T2F_C4F_N3F_V3F = $2A2C;
1583   GL_T4F_C4F_N3F_V4F = $2A2D;
1584   GL_COLOR_TABLE_FORMAT_EXT = $80D8;
1585   GL_COLOR_TABLE_WIDTH_EXT = $80D9;
1586   GL_COLOR_TABLE_RED_SIZE_EXT = $80DA;
1587   GL_COLOR_TABLE_GREEN_SIZE_EXT = $80DB;
1588   GL_COLOR_TABLE_BLUE_SIZE_EXT = $80DC;
1589   GL_COLOR_TABLE_ALPHA_SIZE_EXT = $80DD;
1590   GL_COLOR_TABLE_LUMINANCE_SIZE_EXT = $80DE;
1591   GL_COLOR_TABLE_INTENSITY_SIZE_EXT = $80DF;
1592   GL_LOGIC_OP = GL_INDEX_LOGIC_OP;
1593   GL_TEXTURE_COMPONENTS = GL_TEXTURE_INTERNAL_FORMAT;
1594 {$endif}
1595
1596   // GL_VERSION_1_2
1597   GL_UNSIGNED_BYTE_3_3_2 = $8032;
1598   GL_UNSIGNED_SHORT_4_4_4_4 = $8033;
1599   GL_UNSIGNED_SHORT_5_5_5_1 = $8034;
1600   GL_UNSIGNED_INT_8_8_8_8 = $8035;
1601   GL_UNSIGNED_INT_10_10_10_2 = $8036;
1602   GL_TEXTURE_BINDING_3D = $806A;
1603   GL_PACK_SKIP_IMAGES = $806B;
1604   GL_PACK_IMAGE_HEIGHT = $806C;
1605   GL_UNPACK_SKIP_IMAGES = $806D;
1606   GL_UNPACK_IMAGE_HEIGHT = $806E;
1607   GL_TEXTURE_3D = $806F;
1608   GL_PROXY_TEXTURE_3D = $8070;
1609   GL_TEXTURE_DEPTH = $8071;
1610   GL_TEXTURE_WRAP_R = $8072;
1611   GL_MAX_3D_TEXTURE_SIZE = $8073;
1612   GL_UNSIGNED_BYTE_2_3_3_REV = $8362;
1613   GL_UNSIGNED_SHORT_5_6_5 = $8363;
1614   GL_UNSIGNED_SHORT_5_6_5_REV = $8364;
1615   GL_UNSIGNED_SHORT_4_4_4_4_REV = $8365;
1616   GL_UNSIGNED_SHORT_1_5_5_5_REV = $8366;
1617   GL_UNSIGNED_INT_8_8_8_8_REV = $8367;
1618   GL_UNSIGNED_INT_2_10_10_10_REV = $8368;
1619   GL_BGR = $80E0;
1620   GL_BGRA = $80E1;
1621   GL_MAX_ELEMENTS_VERTICES = $80E8;
1622   GL_MAX_ELEMENTS_INDICES = $80E9;
1623   GL_CLAMP_TO_EDGE = $812F;
1624   GL_TEXTURE_MIN_LOD = $813A;
1625   GL_TEXTURE_MAX_LOD = $813B;
1626   GL_TEXTURE_BASE_LEVEL = $813C;
1627   GL_TEXTURE_MAX_LEVEL = $813D;
1628   GL_SMOOTH_POINT_SIZE_RANGE = $0B12;
1629   GL_SMOOTH_POINT_SIZE_GRANULARITY = $0B13;
1630   GL_SMOOTH_LINE_WIDTH_RANGE = $0B22;
1631   GL_SMOOTH_LINE_WIDTH_GRANULARITY = $0B23;
1632   GL_ALIASED_LINE_WIDTH_RANGE = $846E;
1633 {$ifdef DGL_DEPRECATED}
1634   GL_RESCALE_NORMAL = $803A;
1635   GL_LIGHT_MODEL_COLOR_CONTROL = $81F8;
1636   GL_SINGLE_COLOR = $81F9;
1637   GL_SEPARATE_SPECULAR_COLOR = $81FA;
1638   GL_ALIASED_POINT_SIZE_RANGE = $846D;
1639 {$endif}
1640
1641   // GL_VERSION_1_3
1642   GL_TEXTURE0 = $84C0;
1643   GL_TEXTURE1 = $84C1;
1644   GL_TEXTURE2 = $84C2;
1645   GL_TEXTURE3 = $84C3;
1646   GL_TEXTURE4 = $84C4;
1647   GL_TEXTURE5 = $84C5;
1648   GL_TEXTURE6 = $84C6;
1649   GL_TEXTURE7 = $84C7;
1650   GL_TEXTURE8 = $84C8;
1651   GL_TEXTURE9 = $84C9;
1652   GL_TEXTURE10 = $84CA;
1653   GL_TEXTURE11 = $84CB;
1654   GL_TEXTURE12 = $84CC;
1655   GL_TEXTURE13 = $84CD;
1656   GL_TEXTURE14 = $84CE;
1657   GL_TEXTURE15 = $84CF;
1658   GL_TEXTURE16 = $84D0;
1659   GL_TEXTURE17 = $84D1;
1660   GL_TEXTURE18 = $84D2;
1661   GL_TEXTURE19 = $84D3;
1662   GL_TEXTURE20 = $84D4;
1663   GL_TEXTURE21 = $84D5;
1664   GL_TEXTURE22 = $84D6;
1665   GL_TEXTURE23 = $84D7;
1666   GL_TEXTURE24 = $84D8;
1667   GL_TEXTURE25 = $84D9;
1668   GL_TEXTURE26 = $84DA;
1669   GL_TEXTURE27 = $84DB;
1670   GL_TEXTURE28 = $84DC;
1671   GL_TEXTURE29 = $84DD;
1672   GL_TEXTURE30 = $84DE;
1673   GL_TEXTURE31 = $84DF;
1674   GL_ACTIVE_TEXTURE = $84E0;
1675   GL_MULTISAMPLE = $809D;
1676   GL_SAMPLE_ALPHA_TO_COVERAGE = $809E;
1677   GL_SAMPLE_ALPHA_TO_ONE = $809F;
1678   GL_SAMPLE_COVERAGE = $80A0;
1679   GL_SAMPLE_BUFFERS = $80A8;
1680   GL_SAMPLES = $80A9;
1681   GL_SAMPLE_COVERAGE_VALUE = $80AA;
1682   GL_SAMPLE_COVERAGE_INVERT = $80AB;
1683   GL_TEXTURE_CUBE_MAP = $8513;
1684   GL_TEXTURE_BINDING_CUBE_MAP = $8514;
1685   GL_TEXTURE_CUBE_MAP_POSITIVE_X = $8515;
1686   GL_TEXTURE_CUBE_MAP_NEGATIVE_X = $8516;
1687   GL_TEXTURE_CUBE_MAP_POSITIVE_Y = $8517;
1688   GL_TEXTURE_CUBE_MAP_NEGATIVE_Y = $8518;
1689   GL_TEXTURE_CUBE_MAP_POSITIVE_Z = $8519;
1690   GL_TEXTURE_CUBE_MAP_NEGATIVE_Z = $851A;
1691   GL_PROXY_TEXTURE_CUBE_MAP = $851B;
1692   GL_MAX_CUBE_MAP_TEXTURE_SIZE = $851C;
1693   GL_COMPRESSED_RGB = $84ED;
1694   GL_COMPRESSED_RGBA = $84EE;
1695   GL_TEXTURE_COMPRESSION_HINT = $84EF;
1696   GL_TEXTURE_COMPRESSED_IMAGE_SIZE = $86A0;
1697   GL_TEXTURE_COMPRESSED = $86A1;
1698   GL_NUM_COMPRESSED_TEXTURE_FORMATS = $86A2;
1699   GL_COMPRESSED_TEXTURE_FORMATS = $86A3;
1700   GL_CLAMP_TO_BORDER = $812D;
1701 {$ifdef DGL_DEPRECATED}
1702   GL_CLIENT_ACTIVE_TEXTURE = $84E1;
1703   GL_MAX_TEXTURE_UNITS = $84E2;
1704   GL_TRANSPOSE_MODELVIEW_MATRIX = $84E3;
1705   GL_TRANSPOSE_PROJECTION_MATRIX = $84E4;
1706   GL_TRANSPOSE_TEXTURE_MATRIX = $84E5;
1707   GL_TRANSPOSE_COLOR_MATRIX = $84E6;
1708   GL_MULTISAMPLE_BIT = $20000000;
1709   GL_NORMAL_MAP = $8511;
1710   GL_REFLECTION_MAP = $8512;
1711   GL_COMPRESSED_ALPHA = $84E9;
1712   GL_COMPRESSED_LUMINANCE = $84EA;
1713   GL_COMPRESSED_LUMINANCE_ALPHA = $84EB;
1714   GL_COMPRESSED_INTENSITY = $84EC;
1715   GL_COMBINE = $8570;
1716   GL_COMBINE_RGB = $8571;
1717   GL_COMBINE_ALPHA = $8572;
1718   GL_SOURCE0_RGB = $8580;
1719   GL_SOURCE1_RGB = $8581;
1720   GL_SOURCE2_RGB = $8582;
1721   GL_SOURCE0_ALPHA = $8588;
1722   GL_SOURCE1_ALPHA = $8589;
1723   GL_SOURCE2_ALPHA = $858A;
1724   GL_OPERAND0_RGB = $8590;
1725   GL_OPERAND1_RGB = $8591;
1726   GL_OPERAND2_RGB = $8592;
1727   GL_OPERAND0_ALPHA = $8598;
1728   GL_OPERAND1_ALPHA = $8599;
1729   GL_OPERAND2_ALPHA = $859A;
1730   GL_RGB_SCALE = $8573;
1731   GL_ADD_SIGNED = $8574;
1732   GL_INTERPOLATE = $8575;
1733   GL_SUBTRACT = $84E7;
1734   GL_CONSTANT = $8576;
1735   GL_PRIMARY_COLOR = $8577;
1736   GL_PREVIOUS = $8578;
1737   GL_DOT3_RGB = $86AE;
1738   GL_DOT3_RGBA = $86AF;
1739 {$endif}
1740
1741   // GL_VERSION_1_4
1742   GL_BLEND_DST_RGB = $80C8;
1743   GL_BLEND_SRC_RGB = $80C9;
1744   GL_BLEND_DST_ALPHA = $80CA;
1745   GL_BLEND_SRC_ALPHA = $80CB;
1746   GL_POINT_FADE_THRESHOLD_SIZE = $8128;
1747   GL_DEPTH_COMPONENT16 = $81A5;
1748   GL_DEPTH_COMPONENT24 = $81A6;
1749   GL_DEPTH_COMPONENT32 = $81A7;
1750   GL_MIRRORED_REPEAT = $8370;
1751   GL_MAX_TEXTURE_LOD_BIAS = $84FD;
1752   GL_TEXTURE_LOD_BIAS = $8501;
1753   GL_INCR_WRAP = $8507;
1754   GL_DECR_WRAP = $8508;
1755   GL_TEXTURE_DEPTH_SIZE = $884A;
1756   GL_TEXTURE_COMPARE_MODE = $884C;
1757   GL_TEXTURE_COMPARE_FUNC = $884D;
1758 {$ifdef DGL_DEPRECATED}
1759   GL_POINT_SIZE_MIN = $8126;
1760   GL_POINT_SIZE_MAX = $8127;
1761   GL_POINT_DISTANCE_ATTENUATION = $8129;
1762   GL_GENERATE_MIPMAP = $8191;
1763   GL_GENERATE_MIPMAP_HINT = $8192;
1764   GL_FOG_COORDINATE_SOURCE = $8450;
1765   GL_FOG_COORDINATE = $8451;
1766   GL_FRAGMENT_DEPTH = $8452;
1767   GL_CURRENT_FOG_COORDINATE = $8453;
1768   GL_FOG_COORDINATE_ARRAY_TYPE = $8454;
1769   GL_FOG_COORDINATE_ARRAY_STRIDE = $8455;
1770   GL_FOG_COORDINATE_ARRAY_POINTER = $8456;
1771   GL_FOG_COORDINATE_ARRAY = $8457;
1772   GL_COLOR_SUM = $8458;
1773   GL_CURRENT_SECONDARY_COLOR = $8459;
1774   GL_SECONDARY_COLOR_ARRAY_SIZE = $845A;
1775   GL_SECONDARY_COLOR_ARRAY_TYPE = $845B;
1776   GL_SECONDARY_COLOR_ARRAY_STRIDE = $845C;
1777   GL_SECONDARY_COLOR_ARRAY_POINTER = $845D;
1778   GL_SECONDARY_COLOR_ARRAY = $845E;
1779   GL_TEXTURE_FILTER_CONTROL = $8500;
1780   GL_DEPTH_TEXTURE_MODE = $884B;
1781   GL_COMPARE_R_TO_TEXTURE = $884E;
1782 {$endif}
1783
1784   // GL_VERSION_1_5
1785   GL_BUFFER_SIZE = $8764;
1786   GL_BUFFER_USAGE = $8765;
1787   GL_QUERY_COUNTER_BITS = $8864;
1788   GL_CURRENT_QUERY = $8865;
1789   GL_QUERY_RESULT = $8866;
1790   GL_QUERY_RESULT_AVAILABLE = $8867;
1791   GL_ARRAY_BUFFER = $8892;
1792   GL_ELEMENT_ARRAY_BUFFER = $8893;
1793   GL_ARRAY_BUFFER_BINDING = $8894;
1794   GL_ELEMENT_ARRAY_BUFFER_BINDING = $8895;
1795   GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = $889F;
1796   GL_READ_ONLY = $88B8;
1797   GL_WRITE_ONLY = $88B9;
1798   GL_READ_WRITE = $88BA;
1799   GL_BUFFER_ACCESS = $88BB;
1800   GL_BUFFER_MAPPED = $88BC;
1801   GL_BUFFER_MAP_POINTER = $88BD;
1802   GL_STREAM_DRAW = $88E0;
1803   GL_STREAM_READ = $88E1;
1804   GL_STREAM_COPY = $88E2;
1805   GL_STATIC_DRAW = $88E4;
1806   GL_STATIC_READ = $88E5;
1807   GL_STATIC_COPY = $88E6;
1808   GL_DYNAMIC_DRAW = $88E8;
1809   GL_DYNAMIC_READ = $88E9;
1810   GL_DYNAMIC_COPY = $88EA;
1811   GL_SAMPLES_PASSED = $8914;
1812 {$ifdef DGL_DEPRECATED}
1813   GL_VERTEX_ARRAY_BUFFER_BINDING = $8896;
1814   GL_NORMAL_ARRAY_BUFFER_BINDING = $8897;
1815   GL_COLOR_ARRAY_BUFFER_BINDING = $8898;
1816   GL_INDEX_ARRAY_BUFFER_BINDING = $8899;
1817   GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING = $889A;
1818   GL_EDGE_FLAG_ARRAY_BUFFER_BINDING = $889B;
1819   GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING = $889C;
1820   GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING = $889D;
1821   GL_WEIGHT_ARRAY_BUFFER_BINDING = $889E;
1822   GL_FOG_COORD_SRC = $8450;
1823   GL_FOG_COORD = $8451;
1824   GL_CURRENT_FOG_COORD = $8453;
1825   GL_FOG_COORD_ARRAY_TYPE = $8454;
1826   GL_FOG_COORD_ARRAY_STRIDE = $8455;
1827   GL_FOG_COORD_ARRAY_POINTER = $8456;
1828   GL_FOG_COORD_ARRAY = $8457;
1829   GL_FOG_COORD_ARRAY_BUFFER_BINDING = $889D;
1830   GL_SRC0_RGB = $8580;
1831   GL_SRC1_RGB = $8581;
1832   GL_SRC2_RGB = $8582;
1833   GL_SRC0_ALPHA = $8588;
1834   GL_SRC1_ALPHA = $8589;
1835   GL_SRC2_ALPHA = $858A;
1836 {$endif}
1837
1838   // GL_VERSION_2_0
1839   GL_BLEND_EQUATION_RGB = $8009;
1840   GL_VERTEX_ATTRIB_ARRAY_ENABLED = $8622;
1841   GL_VERTEX_ATTRIB_ARRAY_SIZE = $8623;
1842   GL_VERTEX_ATTRIB_ARRAY_STRIDE = $8624;
1843   GL_VERTEX_ATTRIB_ARRAY_TYPE = $8625;
1844   GL_CURRENT_VERTEX_ATTRIB = $8626;
1845   GL_VERTEX_PROGRAM_POINT_SIZE = $8642;
1846   GL_VERTEX_ATTRIB_ARRAY_POINTER = $8645;
1847   GL_STENCIL_BACK_FUNC = $8800;
1848   GL_STENCIL_BACK_FAIL = $8801;
1849   GL_STENCIL_BACK_PASS_DEPTH_FAIL = $8802;
1850   GL_STENCIL_BACK_PASS_DEPTH_PASS = $8803;
1851   GL_MAX_DRAW_BUFFERS = $8824;
1852   GL_DRAW_BUFFER0 = $8825;
1853   GL_DRAW_BUFFER1 = $8826;
1854   GL_DRAW_BUFFER2 = $8827;
1855   GL_DRAW_BUFFER3 = $8828;
1856   GL_DRAW_BUFFER4 = $8829;
1857   GL_DRAW_BUFFER5 = $882A;
1858   GL_DRAW_BUFFER6 = $882B;
1859   GL_DRAW_BUFFER7 = $882C;
1860   GL_DRAW_BUFFER8 = $882D;
1861   GL_DRAW_BUFFER9 = $882E;
1862   GL_DRAW_BUFFER10 = $882F;
1863   GL_DRAW_BUFFER11 = $8830;
1864   GL_DRAW_BUFFER12 = $8831;
1865   GL_DRAW_BUFFER13 = $8832;
1866   GL_DRAW_BUFFER14 = $8833;
1867   GL_DRAW_BUFFER15 = $8834;
1868   GL_BLEND_EQUATION_ALPHA = $883D;
1869   GL_MAX_VERTEX_ATTRIBS = $8869;
1870   GL_VERTEX_ATTRIB_ARRAY_NORMALIZED = $886A;
1871   GL_MAX_TEXTURE_IMAGE_UNITS = $8872;
1872   GL_FRAGMENT_SHADER = $8B30;
1873   GL_VERTEX_SHADER = $8B31;
1874   GL_MAX_FRAGMENT_UNIFORM_COMPONENTS = $8B49;
1875   GL_MAX_VERTEX_UNIFORM_COMPONENTS = $8B4A;
1876   GL_MAX_VARYING_FLOATS = $8B4B;
1877   GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS = $8B4C;
1878   GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS = $8B4D;
1879   GL_SHADER_TYPE = $8B4F;
1880   GL_FLOAT_VEC2 = $8B50;
1881   GL_FLOAT_VEC3 = $8B51;
1882   GL_FLOAT_VEC4 = $8B52;
1883   GL_INT_VEC2 = $8B53;
1884   GL_INT_VEC3 = $8B54;
1885   GL_INT_VEC4 = $8B55;
1886   GL_BOOL = $8B56;
1887   GL_BOOL_VEC2 = $8B57;
1888   GL_BOOL_VEC3 = $8B58;
1889   GL_BOOL_VEC4 = $8B59;
1890   GL_FLOAT_MAT2 = $8B5A;
1891   GL_FLOAT_MAT3 = $8B5B;
1892   GL_FLOAT_MAT4 = $8B5C;
1893   GL_SAMPLER_1D = $8B5D;
1894   GL_SAMPLER_2D = $8B5E;
1895   GL_SAMPLER_3D = $8B5F;
1896   GL_SAMPLER_CUBE = $8B60;
1897   GL_SAMPLER_1D_SHADOW = $8B61;
1898   GL_SAMPLER_2D_SHADOW = $8B62;
1899   GL_DELETE_STATUS = $8B80;
1900   GL_COMPILE_STATUS = $8B81;
1901   GL_LINK_STATUS = $8B82;
1902   GL_VALIDATE_STATUS = $8B83;
1903   GL_INFO_LOG_LENGTH = $8B84;
1904   GL_ATTACHED_SHADERS = $8B85;
1905   GL_ACTIVE_UNIFORMS = $8B86;
1906   GL_ACTIVE_UNIFORM_MAX_LENGTH = $8B87;
1907   GL_SHADER_SOURCE_LENGTH = $8B88;
1908   GL_ACTIVE_ATTRIBUTES = $8B89;
1909   GL_ACTIVE_ATTRIBUTE_MAX_LENGTH = $8B8A;
1910   GL_FRAGMENT_SHADER_DERIVATIVE_HINT = $8B8B;
1911   GL_SHADING_LANGUAGE_VERSION = $8B8C;
1912   GL_CURRENT_PROGRAM = $8B8D;
1913   GL_POINT_SPRITE_COORD_ORIGIN = $8CA0;
1914   GL_LOWER_LEFT = $8CA1;
1915   GL_UPPER_LEFT = $8CA2;
1916   GL_STENCIL_BACK_REF = $8CA3;
1917   GL_STENCIL_BACK_VALUE_MASK = $8CA4;
1918   GL_STENCIL_BACK_WRITEMASK = $8CA5;
1919 {$ifdef DGL_DEPRECATED}
1920   GL_VERTEX_PROGRAM_TWO_SIDE = $8643;
1921   GL_POINT_SPRITE = $8861;
1922   GL_COORD_REPLACE = $8862;
1923   GL_MAX_TEXTURE_COORDS = $8871;
1924 {$endif}
1925
1926   // GL_VERSION_2_1
1927   GL_PIXEL_PACK_BUFFER = $88EB;
1928   GL_PIXEL_UNPACK_BUFFER = $88EC;
1929   GL_PIXEL_PACK_BUFFER_BINDING = $88ED;
1930   GL_PIXEL_UNPACK_BUFFER_BINDING = $88EF;
1931   GL_FLOAT_MAT2x3 = $8B65;
1932   GL_FLOAT_MAT2x4 = $8B66;
1933   GL_FLOAT_MAT3x2 = $8B67;
1934   GL_FLOAT_MAT3x4 = $8B68;
1935   GL_FLOAT_MAT4x2 = $8B69;
1936   GL_FLOAT_MAT4x3 = $8B6A;
1937   GL_SRGB = $8C40;
1938   GL_SRGB8 = $8C41;
1939   GL_SRGB_ALPHA = $8C42;
1940   GL_SRGB8_ALPHA8 = $8C43;
1941   GL_COMPRESSED_SRGB = $8C48;
1942   GL_COMPRESSED_SRGB_ALPHA = $8C49;
1943 {$ifdef DGL_DEPRECATED}
1944   GL_CURRENT_RASTER_SECONDARY_COLOR = $845F;
1945   GL_SLUMINANCE_ALPHA = $8C44;
1946   GL_SLUMINANCE8_ALPHA8 = $8C45;
1947   GL_SLUMINANCE = $8C46;
1948   GL_SLUMINANCE8 = $8C47;
1949   GL_COMPRESSED_SLUMINANCE = $8C4A;
1950   GL_COMPRESSED_SLUMINANCE_ALPHA = $8C4B;
1951 {$endif}
1952
1953   // GL_VERSION_3_0
1954   GL_COMPARE_REF_TO_TEXTURE = $884E;
1955   GL_CLIP_DISTANCE0 = $3000;
1956   GL_CLIP_DISTANCE1 = $3001;
1957   GL_CLIP_DISTANCE2 = $3002;
1958   GL_CLIP_DISTANCE3 = $3003;
1959   GL_CLIP_DISTANCE4 = $3004;
1960   GL_CLIP_DISTANCE5 = $3005;
1961   GL_CLIP_DISTANCE6 = $3006;
1962   GL_CLIP_DISTANCE7 = $3007;
1963   GL_MAX_CLIP_DISTANCES = $0D32;
1964   GL_MAJOR_VERSION = $821B;
1965   GL_MINOR_VERSION = $821C;
1966   GL_NUM_EXTENSIONS = $821D;
1967   GL_CONTEXT_FLAGS = $821E;
1968   GL_DEPTH_BUFFER = $8223;
1969   GL_STENCIL_BUFFER = $8224;
1970   GL_COMPRESSED_RED = $8225;
1971   GL_COMPRESSED_RG = $8226;
1972   GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT = $0001;
1973   GL_RGBA32F = $8814;
1974   GL_RGB32F = $8815;
1975   GL_RGBA16F = $881A;
1976   GL_RGB16F = $881B;
1977   GL_VERTEX_ATTRIB_ARRAY_INTEGER = $88FD;
1978   GL_MAX_ARRAY_TEXTURE_LAYERS = $88FF;
1979   GL_MIN_PROGRAM_TEXEL_OFFSET = $8904;
1980   GL_MAX_PROGRAM_TEXEL_OFFSET = $8905;
1981   GL_CLAMP_READ_COLOR = $891C;
1982   GL_FIXED_ONLY = $891D;
1983   GL_MAX_VARYING_COMPONENTS = $8B4B;
1984   GL_TEXTURE_1D_ARRAY = $8C18;
1985   GL_PROXY_TEXTURE_1D_ARRAY = $8C19;
1986   GL_TEXTURE_2D_ARRAY = $8C1A;
1987   GL_PROXY_TEXTURE_2D_ARRAY = $8C1B;
1988   GL_TEXTURE_BINDING_1D_ARRAY = $8C1C;
1989   GL_TEXTURE_BINDING_2D_ARRAY = $8C1D;
1990   GL_R11F_G11F_B10F = $8C3A;
1991   GL_UNSIGNED_INT_10F_11F_11F_REV = $8C3B;
1992   GL_RGB9_E5 = $8C3D;
1993   GL_UNSIGNED_INT_5_9_9_9_REV = $8C3E;
1994   GL_TEXTURE_SHARED_SIZE = $8C3F;
1995   GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH = $8C76;
1996   GL_TRANSFORM_FEEDBACK_BUFFER_MODE = $8C7F;
1997   GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS = $8C80;
1998   GL_TRANSFORM_FEEDBACK_VARYINGS = $8C83;
1999   GL_TRANSFORM_FEEDBACK_BUFFER_START = $8C84;
2000   GL_TRANSFORM_FEEDBACK_BUFFER_SIZE = $8C85;
2001   GL_PRIMITIVES_GENERATED = $8C87;
2002   GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN = $8C88;
2003   GL_RASTERIZER_DISCARD = $8C89;
2004   GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS = $8C8A;
2005   GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS = $8C8B;
2006   GL_INTERLEAVED_ATTRIBS = $8C8C;
2007   GL_SEPARATE_ATTRIBS = $8C8D;
2008   GL_TRANSFORM_FEEDBACK_BUFFER = $8C8E;
2009   GL_TRANSFORM_FEEDBACK_BUFFER_BINDING = $8C8F;
2010   GL_RGBA32UI = $8D70;
2011   GL_RGB32UI = $8D71;
2012   GL_RGBA16UI = $8D76;
2013   GL_RGB16UI = $8D77;
2014   GL_RGBA8UI = $8D7C;
2015   GL_RGB8UI = $8D7D;
2016   GL_RGBA32I = $8D82;
2017   GL_RGB32I = $8D83;
2018   GL_RGBA16I = $8D88;
2019   GL_RGB16I = $8D89;
2020   GL_RGBA8I = $8D8E;
2021   GL_RGB8I = $8D8F;
2022   GL_RED_INTEGER = $8D94;
2023   GL_GREEN_INTEGER = $8D95;
2024   GL_BLUE_INTEGER = $8D96;
2025   GL_RGB_INTEGER = $8D98;
2026   GL_RGBA_INTEGER = $8D99;
2027   GL_BGR_INTEGER = $8D9A;
2028   GL_BGRA_INTEGER = $8D9B;
2029   GL_SAMPLER_1D_ARRAY = $8DC0;
2030   GL_SAMPLER_2D_ARRAY = $8DC1;
2031   GL_SAMPLER_1D_ARRAY_SHADOW = $8DC3;
2032   GL_SAMPLER_2D_ARRAY_SHADOW = $8DC4;
2033   GL_SAMPLER_CUBE_SHADOW = $8DC5;
2034   GL_UNSIGNED_INT_VEC2 = $8DC6;
2035   GL_UNSIGNED_INT_VEC3 = $8DC7;
2036   GL_UNSIGNED_INT_VEC4 = $8DC8;
2037   GL_INT_SAMPLER_1D = $8DC9;
2038   GL_INT_SAMPLER_2D = $8DCA;
2039   GL_INT_SAMPLER_3D = $8DCB;
2040   GL_INT_SAMPLER_CUBE = $8DCC;
2041   GL_INT_SAMPLER_1D_ARRAY = $8DCE;
2042   GL_INT_SAMPLER_2D_ARRAY = $8DCF;
2043   GL_UNSIGNED_INT_SAMPLER_1D = $8DD1;
2044   GL_UNSIGNED_INT_SAMPLER_2D = $8DD2;
2045   GL_UNSIGNED_INT_SAMPLER_3D = $8DD3;
2046   GL_UNSIGNED_INT_SAMPLER_CUBE = $8DD4;
2047   GL_UNSIGNED_INT_SAMPLER_1D_ARRAY = $8DD6;
2048   GL_UNSIGNED_INT_SAMPLER_2D_ARRAY = $8DD7;
2049   GL_QUERY_WAIT = $8E13;
2050   GL_QUERY_NO_WAIT = $8E14;
2051   GL_QUERY_BY_REGION_WAIT = $8E15;
2052   GL_QUERY_BY_REGION_NO_WAIT = $8E16;
2053   GL_BUFFER_ACCESS_FLAGS = $911F;
2054   GL_BUFFER_MAP_LENGTH = $9120;
2055   GL_BUFFER_MAP_OFFSET = $9121;
2056   { Reuse tokens from ARB_depth_buffer_float }
2057   { reuse GL_DEPTH_COMPONENT32F }
2058   { reuse GL_DEPTH32F_STENCIL8 }
2059   { reuse GL_FLOAT_32_UNSIGNED_INT_24_8_REV }
2060   { Reuse tokens from ARB_framebuffer_object }
2061   { reuse GL_INVALID_FRAMEBUFFER_OPERATION }
2062   { reuse GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING }
2063   { reuse GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE }
2064   { reuse GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE }
2065   { reuse GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE }
2066   { reuse GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE }
2067   { reuse GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE }
2068   { reuse GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE }
2069   { reuse GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE }
2070   { reuse GL_FRAMEBUFFER_DEFAULT }
2071   { reuse GL_FRAMEBUFFER_UNDEFINED }
2072   { reuse GL_DEPTH_STENCIL_ATTACHMENT }
2073   { reuse GL_INDEX }
2074   { reuse GL_MAX_RENDERBUFFER_SIZE }
2075   { reuse GL_DEPTH_STENCIL }
2076   { reuse GL_UNSIGNED_INT_24_8 }
2077   { reuse GL_DEPTH24_STENCIL8 }
2078   { reuse GL_TEXTURE_STENCIL_SIZE }
2079   { reuse GL_TEXTURE_RED_TYPE }
2080   { reuse GL_TEXTURE_GREEN_TYPE }
2081   { reuse GL_TEXTURE_BLUE_TYPE }
2082   { reuse GL_TEXTURE_ALPHA_TYPE }
2083   { reuse GL_TEXTURE_DEPTH_TYPE }
2084   { reuse GL_UNSIGNED_NORMALIZED }
2085   { reuse GL_FRAMEBUFFER_BINDING }
2086   { reuse GL_DRAW_FRAMEBUFFER_BINDING }
2087   { reuse GL_RENDERBUFFER_BINDING }
2088   { reuse GL_READ_FRAMEBUFFER }
2089   { reuse GL_DRAW_FRAMEBUFFER }
2090   { reuse GL_READ_FRAMEBUFFER_BINDING }
2091   { reuse GL_RENDERBUFFER_SAMPLES }
2092   { reuse GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE }
2093   { reuse GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME }
2094   { reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL }
2095   { reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE }
2096   { reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER }
2097   { reuse GL_FRAMEBUFFER_COMPLETE }
2098   { reuse GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT }
2099   { reuse GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT }
2100   { reuse GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER }
2101   { reuse GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER }
2102   { reuse GL_FRAMEBUFFER_UNSUPPORTED }
2103   { reuse GL_MAX_COLOR_ATTACHMENTS }
2104   { reuse GL_COLOR_ATTACHMENT0 }
2105   { reuse GL_COLOR_ATTACHMENT1 }
2106   { reuse GL_COLOR_ATTACHMENT2 }
2107   { reuse GL_COLOR_ATTACHMENT3 }
2108   { reuse GL_COLOR_ATTACHMENT4 }
2109   { reuse GL_COLOR_ATTACHMENT5 }
2110   { reuse GL_COLOR_ATTACHMENT6 }
2111   { reuse GL_COLOR_ATTACHMENT7 }
2112   { reuse GL_COLOR_ATTACHMENT8 }
2113   { reuse GL_COLOR_ATTACHMENT9 }
2114   { reuse GL_COLOR_ATTACHMENT10 }
2115   { reuse GL_COLOR_ATTACHMENT11 }
2116   { reuse GL_COLOR_ATTACHMENT12 }
2117   { reuse GL_COLOR_ATTACHMENT13 }
2118   { reuse GL_COLOR_ATTACHMENT14 }
2119   { reuse GL_COLOR_ATTACHMENT15 }
2120   { reuse GL_DEPTH_ATTACHMENT }
2121   { reuse GL_STENCIL_ATTACHMENT }
2122   { reuse GL_FRAMEBUFFER }
2123   { reuse GL_RENDERBUFFER }
2124   { reuse GL_RENDERBUFFER_WIDTH }
2125   { reuse GL_RENDERBUFFER_HEIGHT }
2126   { reuse GL_RENDERBUFFER_INTERNAL_FORMAT }
2127   { reuse GL_STENCIL_INDEX1 }
2128   { reuse GL_STENCIL_INDEX4 }
2129   { reuse GL_STENCIL_INDEX8 }
2130   { reuse GL_STENCIL_INDEX16 }
2131   { reuse GL_RENDERBUFFER_RED_SIZE }
2132   { reuse GL_RENDERBUFFER_GREEN_SIZE }
2133   { reuse GL_RENDERBUFFER_BLUE_SIZE }
2134   { reuse GL_RENDERBUFFER_ALPHA_SIZE }
2135   { reuse GL_RENDERBUFFER_DEPTH_SIZE }
2136   { reuse GL_RENDERBUFFER_STENCIL_SIZE }
2137   { reuse GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE }
2138   { reuse GL_MAX_SAMPLES }
2139   { Reuse tokens from ARB_framebuffer_sRGB }
2140   { reuse GL_FRAMEBUFFER_SRGB }
2141   { Reuse tokens from ARB_half_float_vertex }
2142   { reuse GL_HALF_FLOAT }
2143   { Reuse tokens from ARB_map_buffer_range }
2144   { reuse GL_MAP_READ_BIT }
2145   { reuse GL_MAP_WRITE_BIT }
2146   { reuse GL_MAP_INVALIDATE_RANGE_BIT }
2147   { reuse GL_MAP_INVALIDATE_BUFFER_BIT }
2148   { reuse GL_MAP_FLUSH_EXPLICIT_BIT }
2149   { reuse GL_MAP_UNSYNCHRONIZED_BIT }
2150   { Reuse tokens from ARB_texture_compression_rgtc }
2151   { reuse GL_COMPRESSED_RED_RGTC1 }
2152   { reuse GL_COMPRESSED_SIGNED_RED_RGTC1 }
2153   { reuse GL_COMPRESSED_RG_RGTC2 }
2154   { reuse GL_COMPRESSED_SIGNED_RG_RGTC2 }
2155   { Reuse tokens from ARB_texture_rg }
2156   { reuse GL_RG }
2157   { reuse GL_RG_INTEGER }
2158   { reuse GL_R8 }
2159   { reuse GL_R16 }
2160   { reuse GL_RG8 }
2161   { reuse GL_RG16 }
2162   { reuse GL_R16F }
2163   { reuse GL_R32F }
2164   { reuse GL_RG16F }
2165   { reuse GL_RG32F }
2166   { reuse GL_R8I }
2167   { reuse GL_R8UI }
2168   { reuse GL_R16I }
2169   { reuse GL_R16UI }
2170   { reuse GL_R32I }
2171   { reuse GL_R32UI }
2172   { reuse GL_RG8I }
2173   { reuse GL_RG8UI }
2174   { reuse GL_RG16I }
2175   { reuse GL_RG16UI }
2176   { reuse GL_RG32I }
2177   { reuse GL_RG32UI }
2178   { Reuse tokens from ARB_vertex_array_object }
2179   { reuse GL_VERTEX_ARRAY_BINDING }
2180 {$ifdef DGL_DEPRECATED}
2181   GL_CLAMP_VERTEX_COLOR = $891A;
2182   GL_CLAMP_FRAGMENT_COLOR = $891B;
2183   GL_ALPHA_INTEGER = $8D97;
2184   { Reuse tokens from ARB_framebuffer_object }
2185   { reuse GL_TEXTURE_LUMINANCE_TYPE }
2186   { reuse GL_TEXTURE_INTENSITY_TYPE }
2187 {$endif}
2188
2189   // GL_VERSION_3_1
2190   GL_SAMPLER_2D_RECT = $8B63;
2191   GL_SAMPLER_2D_RECT_SHADOW = $8B64;
2192   GL_SAMPLER_BUFFER = $8DC2;
2193   GL_INT_SAMPLER_2D_RECT = $8DCD;
2194   GL_INT_SAMPLER_BUFFER = $8DD0;
2195   GL_UNSIGNED_INT_SAMPLER_2D_RECT = $8DD5;
2196   GL_UNSIGNED_INT_SAMPLER_BUFFER = $8DD8;
2197   GL_TEXTURE_BUFFER = $8C2A;
2198   GL_MAX_TEXTURE_BUFFER_SIZE = $8C2B;
2199   GL_TEXTURE_BINDING_BUFFER = $8C2C;
2200   GL_TEXTURE_BUFFER_DATA_STORE_BINDING = $8C2D;
2201   GL_TEXTURE_BUFFER_FORMAT = $8C2E;
2202   GL_TEXTURE_RECTANGLE = $84F5;
2203   GL_TEXTURE_BINDING_RECTANGLE = $84F6;
2204   GL_PROXY_TEXTURE_RECTANGLE = $84F7;
2205   GL_MAX_RECTANGLE_TEXTURE_SIZE = $84F8;
2206   GL_RED_SNORM = $8F90;
2207   GL_RG_SNORM = $8F91;
2208   GL_RGB_SNORM = $8F92;
2209   GL_RGBA_SNORM = $8F93;
2210   GL_R8_SNORM = $8F94;
2211   GL_RG8_SNORM = $8F95;
2212   GL_RGB8_SNORM = $8F96;
2213   GL_RGBA8_SNORM = $8F97;
2214   GL_R16_SNORM = $8F98;
2215   GL_RG16_SNORM = $8F99;
2216   GL_RGB16_SNORM = $8F9A;
2217   GL_RGBA16_SNORM = $8F9B;
2218   GL_SIGNED_NORMALIZED = $8F9C;
2219   GL_PRIMITIVE_RESTART = $8F9D;
2220   GL_PRIMITIVE_RESTART_INDEX = $8F9E;
2221   { Reuse tokens from ARB_copy_buffer }
2222   { reuse GL_COPY_READ_BUFFER }
2223   { reuse GL_COPY_WRITE_BUFFER }
2224   { Reuse tokens from ARB_draw_instanced (none) }
2225   { Reuse tokens from ARB_uniform_buffer_object }
2226   { reuse GL_UNIFORM_BUFFER }
2227   { reuse GL_UNIFORM_BUFFER_BINDING }
2228   { reuse GL_UNIFORM_BUFFER_START }
2229   { reuse GL_UNIFORM_BUFFER_SIZE }
2230   { reuse GL_MAX_VERTEX_UNIFORM_BLOCKS }
2231   { reuse GL_MAX_FRAGMENT_UNIFORM_BLOCKS }
2232   { reuse GL_MAX_COMBINED_UNIFORM_BLOCKS }
2233   { reuse GL_MAX_UNIFORM_BUFFER_BINDINGS }
2234   { reuse GL_MAX_UNIFORM_BLOCK_SIZE }
2235   { reuse GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS }
2236   { reuse GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS }
2237   { reuse GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT }
2238   { reuse GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH }
2239   { reuse GL_ACTIVE_UNIFORM_BLOCKS }
2240   { reuse GL_UNIFORM_TYPE }
2241   { reuse GL_UNIFORM_SIZE }
2242   { reuse GL_UNIFORM_NAME_LENGTH }
2243   { reuse GL_UNIFORM_BLOCK_INDEX }
2244   { reuse GL_UNIFORM_OFFSET }
2245   { reuse GL_UNIFORM_ARRAY_STRIDE }
2246   { reuse GL_UNIFORM_MATRIX_STRIDE }
2247   { reuse GL_UNIFORM_IS_ROW_MAJOR }
2248   { reuse GL_UNIFORM_BLOCK_BINDING }
2249   { reuse GL_UNIFORM_BLOCK_DATA_SIZE }
2250   { reuse GL_UNIFORM_BLOCK_NAME_LENGTH }
2251   { reuse GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS }
2252   { reuse GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES }
2253   { reuse GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER }
2254   { reuse GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER }
2255   { reuse GL_INVALID_INDEX }
2256
2257   // GL_VERSION_3_2
2258   GL_CONTEXT_CORE_PROFILE_BIT = $00000001;
2259   GL_CONTEXT_COMPATIBILITY_PROFILE_BIT = $00000002;
2260   GL_LINES_ADJACENCY = $000A;
2261   GL_LINE_STRIP_ADJACENCY = $000B;
2262   GL_TRIANGLES_ADJACENCY = $000C;
2263   GL_TRIANGLE_STRIP_ADJACENCY = $000D;
2264   GL_PROGRAM_POINT_SIZE = $8642;
2265   GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS = $8C29;
2266   GL_FRAMEBUFFER_ATTACHMENT_LAYERED = $8DA7;
2267   GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS = $8DA8;
2268   GL_GEOMETRY_SHADER = $8DD9;
2269   GL_GEOMETRY_VERTICES_OUT = $8916;
2270   GL_GEOMETRY_INPUT_TYPE = $8917;
2271   GL_GEOMETRY_OUTPUT_TYPE = $8918;
2272   GL_MAX_GEOMETRY_UNIFORM_COMPONENTS = $8DDF;
2273   GL_MAX_GEOMETRY_OUTPUT_VERTICES = $8DE0;
2274   GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS = $8DE1;
2275   GL_MAX_VERTEX_OUTPUT_COMPONENTS = $9122;
2276   GL_MAX_GEOMETRY_INPUT_COMPONENTS = $9123;
2277   GL_MAX_GEOMETRY_OUTPUT_COMPONENTS = $9124;
2278   GL_MAX_FRAGMENT_INPUT_COMPONENTS = $9125;
2279   GL_CONTEXT_PROFILE_MASK = $9126;
2280   { reuse GL_MAX_VARYING_COMPONENTS }
2281   { reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER }
2282   { Reuse tokens from ARB_depth_clamp }
2283   { reuse GL_DEPTH_CLAMP }
2284   { Reuse tokens from ARB_draw_elements_base_vertex (none) }
2285   { Reuse tokens from ARB_fragment_coord_conventions (none) }
2286   { Reuse tokens from ARB_provoking_vertex }
2287   { reuse GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION }
2288   { reuse GL_FIRST_VERTEX_CONVENTION }
2289   { reuse GL_LAST_VERTEX_CONVENTION }
2290   { reuse GL_PROVOKING_VERTEX }
2291   { Reuse tokens from ARB_seamless_cube_map }
2292   { reuse GL_TEXTURE_CUBE_MAP_SEAMLESS }
2293   { Reuse tokens from ARB_sync }
2294   { reuse GL_MAX_SERVER_WAIT_TIMEOUT }
2295   { reuse GL_OBJECT_TYPE }
2296   { reuse GL_SYNC_CONDITION }
2297   { reuse GL_SYNC_STATUS }
2298   { reuse GL_SYNC_FLAGS }
2299   { reuse GL_SYNC_FENCE }
2300   { reuse GL_SYNC_GPU_COMMANDS_COMPLETE }
2301   { reuse GL_UNSIGNALED }
2302   { reuse GL_SIGNALED }
2303   { reuse GL_ALREADY_SIGNALED }
2304   { reuse GL_TIMEOUT_EXPIRED }
2305   { reuse GL_CONDITION_SATISFIED }
2306   { reuse GL_WAIT_FAILED }
2307   { reuse GL_TIMEOUT_IGNORED }
2308   { reuse GL_SYNC_FLUSH_COMMANDS_BIT }
2309   { reuse GL_TIMEOUT_IGNORED }
2310   { Reuse tokens from ARB_texture_multisample }
2311   { reuse GL_SAMPLE_POSITION }
2312   { reuse GL_SAMPLE_MASK }
2313   { reuse GL_SAMPLE_MASK_VALUE }
2314   { reuse GL_MAX_SAMPLE_MASK_WORDS }
2315   { reuse GL_TEXTURE_2D_MULTISAMPLE }
2316   { reuse GL_PROXY_TEXTURE_2D_MULTISAMPLE }
2317   { reuse GL_TEXTURE_2D_MULTISAMPLE_ARRAY }
2318   { reuse GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY }
2319   { reuse GL_TEXTURE_BINDING_2D_MULTISAMPLE }
2320   { reuse GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY }
2321   { reuse GL_TEXTURE_SAMPLES }
2322   { reuse GL_TEXTURE_FIXED_SAMPLE_LOCATIONS }
2323   { reuse GL_SAMPLER_2D_MULTISAMPLE }
2324   { reuse GL_INT_SAMPLER_2D_MULTISAMPLE }
2325   { reuse GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE }
2326   { reuse GL_SAMPLER_2D_MULTISAMPLE_ARRAY }
2327   { reuse GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY }
2328   { reuse GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY }
2329   { reuse GL_MAX_COLOR_TEXTURE_SAMPLES }
2330   { reuse GL_MAX_DEPTH_TEXTURE_SAMPLES }
2331   { reuse GL_MAX_INTEGER_SAMPLES }
2332   { Don't need to reuse tokens from ARB_vertex_array_bgra since they're already in 1.2 core }
2333
2334   // GL_VERSION_3_3
2335   GL_VERTEX_ATTRIB_ARRAY_DIVISOR = $88FE;
2336   { Reuse tokens from ARB_blend_func_extended }
2337   { reuse GL_SRC1_COLOR }
2338   { reuse GL_ONE_MINUS_SRC1_COLOR }
2339   { reuse GL_ONE_MINUS_SRC1_ALPHA }
2340   { reuse GL_MAX_DUAL_SOURCE_DRAW_BUFFERS }
2341   { Reuse tokens from ARB_explicit_attrib_location (none) }
2342   { Reuse tokens from ARB_occlusion_query2 }
2343   { reuse GL_ANY_SAMPLES_PASSED }
2344   { Reuse tokens from ARB_sampler_objects }
2345   { reuse GL_SAMPLER_BINDING }
2346   { Reuse tokens from ARB_shader_bit_encoding (none) }
2347   { Reuse tokens from ARB_texture_rgb10_a2ui }
2348   { reuse GL_RGB10_A2UI }
2349   { Reuse tokens from ARB_texture_swizzle }
2350   { reuse GL_TEXTURE_SWIZZLE_R }
2351   { reuse GL_TEXTURE_SWIZZLE_G }
2352   { reuse GL_TEXTURE_SWIZZLE_B }
2353   { reuse GL_TEXTURE_SWIZZLE_A }
2354   { reuse GL_TEXTURE_SWIZZLE_RGBA }
2355   { Reuse tokens from ARB_timer_query }
2356   { reuse GL_TIME_ELAPSED }
2357   { reuse GL_TIMESTAMP }
2358   { Reuse tokens from ARB_vertex_type_2_10_10_10_rev }
2359   { reuse GL_INT_2_10_10_10_REV }
2360
2361   // GL_VERSION_4_0
2362   GL_SAMPLE_SHADING = $8C36;
2363   GL_MIN_SAMPLE_SHADING_VALUE = $8C37;
2364   GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET = $8E5E;
2365   GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET = $8E5F;
2366   GL_TEXTURE_CUBE_MAP_ARRAY = $9009;
2367   GL_TEXTURE_BINDING_CUBE_MAP_ARRAY = $900A;
2368   GL_PROXY_TEXTURE_CUBE_MAP_ARRAY = $900B;
2369   GL_SAMPLER_CUBE_MAP_ARRAY = $900C;
2370   GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW = $900D;
2371   GL_INT_SAMPLER_CUBE_MAP_ARRAY = $900E;
2372   GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY = $900F;
2373   { Reuse tokens from ARB_texture_query_lod (none) }
2374   { Reuse tokens from ARB_draw_buffers_blend (none) }
2375   { Reuse tokens from ARB_draw_indirect }
2376   { reuse GL_DRAW_INDIRECT_BUFFER }
2377   { reuse GL_DRAW_INDIRECT_BUFFER_BINDING }
2378   { Reuse tokens from ARB_gpu_shader5 }
2379   { reuse GL_GEOMETRY_SHADER_INVOCATIONS }
2380   { reuse GL_MAX_GEOMETRY_SHADER_INVOCATIONS }
2381   { reuse GL_MIN_FRAGMENT_INTERPOLATION_OFFSET }
2382   { reuse GL_MAX_FRAGMENT_INTERPOLATION_OFFSET }
2383   { reuse GL_FRAGMENT_INTERPOLATION_OFFSET_BITS }
2384   { reuse GL_MAX_VERTEX_STREAMS }
2385   { Reuse tokens from ARB_gpu_shader_fp64 }
2386   { reuse GL_DOUBLE_VEC2 }
2387   { reuse GL_DOUBLE_VEC3 }
2388   { reuse GL_DOUBLE_VEC4 }
2389   { reuse GL_DOUBLE_MAT2 }
2390   { reuse GL_DOUBLE_MAT3 }
2391   { reuse GL_DOUBLE_MAT4 }
2392   { reuse GL_DOUBLE_MAT2x3 }
2393   { reuse GL_DOUBLE_MAT2x4 }
2394   { reuse GL_DOUBLE_MAT3x2 }
2395   { reuse GL_DOUBLE_MAT3x4 }
2396   { reuse GL_DOUBLE_MAT4x2 }
2397   { reuse GL_DOUBLE_MAT4x3 }
2398   { Reuse tokens from ARB_shader_subroutine }
2399   { reuse GL_ACTIVE_SUBROUTINES }
2400   { reuse GL_ACTIVE_SUBROUTINE_UNIFORMS }
2401   { reuse GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS }
2402   { reuse GL_ACTIVE_SUBROUTINE_MAX_LENGTH }
2403   { reuse GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH }
2404   { reuse GL_MAX_SUBROUTINES }
2405   { reuse GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS }
2406   { reuse GL_NUM_COMPATIBLE_SUBROUTINES }
2407   { reuse GL_COMPATIBLE_SUBROUTINES }
2408   { Reuse tokens from ARB_tessellation_shader }
2409   { reuse GL_PATCHES }
2410   { reuse GL_PATCH_VERTICES }
2411   { reuse GL_PATCH_DEFAULT_INNER_LEVEL }
2412   { reuse GL_PATCH_DEFAULT_OUTER_LEVEL }
2413   { reuse GL_TESS_CONTROL_OUTPUT_VERTICES }
2414   { reuse GL_TESS_GEN_MODE }
2415   { reuse GL_TESS_GEN_SPACING }
2416   { reuse GL_TESS_GEN_VERTEX_ORDER }
2417   { reuse GL_TESS_GEN_POINT_MODE }
2418   { reuse GL_ISOLINES }
2419   { reuse GL_FRACTIONAL_ODD }
2420   { reuse GL_FRACTIONAL_EVEN }
2421   { reuse GL_MAX_PATCH_VERTICES }
2422   { reuse GL_MAX_TESS_GEN_LEVEL }
2423   { reuse GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS }
2424   { reuse GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS }
2425   { reuse GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS }
2426   { reuse GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS }
2427   { reuse GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS }
2428   { reuse GL_MAX_TESS_PATCH_COMPONENTS }
2429   { reuse GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS }
2430   { reuse GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS }
2431   { reuse GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS }
2432   { reuse GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS }
2433   { reuse GL_MAX_TESS_CONTROL_INPUT_COMPONENTS }
2434   { reuse GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS }
2435   { reuse GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS }
2436   { reuse GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS }
2437   { reuse GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER }
2438   { reuse GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER }
2439   { reuse GL_TESS_EVALUATION_SHADER }
2440   { reuse GL_TESS_CONTROL_SHADER }
2441   { Reuse tokens from ARB_texture_buffer_object_rgb32 (none) }
2442   { Reuse tokens from ARB_transform_feedback2 }
2443   { reuse GL_TRANSFORM_FEEDBACK }
2444   { reuse GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED }
2445   { reuse GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE }
2446   { reuse GL_TRANSFORM_FEEDBACK_BINDING }
2447   { Reuse tokens from ARB_transform_feedback3 }
2448   { reuse GL_MAX_TRANSFORM_FEEDBACK_BUFFERS }
2449   { reuse GL_MAX_VERTEX_STREAMS }
2450
2451   // GL_VERSION_4_1
2452   { Reuse tokens from ARB_ES2_compatibility }
2453   { reuse GL_FIXED }
2454   { reuse GL_IMPLEMENTATION_COLOR_READ_TYPE }
2455   { reuse GL_IMPLEMENTATION_COLOR_READ_FORMAT }
2456   { reuse GL_LOW_FLOAT }
2457   { reuse GL_MEDIUM_FLOAT }
2458   { reuse GL_HIGH_FLOAT }
2459   { reuse GL_LOW_INT }
2460   { reuse GL_MEDIUM_INT }
2461   { reuse GL_HIGH_INT }
2462   { reuse GL_SHADER_COMPILER }
2463   { reuse GL_NUM_SHADER_BINARY_FORMATS }
2464   { reuse GL_MAX_VERTEX_UNIFORM_VECTORS }
2465   { reuse GL_MAX_VARYING_VECTORS }
2466   { reuse GL_MAX_FRAGMENT_UNIFORM_VECTORS }
2467   { reuse GL_RGB565 }
2468   { Reuse tokens from ARB_get_program_binary }
2469   { reuse GL_PROGRAM_BINARY_RETRIEVABLE_HINT }
2470   { reuse GL_PROGRAM_BINARY_LENGTH }
2471   { reuse GL_NUM_PROGRAM_BINARY_FORMATS }
2472   { reuse GL_PROGRAM_BINARY_FORMATS }
2473   { Reuse tokens from ARB_separate_shader_objects }
2474   { reuse GL_VERTEX_SHADER_BIT }
2475   { reuse GL_FRAGMENT_SHADER_BIT }
2476   { reuse GL_GEOMETRY_SHADER_BIT }
2477   { reuse GL_TESS_CONTROL_SHADER_BIT }
2478   { reuse GL_TESS_EVALUATION_SHADER_BIT }
2479   { reuse GL_ALL_SHADER_BITS }
2480   { reuse GL_PROGRAM_SEPARABLE }
2481   { reuse GL_ACTIVE_PROGRAM }
2482   { reuse GL_PROGRAM_PIPELINE_BINDING }
2483   { Reuse tokens from ARB_shader_precision (none) }
2484   { Reuse tokens from ARB_vertex_attrib_64bit - all are in GL 3.0 and 4.0 already }
2485   { Reuse tokens from ARB_viewport_array - some are in GL 1.1 and ARB_provoking_vertex already }
2486   { reuse GL_MAX_VIEWPORTS }
2487   { reuse GL_VIEWPORT_SUBPIXEL_BITS }
2488   { reuse GL_VIEWPORT_BOUNDS_RANGE }
2489   { reuse GL_LAYER_PROVOKING_VERTEX }
2490   { reuse GL_VIEWPORT_INDEX_PROVOKING_VERTEX }
2491   { reuse GL_UNDEFINED_VERTEX }
2492
2493   // GL_VERSION_4_2
2494   { Reuse tokens from ARB_base_instance (none) }
2495   { Reuse tokens from ARB_shading_language_420pack (none) }
2496   { Reuse tokens from ARB_transform_feedback_instanced (none) }
2497   { Reuse tokens from ARB_compressed_texture_pixel_storage }
2498   { reuse GL_UNPACK_COMPRESSED_BLOCK_WIDTH }
2499   { reuse GL_UNPACK_COMPRESSED_BLOCK_HEIGHT }
2500   { reuse GL_UNPACK_COMPRESSED_BLOCK_DEPTH }
2501   { reuse GL_UNPACK_COMPRESSED_BLOCK_SIZE }
2502   { reuse GL_PACK_COMPRESSED_BLOCK_WIDTH }
2503   { reuse GL_PACK_COMPRESSED_BLOCK_HEIGHT }
2504   { reuse GL_PACK_COMPRESSED_BLOCK_DEPTH }
2505   { reuse GL_PACK_COMPRESSED_BLOCK_SIZE }
2506   { Reuse tokens from ARB_conservative_depth (none) }
2507   { Reuse tokens from ARB_internalformat_query }
2508   { reuse GL_NUM_SAMPLE_COUNTS }
2509   { Reuse tokens from ARB_map_buffer_alignment }
2510   { reuse GL_MIN_MAP_BUFFER_ALIGNMENT }
2511   { Reuse tokens from ARB_shader_atomic_counters }
2512   { reuse GL_ATOMIC_COUNTER_BUFFER }
2513   { reuse GL_ATOMIC_COUNTER_BUFFER_BINDING }
2514   { reuse GL_ATOMIC_COUNTER_BUFFER_START }
2515   { reuse GL_ATOMIC_COUNTER_BUFFER_SIZE }
2516   { reuse GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE }
2517   { reuse GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS }
2518   { reuse GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES }
2519   { reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER }
2520   { reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER }
2521   { reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER }
2522   { reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER }
2523   { reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER }
2524   { reuse GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS }
2525   { reuse GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS }
2526   { reuse GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS }
2527   { reuse GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS }
2528   { reuse GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS }
2529   { reuse GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS }
2530   { reuse GL_MAX_VERTEX_ATOMIC_COUNTERS }
2531   { reuse GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS }
2532   { reuse GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS }
2533   { reuse GL_MAX_GEOMETRY_ATOMIC_COUNTERS }
2534   { reuse GL_MAX_FRAGMENT_ATOMIC_COUNTERS }
2535   { reuse GL_MAX_COMBINED_ATOMIC_COUNTERS }
2536   { reuse GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE }
2537   { reuse GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS }
2538   { reuse GL_ACTIVE_ATOMIC_COUNTER_BUFFERS }
2539   { reuse GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX }
2540   { reuse GL_UNSIGNED_INT_ATOMIC_COUNTER }
2541   { Reuse tokens from ARB_shader_image_load_store }
2542   { reuse GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT }
2543   { reuse GL_ELEMENT_ARRAY_BARRIER_BIT }
2544   { reuse GL_UNIFORM_BARRIER_BIT }
2545   { reuse GL_TEXTURE_FETCH_BARRIER_BIT }
2546   { reuse GL_SHADER_IMAGE_ACCESS_BARRIER_BIT }
2547   { reuse GL_COMMAND_BARRIER_BIT }
2548   { reuse GL_PIXEL_BUFFER_BARRIER_BIT }
2549   { reuse GL_TEXTURE_UPDATE_BARRIER_BIT }
2550   { reuse GL_BUFFER_UPDATE_BARRIER_BIT }
2551   { reuse GL_FRAMEBUFFER_BARRIER_BIT }
2552   { reuse GL_TRANSFORM_FEEDBACK_BARRIER_BIT }
2553   { reuse GL_ATOMIC_COUNTER_BARRIER_BIT }
2554   { reuse GL_ALL_BARRIER_BITS }
2555   { reuse GL_MAX_IMAGE_UNITS }
2556   { reuse GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS }
2557   { reuse GL_IMAGE_BINDING_NAME }
2558   { reuse GL_IMAGE_BINDING_LEVEL }
2559   { reuse GL_IMAGE_BINDING_LAYERED }
2560   { reuse GL_IMAGE_BINDING_LAYER }
2561   { reuse GL_IMAGE_BINDING_ACCESS }
2562   { reuse GL_IMAGE_1D }
2563   { reuse GL_IMAGE_2D }
2564   { reuse GL_IMAGE_3D }
2565   { reuse GL_IMAGE_2D_RECT }
2566   { reuse GL_IMAGE_CUBE }
2567   { reuse GL_IMAGE_BUFFER }
2568   { reuse GL_IMAGE_1D_ARRAY }
2569   { reuse GL_IMAGE_2D_ARRAY }
2570   { reuse GL_IMAGE_CUBE_MAP_ARRAY }
2571   { reuse GL_IMAGE_2D_MULTISAMPLE }
2572   { reuse GL_IMAGE_2D_MULTISAMPLE_ARRAY }
2573   { reuse GL_INT_IMAGE_1D }
2574   { reuse GL_INT_IMAGE_2D }
2575   { reuse GL_INT_IMAGE_3D }
2576   { reuse GL_INT_IMAGE_2D_RECT }
2577   { reuse GL_INT_IMAGE_CUBE }
2578   { reuse GL_INT_IMAGE_BUFFER }
2579   { reuse GL_INT_IMAGE_1D_ARRAY }
2580   { reuse GL_INT_IMAGE_2D_ARRAY }
2581   { reuse GL_INT_IMAGE_CUBE_MAP_ARRAY }
2582   { reuse GL_INT_IMAGE_2D_MULTISAMPLE }
2583   { reuse GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY }
2584   { reuse GL_UNSIGNED_INT_IMAGE_1D }
2585   { reuse GL_UNSIGNED_INT_IMAGE_2D }
2586   { reuse GL_UNSIGNED_INT_IMAGE_3D }
2587   { reuse GL_UNSIGNED_INT_IMAGE_2D_RECT }
2588   { reuse GL_UNSIGNED_INT_IMAGE_CUBE }
2589   { reuse GL_UNSIGNED_INT_IMAGE_BUFFER }
2590   { reuse GL_UNSIGNED_INT_IMAGE_1D_ARRAY }
2591   { reuse GL_UNSIGNED_INT_IMAGE_2D_ARRAY }
2592   { reuse GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY }
2593   { reuse GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE }
2594   { reuse GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY }
2595   { reuse GL_MAX_IMAGE_SAMPLES }
2596   { reuse GL_IMAGE_BINDING_FORMAT }
2597   { reuse GL_IMAGE_FORMAT_COMPATIBILITY_TYPE }
2598   { reuse GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE }
2599   { reuse GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS }
2600   { reuse GL_MAX_VERTEX_IMAGE_UNIFORMS }
2601   { reuse GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS }
2602   { reuse GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS }
2603   { reuse GL_MAX_GEOMETRY_IMAGE_UNIFORMS }
2604   { reuse GL_MAX_FRAGMENT_IMAGE_UNIFORMS }
2605   { reuse GL_MAX_COMBINED_IMAGE_UNIFORMS }
2606   { Reuse tokens from ARB_shading_language_packing (none) }
2607   { Reuse tokens from ARB_texture_storage }
2608   { reuse GL_TEXTURE_IMMUTABLE_FORMAT }
2609
2610   // GL_VERSION_4_3
2611   GL_NUM_SHADING_LANGUAGE_VERSIONS  = $82E9;
2612   GL_VERTEX_ATTRIB_ARRAY_LONG = $874E;
2613   { Reuse tokens from ARB_arrays_of_arrays (none, GLSL only) }
2614   { Reuse tokens from ARB_fragment_layer_viewport (none, GLSL only) }
2615   { Reuse tokens from ARB_shader_image_size (none, GLSL only) }
2616   { Reuse tokens from ARB_ES3_compatibility }
2617   { reuse GL_COMPRESSED_RGB8_ETC2 }
2618   { reuse GL_COMPRESSED_SRGB8_ETC2 }
2619   { reuse GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 }
2620   { reuse GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 }
2621   { reuse GL_COMPRESSED_RGBA8_ETC2_EAC }
2622   { reuse GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC }
2623   { reuse GL_COMPRESSED_R11_EAC }
2624   { reuse GL_COMPRESSED_SIGNED_R11_EAC }
2625   { reuse GL_COMPRESSED_RG11_EAC }
2626   { reuse GL_COMPRESSED_SIGNED_RG11_EAC }
2627   { reuse GL_PRIMITIVE_RESTART_FIXED_INDEX }
2628   { reuse GL_ANY_SAMPLES_PASSED_CONSERVATIVE }
2629   { reuse GL_MAX_ELEMENT_INDEX }
2630   { Reuse tokens from ARB_clear_buffer_object (none) }
2631   { Reuse tokens from ARB_compute_shader }
2632   { reuse GL_COMPUTE_SHADER }
2633   { reuse GL_MAX_COMPUTE_UNIFORM_BLOCKS }
2634   { reuse GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS }
2635   { reuse GL_MAX_COMPUTE_IMAGE_UNIFORMS }
2636   { reuse GL_MAX_COMPUTE_SHARED_MEMORY_SIZE }
2637   { reuse GL_MAX_COMPUTE_UNIFORM_COMPONENTS }
2638   { reuse GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS }
2639   { reuse GL_MAX_COMPUTE_ATOMIC_COUNTERS }
2640   { reuse GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS }
2641   { reuse GL_MAX_COMPUTE_LOCAL_INVOCATIONS }
2642   { reuse GL_MAX_COMPUTE_WORK_GROUP_COUNT }
2643   { reuse GL_MAX_COMPUTE_WORK_GROUP_SIZE }
2644   { reuse GL_COMPUTE_LOCAL_WORK_SIZE }
2645   { reuse GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER }
2646   { reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER }
2647   { reuse GL_DISPATCH_INDIRECT_BUFFER }
2648   { reuse GL_DISPATCH_INDIRECT_BUFFER_BINDING }
2649   { Reuse tokens from ARB_copy_image (none) }
2650   { Reuse tokens from KHR_debug }
2651   { reuse GL_DEBUG_OUTPUT_SYNCHRONOUS }
2652   { reuse GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH }
2653   { reuse GL_DEBUG_CALLBACK_FUNCTION }
2654   { reuse GL_DEBUG_CALLBACK_USER_PARAM }
2655   { reuse GL_DEBUG_SOURCE_API }
2656   { reuse GL_DEBUG_SOURCE_WINDOW_SYSTEM }
2657   { reuse GL_DEBUG_SOURCE_SHADER_COMPILER }
2658   { reuse GL_DEBUG_SOURCE_THIRD_PARTY }
2659   { reuse GL_DEBUG_SOURCE_APPLICATION }
2660   { reuse GL_DEBUG_SOURCE_OTHER }
2661   { reuse GL_DEBUG_TYPE_ERROR }
2662   { reuse GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR }
2663   { reuse GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR }
2664   { reuse GL_DEBUG_TYPE_PORTABILITY }
2665   { reuse GL_DEBUG_TYPE_PERFORMANCE }
2666   { reuse GL_DEBUG_TYPE_OTHER }
2667   { reuse GL_MAX_DEBUG_MESSAGE_LENGTH }
2668   { reuse GL_MAX_DEBUG_LOGGED_MESSAGES }
2669   { reuse GL_DEBUG_LOGGED_MESSAGES }
2670   { reuse GL_DEBUG_SEVERITY_HIGH }
2671   { reuse GL_DEBUG_SEVERITY_MEDIUM }
2672   { reuse GL_DEBUG_SEVERITY_LOW }
2673   { reuse GL_DEBUG_TYPE_MARKER }
2674   { reuse GL_DEBUG_TYPE_PUSH_GROUP }
2675   { reuse GL_DEBUG_TYPE_POP_GROUP }
2676   { reuse GL_DEBUG_SEVERITY_NOTIFICATION }
2677   { reuse GL_MAX_DEBUG_GROUP_STACK_DEPTH }
2678   { reuse GL_DEBUG_GROUP_STACK_DEPTH }
2679   { reuse GL_BUFFER }
2680   { reuse GL_SHADER }
2681   { reuse GL_PROGRAM }
2682   { reuse GL_QUERY }
2683   { reuse GL_PROGRAM_PIPELINE }
2684   { reuse GL_SAMPLER }
2685   { reuse GL_DISPLAY_LIST }
2686   { reuse GL_MAX_LABEL_LENGTH }
2687   { reuse GL_DEBUG_OUTPUT }
2688   { reuse GL_CONTEXT_FLAG_DEBUG_BIT }
2689   { reuse GL_STACK_UNDERFLOW }
2690   { reuse GL_STACK_OVERFLOW }
2691   { Reuse tokens from ARB_explicit_uniform_location }
2692   { reuse GL_MAX_UNIFORM_LOCATIONS }
2693   { Reuse tokens from ARB_framebuffer_no_attachments }
2694   { reuse GL_FRAMEBUFFER_DEFAULT_WIDTH }
2695   { reuse GL_FRAMEBUFFER_DEFAULT_HEIGHT }
2696   { reuse GL_FRAMEBUFFER_DEFAULT_LAYERS }
2697   { reuse GL_FRAMEBUFFER_DEFAULT_SAMPLES }
2698   { reuse GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS }
2699   { reuse GL_MAX_FRAMEBUFFER_WIDTH }
2700   { reuse GL_MAX_FRAMEBUFFER_HEIGHT }
2701   { reuse GL_MAX_FRAMEBUFFER_LAYERS }
2702   { reuse GL_MAX_FRAMEBUFFER_SAMPLES }
2703   { Reuse tokens from ARB_internalformat_query2 }
2704   { reuse GL_INTERNALFORMAT_SUPPORTED }
2705   { reuse GL_INTERNALFORMAT_PREFERRED }
2706   { reuse GL_INTERNALFORMAT_RED_SIZE }
2707   { reuse GL_INTERNALFORMAT_GREEN_SIZE }
2708   { reuse GL_INTERNALFORMAT_BLUE_SIZE }
2709   { reuse GL_INTERNALFORMAT_ALPHA_SIZE }
2710   { reuse GL_INTERNALFORMAT_DEPTH_SIZE }
2711   { reuse GL_INTERNALFORMAT_STENCIL_SIZE }
2712   { reuse GL_INTERNALFORMAT_SHARED_SIZE }
2713   { reuse GL_INTERNALFORMAT_RED_TYPE }
2714   { reuse GL_INTERNALFORMAT_GREEN_TYPE }
2715   { reuse GL_INTERNALFORMAT_BLUE_TYPE }
2716   { reuse GL_INTERNALFORMAT_ALPHA_TYPE }
2717   { reuse GL_INTERNALFORMAT_DEPTH_TYPE }
2718   { reuse GL_INTERNALFORMAT_STENCIL_TYPE }
2719   { reuse GL_MAX_WIDTH }
2720   { reuse GL_MAX_HEIGHT }
2721   { reuse GL_MAX_DEPTH }
2722   { reuse GL_MAX_LAYERS }
2723   { reuse GL_MAX_COMBINED_DIMENSIONS }
2724   { reuse GL_COLOR_COMPONENTS }
2725   { reuse GL_DEPTH_COMPONENTS }
2726   { reuse GL_STENCIL_COMPONENTS }
2727   { reuse GL_COLOR_RENDERABLE }
2728   { reuse GL_DEPTH_RENDERABLE }
2729   { reuse GL_STENCIL_RENDERABLE }
2730   { reuse GL_FRAMEBUFFER_RENDERABLE }
2731   { reuse GL_FRAMEBUFFER_RENDERABLE_LAYERED }
2732   { reuse GL_FRAMEBUFFER_BLEND }
2733   { reuse GL_READ_PIXELS }
2734   { reuse GL_READ_PIXELS_FORMAT }
2735   { reuse GL_READ_PIXELS_TYPE }
2736   { reuse GL_TEXTURE_IMAGE_FORMAT }
2737   { reuse GL_TEXTURE_IMAGE_TYPE }
2738   { reuse GL_GET_TEXTURE_IMAGE_FORMAT }
2739   { reuse GL_GET_TEXTURE_IMAGE_TYPE }
2740   { reuse GL_MIPMAP }
2741   { reuse GL_MANUAL_GENERATE_MIPMAP }
2742   { reuse GL_AUTO_GENERATE_MIPMAP }
2743   { reuse GL_COLOR_ENCODING }
2744   { reuse GL_SRGB_READ }
2745   { reuse GL_SRGB_WRITE }
2746   { reuse GL_FILTER }
2747   { reuse GL_VERTEX_TEXTURE }
2748   { reuse GL_TESS_CONTROL_TEXTURE }
2749   { reuse GL_TESS_EVALUATION_TEXTURE }
2750   { reuse GL_GEOMETRY_TEXTURE }
2751   { reuse GL_FRAGMENT_TEXTURE }
2752   { reuse GL_COMPUTE_TEXTURE }
2753   { reuse GL_TEXTURE_SHADOW }
2754   { reuse GL_TEXTURE_GATHER }
2755   { reuse GL_TEXTURE_GATHER_SHADOW }
2756   { reuse GL_SHADER_IMAGE_LOAD }
2757   { reuse GL_SHADER_IMAGE_STORE }
2758   { reuse GL_SHADER_IMAGE_ATOMIC }
2759   { reuse GL_IMAGE_TEXEL_SIZE }
2760   { reuse GL_IMAGE_COMPATIBILITY_CLASS }
2761   { reuse GL_IMAGE_PIXEL_FORMAT }
2762   { reuse GL_IMAGE_PIXEL_TYPE }
2763   { reuse GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST }
2764   { reuse GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST }
2765   { reuse GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE }
2766   { reuse GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE }
2767   { reuse GL_TEXTURE_COMPRESSED_BLOCK_WIDTH }
2768   { reuse GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT }
2769   { reuse GL_TEXTURE_COMPRESSED_BLOCK_SIZE }
2770   { reuse GL_CLEAR_BUFFER }
2771   { reuse GL_TEXTURE_VIEW }
2772   { reuse GL_VIEW_COMPATIBILITY_CLASS }
2773   { reuse GL_FULL_SUPPORT }
2774   { reuse GL_CAVEAT_SUPPORT }
2775   { reuse GL_IMAGE_CLASS_4_X_32 }
2776   { reuse GL_IMAGE_CLASS_2_X_32 }
2777   { reuse GL_IMAGE_CLASS_1_X_32 }
2778   { reuse GL_IMAGE_CLASS_4_X_16 }
2779   { reuse GL_IMAGE_CLASS_2_X_16 }
2780   { reuse GL_IMAGE_CLASS_1_X_16 }
2781   { reuse GL_IMAGE_CLASS_4_X_8 }
2782   { reuse GL_IMAGE_CLASS_2_X_8 }
2783   { reuse GL_IMAGE_CLASS_1_X_8 }
2784   { reuse GL_IMAGE_CLASS_11_11_10 }
2785   { reuse GL_IMAGE_CLASS_10_10_10_2 }
2786   { reuse GL_VIEW_CLASS_128_BITS }
2787   { reuse GL_VIEW_CLASS_96_BITS }
2788   { reuse GL_VIEW_CLASS_64_BITS }
2789   { reuse GL_VIEW_CLASS_48_BITS }
2790   { reuse GL_VIEW_CLASS_32_BITS }
2791   { reuse GL_VIEW_CLASS_24_BITS }
2792   { reuse GL_VIEW_CLASS_16_BITS }
2793   { reuse GL_VIEW_CLASS_8_BITS }
2794   { reuse GL_VIEW_CLASS_S3TC_DXT1_RGB }
2795   { reuse GL_VIEW_CLASS_S3TC_DXT1_RGBA }
2796   { reuse GL_VIEW_CLASS_S3TC_DXT3_RGBA }
2797   { reuse GL_VIEW_CLASS_S3TC_DXT5_RGBA }
2798   { reuse GL_VIEW_CLASS_RGTC1_RED }
2799   { reuse GL_VIEW_CLASS_RGTC2_RG }
2800   { reuse GL_VIEW_CLASS_BPTC_UNORM }
2801   { reuse GL_VIEW_CLASS_BPTC_FLOAT }
2802   { Reuse tokens from ARB_invalidate_subdata (none) }
2803   { Reuse tokens from ARB_multi_draw_indirect (none) }
2804   { Reuse tokens from ARB_program_interface_query }
2805   { reuse GL_UNIFORM }
2806   { reuse GL_UNIFORM_BLOCK }
2807   { reuse GL_PROGRAM_INPUT }
2808   { reuse GL_PROGRAM_OUTPUT }
2809   { reuse GL_BUFFER_VARIABLE }
2810   { reuse GL_SHADER_STORAGE_BLOCK }
2811   { reuse GL_VERTEX_SUBROUTINE }
2812   { reuse GL_TESS_CONTROL_SUBROUTINE }
2813   { reuse GL_TESS_EVALUATION_SUBROUTINE }
2814   { reuse GL_GEOMETRY_SUBROUTINE }
2815   { reuse GL_FRAGMENT_SUBROUTINE }
2816   { reuse GL_COMPUTE_SUBROUTINE }
2817   { reuse GL_VERTEX_SUBROUTINE_UNIFORM }
2818   { reuse GL_TESS_CONTROL_SUBROUTINE_UNIFORM }
2819   { reuse GL_TESS_EVALUATION_SUBROUTINE_UNIFORM }
2820   { reuse GL_GEOMETRY_SUBROUTINE_UNIFORM }
2821   { reuse GL_FRAGMENT_SUBROUTINE_UNIFORM }
2822   { reuse GL_COMPUTE_SUBROUTINE_UNIFORM }
2823   { reuse GL_TRANSFORM_FEEDBACK_VARYING }
2824   { reuse GL_ACTIVE_RESOURCES }
2825   { reuse GL_MAX_NAME_LENGTH }
2826   { reuse GL_MAX_NUM_ACTIVE_VARIABLES }
2827   { reuse GL_MAX_NUM_COMPATIBLE_SUBROUTINES }
2828   { reuse GL_NAME_LENGTH }
2829   { reuse GL_TYPE }
2830   { reuse GL_ARRAY_SIZE }
2831   { reuse GL_OFFSET }
2832   { reuse GL_BLOCK_INDEX }
2833   { reuse GL_ARRAY_STRIDE }
2834   { reuse GL_MATRIX_STRIDE }
2835   { reuse GL_IS_ROW_MAJOR }
2836   { reuse GL_ATOMIC_COUNTER_BUFFER_INDEX }
2837   { reuse GL_BUFFER_BINDING }
2838   { reuse GL_BUFFER_DATA_SIZE }
2839   { reuse GL_NUM_ACTIVE_VARIABLES }
2840   { reuse GL_ACTIVE_VARIABLES }
2841   { reuse GL_REFERENCED_BY_VERTEX_SHADER }
2842   { reuse GL_REFERENCED_BY_TESS_CONTROL_SHADER }
2843   { reuse GL_REFERENCED_BY_TESS_EVALUATION_SHADER }
2844   { reuse GL_REFERENCED_BY_GEOMETRY_SHADER }
2845   { reuse GL_REFERENCED_BY_FRAGMENT_SHADER }
2846   { reuse GL_REFERENCED_BY_COMPUTE_SHADER }
2847   { reuse GL_TOP_LEVEL_ARRAY_SIZE }
2848   { reuse GL_TOP_LEVEL_ARRAY_STRIDE }
2849   { reuse GL_LOCATION }
2850   { reuse GL_LOCATION_INDEX }
2851   { reuse GL_IS_PER_PATCH }
2852   { Reuse tokens from ARB_robust_buffer_access_behavior (none) }
2853   { Reuse tokens from ARB_shader_storage_buffer_object }
2854   { reuse GL_SHADER_STORAGE_BUFFER }
2855   { reuse GL_SHADER_STORAGE_BUFFER_BINDING }
2856   { reuse GL_SHADER_STORAGE_BUFFER_START }
2857   { reuse GL_SHADER_STORAGE_BUFFER_SIZE }
2858   { reuse GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS }
2859   { reuse GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS }
2860   { reuse GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS }
2861   { reuse GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS }
2862   { reuse GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS }
2863   { reuse GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS }
2864   { reuse GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS }
2865   { reuse GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS }
2866   { reuse GL_MAX_SHADER_STORAGE_BLOCK_SIZE }
2867   { reuse GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT }
2868   { reuse GL_SHADER_STORAGE_BARRIER_BIT }
2869   { reuse GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES }
2870   { Reuse tokens from ARB_stencil_texturing }
2871   { reuse GL_DEPTH_STENCIL_TEXTURE_MODE }
2872   { Reuse tokens from ARB_texture_buffer_range }
2873   { reuse GL_TEXTURE_BUFFER_OFFSET }
2874   { reuse GL_TEXTURE_BUFFER_SIZE }
2875   { reuse GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT }
2876   { Reuse tokens from ARB_texture_query_levels (none) }
2877   { Reuse tokens from ARB_texture_storage_multisample (none) }
2878   { Reuse tokens from ARB_texture_view }
2879   { reuse GL_TEXTURE_VIEW_MIN_LEVEL }
2880   { reuse GL_TEXTURE_VIEW_NUM_LEVELS }
2881   { reuse GL_TEXTURE_VIEW_MIN_LAYER }
2882   { reuse GL_TEXTURE_VIEW_NUM_LAYERS }
2883   { reuse GL_TEXTURE_IMMUTABLE_LEVELS }
2884   { Reuse tokens from ARB_vertex_attrib_binding }
2885   { reuse GL_VERTEX_ATTRIB_BINDING }
2886   { reuse GL_VERTEX_ATTRIB_RELATIVE_OFFSET }
2887   { reuse GL_VERTEX_BINDING_DIVISOR }
2888   { reuse GL_VERTEX_BINDING_OFFSET }
2889   { reuse GL_VERTEX_BINDING_STRIDE }
2890   { reuse GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET }
2891   { reuse GL_MAX_VERTEX_ATTRIB_BINDINGS }
2892
2893
2894   // GL_3DFX_multisample
2895   GL_MULTISAMPLE_3DFX = $86B2;
2896   GL_SAMPLE_BUFFERS_3DFX = $86B3;
2897   GL_SAMPLES_3DFX = $86B4;
2898   GL_MULTISAMPLE_BIT_3DFX = $20000000;
2899
2900   // GL_3DFX_texture_compression_FXT1
2901   GL_COMPRESSED_RGB_FXT1_3DFX = $86B0;
2902   GL_COMPRESSED_RGBA_FXT1_3DFX = $86B1;
2903
2904   // GL_APPLE_client_storage
2905   GL_UNPACK_CLIENT_STORAGE_APPLE = $85B2;
2906
2907   // GL_APPLE_element_array
2908   GL_ELEMENT_ARRAY_APPLE = $8A0C;
2909   GL_ELEMENT_ARRAY_TYPE_APPLE = $8A0D;
2910   GL_ELEMENT_ARRAY_POINTER_APPLE = $8A0E;
2911
2912   // GL_APPLE_fence
2913   GL_DRAW_PIXELS_APPLE = $8A0A;
2914   GL_FENCE_APPLE = $8A0B;
2915
2916   // GL_APPLE_specular_vector
2917   GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE = $85B0;
2918
2919   // GL_APPLE_transform_hint
2920   GL_TRANSFORM_HINT_APPLE = $85B1;
2921
2922   // GL_APPLE_vertex_array_object
2923   GL_VERTEX_ARRAY_BINDING_APPLE = $85B5;
2924
2925   // GL_APPLE_vertex_array_range
2926   GL_VERTEX_ARRAY_RANGE_APPLE = $851D;
2927   GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE = $851E;
2928   GL_VERTEX_ARRAY_STORAGE_HINT_APPLE = $851F;
2929   GL_VERTEX_ARRAY_RANGE_POINTER_APPLE = $8521;
2930   GL_STORAGE_CLIENT_APPLE = $85B4;
2931   GL_STORAGE_CACHED_APPLE = $85BE;
2932   GL_STORAGE_SHARED_APPLE = $85BF;
2933
2934   // GL_APPLE_ycbcr_422
2935   GL_YCBCR_422_APPLE = $85B9;
2936   GL_UNSIGNED_SHORT_8_8_APPLE = $85BA;
2937   GL_UNSIGNED_SHORT_8_8_REV_APPLE = $85BB;
2938   GL_RGB_RAW_422_APPLE = $8A51;
2939
2940   // GL_APPLE_texture_range
2941   GL_TEXTURE_RANGE_LENGTH_APPLE = $85B7;
2942   GL_TEXTURE_RANGE_POINTER_APPLE = $85B8;
2943   GL_TEXTURE_STORAGE_HINT_APPLE = $85BC;
2944   GL_STORAGE_PRIVATE_APPLE = $85BD;
2945   { reuse GL_STORAGE_CACHED_APPLE }
2946   { reuse GL_STORAGE_SHARED_APPLE }
2947
2948   // GL_APPLE_float_pixels
2949   GL_HALF_APPLE = $140B;
2950   GL_RGBA_FLOAT32_APPLE = $8814;
2951   GL_RGB_FLOAT32_APPLE = $8815;
2952   GL_ALPHA_FLOAT32_APPLE = $8816;
2953   GL_INTENSITY_FLOAT32_APPLE = $8817;
2954   GL_LUMINANCE_FLOAT32_APPLE = $8818;
2955   GL_LUMINANCE_ALPHA_FLOAT32_APPLE = $8819;
2956   GL_RGBA_FLOAT16_APPLE = $881A;
2957   GL_RGB_FLOAT16_APPLE = $881B;
2958   GL_ALPHA_FLOAT16_APPLE = $881C;
2959   GL_INTENSITY_FLOAT16_APPLE = $881D;
2960   GL_LUMINANCE_FLOAT16_APPLE = $881E;
2961   GL_LUMINANCE_ALPHA_FLOAT16_APPLE = $881F;
2962   GL_COLOR_FLOAT_APPLE = $8A0F;
2963
2964   // GL_APPLE_vertex_program_evaluators
2965   GL_VERTEX_ATTRIB_MAP1_APPLE = $8A00;
2966   GL_VERTEX_ATTRIB_MAP2_APPLE = $8A01;
2967   GL_VERTEX_ATTRIB_MAP1_SIZE_APPLE = $8A02;
2968   GL_VERTEX_ATTRIB_MAP1_COEFF_APPLE = $8A03;
2969   GL_VERTEX_ATTRIB_MAP1_ORDER_APPLE = $8A04;
2970   GL_VERTEX_ATTRIB_MAP1_DOMAIN_APPLE = $8A05;
2971   GL_VERTEX_ATTRIB_MAP2_SIZE_APPLE = $8A06;
2972   GL_VERTEX_ATTRIB_MAP2_COEFF_APPLE = $8A07;
2973   GL_VERTEX_ATTRIB_MAP2_ORDER_APPLE = $8A08;
2974   GL_VERTEX_ATTRIB_MAP2_DOMAIN_APPLE = $8A09;
2975
2976   // GL_APPLE_aux_depth_stencil
2977   GL_AUX_DEPTH_STENCIL_APPLE = $8A14;
2978
2979   // GL_APPLE_object_purgeable
2980   GL_BUFFER_OBJECT_APPLE = $85B3;
2981   GL_RELEASED_APPLE = $8A19;
2982   GL_VOLATILE_APPLE = $8A1A;
2983   GL_RETAINED_APPLE = $8A1B;
2984   GL_UNDEFINED_APPLE = $8A1C;
2985   GL_PURGEABLE_APPLE = $8A1D;
2986
2987   // GL_APPLE_row_bytes
2988   GL_PACK_ROW_BYTES_APPLE = $8A15;
2989   GL_UNPACK_ROW_BYTES_APPLE = $8A16;
2990
2991   // GL_APPLE_rgb_422
2992   { reuse GL_UNSIGNED_SHORT_8_8_APPLE }
2993   { reuse GL_UNSIGNED_SHORT_8_8_REV_APPLE }
2994
2995   // GL_ARB_depth_texture
2996   GL_DEPTH_COMPONENT16_ARB = $81A5;
2997   GL_DEPTH_COMPONENT24_ARB = $81A6;
2998   GL_DEPTH_COMPONENT32_ARB = $81A7;
2999   GL_TEXTURE_DEPTH_SIZE_ARB = $884A;
3000   GL_DEPTH_TEXTURE_MODE_ARB = $884B;
3001
3002   // GL_ARB_fragment_program
3003   GL_FRAGMENT_PROGRAM_ARB = $8804;
3004   GL_PROGRAM_ALU_INSTRUCTIONS_ARB = $8805;
3005   GL_PROGRAM_TEX_INSTRUCTIONS_ARB = $8806;
3006   GL_PROGRAM_TEX_INDIRECTIONS_ARB = $8807;
3007   GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB = $8808;
3008   GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB = $8809;
3009   GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB = $880A;
3010   GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB = $880B;
3011   GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB = $880C;
3012   GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB = $880D;
3013   GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB = $880E;
3014   GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB = $880F;
3015   GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB = $8810;
3016   GL_MAX_TEXTURE_COORDS_ARB = $8871;
3017   GL_MAX_TEXTURE_IMAGE_UNITS_ARB = $8872;
3018
3019   // GL_ARB_imaging
3020   GL_CONSTANT_COLOR_ARB = $8001;
3021   GL_CONSTANT_COLOR = $8001;
3022   GL_ONE_MINUS_CONSTANT_COLOR = $8002;
3023   GL_CONSTANT_ALPHA = $8003;
3024   GL_ONE_MINUS_CONSTANT_ALPHA = $8004;
3025   GL_BLEND_COLOR = $8005;
3026   GL_FUNC_ADD = $8006;
3027   GL_MIN = $8007;
3028   GL_MAX = $8008;
3029   GL_BLEND_EQUATION = $8009;
3030   GL_FUNC_SUBTRACT = $800A;
3031   GL_FUNC_REVERSE_SUBTRACT = $800B;
3032 {$ifdef DGL_DEPRECATED}
3033   GL_CONVOLUTION_1D = $8010;
3034   GL_CONVOLUTION_2D = $8011;
3035   GL_SEPARABLE_2D = $8012;
3036   GL_CONVOLUTION_BORDER_MODE = $8013;
3037   GL_CONVOLUTION_FILTER_SCALE = $8014;
3038   GL_CONVOLUTION_FILTER_BIAS = $8015;
3039   GL_REDUCE = $8016;
3040   GL_CONVOLUTION_FORMAT = $8017;
3041   GL_CONVOLUTION_WIDTH = $8018;
3042   GL_CONVOLUTION_HEIGHT = $8019;
3043   GL_MAX_CONVOLUTION_WIDTH = $801A;
3044   GL_MAX_CONVOLUTION_HEIGHT = $801B;
3045   GL_POST_CONVOLUTION_RED_SCALE = $801C;
3046   GL_POST_CONVOLUTION_GREEN_SCALE = $801D;
3047   GL_POST_CONVOLUTION_BLUE_SCALE = $801E;
3048   GL_POST_CONVOLUTION_ALPHA_SCALE = $801F;
3049   GL_POST_CONVOLUTION_RED_BIAS = $8020;
3050   GL_POST_CONVOLUTION_GREEN_BIAS = $8021;
3051   GL_POST_CONVOLUTION_BLUE_BIAS = $8022;
3052   GL_POST_CONVOLUTION_ALPHA_BIAS = $8023;
3053   GL_HISTOGRAM = $8024;
3054   GL_PROXY_HISTOGRAM = $8025;
3055   GL_HISTOGRAM_WIDTH = $8026;
3056   GL_HISTOGRAM_FORMAT = $8027;
3057   GL_HISTOGRAM_RED_SIZE = $8028;
3058   GL_HISTOGRAM_GREEN_SIZE = $8029;
3059   GL_HISTOGRAM_BLUE_SIZE = $802A;
3060   GL_HISTOGRAM_ALPHA_SIZE = $802B;
3061   GL_HISTOGRAM_LUMINANCE_SIZE = $802C;
3062   GL_HISTOGRAM_SINK = $802D;
3063   GL_MINMAX = $802E;
3064   GL_MINMAX_FORMAT = $802F;
3065   GL_MINMAX_SINK = $8030;
3066   GL_TABLE_TOO_LARGE = $8031;
3067   GL_COLOR_MATRIX = $80B1;
3068   GL_COLOR_MATRIX_STACK_DEPTH = $80B2;
3069   GL_MAX_COLOR_MATRIX_STACK_DEPTH = $80B3;
3070   GL_POST_COLOR_MATRIX_RED_SCALE = $80B4;
3071   GL_POST_COLOR_MATRIX_GREEN_SCALE = $80B5;
3072   GL_POST_COLOR_MATRIX_BLUE_SCALE = $80B6;
3073   GL_POST_COLOR_MATRIX_ALPHA_SCALE = $80B7;
3074   GL_POST_COLOR_MATRIX_RED_BIAS = $80B8;
3075   GL_POST_COLOR_MATRIX_GREEN_BIAS = $80B9;
3076   GL_POST_COLOR_MATRIX_BLUE_BIAS = $80BA;
3077   GL_POST_COLOR_MATRIX_ALPHA_BIAS = $80BB;
3078   GL_COLOR_TABLE = $80D0;
3079   GL_POST_CONVOLUTION_COLOR_TABLE = $80D1;
3080   GL_POST_COLOR_MATRIX_COLOR_TABLE = $80D2;
3081   GL_PROXY_COLOR_TABLE = $80D3;
3082   GL_PROXY_POST_CONVOLUTION_COLOR_TABLE = $80D4;
3083   GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE = $80D5;
3084   GL_COLOR_TABLE_SCALE = $80D6;
3085   GL_COLOR_TABLE_BIAS = $80D7;
3086   GL_COLOR_TABLE_FORMAT = $80D8;
3087   GL_COLOR_TABLE_WIDTH = $80D9;
3088   GL_COLOR_TABLE_RED_SIZE = $80DA;
3089   GL_COLOR_TABLE_GREEN_SIZE = $80DB;
3090   GL_COLOR_TABLE_BLUE_SIZE = $80DC;
3091   GL_COLOR_TABLE_ALPHA_SIZE = $80DD;
3092   GL_COLOR_TABLE_LUMINANCE_SIZE = $80DE;
3093   GL_COLOR_TABLE_INTENSITY_SIZE = $80DF;
3094   GL_CONSTANT_BORDER = $8151;
3095   GL_REPLICATE_BORDER = $8153;
3096   GL_CONVOLUTION_BORDER_COLOR = $8154;
3097 {$endif}
3098
3099   // GL_ARB_matrix_palette
3100   GL_MATRIX_PALETTE_ARB = $8840;
3101   GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB = $8841;
3102   GL_MAX_PALETTE_MATRICES_ARB = $8842;
3103   GL_CURRENT_PALETTE_MATRIX_ARB = $8843;
3104   GL_MATRIX_INDEX_ARRAY_ARB = $8844;
3105   GL_CURRENT_MATRIX_INDEX_ARB = $8845;
3106   GL_MATRIX_INDEX_ARRAY_SIZE_ARB = $8846;
3107   GL_MATRIX_INDEX_ARRAY_TYPE_ARB = $8847;
3108   GL_MATRIX_INDEX_ARRAY_STRIDE_ARB = $8848;
3109   GL_MATRIX_INDEX_ARRAY_POINTER_ARB = $8849;
3110
3111   // GL_ARB_multisample
3112   GL_MULTISAMPLE_ARB = $809D;
3113   GL_SAMPLE_ALPHA_TO_COVERAGE_ARB = $809E;
3114   GL_SAMPLE_ALPHA_TO_ONE_ARB = $809F;
3115   GL_SAMPLE_COVERAGE_ARB = $80A0;
3116   GL_SAMPLE_BUFFERS_ARB = $80A8;
3117   GL_SAMPLES_ARB = $80A9;
3118   GL_SAMPLE_COVERAGE_VALUE_ARB = $80AA;
3119   GL_SAMPLE_COVERAGE_INVERT_ARB = $80AB;
3120   GL_MULTISAMPLE_BIT_ARB = $20000000;
3121
3122   // GL_ARB_multitexture
3123   GL_TEXTURE0_ARB = $84C0;
3124   GL_TEXTURE1_ARB = $84C1;
3125   GL_TEXTURE2_ARB = $84C2;
3126   GL_TEXTURE3_ARB = $84C3;
3127   GL_TEXTURE4_ARB = $84C4;
3128   GL_TEXTURE5_ARB = $84C5;
3129   GL_TEXTURE6_ARB = $84C6;
3130   GL_TEXTURE7_ARB = $84C7;
3131   GL_TEXTURE8_ARB = $84C8;
3132   GL_TEXTURE9_ARB = $84C9;
3133   GL_TEXTURE10_ARB = $84CA;
3134   GL_TEXTURE11_ARB = $84CB;
3135   GL_TEXTURE12_ARB = $84CC;
3136   GL_TEXTURE13_ARB = $84CD;
3137   GL_TEXTURE14_ARB = $84CE;
3138   GL_TEXTURE15_ARB = $84CF;
3139   GL_TEXTURE16_ARB = $84D0;
3140   GL_TEXTURE17_ARB = $84D1;
3141   GL_TEXTURE18_ARB = $84D2;
3142   GL_TEXTURE19_ARB = $84D3;
3143   GL_TEXTURE20_ARB = $84D4;
3144   GL_TEXTURE21_ARB = $84D5;
3145   GL_TEXTURE22_ARB = $84D6;
3146   GL_TEXTURE23_ARB = $84D7;
3147   GL_TEXTURE24_ARB = $84D8;
3148   GL_TEXTURE25_ARB = $84D9;
3149   GL_TEXTURE26_ARB = $84DA;
3150   GL_TEXTURE27_ARB = $84DB;
3151   GL_TEXTURE28_ARB = $84DC;
3152   GL_TEXTURE29_ARB = $84DD;
3153   GL_TEXTURE30_ARB = $84DE;
3154   GL_TEXTURE31_ARB = $84DF;
3155   GL_ACTIVE_TEXTURE_ARB = $84E0;
3156   GL_CLIENT_ACTIVE_TEXTURE_ARB = $84E1;
3157   GL_MAX_TEXTURE_UNITS_ARB = $84E2;
3158
3159   // GL_ARB_point_parameters
3160   GL_POINT_SIZE_MIN_ARB = $8126;
3161   GL_POINT_SIZE_MAX_ARB = $8127;
3162   GL_POINT_FADE_THRESHOLD_SIZE_ARB = $8128;
3163   GL_POINT_DISTANCE_ATTENUATION_ARB = $8129;
3164
3165   // GL_ARB_shadow
3166   GL_TEXTURE_COMPARE_MODE_ARB = $884C;
3167   GL_TEXTURE_COMPARE_FUNC_ARB = $884D;
3168   GL_COMPARE_R_TO_TEXTURE_ARB = $884E;
3169
3170   // GL_ARB_shadow_ambient
3171   GL_TEXTURE_COMPARE_FAIL_VALUE_ARB = $80BF;
3172
3173   // GL_ARB_sparse_buffer
3174   GL_SPARSE_STORAGE_BIT_ARB = $0400;
3175   GL_SPARSE_BUFFER_PAGE_SIZE_ARB = $82F8;
3176
3177   // GL_ARB_texture_border_clamp
3178   GL_CLAMP_TO_BORDER_ARB = $812D;
3179
3180   // GL_ARB_texture_compression
3181   GL_COMPRESSED_ALPHA_ARB = $84E9;
3182   GL_COMPRESSED_LUMINANCE_ARB = $84EA;
3183   GL_COMPRESSED_LUMINANCE_ALPHA_ARB = $84EB;
3184   GL_COMPRESSED_INTENSITY_ARB = $84EC;
3185   GL_COMPRESSED_RGB_ARB = $84ED;
3186   GL_COMPRESSED_RGBA_ARB = $84EE;
3187   GL_TEXTURE_COMPRESSION_HINT_ARB = $84EF;
3188   GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB = $86A0;
3189   GL_TEXTURE_COMPRESSED_ARB = $86A1;
3190   GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB = $86A2;
3191   GL_COMPRESSED_TEXTURE_FORMATS_ARB = $86A3;
3192
3193   // GL_ARB_texture_cube_map
3194   GL_NORMAL_MAP_ARB = $8511;
3195   GL_REFLECTION_MAP_ARB = $8512;
3196   GL_TEXTURE_CUBE_MAP_ARB = $8513;
3197   GL_TEXTURE_BINDING_CUBE_MAP_ARB = $8514;
3198   GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB = $8515;
3199   GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB = $8516;
3200   GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB = $8517;
3201   GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB = $8518;
3202   GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB = $8519;
3203   GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB = $851A;
3204   GL_PROXY_TEXTURE_CUBE_MAP_ARB = $851B;
3205   GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB = $851C;
3206
3207   // GL_ARB_texture_env_combine
3208   GL_COMBINE_ARB = $8570;
3209   GL_COMBINE_RGB_ARB = $8571;
3210   GL_COMBINE_ALPHA_ARB = $8572;
3211   GL_SOURCE0_RGB_ARB = $8580;
3212   GL_SOURCE1_RGB_ARB = $8581;
3213   GL_SOURCE2_RGB_ARB = $8582;
3214   GL_SOURCE0_ALPHA_ARB = $8588;
3215   GL_SOURCE1_ALPHA_ARB = $8589;
3216   GL_SOURCE2_ALPHA_ARB = $858A;
3217   GL_OPERAND0_RGB_ARB = $8590;
3218   GL_OPERAND1_RGB_ARB = $8591;
3219   GL_OPERAND2_RGB_ARB = $8592;
3220   GL_OPERAND0_ALPHA_ARB = $8598;
3221   GL_OPERAND1_ALPHA_ARB = $8599;
3222   GL_OPERAND2_ALPHA_ARB = $859A;
3223   GL_RGB_SCALE_ARB = $8573;
3224   GL_ADD_SIGNED_ARB = $8574;
3225   GL_INTERPOLATE_ARB = $8575;
3226   GL_SUBTRACT_ARB = $84E7;
3227   GL_CONSTANT_ARB = $8576;
3228   GL_PRIMARY_COLOR_ARB = $8577;
3229   GL_PREVIOUS_ARB = $8578;
3230
3231   // GL_ARB_texture_env_dot3
3232   GL_DOT3_RGB_ARB = $86AE;
3233   GL_DOT3_RGBA_ARB = $86AF;
3234
3235   // GL_ARB_texture_mirrored_repeat
3236   GL_MIRRORED_REPEAT_ARB = $8370;
3237
3238   // GL_ARB_transpose_matrix
3239   GL_TRANSPOSE_MODELVIEW_MATRIX_ARB = $84E3;
3240   GL_TRANSPOSE_PROJECTION_MATRIX_ARB = $84E4;
3241   GL_TRANSPOSE_TEXTURE_MATRIX_ARB = $84E5;
3242   GL_TRANSPOSE_COLOR_MATRIX_ARB = $84E6;
3243
3244   // GL_ARB_vertex_blend
3245   GL_MAX_VERTEX_UNITS_ARB = $86A4;
3246   GL_ACTIVE_VERTEX_UNITS_ARB = $86A5;
3247   GL_WEIGHT_SUM_UNITY_ARB = $86A6;
3248   GL_VERTEX_BLEND_ARB = $86A7;
3249   GL_CURRENT_WEIGHT_ARB = $86A8;
3250   GL_WEIGHT_ARRAY_TYPE_ARB = $86A9;
3251   GL_WEIGHT_ARRAY_STRIDE_ARB = $86AA;
3252   GL_WEIGHT_ARRAY_SIZE_ARB = $86AB;
3253   GL_WEIGHT_ARRAY_POINTER_ARB = $86AC;
3254   GL_WEIGHT_ARRAY_ARB = $86AD;
3255   GL_MODELVIEW0_ARB = $1700;
3256   GL_MODELVIEW1_ARB = $850A;
3257   GL_MODELVIEW2_ARB = $8722;
3258   GL_MODELVIEW3_ARB = $8723;
3259   GL_MODELVIEW4_ARB = $8724;
3260   GL_MODELVIEW5_ARB = $8725;
3261   GL_MODELVIEW6_ARB = $8726;
3262   GL_MODELVIEW7_ARB = $8727;
3263   GL_MODELVIEW8_ARB = $8728;
3264   GL_MODELVIEW9_ARB = $8729;
3265   GL_MODELVIEW10_ARB = $872A;
3266   GL_MODELVIEW11_ARB = $872B;
3267   GL_MODELVIEW12_ARB = $872C;
3268   GL_MODELVIEW13_ARB = $872D;
3269   GL_MODELVIEW14_ARB = $872E;
3270   GL_MODELVIEW15_ARB = $872F;
3271   GL_MODELVIEW16_ARB = $8730;
3272   GL_MODELVIEW17_ARB = $8731;
3273   GL_MODELVIEW18_ARB = $8732;
3274   GL_MODELVIEW19_ARB = $8733;
3275   GL_MODELVIEW20_ARB = $8734;
3276   GL_MODELVIEW21_ARB = $8735;
3277   GL_MODELVIEW22_ARB = $8736;
3278   GL_MODELVIEW23_ARB = $8737;
3279   GL_MODELVIEW24_ARB = $8738;
3280   GL_MODELVIEW25_ARB = $8739;
3281   GL_MODELVIEW26_ARB = $873A;
3282   GL_MODELVIEW27_ARB = $873B;
3283   GL_MODELVIEW28_ARB = $873C;
3284   GL_MODELVIEW29_ARB = $873D;
3285   GL_MODELVIEW30_ARB = $873E;
3286   GL_MODELVIEW31_ARB = $873F;
3287
3288   // GL_ARB_vertex_buffer_object
3289   GL_BUFFER_SIZE_ARB = $8764;
3290   GL_BUFFER_USAGE_ARB = $8765;
3291   GL_ARRAY_BUFFER_ARB = $8892;
3292   GL_ELEMENT_ARRAY_BUFFER_ARB = $8893;
3293   GL_ARRAY_BUFFER_BINDING_ARB = $8894;
3294   GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB = $8895;
3295   GL_VERTEX_ARRAY_BUFFER_BINDING_ARB = $8896;
3296   GL_NORMAL_ARRAY_BUFFER_BINDING_ARB = $8897;
3297   GL_COLOR_ARRAY_BUFFER_BINDING_ARB = $8898;
3298   GL_INDEX_ARRAY_BUFFER_BINDING_ARB = $8899;
3299   GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB = $889A;
3300   GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB = $889B;
3301   GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB = $889C;
3302   GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB = $889D;
3303   GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB = $889E;
3304   GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB = $889F;
3305   GL_READ_ONLY_ARB = $88B8;
3306   GL_WRITE_ONLY_ARB = $88B9;
3307   GL_READ_WRITE_ARB = $88BA;
3308   GL_BUFFER_ACCESS_ARB = $88BB;
3309   GL_BUFFER_MAPPED_ARB = $88BC;
3310   GL_BUFFER_MAP_POINTER_ARB = $88BD;
3311   GL_STREAM_DRAW_ARB = $88E0;
3312   GL_STREAM_READ_ARB = $88E1;
3313   GL_STREAM_COPY_ARB = $88E2;
3314   GL_STATIC_DRAW_ARB = $88E4;
3315   GL_STATIC_READ_ARB = $88E5;
3316   GL_STATIC_COPY_ARB = $88E6;
3317   GL_DYNAMIC_DRAW_ARB = $88E8;
3318   GL_DYNAMIC_READ_ARB = $88E9;
3319   GL_DYNAMIC_COPY_ARB = $88EA;
3320
3321   // GL_ARB_vertex_program
3322   GL_COLOR_SUM_ARB = $8458;
3323   GL_VERTEX_PROGRAM_ARB = $8620;
3324   GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB = $8622;
3325   GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB = $8623;
3326   GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB = $8624;
3327   GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB = $8625;
3328   GL_CURRENT_VERTEX_ATTRIB_ARB = $8626;
3329   GL_PROGRAM_LENGTH_ARB = $8627;
3330   GL_PROGRAM_STRING_ARB = $8628;
3331   GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB = $862E;
3332   GL_MAX_PROGRAM_MATRICES_ARB = $862F;
3333   GL_CURRENT_MATRIX_STACK_DEPTH_ARB = $8640;
3334   GL_CURRENT_MATRIX_ARB = $8641;
3335   GL_VERTEX_PROGRAM_POINT_SIZE_ARB = $8642;
3336   GL_VERTEX_PROGRAM_TWO_SIDE_ARB = $8643;
3337   GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB = $8645;
3338   GL_PROGRAM_ERROR_POSITION_ARB = $864B;
3339   GL_PROGRAM_BINDING_ARB = $8677;
3340   GL_MAX_VERTEX_ATTRIBS_ARB = $8869;
3341   GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB = $886A;
3342   GL_PROGRAM_ERROR_STRING_ARB = $8874;
3343   GL_PROGRAM_FORMAT_ASCII_ARB = $8875;
3344   GL_PROGRAM_FORMAT_ARB = $8876;
3345   GL_PROGRAM_INSTRUCTIONS_ARB = $88A0;
3346   GL_MAX_PROGRAM_INSTRUCTIONS_ARB = $88A1;
3347   GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB = $88A2;
3348   GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB = $88A3;
3349   GL_PROGRAM_TEMPORARIES_ARB = $88A4;
3350   GL_MAX_PROGRAM_TEMPORARIES_ARB = $88A5;
3351   GL_PROGRAM_NATIVE_TEMPORARIES_ARB = $88A6;
3352   GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB = $88A7;
3353   GL_PROGRAM_PARAMETERS_ARB = $88A8;
3354   GL_MAX_PROGRAM_PARAMETERS_ARB = $88A9;
3355   GL_PROGRAM_NATIVE_PARAMETERS_ARB = $88AA;
3356   GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB = $88AB;
3357   GL_PROGRAM_ATTRIBS_ARB = $88AC;
3358   GL_MAX_PROGRAM_ATTRIBS_ARB = $88AD;
3359   GL_PROGRAM_NATIVE_ATTRIBS_ARB = $88AE;
3360   GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB = $88AF;
3361   GL_PROGRAM_ADDRESS_REGISTERS_ARB = $88B0;
3362   GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB = $88B1;
3363   GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB = $88B2;
3364   GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB = $88B3;
3365   GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB = $88B4;
3366   GL_MAX_PROGRAM_ENV_PARAMETERS_ARB = $88B5;
3367   GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB = $88B6;
3368   GL_TRANSPOSE_CURRENT_MATRIX_ARB = $88B7;
3369   GL_MATRIX0_ARB = $88C0;
3370   GL_MATRIX1_ARB = $88C1;
3371   GL_MATRIX2_ARB = $88C2;
3372   GL_MATRIX3_ARB = $88C3;
3373   GL_MATRIX4_ARB = $88C4;
3374   GL_MATRIX5_ARB = $88C5;
3375   GL_MATRIX6_ARB = $88C6;
3376   GL_MATRIX7_ARB = $88C7;
3377   GL_MATRIX8_ARB = $88C8;
3378   GL_MATRIX9_ARB = $88C9;
3379   GL_MATRIX10_ARB = $88CA;
3380   GL_MATRIX11_ARB = $88CB;
3381   GL_MATRIX12_ARB = $88CC;
3382   GL_MATRIX13_ARB = $88CD;
3383   GL_MATRIX14_ARB = $88CE;
3384   GL_MATRIX15_ARB = $88CF;
3385   GL_MATRIX16_ARB = $88D0;
3386   GL_MATRIX17_ARB = $88D1;
3387   GL_MATRIX18_ARB = $88D2;
3388   GL_MATRIX19_ARB = $88D3;
3389   GL_MATRIX20_ARB = $88D4;
3390   GL_MATRIX21_ARB = $88D5;
3391   GL_MATRIX22_ARB = $88D6;
3392   GL_MATRIX23_ARB = $88D7;
3393   GL_MATRIX24_ARB = $88D8;
3394   GL_MATRIX25_ARB = $88D9;
3395   GL_MATRIX26_ARB = $88DA;
3396   GL_MATRIX27_ARB = $88DB;
3397   GL_MATRIX28_ARB = $88DC;
3398   GL_MATRIX29_ARB = $88DD;
3399   GL_MATRIX30_ARB = $88DE;
3400   GL_MATRIX31_ARB = $88DF;
3401
3402   // GL_ARB_draw_buffers
3403   GL_MAX_DRAW_BUFFERS_ARB = $8824;
3404   GL_DRAW_BUFFER0_ARB = $8825;
3405   GL_DRAW_BUFFER1_ARB = $8826;
3406   GL_DRAW_BUFFER2_ARB = $8827;
3407   GL_DRAW_BUFFER3_ARB = $8828;
3408   GL_DRAW_BUFFER4_ARB = $8829;
3409   GL_DRAW_BUFFER5_ARB = $882A;
3410   GL_DRAW_BUFFER6_ARB = $882B;
3411   GL_DRAW_BUFFER7_ARB = $882C;
3412   GL_DRAW_BUFFER8_ARB = $882D;
3413   GL_DRAW_BUFFER9_ARB = $882E;
3414   GL_DRAW_BUFFER10_ARB = $882F;
3415   GL_DRAW_BUFFER11_ARB = $8830;
3416   GL_DRAW_BUFFER12_ARB = $8831;
3417   GL_DRAW_BUFFER13_ARB = $8832;
3418   GL_DRAW_BUFFER14_ARB = $8833;
3419   GL_DRAW_BUFFER15_ARB = $8834;
3420
3421   // GL_ARB_texture_rectangle
3422   GL_TEXTURE_RECTANGLE_ARB = $84F5;
3423   GL_TEXTURE_BINDING_RECTANGLE_ARB = $84F6;
3424   GL_PROXY_TEXTURE_RECTANGLE_ARB = $84F7;
3425   GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB = $84F8;
3426
3427   // GL_ARB_color_buffer_float
3428   GL_RGBA_FLOAT_MODE_ARB = $8820;
3429   GL_CLAMP_VERTEX_COLOR_ARB = $891A;
3430   GL_CLAMP_FRAGMENT_COLOR_ARB = $891B;
3431   GL_CLAMP_READ_COLOR_ARB = $891C;
3432   GL_FIXED_ONLY_ARB = $891D;
3433   WGL_TYPE_RGBA_FLOAT_ARB = $21A0;
3434   GLX_RGBA_FLOAT_TYPE = $20B9;
3435   GLX_RGBA_FLOAT_BIT = $00000004;
3436
3437   // GL_ARB_compute_variable_group_size
3438   GL_MAX_COMPUTE_VARIABLE_GROUP_INVOCATIONS_ARB = $9344;
3439   GL_MAX_COMPUTE_FIXED_GROUP_INVOCATIONS_ARB = $90EB;
3440   GL_MAX_COMPUTE_VARIABLE_GROUP_SIZE_ARB = $9345;
3441   GL_MAX_COMPUTE_FIXED_GROUP_SIZE_ARB = $91BF;
3442
3443   // GL_ARB_half_float_pixel
3444   GL_HALF_FLOAT_ARB = $140B;
3445
3446   // GL_ARB_texture_float
3447   GL_TEXTURE_RED_TYPE_ARB = $8C10;
3448   GL_TEXTURE_GREEN_TYPE_ARB = $8C11;
3449   GL_TEXTURE_BLUE_TYPE_ARB = $8C12;
3450   GL_TEXTURE_ALPHA_TYPE_ARB = $8C13;
3451   GL_TEXTURE_LUMINANCE_TYPE_ARB = $8C14;
3452   GL_TEXTURE_INTENSITY_TYPE_ARB = $8C15;
3453   GL_TEXTURE_DEPTH_TYPE_ARB = $8C16;
3454   GL_UNSIGNED_NORMALIZED_ARB = $8C17;
3455   GL_RGBA32F_ARB = $8814;
3456   GL_RGB32F_ARB = $8815;
3457   GL_ALPHA32F_ARB = $8816;
3458   GL_INTENSITY32F_ARB = $8817;
3459   GL_LUMINANCE32F_ARB = $8818;
3460   GL_LUMINANCE_ALPHA32F_ARB = $8819;
3461   GL_RGBA16F_ARB = $881A;
3462   GL_RGB16F_ARB = $881B;
3463   GL_ALPHA16F_ARB = $881C;
3464   GL_INTENSITY16F_ARB = $881D;
3465   GL_LUMINANCE16F_ARB = $881E;
3466   GL_LUMINANCE_ALPHA16F_ARB = $881F;
3467
3468   // GL_ARB_pixel_buffer_object
3469   GL_PIXEL_PACK_BUFFER_ARB = $88EB;
3470   GL_PIXEL_UNPACK_BUFFER_ARB = $88EC;
3471   GL_PIXEL_PACK_BUFFER_BINDING_ARB = $88ED;
3472   GL_PIXEL_UNPACK_BUFFER_BINDING_ARB = $88EF;
3473
3474   // GL_ARB_depth_buffer_float
3475   GL_DEPTH_COMPONENT32F = $8CAC;
3476   GL_DEPTH32F_STENCIL8 = $8CAD;
3477   GL_FLOAT_32_UNSIGNED_INT_24_8_REV = $8DAD;
3478
3479   // GL_ARB_framebuffer_object
3480   GL_INVALID_FRAMEBUFFER_OPERATION = $0506;
3481   GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING = $8210;
3482   GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE = $8211;
3483   GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE = $8212;
3484   GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE = $8213;
3485   GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE = $8214;
3486   GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE = $8215;
3487   GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE = $8216;
3488   GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE = $8217;
3489   GL_FRAMEBUFFER_DEFAULT = $8218;
3490   GL_FRAMEBUFFER_UNDEFINED = $8219;
3491   GL_DEPTH_STENCIL_ATTACHMENT = $821A;
3492   GL_MAX_RENDERBUFFER_SIZE = $84E8;
3493   GL_DEPTH_STENCIL = $84F9;
3494   GL_UNSIGNED_INT_24_8 = $84FA;
3495   GL_DEPTH24_STENCIL8 = $88F0;
3496   GL_TEXTURE_STENCIL_SIZE = $88F1;
3497   GL_TEXTURE_RED_TYPE = $8C10;
3498   GL_TEXTURE_GREEN_TYPE = $8C11;
3499   GL_TEXTURE_BLUE_TYPE = $8C12;
3500   GL_TEXTURE_ALPHA_TYPE = $8C13;
3501   GL_TEXTURE_DEPTH_TYPE = $8C16;
3502   GL_UNSIGNED_NORMALIZED = $8C17;
3503   GL_FRAMEBUFFER_BINDING = $8CA6;
3504   GL_DRAW_FRAMEBUFFER_BINDING = GL_FRAMEBUFFER_BINDING;
3505   GL_RENDERBUFFER_BINDING = $8CA7;
3506   GL_READ_FRAMEBUFFER = $8CA8;
3507   GL_DRAW_FRAMEBUFFER = $8CA9;
3508   GL_READ_FRAMEBUFFER_BINDING = $8CAA;
3509   GL_RENDERBUFFER_SAMPLES = $8CAB;
3510   GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = $8CD0;
3511   GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = $8CD1;
3512   GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = $8CD2;
3513   GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = $8CD3;
3514   GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER = $8CD4;
3515   GL_FRAMEBUFFER_COMPLETE = $8CD5;
3516   GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT = $8CD6;
3517   GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = $8CD7;
3518   GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER = $8CDB;
3519   GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER = $8CDC;
3520   GL_FRAMEBUFFER_UNSUPPORTED = $8CDD;
3521   GL_MAX_COLOR_ATTACHMENTS = $8CDF;
3522   GL_COLOR_ATTACHMENT0 = $8CE0;
3523   GL_COLOR_ATTACHMENT1 = $8CE1;
3524   GL_COLOR_ATTACHMENT2 = $8CE2;
3525   GL_COLOR_ATTACHMENT3 = $8CE3;
3526   GL_COLOR_ATTACHMENT4 = $8CE4;
3527   GL_COLOR_ATTACHMENT5 = $8CE5;
3528   GL_COLOR_ATTACHMENT6 = $8CE6;
3529   GL_COLOR_ATTACHMENT7 = $8CE7;
3530   GL_COLOR_ATTACHMENT8 = $8CE8;
3531   GL_COLOR_ATTACHMENT9 = $8CE9;
3532   GL_COLOR_ATTACHMENT10 = $8CEA;
3533   GL_COLOR_ATTACHMENT11 = $8CEB;
3534   GL_COLOR_ATTACHMENT12 = $8CEC;
3535   GL_COLOR_ATTACHMENT13 = $8CED;
3536   GL_COLOR_ATTACHMENT14 = $8CEE;
3537   GL_COLOR_ATTACHMENT15 = $8CEF;
3538   GL_DEPTH_ATTACHMENT = $8D00;
3539   GL_STENCIL_ATTACHMENT = $8D20;
3540   GL_FRAMEBUFFER = $8D40;
3541   GL_RENDERBUFFER = $8D41;
3542   GL_RENDERBUFFER_WIDTH = $8D42;
3543   GL_RENDERBUFFER_HEIGHT = $8D43;
3544   GL_RENDERBUFFER_INTERNAL_FORMAT = $8D44;
3545   GL_STENCIL_INDEX1 = $8D46;
3546   GL_STENCIL_INDEX4 = $8D47;
3547   GL_STENCIL_INDEX8 = $8D48;
3548   GL_STENCIL_INDEX16 = $8D49;
3549   GL_RENDERBUFFER_RED_SIZE = $8D50;
3550   GL_RENDERBUFFER_GREEN_SIZE = $8D51;
3551   GL_RENDERBUFFER_BLUE_SIZE = $8D52;
3552   GL_RENDERBUFFER_ALPHA_SIZE = $8D53;
3553   GL_RENDERBUFFER_DEPTH_SIZE = $8D54;
3554   GL_RENDERBUFFER_STENCIL_SIZE = $8D55;
3555   GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE = $8D56;
3556   GL_MAX_SAMPLES = $8D57;
3557 {$ifdef DGL_DEPRECATED}
3558   GL_INDEX = $8222;
3559   GL_TEXTURE_LUMINANCE_TYPE = $8C14;
3560   GL_TEXTURE_INTENSITY_TYPE = $8C15;
3561 {$endif}
3562
3563   // GL_ARB_framebuffer_sRGB
3564   GL_FRAMEBUFFER_SRGB = $8DB9;
3565
3566   // GL_ARB_geometry_shader4
3567   GL_LINES_ADJACENCY_ARB = $000A;
3568   GL_LINE_STRIP_ADJACENCY_ARB = $000B;
3569   GL_TRIANGLES_ADJACENCY_ARB = $000C;
3570   GL_TRIANGLE_STRIP_ADJACENCY_ARB = $000D;
3571   GL_PROGRAM_POINT_SIZE_ARB = $8642;
3572   GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB = $8C29;
3573   GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB = $8DA7;
3574   GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB = $8DA8;
3575   GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB = $8DA9;
3576   GL_GEOMETRY_SHADER_ARB = $8DD9;
3577   GL_GEOMETRY_VERTICES_OUT_ARB = $8DDA;
3578   GL_GEOMETRY_INPUT_TYPE_ARB = $8DDB;
3579   GL_GEOMETRY_OUTPUT_TYPE_ARB = $8DDC;
3580   GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB = $8DDD;
3581   GL_MAX_VERTEX_VARYING_COMPONENTS_ARB = $8DDE;
3582   GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB = $8DDF;
3583   GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB = $8DE0;
3584   GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB = $8DE1;
3585   { reuse GL_MAX_VARYING_COMPONENTS }
3586   { reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER }
3587
3588   // GL_ARB_half_float_vertex
3589   GL_HALF_FLOAT = $140B;
3590
3591   // GL_ARB_instanced_arrays
3592   GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB = $88FE;
3593
3594   // GL_ARB_map_buffer_range
3595   GL_MAP_READ_BIT = $0001;
3596   GL_MAP_WRITE_BIT = $0002;
3597   GL_MAP_INVALIDATE_RANGE_BIT = $0004;
3598   GL_MAP_INVALIDATE_BUFFER_BIT = $0008;
3599   GL_MAP_FLUSH_EXPLICIT_BIT = $0010;
3600   GL_MAP_UNSYNCHRONIZED_BIT = $0020;
3601
3602   // GL_ARB_texture_buffer_object
3603   GL_TEXTURE_BUFFER_ARB = $8C2A;
3604   GL_MAX_TEXTURE_BUFFER_SIZE_ARB = $8C2B;
3605   GL_TEXTURE_BINDING_BUFFER_ARB = $8C2C;
3606   GL_TEXTURE_BUFFER_DATA_STORE_BINDING_ARB = $8C2D;
3607   GL_TEXTURE_BUFFER_FORMAT_ARB = $8C2E;
3608
3609   // GL_ARB_texture_compression_rgtc
3610   GL_COMPRESSED_RED_RGTC1 = $8DBB;
3611   GL_COMPRESSED_SIGNED_RED_RGTC1 = $8DBC;
3612   GL_COMPRESSED_RG_RGTC2 = $8DBD;
3613   GL_COMPRESSED_SIGNED_RG_RGTC2 = $8DBE;
3614
3615   // GL_ARB_texture_rg
3616   GL_RG = $8227;
3617   GL_RG_INTEGER = $8228;
3618   GL_R8 = $8229;
3619   GL_R16 = $822A;
3620   GL_RG8 = $822B;
3621   GL_RG16 = $822C;
3622   GL_R16F = $822D;
3623   GL_R32F = $822E;
3624   GL_RG16F = $822F;
3625   GL_RG32F = $8230;
3626   GL_R8I = $8231;
3627   GL_R8UI = $8232;
3628   GL_R16I = $8233;
3629   GL_R16UI = $8234;
3630   GL_R32I = $8235;
3631   GL_R32UI = $8236;
3632   GL_RG8I = $8237;
3633   GL_RG8UI = $8238;
3634   GL_RG16I = $8239;
3635   GL_RG16UI = $823A;
3636   GL_RG32I = $823B;
3637   GL_RG32UI = $823C;
3638
3639   // GL_ARB_vertex_array_object
3640   GL_VERTEX_ARRAY_BINDING = $85B5;
3641
3642   // GL_ARB_uniform_buffer_object
3643   GL_UNIFORM_BUFFER = $8A11;
3644   GL_UNIFORM_BUFFER_BINDING = $8A28;
3645   GL_UNIFORM_BUFFER_START = $8A29;
3646   GL_UNIFORM_BUFFER_SIZE = $8A2A;
3647   GL_MAX_VERTEX_UNIFORM_BLOCKS = $8A2B;
3648   GL_MAX_GEOMETRY_UNIFORM_BLOCKS = $8A2C;
3649   GL_MAX_FRAGMENT_UNIFORM_BLOCKS = $8A2D;
3650   GL_MAX_COMBINED_UNIFORM_BLOCKS = $8A2E;
3651   GL_MAX_UNIFORM_BUFFER_BINDINGS = $8A2F;
3652   GL_MAX_UNIFORM_BLOCK_SIZE = $8A30;
3653   GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS = $8A31;
3654   GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS = $8A32;
3655   GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS = $8A33;
3656   GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT = $8A34;
3657   GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH = $8A35;
3658   GL_ACTIVE_UNIFORM_BLOCKS = $8A36;
3659   GL_UNIFORM_TYPE = $8A37;
3660   GL_UNIFORM_SIZE = $8A38;
3661   GL_UNIFORM_NAME_LENGTH = $8A39;
3662   GL_UNIFORM_BLOCK_INDEX = $8A3A;
3663   GL_UNIFORM_OFFSET = $8A3B;
3664   GL_UNIFORM_ARRAY_STRIDE = $8A3C;
3665   GL_UNIFORM_MATRIX_STRIDE = $8A3D;
3666   GL_UNIFORM_IS_ROW_MAJOR = $8A3E;
3667   GL_UNIFORM_BLOCK_BINDING = $8A3F;
3668   GL_UNIFORM_BLOCK_DATA_SIZE = $8A40;
3669   GL_UNIFORM_BLOCK_NAME_LENGTH = $8A41;
3670   GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS = $8A42;
3671   GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = $8A43;
3672   GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = $8A44;
3673   GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER = $8A45;
3674   GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = $8A46;
3675   GL_INVALID_INDEX = $FFFFFFFF;
3676
3677   // GL_ARB_compatibility
3678   { ARB_compatibility just defines tokens from core 3.0 }
3679
3680   // GL_ARB_copy_buffer
3681   GL_COPY_READ_BUFFER_BINDING = $8F36;
3682   GL_COPY_READ_BUFFER = GL_COPY_READ_BUFFER_BINDING;
3683   GL_COPY_WRITE_BUFFER_BINDING = $8F37;
3684   GL_COPY_WRITE_BUFFER = GL_COPY_WRITE_BUFFER_BINDING;
3685
3686   // GL_ARB_depth_clamp
3687   GL_DEPTH_CLAMP = $864F;
3688
3689   // GL_ARB_provoking_vertex
3690   GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION = $8E4C;
3691   GL_FIRST_VERTEX_CONVENTION = $8E4D;
3692   GL_LAST_VERTEX_CONVENTION = $8E4E;
3693   GL_PROVOKING_VERTEX = $8E4F;
3694
3695   // GL_ARB_seamless_cube_map
3696   GL_TEXTURE_CUBE_MAP_SEAMLESS = $884F;
3697
3698   // GL_ARB_sync
3699   GL_MAX_SERVER_WAIT_TIMEOUT = $9111;
3700   GL_OBJECT_TYPE = $9112;
3701   GL_SYNC_CONDITION = $9113;
3702   GL_SYNC_STATUS = $9114;
3703   GL_SYNC_FLAGS = $9115;
3704   GL_SYNC_FENCE = $9116;
3705   GL_SYNC_GPU_COMMANDS_COMPLETE = $9117;
3706   GL_UNSIGNALED = $9118;
3707   GL_SIGNALED = $9119;
3708   GL_ALREADY_SIGNALED = $911A;
3709   GL_TIMEOUT_EXPIRED = $911B;
3710   GL_CONDITION_SATISFIED = $911C;
3711   GL_WAIT_FAILED = $911D;
3712   GL_SYNC_FLUSH_COMMANDS_BIT = $00000001;
3713   GL_TIMEOUT_IGNORED = $FFFFFFFFFFFFFFFF;
3714
3715   // GL_ARB_texture_multisample
3716   GL_SAMPLE_POSITION = $8E50;
3717   GL_SAMPLE_MASK = $8E51;
3718   GL_SAMPLE_MASK_VALUE = $8E52;
3719   GL_MAX_SAMPLE_MASK_WORDS = $8E59;
3720   GL_TEXTURE_2D_MULTISAMPLE = $9100;
3721   GL_PROXY_TEXTURE_2D_MULTISAMPLE = $9101;
3722   GL_TEXTURE_2D_MULTISAMPLE_ARRAY = $9102;
3723   GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY = $9103;
3724   GL_TEXTURE_BINDING_2D_MULTISAMPLE = $9104;
3725   GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY = $9105;
3726   GL_TEXTURE_SAMPLES = $9106;
3727   GL_TEXTURE_FIXED_SAMPLE_LOCATIONS = $9107;
3728   GL_SAMPLER_2D_MULTISAMPLE = $9108;
3729   GL_INT_SAMPLER_2D_MULTISAMPLE = $9109;
3730   GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE = $910A;
3731   GL_SAMPLER_2D_MULTISAMPLE_ARRAY = $910B;
3732   GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = $910C;
3733   GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = $910D;
3734   GL_MAX_COLOR_TEXTURE_SAMPLES = $910E;
3735   GL_MAX_DEPTH_TEXTURE_SAMPLES = $910F;
3736   GL_MAX_INTEGER_SAMPLES = $9110;
3737
3738   // GL_ARB_vertex_array_bgra
3739   { reuse GL_BGRA }
3740
3741   // GL_ARB_sample_shading
3742   GL_SAMPLE_SHADING_ARB = $8C36;
3743   GL_MIN_SAMPLE_SHADING_VALUE_ARB = $8C37;
3744
3745   // GL_ARB_texture_cube_map_array
3746   GL_TEXTURE_CUBE_MAP_ARRAY_ARB = $9009;
3747   GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB = $900A;
3748   GL_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB = $900B;
3749   GL_SAMPLER_CUBE_MAP_ARRAY_ARB = $900C;
3750   GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB = $900D;
3751   GL_INT_SAMPLER_CUBE_MAP_ARRAY_ARB = $900E;
3752   GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB = $900F;
3753
3754   // GL_ARB_texture_gather
3755   GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB = $8E5E;
3756   GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB = $8E5F;
3757
3758   // GL_ARB_shading_language_include
3759   GL_SHADER_INCLUDE_ARB = $8DAE;
3760   GL_NAMED_STRING_LENGTH_ARB = $8DE9;
3761   GL_NAMED_STRING_TYPE_ARB = $8DEA;
3762
3763   // GL_ARB_texture_compression_bptc
3764   GL_COMPRESSED_RGBA_BPTC_UNORM_ARB = $8E8C;
3765   GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB = $8E8D;
3766   GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB = $8E8E;
3767   GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB = $8E8F;
3768
3769   // GL_ARB_blend_func_extended
3770   GL_SRC1_COLOR = $88F9;
3771   { reuse GL_SRC1_ALPHA }
3772   GL_ONE_MINUS_SRC1_COLOR = $88FA;
3773   GL_ONE_MINUS_SRC1_ALPHA = $88FB;
3774   GL_MAX_DUAL_SOURCE_DRAW_BUFFERS = $88FC;
3775
3776   // GL_ARB_occlusion_query2
3777   GL_ANY_SAMPLES_PASSED = $8C2F;
3778
3779   // GL_ARB_sampler_objects
3780   GL_SAMPLER_BINDING = $8919;
3781
3782   // GL_ARB_texture_rgb10_a2ui
3783   GL_RGB10_A2UI = $906F;
3784
3785   // GL_ARB_texture_swizzle
3786   GL_TEXTURE_SWIZZLE_R = $8E42;
3787   GL_TEXTURE_SWIZZLE_G = $8E43;
3788   GL_TEXTURE_SWIZZLE_B = $8E44;
3789   GL_TEXTURE_SWIZZLE_A = $8E45;
3790   GL_TEXTURE_SWIZZLE_RGBA = $8E46;
3791
3792   // GL_ARB_SPARSE_TEXTURE
3793   GL_TEXTURE_SPARSE_ARB = $91A6;
3794   GL_VIRTUAL_PAGE_SIZE_INDEX_ARB = $91A7;
3795   GL_NUM_VIRTUAL_PAGE_SIZES_ARB = $91A8;
3796   GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_ARB = $91A9;
3797   GL_NUM_SPARSE_LEVELS_ARB = $91AA;
3798   GL_VIRTUAL_PAGE_SIZE_X_ARB = $9195;
3799   GL_VIRTUAL_PAGE_SIZE_Y_ARB = $9196;
3800   GL_VIRTUAL_PAGE_SIZE_Z_ARB = $9197;
3801   GL_MAX_SPARSE_TEXTURE_SIZE_ARB = $9198;
3802   GL_MAX_SPARSE_3D_TEXTURE_SIZE_ARB = $9199;
3803   GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_ARB = $919A;
3804   GL_MIN_SPARSE_LEVEL_ARB = $919B;
3805
3806   // GL_ARB_timer_query
3807   GL_TIME_ELAPSED = $88BF;
3808   GL_TIMESTAMP = $8E28;
3809
3810   // GL_ARB_vertex_type_2_10_10_10_rev
3811   { reuse GL_UNSIGNED_INT_2_10_10_10_REV }
3812   GL_INT_2_10_10_10_REV = $8D9F;
3813
3814   // GL_ARB_draw_indirect
3815   GL_DRAW_INDIRECT_BUFFER = $8F3F;
3816   GL_DRAW_INDIRECT_BUFFER_BINDING = $8F43;
3817
3818   // GL_ARB_gpu_shader5
3819   GL_GEOMETRY_SHADER_INVOCATIONS = $887F;
3820   GL_MAX_GEOMETRY_SHADER_INVOCATIONS = $8E5A;
3821   GL_MIN_FRAGMENT_INTERPOLATION_OFFSET = $8E5B;
3822   GL_MAX_FRAGMENT_INTERPOLATION_OFFSET = $8E5C;
3823   GL_FRAGMENT_INTERPOLATION_OFFSET_BITS = $8E5D;
3824   { reuse GL_MAX_VERTEX_STREAMS }
3825
3826   // GL_ARB_gpu_shader_fp64
3827   { reuse GL_DOUBLE }
3828   GL_DOUBLE_VEC2 = $8FFC;
3829   GL_DOUBLE_VEC3 = $8FFD;
3830   GL_DOUBLE_VEC4 = $8FFE;
3831   GL_DOUBLE_MAT2 = $8F46;
3832   GL_DOUBLE_MAT3 = $8F47;
3833   GL_DOUBLE_MAT4 = $8F48;
3834   GL_DOUBLE_MAT2x3 = $8F49;
3835   GL_DOUBLE_MAT2x4 = $8F4A;
3836   GL_DOUBLE_MAT3x2 = $8F4B;
3837   GL_DOUBLE_MAT3x4 = $8F4C;
3838   GL_DOUBLE_MAT4x2 = $8F4D;
3839   GL_DOUBLE_MAT4x3 = $8F4E;
3840
3841   // GL_ARB_shader_subroutine
3842   GL_ACTIVE_SUBROUTINES = $8DE5;
3843   GL_ACTIVE_SUBROUTINE_UNIFORMS = $8DE6;
3844   GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS = $8E47;
3845   GL_ACTIVE_SUBROUTINE_MAX_LENGTH = $8E48;
3846   GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH = $8E49;
3847   GL_MAX_SUBROUTINES = $8DE7;
3848   GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS = $8DE8;
3849   GL_NUM_COMPATIBLE_SUBROUTINES = $8E4A;
3850   GL_COMPATIBLE_SUBROUTINES = $8E4B;
3851   { reuse GL_UNIFORM_SIZE }
3852   { reuse GL_UNIFORM_NAME_LENGTH }
3853
3854   // GL_ARB_tessellation_shader
3855   GL_PATCHES = $000E;
3856   GL_PATCH_VERTICES = $8E72;
3857   GL_PATCH_DEFAULT_INNER_LEVEL = $8E73;
3858   GL_PATCH_DEFAULT_OUTER_LEVEL = $8E74;
3859   GL_TESS_CONTROL_OUTPUT_VERTICES = $8E75;
3860   GL_TESS_GEN_MODE = $8E76;
3861   GL_TESS_GEN_SPACING = $8E77;
3862   GL_TESS_GEN_VERTEX_ORDER = $8E78;
3863   GL_TESS_GEN_POINT_MODE = $8E79;
3864   { reuse GL_TRIANGLES }
3865   { reuse GL_QUADS }
3866   GL_ISOLINES = $8E7A;
3867   { reuse GL_EQUAL }
3868   GL_FRACTIONAL_ODD = $8E7B;
3869   GL_FRACTIONAL_EVEN = $8E7C;
3870   { reuse GL_CCW }
3871   { reuse GL_CW }
3872   GL_MAX_PATCH_VERTICES = $8E7D;
3873   GL_MAX_TESS_GEN_LEVEL = $8E7E;
3874   GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS = $8E7F;
3875   GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS = $8E80;
3876   GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS = $8E81;
3877   GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS = $8E82;
3878   GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS = $8E83;
3879   GL_MAX_TESS_PATCH_COMPONENTS = $8E84;
3880   GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS = $8E85;
3881   GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS = $8E86;
3882   GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS = $8E89;
3883   GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS = $8E8A;
3884   GL_MAX_TESS_CONTROL_INPUT_COMPONENTS = $886C;
3885   GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS = $886D;
3886   GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS = $8E1E;
3887   GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS = $8E1F;
3888   GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER = $84F0;
3889   GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER = $84F1;
3890   GL_TESS_EVALUATION_SHADER = $8E87;
3891   GL_TESS_CONTROL_SHADER = $8E88;
3892
3893   // GL_ARB_texture_buffer_object_rgb32
3894   { reuse GL_RGB32F }
3895   { reuse GL_RGB32UI }
3896   { reuse GL_RGB32I }
3897
3898   // GL_ARB_transform_feedback2
3899   GL_TRANSFORM_FEEDBACK = $8E22;
3900   GL_TRANSFORM_FEEDBACK_PAUSED = $8E23;
3901   GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED = GL_TRANSFORM_FEEDBACK_PAUSED;
3902   GL_TRANSFORM_FEEDBACK_ACTIVE = $8E24;
3903   GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE = GL_TRANSFORM_FEEDBACK_ACTIVE;
3904   GL_TRANSFORM_FEEDBACK_BINDING = $8E25;
3905
3906   // GL_ARB_transform_feedback_overflow_query
3907   GL_TRANSFORM_FEEDBACK_OVERFLOW_ARB = $82EC;
3908   GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW_ARB = $82ED;
3909
3910   // GL_ARB_transform_feedback3
3911   GL_MAX_TRANSFORM_FEEDBACK_BUFFERS = $8E70;
3912   GL_MAX_VERTEX_STREAMS = $8E71;
3913
3914   // GL_ARB_ES2_compatibility
3915   GL_FIXED = $140C;
3916   GL_IMPLEMENTATION_COLOR_READ_TYPE = $8B9A;
3917   GL_IMPLEMENTATION_COLOR_READ_FORMAT = $8B9B;
3918   GL_LOW_FLOAT = $8DF0;
3919   GL_MEDIUM_FLOAT = $8DF1;
3920   GL_HIGH_FLOAT = $8DF2;
3921   GL_LOW_INT = $8DF3;
3922   GL_MEDIUM_INT = $8DF4;
3923   GL_HIGH_INT = $8DF5;
3924   GL_SHADER_COMPILER = $8DFA;
3925   GL_NUM_SHADER_BINARY_FORMATS = $8DF9;
3926   GL_MAX_VERTEX_UNIFORM_VECTORS = $8DFB;
3927   GL_MAX_VARYING_VECTORS = $8DFC;
3928   GL_MAX_FRAGMENT_UNIFORM_VECTORS = $8DFD;
3929   GL_RGB565 = $8D62;
3930
3931   // GL_ARB_get_program_binary
3932   GL_PROGRAM_BINARY_RETRIEVABLE_HINT = $8257;
3933   GL_PROGRAM_BINARY_LENGTH = $8741;
3934   GL_NUM_PROGRAM_BINARY_FORMATS = $87FE;
3935   GL_PROGRAM_BINARY_FORMATS = $87FF;
3936
3937   // GL_ARB_separate_shader_objects
3938   GL_VERTEX_SHADER_BIT = $00000001;
3939   GL_FRAGMENT_SHADER_BIT = $00000002;
3940   GL_GEOMETRY_SHADER_BIT = $00000004;
3941   GL_TESS_CONTROL_SHADER_BIT = $00000008;
3942   GL_TESS_EVALUATION_SHADER_BIT = $00000010;
3943   GL_ALL_SHADER_BITS = $FFFFFFFF;
3944   GL_PROGRAM_SEPARABLE = $8258;
3945   GL_ACTIVE_PROGRAM = $8259;
3946   GL_PROGRAM_PIPELINE_BINDING = $825A;
3947
3948   // GL_ARB_vertex_attrib_64bit
3949   { reuse GL_RGB32I }
3950   { reuse GL_DOUBLE_VEC2 }
3951   { reuse GL_DOUBLE_VEC3 }
3952   { reuse GL_DOUBLE_VEC4 }
3953   { reuse GL_DOUBLE_MAT2 }
3954   { reuse GL_DOUBLE_MAT3 }
3955   { reuse GL_DOUBLE_MAT4 }
3956   { reuse GL_DOUBLE_MAT2x3 }
3957   { reuse GL_DOUBLE_MAT2x4 }
3958   { reuse GL_DOUBLE_MAT3x2 }
3959   { reuse GL_DOUBLE_MAT3x4 }
3960   { reuse GL_DOUBLE_MAT4x2 }
3961   { reuse GL_DOUBLE_MAT4x3 }
3962
3963   // GL_ARB_viewport_array
3964   { reuse GL_SCISSOR_BOX }
3965   { reuse GL_VIEWPORT }
3966   { reuse GL_DEPTH_RANGE }
3967   { reuse GL_SCISSOR_TEST }
3968   GL_MAX_VIEWPORTS = $825B;
3969   GL_VIEWPORT_SUBPIXEL_BITS = $825C;
3970   GL_VIEWPORT_BOUNDS_RANGE = $825D;
3971   GL_LAYER_PROVOKING_VERTEX = $825E;
3972   GL_VIEWPORT_INDEX_PROVOKING_VERTEX = $825F;
3973   GL_UNDEFINED_VERTEX = $8260;
3974   { reuse GL_FIRST_VERTEX_CONVENTION }
3975   { reuse GL_LAST_VERTEX_CONVENTION }
3976   { reuse GL_PROVOKING_VERTEX }
3977
3978   // GL_ARB_cl_event
3979   GL_SYNC_CL_EVENT_ARB = $8240;
3980   GL_SYNC_CL_EVENT_COMPLETE_ARB = $8241;
3981
3982   // GL_ARB_debug_output
3983   GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB = $8242;
3984   GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB = $8243;
3985   GL_DEBUG_CALLBACK_FUNCTION_ARB = $8244;
3986   GL_DEBUG_CALLBACK_USER_PARAM_ARB = $8245;
3987   GL_DEBUG_SOURCE_API_ARB = $8246;
3988   GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB = $8247;
3989   GL_DEBUG_SOURCE_SHADER_COMPILER_ARB = $8248;
3990   GL_DEBUG_SOURCE_THIRD_PARTY_ARB = $8249;
3991   GL_DEBUG_SOURCE_APPLICATION_ARB = $824A;
3992   GL_DEBUG_SOURCE_OTHER_ARB = $824B;
3993   GL_DEBUG_TYPE_ERROR_ARB = $824C;
3994   GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB = $824D;
3995   GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB = $824E;
3996   GL_DEBUG_TYPE_PORTABILITY_ARB = $824F;
3997   GL_DEBUG_TYPE_PERFORMANCE_ARB = $8250;
3998   GL_DEBUG_TYPE_OTHER_ARB = $8251;
3999   GL_MAX_DEBUG_MESSAGE_LENGTH_ARB = $9143;
4000   GL_MAX_DEBUG_LOGGED_MESSAGES_ARB = $9144;
4001   GL_DEBUG_LOGGED_MESSAGES_ARB = $9145;
4002   GL_DEBUG_SEVERITY_HIGH_ARB = $9146;
4003   GL_DEBUG_SEVERITY_MEDIUM_ARB = $9147;
4004   GL_DEBUG_SEVERITY_LOW_ARB = $9148;
4005
4006   // GL_ARB_robustness
4007   { reuse GL_NO_ERROR }
4008   GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB = $00000004;
4009   GL_LOSE_CONTEXT_ON_RESET_ARB = $8252;
4010   GL_GUILTY_CONTEXT_RESET_ARB = $8253;
4011   GL_INNOCENT_CONTEXT_RESET_ARB = $8254;
4012   GL_UNKNOWN_CONTEXT_RESET_ARB = $8255;
4013   GL_RESET_NOTIFICATION_STRATEGY_ARB = $8256;
4014   GL_NO_RESET_NOTIFICATION_ARB = $8261;
4015
4016   //  GL_ARB_compressed_texture_pixel_storage
4017   GL_UNPACK_COMPRESSED_BLOCK_WIDTH  = $09127;
4018   GL_UNPACK_COMPRESSED_BLOCK_HEIGHT = $09128;
4019   GL_UNPACK_COMPRESSED_BLOCK_DEPTH  = $09129;
4020   GL_UNPACK_COMPRESSED_BLOCK_SIZE   = $0912A;
4021   GL_PACK_COMPRESSED_BLOCK_WIDTH    = $0912B;
4022   GL_PACK_COMPRESSED_BLOCK_HEIGHT   = $0912C;
4023   GL_PACK_COMPRESSED_BLOCK_DEPTH    = $0912D;
4024   GL_PACK_COMPRESSED_BLOCK_SIZE     = $0912E;
4025
4026   // GL_ARB_internalformat_query
4027   GL_NUM_SAMPLE_COUNTS              = $09380;
4028
4029   // GL_ARB_map_buffer_alignment
4030   GL_MIN_MAP_BUFFER_ALIGNMENT       = $090BC;
4031
4032   // GL_ARB_shader_atomic_counters
4033   GL_ATOMIC_COUNTER_BUFFER          = $92C0;
4034   GL_ATOMIC_COUNTER_BUFFER_BINDING  = $92C1;
4035   GL_ATOMIC_COUNTER_BUFFER_START    = $92C2;
4036   GL_ATOMIC_COUNTER_BUFFER_SIZE     = $92C3;
4037   GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE = $92C4;
4038   GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS = $92C5;
4039   GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES = $92C6;
4040   GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER = $92C7;
4041   GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER = $92C8;
4042   GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER = $92C9;
4043   GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER = $92CA;
4044   GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER = $92CB;
4045   GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS = $92CC;
4046   GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS = $92CD;
4047   GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS = $92CE;
4048   GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS = $92CF;
4049   GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS = $92D0;
4050   GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS = $92D1;
4051   GL_MAX_VERTEX_ATOMIC_COUNTERS     = $92D2;
4052   GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS = $92D3;
4053   GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS = $92D4;
4054   GL_MAX_GEOMETRY_ATOMIC_COUNTERS   = $92D5;
4055   GL_MAX_FRAGMENT_ATOMIC_COUNTERS   = $92D6;
4056   GL_MAX_COMBINED_ATOMIC_COUNTERS   = $92D7;
4057   GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE = $92D8;
4058   GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS = $92DC;
4059   GL_ACTIVE_ATOMIC_COUNTER_BUFFERS  = $92D9;
4060   GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX = $92DA;
4061   GL_UNSIGNED_INT_ATOMIC_COUNTER    = $92DB;
4062
4063   // GL_ARB_shader_image_load_store
4064   GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT = $00000001;
4065   GL_ELEMENT_ARRAY_BARRIER_BIT      = $00000002;
4066   GL_UNIFORM_BARRIER_BIT            = $00000004;
4067   GL_TEXTURE_FETCH_BARRIER_BIT      = $00000008;
4068   GL_SHADER_IMAGE_ACCESS_BARRIER_BIT = $00000020;
4069   GL_COMMAND_BARRIER_BIT            = $00000040;
4070   GL_PIXEL_BUFFER_BARRIER_BIT       = $00000080;
4071   GL_TEXTURE_UPDATE_BARRIER_BIT     = $00000100;
4072   GL_BUFFER_UPDATE_BARRIER_BIT      = $00000200;
4073   GL_FRAMEBUFFER_BARRIER_BIT        = $00000400;
4074   GL_TRANSFORM_FEEDBACK_BARRIER_BIT = $00000800;
4075   GL_ATOMIC_COUNTER_BARRIER_BIT     = $00001000;
4076   GL_ALL_BARRIER_BITS               = $FFFFFFFF;
4077   GL_MAX_IMAGE_UNITS                = $8F38;
4078   GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS = $8F39;
4079   GL_IMAGE_BINDING_NAME             = $8F3A;
4080   GL_IMAGE_BINDING_LEVEL            = $8F3B;
4081   GL_IMAGE_BINDING_LAYERED          = $8F3C;
4082   GL_IMAGE_BINDING_LAYER            = $8F3D;
4083   GL_IMAGE_BINDING_ACCESS           = $8F3E;
4084   GL_IMAGE_1D                       = $904C;
4085   GL_IMAGE_2D                       = $904D;
4086   GL_IMAGE_3D                       = $904E;
4087   GL_IMAGE_2D_RECT                  = $904F;
4088   GL_IMAGE_CUBE                     = $9050;
4089   GL_IMAGE_BUFFER                   = $9051;
4090   GL_IMAGE_1D_ARRAY                 = $9052;
4091   GL_IMAGE_2D_ARRAY                 = $9053;
4092   GL_IMAGE_CUBE_MAP_ARRAY           = $9054;
4093   GL_IMAGE_2D_MULTISAMPLE           = $9055;
4094   GL_IMAGE_2D_MULTISAMPLE_ARRAY     = $9056;
4095   GL_INT_IMAGE_1D                   = $9057;
4096   GL_INT_IMAGE_2D                   = $9058;
4097   GL_INT_IMAGE_3D                   = $9059;
4098   GL_INT_IMAGE_2D_RECT              = $905A;
4099   GL_INT_IMAGE_CUBE                 = $905B;
4100   GL_INT_IMAGE_BUFFER               = $905C;
4101   GL_INT_IMAGE_1D_ARRAY             = $905D;
4102   GL_INT_IMAGE_2D_ARRAY             = $905E;
4103   GL_INT_IMAGE_CUBE_MAP_ARRAY       = $905F;
4104   GL_INT_IMAGE_2D_MULTISAMPLE       = $9060;
4105   GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY = $9061;
4106   GL_UNSIGNED_INT_IMAGE_1D          = $9062;
4107   GL_UNSIGNED_INT_IMAGE_2D          = $9063;
4108   GL_UNSIGNED_INT_IMAGE_3D          = $9064;
4109   GL_UNSIGNED_INT_IMAGE_2D_RECT     = $9065;
4110   GL_UNSIGNED_INT_IMAGE_CUBE        = $9066;
4111   GL_UNSIGNED_INT_IMAGE_BUFFER      = $9067;
4112   GL_UNSIGNED_INT_IMAGE_1D_ARRAY    = $9068;
4113   GL_UNSIGNED_INT_IMAGE_2D_ARRAY    = $9069;
4114   GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY = $906A;
4115   GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE = $906B;
4116   GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY = $906C;
4117   GL_MAX_IMAGE_SAMPLES              = $906D;
4118   GL_IMAGE_BINDING_FORMAT           = $906E;
4119   GL_IMAGE_FORMAT_COMPATIBILITY_TYPE = $90C7;
4120   GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE = $90C8;
4121   GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS = $90C9;
4122   GL_MAX_VERTEX_IMAGE_UNIFORMS      = $90CA;
4123   GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS = $90CB;
4124   GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS = $90CC;
4125   GL_MAX_GEOMETRY_IMAGE_UNIFORMS    = $90CD;
4126   GL_MAX_FRAGMENT_IMAGE_UNIFORMS    = $90CE;
4127   GL_MAX_COMBINED_IMAGE_UNIFORMS    = $90CF;
4128
4129   // GL_ARB_texture_storage
4130   GL_TEXTURE_IMMUTABLE_FORMAT       = $912F;
4131
4132   // 4.3
4133   // GL_KHR_texture_compression_astc_hdr
4134   GL_COMPRESSED_RGBA_ASTC_4x4_KHR = $93B0;
4135   GL_COMPRESSED_RGBA_ASTC_5x4_KHR = $93B1;
4136   GL_COMPRESSED_RGBA_ASTC_5x5_KHR = $93B2;
4137   GL_COMPRESSED_RGBA_ASTC_6x5_KHR = $93B3;
4138   GL_COMPRESSED_RGBA_ASTC_6x6_KHR = $93B4;
4139   GL_COMPRESSED_RGBA_ASTC_8x5_KHR = $93B5;
4140   GL_COMPRESSED_RGBA_ASTC_8x6_KHR = $93B6;
4141   GL_COMPRESSED_RGBA_ASTC_8x8_KHR = $93B7;
4142   GL_COMPRESSED_RGBA_ASTC_105_KHR = $93B8;
4143   GL_COMPRESSED_RGBA_ASTC_106_KHR = $93B9;
4144   GL_COMPRESSED_RGBA_ASTC_108_KHR = $93BA;
4145   GL_COMPRESSED_RGBA_ASTC_110_KHR = $93BB;
4146   GL_COMPRESSED_RGBA_ASTC_12x10_KHR = $93BC;
4147   GL_COMPRESSED_RGBA_ASTC_12x12_KHR = $93BD;
4148   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR = $93D0;
4149   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR = $93D1;
4150   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR = $93D2;
4151   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR = $93D3;
4152   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR = $93D4;
4153   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR = $93D5;
4154   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR = $93D6;
4155   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR = $93D7;
4156   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR = $93D8;
4157   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR = $93D9;
4158   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR = $93DA;
4159   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR = $93DB;
4160   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR = $93DC;
4161   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR = $93DD;
4162   // (4.3) GL_KHR_debug
4163   GL_DEBUG_OUTPUT_SYNCHRONOUS       = $8242;
4164   GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH = $8243;
4165   GL_DEBUG_CALLBACK_FUNCTION        = $8244;
4166   GL_DEBUG_CALLBACK_USER_PARAM      = $8245;
4167   GL_DEBUG_SOURCE_API               = $8246;
4168   GL_DEBUG_SOURCE_WINDOW_SYSTEM     = $8247;
4169   GL_DEBUG_SOURCE_SHADER_COMPILER   = $8248;
4170   GL_DEBUG_SOURCE_THIRD_PARTY       = $8249;
4171   GL_DEBUG_SOURCE_APPLICATION       = $824A;
4172   GL_DEBUG_SOURCE_OTHER             = $824B;
4173   GL_DEBUG_TYPE_ERROR               = $824C;
4174   GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR = $824D;
4175   GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR  = $824E;
4176   GL_DEBUG_TYPE_PORTABILITY         = $824F;
4177   GL_DEBUG_TYPE_PERFORMANCE         = $8250;
4178   GL_DEBUG_TYPE_OTHER               = $8251;
4179   GL_DEBUG_TYPE_MARKER              = $8268;
4180   GL_DEBUG_TYPE_PUSH_GROUP          = $8269;
4181   GL_DEBUG_TYPE_POP_GROUP           = $826A;
4182   GL_DEBUG_SEVERITY_NOTIFICATION    = $826B;
4183   GL_MAX_DEBUG_GROUP_STACK_DEPTH    = $826C;
4184   GL_DEBUG_GROUP_STACK_DEPTH        = $826D;
4185   GL_BUFFER                         = $82E0;
4186   GL_SHADER                         = $82E1;
4187   GL_PROGRAM                        = $82E2;
4188   GL_QUERY                          = $82E3;
4189   GL_PROGRAM_PIPELINE               = $82E4;
4190   GL_SAMPLER                        = $82E6;
4191   GL_DISPLAY_LIST                   = $82E7;
4192   GL_MAX_LABEL_LENGTH               = $82E8;
4193   GL_MAX_DEBUG_MESSAGE_LENGTH       = $9143;
4194   GL_MAX_DEBUG_LOGGED_MESSAGES      = $9144;
4195   GL_DEBUG_LOGGED_MESSAGES          = $9145;
4196   GL_DEBUG_SEVERITY_HIGH            = $9146;
4197   GL_DEBUG_SEVERITY_MEDIUM          = $9147;
4198   GL_DEBUG_SEVERITY_LOW             = $9148;
4199   GL_DEBUG_OUTPUT                   = $92E0;
4200   GL_CONTEXT_FLAG_DEBUG_BIT         = $00000002;
4201   GL_COMPUTE_SHADER                 = $91B9;
4202   GL_MAX_COMPUTE_UNIFORM_BLOCKS     = $91BB;
4203   GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS = $91BC;
4204   GL_MAX_COMPUTE_IMAGE_UNIFORMS     = $91BD;
4205   GL_MAX_COMPUTE_SHARED_MEMORY_SIZE = $8262;
4206   GL_MAX_COMPUTE_UNIFORM_COMPONENTS = $8263;
4207   GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS = $8264;
4208   GL_MAX_COMPUTE_ATOMIC_COUNTERS    = $8265;
4209   GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS = $8266;
4210   GL_MAX_COMPUTE_LOCAL_INVOCATIONS  = $90EB;
4211   GL_MAX_COMPUTE_WORK_GROUP_COUNT   = $91BE;
4212   GL_MAX_COMPUTE_WORK_GROUP_SIZE    = $91BF;
4213   GL_COMPUTE_LOCAL_WORK_SIZE        = $8267;
4214   GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER = $90EC;
4215   GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER = $90ED;
4216   GL_DISPATCH_INDIRECT_BUFFER       = $90EE;
4217   GL_DISPATCH_INDIRECT_BUFFER_BINDING = $90EF;
4218   GL_COMPUTE_SHADER_BIT             = $00000020;
4219   GL_COMPRESSED_RGB8_ETC2           = $9274;
4220   GL_COMPRESSED_SRGB8_ETC2          = $9275;
4221   GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 = $9276;
4222   GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 = $9277;
4223   GL_COMPRESSED_RGBA8_ETC2_EAC      = $9278;
4224   GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC = $9279;
4225   GL_COMPRESSED_R11_EAC             = $9270;
4226   GL_COMPRESSED_SIGNED_R11_EAC      = $9271;
4227   GL_COMPRESSED_RG11_EAC            = $9272;
4228   GL_COMPRESSED_SIGNED_RG11_EAC     = $9273;
4229   GL_PRIMITIVE_RESTART_FIXED_INDEX  = $8D69;
4230   GL_ANY_SAMPLES_PASSED_CONSERVATIVE = $8D6A;
4231   GL_MAX_ELEMENT_INDEX              = $8D6B;
4232       GL_MAX_UNIFORM_LOCATIONS          = $826E;
4233   GL_FRAMEBUFFER_DEFAULT_WIDTH      = $9310;
4234   GL_FRAMEBUFFER_DEFAULT_HEIGHT     = $9311;
4235   GL_FRAMEBUFFER_DEFAULT_LAYERS     = $9312;
4236   GL_FRAMEBUFFER_DEFAULT_SAMPLES    = $9313;
4237   GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS = $9314;
4238   GL_MAX_FRAMEBUFFER_WIDTH          = $9315;
4239   GL_MAX_FRAMEBUFFER_HEIGHT         = $9316;
4240   GL_MAX_FRAMEBUFFER_LAYERS         = $9317;
4241   GL_MAX_FRAMEBUFFER_SAMPLES        = $9318;
4242         GL_INTERNALFORMAT_SUPPORTED       = $826F;
4243   GL_INTERNALFORMAT_PREFERRED       = $8270;
4244   GL_INTERNALFORMAT_RED_SIZE        = $8271;
4245   GL_INTERNALFORMAT_GREEN_SIZE      = $8272;
4246   GL_INTERNALFORMAT_BLUE_SIZE       = $8273;
4247   GL_INTERNALFORMAT_ALPHA_SIZE      = $8274;
4248   GL_INTERNALFORMAT_DEPTH_SIZE      = $8275;
4249   GL_INTERNALFORMAT_STENCIL_SIZE    = $8276;
4250   GL_INTERNALFORMAT_SHARED_SIZE     = $8277;
4251   GL_INTERNALFORMAT_RED_TYPE        = $8278;
4252   GL_INTERNALFORMAT_GREEN_TYPE      = $8279;
4253   GL_INTERNALFORMAT_BLUE_TYPE       = $827A;
4254   GL_INTERNALFORMAT_ALPHA_TYPE      = $827B;
4255   GL_INTERNALFORMAT_DEPTH_TYPE      = $827C;
4256   GL_INTERNALFORMAT_STENCIL_TYPE    = $827D;
4257   GL_MAX_WIDTH                      = $827E;
4258   GL_MAX_HEIGHT                     = $827F;
4259   GL_MAX_DEPTH                      = $8280;
4260   GL_MAX_LAYERS                     = $8281;
4261   GL_MAX_COMBINED_DIMENSIONS        = $8282;
4262   GL_COLOR_COMPONENTS               = $8283;
4263   GL_DEPTH_COMPONENTS               = $8284;
4264   GL_STENCIL_COMPONENTS             = $8285;
4265   GL_COLOR_RENDERABLE               = $8286;
4266   GL_DEPTH_RENDERABLE               = $8287;
4267   GL_STENCIL_RENDERABLE             = $8288;
4268   GL_FRAMEBUFFER_RENDERABLE         = $8289;
4269   GL_FRAMEBUFFER_RENDERABLE_LAYERED = $828A;
4270   GL_FRAMEBUFFER_BLEND              = $828B;
4271   GL_READ_PIXELS                    = $828C;
4272   GL_READ_PIXELS_FORMAT             = $828D;
4273   GL_READ_PIXELS_TYPE               = $828E;
4274   GL_TEXTURE_IMAGE_FORMAT           = $828F;
4275   GL_TEXTURE_IMAGE_TYPE             = $8290;
4276   GL_GET_TEXTURE_IMAGE_FORMAT       = $8291;
4277   GL_GET_TEXTURE_IMAGE_TYPE         = $8292;
4278   GL_MIPMAP                         = $8293;
4279   GL_MANUAL_GENERATE_MIPMAP         = $8294;
4280   GL_AUTO_GENERATE_MIPMAP           = $8295;
4281   GL_COLOR_ENCODING                 = $8296;
4282   GL_SRGB_READ                      = $8297;
4283   GL_SRGB_WRITE                     = $8298;
4284   GL_SRGB_DECODE_ARB                = $8299;
4285   GL_FILTER                         = $829A;
4286   GL_VERTEX_TEXTURE                 = $829B;
4287   GL_TESS_CONTROL_TEXTURE           = $829C;
4288   GL_TESS_EVALUATION_TEXTURE        = $829D;
4289   GL_GEOMETRY_TEXTURE               = $829E;
4290   GL_FRAGMENT_TEXTURE               = $829F;
4291   GL_COMPUTE_TEXTURE                = $82A0;
4292   GL_TEXTURE_SHADOW                 = $82A1;
4293   GL_TEXTURE_GATHER                 = $82A2;
4294   GL_TEXTURE_GATHER_SHADOW          = $82A3;
4295   GL_SHADER_IMAGE_LOAD              = $82A4;
4296   GL_SHADER_IMAGE_STORE             = $82A5;
4297   GL_SHADER_IMAGE_ATOMIC            = $82A6;
4298   GL_IMAGE_TEXEL_SIZE               = $82A7;
4299   GL_IMAGE_COMPATIBILITY_CLASS      = $82A8;
4300   GL_IMAGE_PIXEL_FORMAT             = $82A9;
4301   GL_IMAGE_PIXEL_TYPE               = $82AA;
4302   GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST = $82AC;
4303   GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST = $82AD;
4304   GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE = $82AE;
4305   GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE = $82AF;
4306   GL_TEXTURE_COMPRESSED_BLOCK_WIDTH = $82B1;
4307   GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT = $82B2;
4308   GL_TEXTURE_COMPRESSED_BLOCK_SIZE  = $82B3;
4309   GL_CLEAR_BUFFER                   = $82B4;
4310   GL_TEXTURE_VIEW                   = $82B5;
4311   GL_VIEW_COMPATIBILITY_CLASS       = $82B6;
4312   GL_FULL_SUPPORT                   = $82B7;
4313   GL_CAVEAT_SUPPORT                 = $82B8;
4314   GL_IMAGE_CLASS_4_X_32             = $82B9;
4315   GL_IMAGE_CLASS_2_X_32             = $82BA;
4316   GL_IMAGE_CLASS_1_X_32             = $82BB;
4317   GL_IMAGE_CLASS_4_X_16             = $82BC;
4318   GL_IMAGE_CLASS_2_X_16             = $82BD;
4319   GL_IMAGE_CLASS_1_X_16             = $82BE;
4320   GL_IMAGE_CLASS_4_X_8              = $82BF;
4321   GL_IMAGE_CLASS_2_X_8              = $82C0;
4322   GL_IMAGE_CLASS_1_X_8              = $82C1;
4323   GL_IMAGE_CLASS_11_11_10           = $82C2;
4324   GL_IMAGE_CLASS_10_10_10_2         = $82C3;
4325   GL_VIEW_CLASS_128_BITS            = $82C4;
4326   GL_VIEW_CLASS_96_BITS             = $82C5;
4327   GL_VIEW_CLASS_64_BITS             = $82C6;
4328   GL_VIEW_CLASS_48_BITS             = $82C7;
4329   GL_VIEW_CLASS_32_BITS             = $82C8;
4330   GL_VIEW_CLASS_24_BITS             = $82C9;
4331   GL_VIEW_CLASS_16_BITS             = $82CA;
4332   GL_VIEW_CLASS_8_BITS              = $82CB;
4333   GL_VIEW_CLASS_S3TC_DXT1_RGB       = $82CC;
4334   GL_VIEW_CLASS_S3TC_DXT1_RGBA      = $82CD;
4335   GL_VIEW_CLASS_S3TC_DXT3_RGBA      = $82CE;
4336   GL_VIEW_CLASS_S3TC_DXT5_RGBA      = $82CF;
4337   GL_VIEW_CLASS_RGTC1_RED           = $82D0;
4338   GL_VIEW_CLASS_RGTC2_RG            = $82D1;
4339   GL_VIEW_CLASS_BPTC_UNORM          = $82D2;
4340   GL_VIEW_CLASS_BPTC_FLOAT          = $82D3;
4341   GL_UNIFORM                        = $92E1;
4342   GL_UNIFORM_BLOCK                  = $92E2;
4343   GL_PROGRAM_INPUT                  = $92E3;
4344   GL_PROGRAM_OUTPUT                 = $92E4;
4345   GL_BUFFER_VARIABLE                = $92E5;
4346   GL_SHADER_STORAGE_BLOCK           = $92E6;
4347   GL_VERTEX_SUBROUTINE              = $92E8;
4348   GL_TESS_CONTROL_SUBROUTINE        = $92E9;
4349   GL_TESS_EVALUATION_SUBROUTINE     = $92EA;
4350   GL_GEOMETRY_SUBROUTINE            = $92EB;
4351   GL_FRAGMENT_SUBROUTINE            = $92EC;
4352   GL_COMPUTE_SUBROUTINE             = $92ED;
4353   GL_VERTEX_SUBROUTINE_UNIFORM      = $92EE;
4354   GL_TESS_CONTROL_SUBROUTINE_UNIFORM = $92EF;
4355   GL_TESS_EVALUATION_SUBROUTINE_UNIFORM = $92F0;
4356   GL_GEOMETRY_SUBROUTINE_UNIFORM    = $92F1;
4357   GL_FRAGMENT_SUBROUTINE_UNIFORM    = $92F2;
4358   GL_COMPUTE_SUBROUTINE_UNIFORM     = $92F3;
4359   GL_TRANSFORM_FEEDBACK_VARYING     = $92F4;
4360   GL_ACTIVE_RESOURCES               = $92F5;
4361   GL_MAX_NAME_LENGTH                = $92F6;
4362   GL_MAX_NUM_ACTIVE_VARIABLES       = $92F7;
4363   GL_MAX_NUM_COMPATIBLE_SUBROUTINES = $92F8;
4364   GL_NAME_LENGTH                    = $92F9;
4365   GL_TYPE                           = $92FA;
4366   GL_ARRAY_SIZE                     = $92FB;
4367   GL_OFFSET                         = $92FC;
4368   GL_BLOCK_INDEX                    = $92FD;
4369   GL_ARRAY_STRIDE                   = $92FE;
4370   GL_MATRIX_STRIDE                  = $92FF;
4371   GL_IS_ROW_MAJOR                   = $9300;
4372   GL_ATOMIC_COUNTER_BUFFER_INDEX    = $9301;
4373   GL_BUFFER_BINDING                 = $9302;
4374   GL_BUFFER_DATA_SIZE               = $9303;
4375   GL_NUM_ACTIVE_VARIABLES           = $9304;
4376   GL_ACTIVE_VARIABLES               = $9305;
4377   GL_REFERENCED_BY_VERTEX_SHADER    = $9306;
4378   GL_REFERENCED_BY_TESS_CONTROL_SHADER = $9307;
4379   GL_REFERENCED_BY_TESS_EVALUATION_SHADER = $9308;
4380   GL_REFERENCED_BY_GEOMETRY_SHADER  = $9309;
4381   GL_REFERENCED_BY_FRAGMENT_SHADER  = $930A;
4382   GL_REFERENCED_BY_COMPUTE_SHADER   = $930B;
4383   GL_TOP_LEVEL_ARRAY_SIZE           = $930C;
4384   GL_TOP_LEVEL_ARRAY_STRIDE         = $930D;
4385   GL_LOCATION                       = $930E;
4386   GL_LOCATION_INDEX                 = $930F;
4387   GL_IS_PER_PATCH                   = $92E7;
4388   GL_SHADER_STORAGE_BUFFER          = $90D2;
4389   GL_SHADER_STORAGE_BUFFER_BINDING  = $90D3;
4390   GL_SHADER_STORAGE_BUFFER_START    = $90D4;
4391   GL_SHADER_STORAGE_BUFFER_SIZE     = $90D5;
4392   GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS = $90D6;
4393   GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS = $90D7;
4394   GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS = $90D8;
4395   GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS = $90D9;
4396   GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS = $90DA;
4397   GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS = $90DB;
4398   GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS = $90DC;
4399   GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS = $90DD;
4400   GL_MAX_SHADER_STORAGE_BLOCK_SIZE  = $90DE;
4401   GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT = $90DF;
4402   GL_SHADER_STORAGE_BARRIER_BIT     = $2000;
4403   GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES = GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS;
4404   GL_DEPTH_STENCIL_TEXTURE_MODE     = $90EA;
4405
4406   GL_TEXTURE_BUFFER_OFFSET          = $919D;
4407   GL_TEXTURE_BUFFER_SIZE            = $919E;
4408   GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT = $919F;
4409   GL_TEXTURE_VIEW_MIN_LEVEL         = $82DB;
4410   GL_TEXTURE_VIEW_NUM_LEVELS        = $82DC;
4411   GL_TEXTURE_VIEW_MIN_LAYER         = $82DD;
4412   GL_TEXTURE_VIEW_NUM_LAYERS        = $82DE;
4413   GL_TEXTURE_IMMUTABLE_LEVELS       = $82DF;
4414   GL_VERTEX_ATTRIB_BINDING          = $82D4;
4415   GL_VERTEX_ATTRIB_RELATIVE_OFFSET  = $82D5;
4416   GL_VERTEX_BINDING_DIVISOR         = $82D6;
4417   GL_VERTEX_BINDING_OFFSET          = $82D7;
4418   GL_VERTEX_BINDING_STRIDE          = $82D8;
4419   GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET = $82D9;
4420   GL_MAX_VERTEX_ATTRIB_BINDINGS     = $82DA;
4421
4422   // GL 4.4
4423   GL_MAX_VERTEX_ATTRIB_STRIDE         = $82E5;
4424   GL_MAP_PERSISTENT_BIT               = $0040;
4425   GL_MAP_COHERENT_BIT                 = $0080;
4426   GL_DYNAMIC_STORAGE_BIT              = $0100;
4427   GL_CLIENT_STORAGE_BIT               = $0200;
4428   GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT = $00004000;
4429   GL_BUFFER_IMMUTABLE_STORAGE           = $821F;
4430   GL_BUFFER_STORAGE_FLAGS               = $8220;
4431   GL_CLEAR_TEXTURE                      = $9365;
4432   GL_LOCATION_COMPONENT                 = $934A;
4433   GL_TRANSFORM_FEEDBACK_BUFFER_INDEX    = $934B;
4434   GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE = $934C;
4435   GL_QUERY_BUFFER                       = $9192;
4436   GL_QUERY_BUFFER_BARRIER_BIT           = $00008000;
4437   GL_QUERY_BUFFER_BINDING               = $9193;
4438   GL_QUERY_RESULT_NO_WAIT               = $9194;
4439   GL_MIRROR_CLAMP_TO_EDGE               = $8743;
4440
4441   // GL 4.5
4442   GL_CONTEXT_LOST                   = $0507;
4443   GL_NEGATIVE_ONE_TO_ONE            = $935E;
4444   GL_ZERO_TO_ONE                    = $935F;
4445   GL_CLIP_ORIGIN                    = $935C;
4446   GL_CLIP_DEPTH_MODE                = $935D;
4447   GL_QUERY_WAIT_INVERTED            = $8E17;
4448   GL_QUERY_NO_WAIT_INVERTED         = $8E18;
4449   GL_QUERY_BY_REGION_WAIT_INVERTED  = $8E19;
4450   GL_QUERY_BY_REGION_NO_WAIT_INVERTED = $8E1A;
4451   GL_MAX_CULL_DISTANCES             = $82F9;
4452   GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES = $82FA;
4453   GL_TEXTURE_TARGET                 = $1006;
4454   GL_QUERY_TARGET                   = $82EA;
4455   GL_TEXTURE_BINDING                = $82EB;
4456   GL_GUILTY_CONTEXT_RESET           = $8253;
4457   GL_INNOCENT_CONTEXT_RESET         = $8254;
4458   GL_UNKNOWN_CONTEXT_RESET          = $8255;
4459   GL_RESET_NOTIFICATION_STRATEGY    = $8256;
4460   GL_LOSE_CONTEXT_ON_RESET          = $8252;
4461   GL_NO_RESET_NOTIFICATION          = $8261;
4462   GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT = $00000004;
4463   GL_CONTEXT_RELEASE_BEHAVIOR       = $82FB;
4464   GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH = $82FC;
4465
4466   // GL_ATI_draw_buffers
4467   GL_MAX_DRAW_BUFFERS_ATI = $8824;
4468   GL_DRAW_BUFFER0_ATI = $8825;
4469   GL_DRAW_BUFFER1_ATI = $8826;
4470   GL_DRAW_BUFFER2_ATI = $8827;
4471   GL_DRAW_BUFFER3_ATI = $8828;
4472   GL_DRAW_BUFFER4_ATI = $8829;
4473   GL_DRAW_BUFFER5_ATI = $882A;
4474   GL_DRAW_BUFFER6_ATI = $882B;
4475   GL_DRAW_BUFFER7_ATI = $882C;
4476   GL_DRAW_BUFFER8_ATI = $882D;
4477   GL_DRAW_BUFFER9_ATI = $882E;
4478   GL_DRAW_BUFFER10_ATI = $882F;
4479   GL_DRAW_BUFFER11_ATI = $8830;
4480   GL_DRAW_BUFFER12_ATI = $8831;
4481   GL_DRAW_BUFFER13_ATI = $8832;
4482   GL_DRAW_BUFFER14_ATI = $8833;
4483   GL_DRAW_BUFFER15_ATI = $8834;
4484
4485   // GL_ATI_element_array
4486   GL_ELEMENT_ARRAY_ATI = $8768;
4487   GL_ELEMENT_ARRAY_TYPE_ATI = $8769;
4488   GL_ELEMENT_ARRAY_POINTER_ATI = $876A;
4489
4490   // GL_ATI_envmap_bumpmap
4491   GL_BUMP_ROT_MATRIX_ATI = $8775;
4492   GL_BUMP_ROT_MATRIX_SIZE_ATI = $8776;
4493   GL_BUMP_NUM_TEX_UNITS_ATI = $8777;
4494   GL_BUMP_TEX_UNITS_ATI = $8778;
4495   GL_DUDV_ATI = $8779;
4496   GL_DU8DV8_ATI = $877A;
4497   GL_BUMP_ENVMAP_ATI = $877B;
4498   GL_BUMP_TARGET_ATI = $877C;
4499
4500   // GL_ATI_fragment_shader
4501   GL_FRAGMENT_SHADER_ATI = $8920;
4502   GL_REG_0_ATI = $8921;
4503   GL_REG_1_ATI = $8922;
4504   GL_REG_2_ATI = $8923;
4505   GL_REG_3_ATI = $8924;
4506   GL_REG_4_ATI = $8925;
4507   GL_REG_5_ATI = $8926;
4508   GL_REG_6_ATI = $8927;
4509   GL_REG_7_ATI = $8928;
4510   GL_REG_8_ATI = $8929;
4511   GL_REG_9_ATI = $892A;
4512   GL_REG_10_ATI = $892B;
4513   GL_REG_11_ATI = $892C;
4514   GL_REG_12_ATI = $892D;
4515   GL_REG_13_ATI = $892E;
4516   GL_REG_14_ATI = $892F;
4517   GL_REG_15_ATI = $8930;
4518   GL_REG_16_ATI = $8931;
4519   GL_REG_17_ATI = $8932;
4520   GL_REG_18_ATI = $8933;
4521   GL_REG_19_ATI = $8934;
4522   GL_REG_20_ATI = $8935;
4523   GL_REG_21_ATI = $8936;
4524   GL_REG_22_ATI = $8937;
4525   GL_REG_23_ATI = $8938;
4526   GL_REG_24_ATI = $8939;
4527   GL_REG_25_ATI = $893A;
4528   GL_REG_26_ATI = $893B;
4529   GL_REG_27_ATI = $893C;
4530   GL_REG_28_ATI = $893D;
4531   GL_REG_29_ATI = $893E;
4532   GL_REG_30_ATI = $893F;
4533   GL_REG_31_ATI = $8940;
4534   GL_CON_0_ATI = $8941;
4535   GL_CON_1_ATI = $8942;
4536   GL_CON_2_ATI = $8943;
4537   GL_CON_3_ATI = $8944;
4538   GL_CON_4_ATI = $8945;
4539   GL_CON_5_ATI = $8946;
4540   GL_CON_6_ATI = $8947;
4541   GL_CON_7_ATI = $8948;
4542   GL_CON_8_ATI = $8949;
4543   GL_CON_9_ATI = $894A;
4544   GL_CON_10_ATI = $894B;
4545   GL_CON_11_ATI = $894C;
4546   GL_CON_12_ATI = $894D;
4547   GL_CON_13_ATI = $894E;
4548   GL_CON_14_ATI = $894F;
4549   GL_CON_15_ATI = $8950;
4550   GL_CON_16_ATI = $8951;
4551   GL_CON_17_ATI = $8952;
4552   GL_CON_18_ATI = $8953;
4553   GL_CON_19_ATI = $8954;
4554   GL_CON_20_ATI = $8955;
4555   GL_CON_21_ATI = $8956;
4556   GL_CON_22_ATI = $8957;
4557   GL_CON_23_ATI = $8958;
4558   GL_CON_24_ATI = $8959;
4559   GL_CON_25_ATI = $895A;
4560   GL_CON_26_ATI = $895B;
4561   GL_CON_27_ATI = $895C;
4562   GL_CON_28_ATI = $895D;
4563   GL_CON_29_ATI = $895E;
4564   GL_CON_30_ATI = $895F;
4565   GL_CON_31_ATI = $8960;
4566   GL_MOV_ATI = $8961;
4567   GL_ADD_ATI = $8963;
4568   GL_MUL_ATI = $8964;
4569   GL_SUB_ATI = $8965;
4570   GL_DOT3_ATI = $8966;
4571   GL_DOT4_ATI = $8967;
4572   GL_MAD_ATI = $8968;
4573   GL_LERP_ATI = $8969;
4574   GL_CND_ATI = $896A;
4575   GL_CND0_ATI = $896B;
4576   GL_DOT2_ADD_ATI = $896C;
4577   GL_SECONDARY_INTERPOLATOR_ATI = $896D;
4578   GL_NUM_FRAGMENT_REGISTERS_ATI = $896E;
4579   GL_NUM_FRAGMENT_CONSTANTS_ATI = $896F;
4580   GL_NUM_PASSES_ATI = $8970;
4581   GL_NUM_INSTRUCTIONS_PER_PASS_ATI = $8971;
4582   GL_NUM_INSTRUCTIONS_TOTAL_ATI = $8972;
4583   GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI = $8973;
4584   GL_NUM_LOOPBACK_COMPONENTS_ATI = $8974;
4585   GL_COLOR_ALPHA_PAIRING_ATI = $8975;
4586   GL_SWIZZLE_STR_ATI = $8976;
4587   GL_SWIZZLE_STQ_ATI = $8977;
4588   GL_SWIZZLE_STR_DR_ATI = $8978;
4589   GL_SWIZZLE_STQ_DQ_ATI = $8979;
4590   GL_SWIZZLE_STRQ_ATI = $897A;
4591   GL_SWIZZLE_STRQ_DQ_ATI = $897B;
4592   GL_RED_BIT_ATI = $00000001;
4593   GL_GREEN_BIT_ATI = $00000002;
4594   GL_BLUE_BIT_ATI = $00000004;
4595   GL_2X_BIT_ATI = $00000001;
4596   GL_4X_BIT_ATI = $00000002;
4597   GL_8X_BIT_ATI = $00000004;
4598   GL_HALF_BIT_ATI = $00000008;
4599   GL_QUARTER_BIT_ATI = $00000010;
4600   GL_EIGHTH_BIT_ATI = $00000020;
4601   GL_SATURATE_BIT_ATI = $00000040;
4602   GL_COMP_BIT_ATI = $00000002;
4603   GL_NEGATE_BIT_ATI = $00000004;
4604   GL_BIAS_BIT_ATI = $00000008;
4605
4606   // GL_ATI_pn_triangles
4607   GL_PN_TRIANGLES_ATI = $87F0;
4608   GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI = $87F1;
4609   GL_PN_TRIANGLES_POINT_MODE_ATI = $87F2;
4610   GL_PN_TRIANGLES_NORMAL_MODE_ATI = $87F3;
4611   GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI = $87F4;
4612   GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI = $87F5;
4613   GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI = $87F6;
4614   GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI = $87F7;
4615   GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI = $87F8;
4616
4617   // GL_ATI_separate_stencil
4618   GL_STENCIL_BACK_FUNC_ATI = $8800;
4619   GL_STENCIL_BACK_FAIL_ATI = $8801;
4620   GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI = $8802;
4621   GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI = $8803;
4622
4623   // GL_ATI_text_fragment_shader
4624   GL_TEXT_FRAGMENT_SHADER_ATI = $8200;
4625
4626   // GL_ATI_texture_env_combine3
4627   GL_MODULATE_ADD_ATI = $8744;
4628   GL_MODULATE_SIGNED_ADD_ATI = $8745;
4629   GL_MODULATE_SUBTRACT_ATI = $8746;
4630
4631   // GL_ATI_texture_float
4632   GL_RGBA_FLOAT32_ATI = $8814;
4633   GL_RGB_FLOAT32_ATI = $8815;
4634   GL_ALPHA_FLOAT32_ATI = $8816;
4635   GL_INTENSITY_FLOAT32_ATI = $8817;
4636   GL_LUMINANCE_FLOAT32_ATI = $8818;
4637   GL_LUMINANCE_ALPHA_FLOAT32_ATI = $8819;
4638   GL_RGBA_FLOAT16_ATI = $881A;
4639   GL_RGB_FLOAT16_ATI = $881B;
4640   GL_ALPHA_FLOAT16_ATI = $881C;
4641   GL_INTENSITY_FLOAT16_ATI = $881D;
4642   GL_LUMINANCE_FLOAT16_ATI = $881E;
4643   GL_LUMINANCE_ALPHA_FLOAT16_ATI = $881F;
4644
4645   // GL_ATI_texture_mirror_once
4646   GL_MIRROR_CLAMP_ATI = $8742;
4647   GL_MIRROR_CLAMP_TO_EDGE_ATI = $8743;
4648
4649   // GL_ATI_vertex_array_object
4650   GL_STATIC_ATI = $8760;
4651   GL_DYNAMIC_ATI = $8761;
4652   GL_PRESERVE_ATI = $8762;
4653   GL_DISCARD_ATI = $8763;
4654   GL_OBJECT_BUFFER_SIZE_ATI = $8764;
4655   GL_OBJECT_BUFFER_USAGE_ATI = $8765;
4656   GL_ARRAY_OBJECT_BUFFER_ATI = $8766;
4657   GL_ARRAY_OBJECT_OFFSET_ATI = $8767;
4658
4659   // GL_ATI_vertex_streams
4660   GL_MAX_VERTEX_STREAMS_ATI = $876B;
4661   GL_VERTEX_STREAM0_ATI = $876C;
4662   GL_VERTEX_STREAM1_ATI = $876D;
4663   GL_VERTEX_STREAM2_ATI = $876E;
4664   GL_VERTEX_STREAM3_ATI = $876F;
4665   GL_VERTEX_STREAM4_ATI = $8770;
4666   GL_VERTEX_STREAM5_ATI = $8771;
4667   GL_VERTEX_STREAM6_ATI = $8772;
4668   GL_VERTEX_STREAM7_ATI = $8773;
4669   GL_VERTEX_SOURCE_ATI = $8774;
4670
4671   // GL_ATI_meminfo
4672   GL_VBO_FREE_MEMORY_ATI = $87FB;
4673   GL_TEXTURE_FREE_MEMORY_ATI = $87FC;
4674   GL_RENDERBUFFER_FREE_MEMORY_ATI = $87FD;
4675
4676   // GL_AMD_performance_monitor
4677   GL_COUNTER_TYPE_AMD = $8BC0;
4678   GL_COUNTER_RANGE_AMD = $8BC1;
4679   GL_UNSIGNED_INT64_AMD = $8BC2;
4680   GL_PERCENTAGE_AMD = $8BC3;
4681   GL_PERFMON_RESULT_AVAILABLE_AMD = $8BC4;
4682   GL_PERFMON_RESULT_SIZE_AMD = $8BC5;
4683   GL_PERFMON_RESULT_AMD = $8BC6;
4684
4685   // GL_AMD_vertex_shader_tesselator
4686   GL_SAMPLER_BUFFER_AMD = $9001;
4687   GL_INT_SAMPLER_BUFFER_AMD = $9002;
4688   GL_UNSIGNED_INT_SAMPLER_BUFFER_AMD = $9003;
4689   GL_TESSELLATION_MODE_AMD = $9004;
4690   GL_TESSELLATION_FACTOR_AMD = $9005;
4691   GL_DISCRETE_AMD = $9006;
4692   GL_CONTINUOUS_AMD = $9007;
4693
4694   // GL_AMD_seamless_cubemap_per_texture
4695   { reuse GL_TEXTURE_CUBE_MAP_SEAMLESS }
4696
4697   // GL_AMD_name_gen_delete
4698   GL_DATA_BUFFER_AMD = $9151;
4699   GL_PERFORMANCE_MONITOR_AMD = $9152;
4700   GL_QUERY_OBJECT_AMD = $9153;
4701   GL_VERTEX_ARRAY_OBJECT_AMD = $9154;
4702   GL_SAMPLER_OBJECT_AMD = $9155;
4703
4704   // GL_AMD_debug_output
4705   GL_MAX_DEBUG_LOGGED_MESSAGES_AMD = $9144;
4706   GL_DEBUG_LOGGED_MESSAGES_AMD = $9145;
4707   GL_DEBUG_SEVERITY_HIGH_AMD = $9146;
4708   GL_DEBUG_SEVERITY_MEDIUM_AMD = $9147;
4709   GL_DEBUG_SEVERITY_LOW_AMD = $9148;
4710   GL_DEBUG_CATEGORY_API_ERROR_AMD = $9149;
4711   GL_DEBUG_CATEGORY_WINDOW_SYSTEM_AMD = $914A;
4712   GL_DEBUG_CATEGORY_DEPRECATION_AMD = $914B;
4713   GL_DEBUG_CATEGORY_UNDEFINED_BEHAVIOR_AMD = $914C;
4714   GL_DEBUG_CATEGORY_PERFORMANCE_AMD = $914D;
4715   GL_DEBUG_CATEGORY_SHADER_COMPILER_AMD = $914E;
4716   GL_DEBUG_CATEGORY_APPLICATION_AMD = $914F;
4717   GL_DEBUG_CATEGORY_OTHER_AMD = $9150;
4718
4719   // GL_AMD_depth_clamp_separate
4720   GL_DEPTH_CLAMP_NEAR_AMD = $901E;
4721   GL_DEPTH_CLAMP_FAR_AMD = $901F;
4722
4723   // GL_EXT_422_pixels
4724   GL_422_EXT = $80CC;
4725   GL_422_REV_EXT = $80CD;
4726   GL_422_AVERAGE_EXT = $80CE;
4727   GL_422_REV_AVERAGE_EXT = $80CF;
4728
4729   // GL_EXT_abgr
4730   GL_ABGR_EXT = $8000;
4731
4732   // GL_EXT_bgra
4733   GL_BGR_EXT = $80E0;
4734   GL_BGRA_EXT = $80E1;
4735
4736   // GL_EXT_blend_color
4737   GL_CONSTANT_COLOR_EXT = $8001;
4738   GL_ONE_MINUS_CONSTANT_COLOR_EXT = $8002;
4739   GL_CONSTANT_ALPHA_EXT = $8003;
4740   GL_ONE_MINUS_CONSTANT_ALPHA_EXT = $8004;
4741   GL_BLEND_COLOR_EXT = $8005;
4742
4743   // GL_EXT_blend_func_separate
4744   GL_BLEND_DST_RGB_EXT = $80C8;
4745   GL_BLEND_SRC_RGB_EXT = $80C9;
4746   GL_BLEND_DST_ALPHA_EXT = $80CA;
4747   GL_BLEND_SRC_ALPHA_EXT = $80CB;
4748
4749   // GL_EXT_blend_minmax
4750   GL_FUNC_ADD_EXT = $8006;
4751   GL_MIN_EXT = $8007;
4752   GL_MAX_EXT = $8008;
4753   GL_BLEND_EQUATION_EXT = $8009;
4754
4755   // GL_EXT_blend_subtract
4756   GL_FUNC_SUBTRACT_EXT = $800A;
4757   GL_FUNC_REVERSE_SUBTRACT_EXT = $800B;
4758
4759   // GL_EXT_clip_volume_hint
4760   GL_CLIP_VOLUME_CLIPPING_HINT_EXT = $80F0;
4761
4762   // GL_EXT_cmyka
4763   GL_CMYK_EXT = $800C;
4764   GL_CMYKA_EXT = $800D;
4765   GL_PACK_CMYK_HINT_EXT = $800E;
4766   GL_UNPACK_CMYK_HINT_EXT = $800F;
4767
4768   // GL_EXT_compiled_vertex_array
4769   GL_ARRAY_ELEMENT_LOCK_FIRST_EXT = $81A8;
4770   GL_ARRAY_ELEMENT_LOCK_COUNT_EXT = $81A9;
4771
4772   // GL_EXT_convolution
4773   GL_CONVOLUTION_1D_EXT = $8010;
4774   GL_CONVOLUTION_2D_EXT = $8011;
4775   GL_SEPARABLE_2D_EXT = $8012;
4776   GL_CONVOLUTION_BORDER_MODE_EXT = $8013;
4777   GL_CONVOLUTION_FILTER_SCALE_EXT = $8014;
4778   GL_CONVOLUTION_FILTER_BIAS_EXT = $8015;
4779   GL_REDUCE_EXT = $8016;
4780   GL_CONVOLUTION_FORMAT_EXT = $8017;
4781   GL_CONVOLUTION_WIDTH_EXT = $8018;
4782   GL_CONVOLUTION_HEIGHT_EXT = $8019;
4783   GL_MAX_CONVOLUTION_WIDTH_EXT = $801A;
4784   GL_MAX_CONVOLUTION_HEIGHT_EXT = $801B;
4785   GL_POST_CONVOLUTION_RED_SCALE_EXT = $801C;
4786   GL_POST_CONVOLUTION_GREEN_SCALE_EXT = $801D;
4787   GL_POST_CONVOLUTION_BLUE_SCALE_EXT = $801E;
4788   GL_POST_CONVOLUTION_ALPHA_SCALE_EXT = $801F;
4789   GL_POST_CONVOLUTION_RED_BIAS_EXT = $8020;
4790   GL_POST_CONVOLUTION_GREEN_BIAS_EXT = $8021;
4791   GL_POST_CONVOLUTION_BLUE_BIAS_EXT = $8022;
4792   GL_POST_CONVOLUTION_ALPHA_BIAS_EXT = $8023;
4793
4794   // GL_EXT_coordinate_frame
4795   GL_TANGENT_ARRAY_EXT = $8439;
4796   GL_BINORMAL_ARRAY_EXT = $843A;
4797   GL_CURRENT_TANGENT_EXT = $843B;
4798   GL_CURRENT_BINORMAL_EXT = $843C;
4799   GL_TANGENT_ARRAY_TYPE_EXT = $843E;
4800   GL_TANGENT_ARRAY_STRIDE_EXT = $843F;
4801   GL_BINORMAL_ARRAY_TYPE_EXT = $8440;
4802   GL_BINORMAL_ARRAY_STRIDE_EXT = $8441;
4803   GL_TANGENT_ARRAY_POINTER_EXT = $8442;
4804   GL_BINORMAL_ARRAY_POINTER_EXT = $8443;
4805   GL_MAP1_TANGENT_EXT = $8444;
4806   GL_MAP2_TANGENT_EXT = $8445;
4807   GL_MAP1_BINORMAL_EXT = $8446;
4808   GL_MAP2_BINORMAL_EXT = $8447;
4809
4810   // GL_EXT_cull_vertex
4811   GL_CULL_VERTEX_EXT = $81AA;
4812   GL_CULL_VERTEX_EYE_POSITION_EXT = $81AB;
4813   GL_CULL_VERTEX_OBJECT_POSITION_EXT = $81AC;
4814
4815   // GL_EXT_draw_range_elements
4816   GL_MAX_ELEMENTS_VERTICES_EXT = $80E8;
4817   GL_MAX_ELEMENTS_INDICES_EXT = $80E9;
4818
4819   // GL_EXT_fog_coord
4820   GL_FOG_COORDINATE_SOURCE_EXT = $8450;
4821   GL_FOG_COORDINATE_EXT = $8451;
4822   GL_FRAGMENT_DEPTH_EXT = $8452;
4823   GL_CURRENT_FOG_COORDINATE_EXT = $8453;
4824   GL_FOG_COORDINATE_ARRAY_TYPE_EXT = $8454;
4825   GL_FOG_COORDINATE_ARRAY_STRIDE_EXT = $8455;
4826   GL_FOG_COORDINATE_ARRAY_POINTER_EXT = $8456;
4827   GL_FOG_COORDINATE_ARRAY_EXT = $8457;
4828
4829   // GL_EXT_framebuffer_object
4830   GL_FRAMEBUFFER_EXT = $8D40;
4831   GL_RENDERBUFFER_EXT = $8D41;
4832   GL_STENCIL_INDEX_EXT = $8D45;
4833   GL_STENCIL_INDEX1_EXT = $8D46;
4834   GL_STENCIL_INDEX4_EXT = $8D47;
4835   GL_STENCIL_INDEX8_EXT = $8D48;
4836   GL_STENCIL_INDEX16_EXT = $8D49;
4837   GL_RENDERBUFFER_WIDTH_EXT = $8D42;
4838   GL_RENDERBUFFER_HEIGHT_EXT = $8D43;
4839   GL_RENDERBUFFER_INTERNAL_FORMAT_EXT = $8D44;
4840   GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT = $8CD0;
4841   GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT = $8CD1;
4842   GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT = $8CD2;
4843   GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT = $8CD3;
4844   GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT = $8CD4;
4845   GL_COLOR_ATTACHMENT0_EXT = $8CE0;
4846   GL_COLOR_ATTACHMENT1_EXT = $8CE1;
4847   GL_COLOR_ATTACHMENT2_EXT = $8CE2;
4848   GL_COLOR_ATTACHMENT3_EXT = $8CE3;
4849   GL_COLOR_ATTACHMENT4_EXT = $8CE4;
4850   GL_COLOR_ATTACHMENT5_EXT = $8CE5;
4851   GL_COLOR_ATTACHMENT6_EXT = $8CE6;
4852   GL_COLOR_ATTACHMENT7_EXT = $8CE7;
4853   GL_COLOR_ATTACHMENT8_EXT = $8CE8;
4854   GL_COLOR_ATTACHMENT9_EXT = $8CE9;
4855   GL_COLOR_ATTACHMENT10_EXT = $8CEA;
4856   GL_COLOR_ATTACHMENT11_EXT = $8CEB;
4857   GL_COLOR_ATTACHMENT12_EXT = $8CEC;
4858   GL_COLOR_ATTACHMENT13_EXT = $8CED;
4859   GL_COLOR_ATTACHMENT14_EXT = $8CEE;
4860   GL_COLOR_ATTACHMENT15_EXT = $8CEF;
4861   GL_DEPTH_ATTACHMENT_EXT = $8D00;
4862   GL_STENCIL_ATTACHMENT_EXT = $8D20;
4863   GL_FRAMEBUFFER_COMPLETE_EXT = $8CD5;
4864   GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT = $8CD6;
4865   GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT = $8CD7;
4866   GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT = $8CD8;
4867   GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT = $8CD9;
4868   GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT = $8CDA;
4869   GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT = $8CDB;
4870   GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT = $8CDC;
4871   GL_FRAMEBUFFER_UNSUPPORTED_EXT = $8CDD;
4872   GL_FRAMEBUFFER_STATUS_ERROR_EXT = $8CDE;
4873   GL_FRAMEBUFFER_BINDING_EXT = $8CA6;
4874   GL_RENDERBUFFER_BINDING_EXT = $8CA7;
4875   GL_MAX_COLOR_ATTACHMENTS_EXT = $8CDF;
4876   GL_MAX_RENDERBUFFER_SIZE_EXT = $84E8;
4877   GL_INVALID_FRAMEBUFFER_OPERATION_EXT = $0506;
4878
4879   // GL_EXT_histogram
4880   GL_HISTOGRAM_EXT = $8024;
4881   GL_PROXY_HISTOGRAM_EXT = $8025;
4882   GL_HISTOGRAM_WIDTH_EXT = $8026;
4883   GL_HISTOGRAM_FORMAT_EXT = $8027;
4884   GL_HISTOGRAM_RED_SIZE_EXT = $8028;
4885   GL_HISTOGRAM_GREEN_SIZE_EXT = $8029;
4886   GL_HISTOGRAM_BLUE_SIZE_EXT = $802A;
4887   GL_HISTOGRAM_ALPHA_SIZE_EXT = $802B;
4888   GL_HISTOGRAM_LUMINANCE_SIZE_EXT = $802C;
4889   GL_HISTOGRAM_SINK_EXT = $802D;
4890   GL_MINMAX_EXT = $802E;
4891   GL_MINMAX_FORMAT_EXT = $802F;
4892   GL_MINMAX_SINK_EXT = $8030;
4893   GL_TABLE_TOO_LARGE_EXT = $8031;
4894
4895   // GL_EXT_index_array_formats
4896   GL_IUI_V2F_EXT = $81AD;
4897   GL_IUI_V3F_EXT = $81AE;
4898   GL_IUI_N3F_V2F_EXT = $81AF;
4899   GL_IUI_N3F_V3F_EXT = $81B0;
4900   GL_T2F_IUI_V2F_EXT = $81B1;
4901   GL_T2F_IUI_V3F_EXT = $81B2;
4902   GL_T2F_IUI_N3F_V2F_EXT = $81B3;
4903   GL_T2F_IUI_N3F_V3F_EXT = $81B4;
4904
4905   // GL_EXT_index_func
4906   GL_INDEX_TEST_EXT = $81B5;
4907   GL_INDEX_TEST_FUNC_EXT = $81B6;
4908   GL_INDEX_TEST_REF_EXT = $81B7;
4909
4910   // GL_EXT_index_material
4911   GL_INDEX_MATERIAL_EXT = $81B8;
4912   GL_INDEX_MATERIAL_PARAMETER_EXT = $81B9;
4913   GL_INDEX_MATERIAL_FACE_EXT = $81BA;
4914
4915   // GL_EXT_light_texture
4916   GL_FRAGMENT_MATERIAL_EXT = $8349;
4917   GL_FRAGMENT_NORMAL_EXT = $834A;
4918   GL_FRAGMENT_COLOR_EXT = $834C;
4919   GL_ATTENUATION_EXT = $834D;
4920   GL_SHADOW_ATTENUATION_EXT = $834E;
4921   GL_TEXTURE_APPLICATION_MODE_EXT = $834F;
4922   GL_TEXTURE_LIGHT_EXT = $8350;
4923   GL_TEXTURE_MATERIAL_FACE_EXT = $8351;
4924   GL_TEXTURE_MATERIAL_PARAMETER_EXT = $8352;
4925
4926   // GL_EXT_multisample
4927   GL_MULTISAMPLE_EXT = $809D;
4928   GL_SAMPLE_ALPHA_TO_MASK_EXT = $809E;
4929   GL_SAMPLE_ALPHA_TO_ONE_EXT = $809F;
4930   GL_SAMPLE_MASK_EXT = $80A0;
4931   GL_1PASS_EXT = $80A1;
4932   GL_2PASS_0_EXT = $80A2;
4933   GL_2PASS_1_EXT = $80A3;
4934   GL_4PASS_0_EXT = $80A4;
4935   GL_4PASS_1_EXT = $80A5;
4936   GL_4PASS_2_EXT = $80A6;
4937   GL_4PASS_3_EXT = $80A7;
4938   GL_SAMPLE_BUFFERS_EXT = $80A8;
4939   GL_SAMPLES_EXT = $80A9;
4940   GL_SAMPLE_MASK_VALUE_EXT = $80AA;
4941   GL_SAMPLE_MASK_INVERT_EXT = $80AB;
4942   GL_SAMPLE_PATTERN_EXT = $80AC;
4943   GL_MULTISAMPLE_BIT_EXT = $20000000;
4944
4945   // GL_EXT_packed_pixels
4946   GL_UNSIGNED_BYTE_3_3_2_EXT = $8032;
4947   GL_UNSIGNED_SHORT_4_4_4_4_EXT = $8033;
4948   GL_UNSIGNED_SHORT_5_5_5_1_EXT = $8034;
4949   GL_UNSIGNED_INT_8_8_8_8_EXT = $8035;
4950   GL_UNSIGNED_INT_10_10_10_2_EXT = $8036;
4951
4952   // GL_EXT_paletted_texture
4953   GL_COLOR_INDEX1_EXT = $80E2;
4954   GL_COLOR_INDEX2_EXT = $80E3;
4955   GL_COLOR_INDEX4_EXT = $80E4;
4956   GL_COLOR_INDEX8_EXT = $80E5;
4957   GL_COLOR_INDEX12_EXT = $80E6;
4958   GL_COLOR_INDEX16_EXT = $80E7;
4959   GL_TEXTURE_INDEX_SIZE_EXT = $80ED;
4960
4961   // GL_EXT_pixel_transform
4962   GL_PIXEL_TRANSFORM_2D_EXT = $8330;
4963   GL_PIXEL_MAG_FILTER_EXT = $8331;
4964   GL_PIXEL_MIN_FILTER_EXT = $8332;
4965   GL_PIXEL_CUBIC_WEIGHT_EXT = $8333;
4966   GL_CUBIC_EXT = $8334;
4967   GL_AVERAGE_EXT = $8335;
4968   GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT = $8336;
4969   GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT = $8337;
4970   GL_PIXEL_TRANSFORM_2D_MATRIX_EXT = $8338;
4971
4972   // GL_EXT_point_parameters
4973   GL_POINT_SIZE_MIN_EXT = $8126;
4974   GL_POINT_SIZE_MAX_EXT = $8127;
4975   GL_POINT_FADE_THRESHOLD_SIZE_EXT = $8128;
4976   GL_DISTANCE_ATTENUATION_EXT = $8129;
4977
4978   // GL_EXT_polygon_offset
4979   GL_POLYGON_OFFSET_EXT = $8037;
4980   GL_POLYGON_OFFSET_FACTOR_EXT = $8038;
4981   GL_POLYGON_OFFSET_BIAS_EXT = $8039;
4982
4983   // GL_EXT_rescale_normal
4984   GL_RESCALE_NORMAL_EXT = $803A;
4985
4986   // GL_EXT_secondary_color
4987   GL_COLOR_SUM_EXT = $8458;
4988   GL_CURRENT_SECONDARY_COLOR_EXT = $8459;
4989   GL_SECONDARY_COLOR_ARRAY_SIZE_EXT = $845A;
4990   GL_SECONDARY_COLOR_ARRAY_TYPE_EXT = $845B;
4991   GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT = $845C;
4992   GL_SECONDARY_COLOR_ARRAY_POINTER_EXT = $845D;
4993   GL_SECONDARY_COLOR_ARRAY_EXT = $845E;
4994
4995   // GL_EXT_separate_specular_color
4996   GL_LIGHT_MODEL_COLOR_CONTROL_EXT = $81F8;
4997   GL_SINGLE_COLOR_EXT = $81F9;
4998   GL_SEPARATE_SPECULAR_COLOR_EXT = $81FA;
4999
5000   // GL_EXT_shared_texture_palette
5001   GL_SHARED_TEXTURE_PALETTE_EXT = $81FB;
5002
5003   // GL_EXT_stencil_two_side
5004   GL_STENCIL_TEST_TWO_SIDE_EXT = $8910;
5005   GL_ACTIVE_STENCIL_FACE_EXT = $8911;
5006
5007   // GL_EXT_stencil_wrap
5008   GL_INCR_WRAP_EXT = $8507;
5009   GL_DECR_WRAP_EXT = $8508;
5010
5011   // GL_EXT_texture
5012   GL_ALPHA4_EXT = $803B;
5013   GL_ALPHA8_EXT = $803C;
5014   GL_ALPHA12_EXT = $803D;
5015   GL_ALPHA16_EXT = $803E;
5016   GL_LUMINANCE4_EXT = $803F;
5017   GL_LUMINANCE8_EXT = $8040;
5018   GL_LUMINANCE12_EXT = $8041;
5019   GL_LUMINANCE16_EXT = $8042;
5020   GL_LUMINANCE4_ALPHA4_EXT = $8043;
5021   GL_LUMINANCE6_ALPHA2_EXT = $8044;
5022   GL_LUMINANCE8_ALPHA8_EXT = $8045;
5023   GL_LUMINANCE12_ALPHA4_EXT = $8046;
5024   GL_LUMINANCE12_ALPHA12_EXT = $8047;
5025   GL_LUMINANCE16_ALPHA16_EXT = $8048;
5026   GL_INTENSITY_EXT = $8049;
5027   GL_INTENSITY4_EXT = $804A;
5028   GL_INTENSITY8_EXT = $804B;
5029   GL_INTENSITY12_EXT = $804C;
5030   GL_INTENSITY16_EXT = $804D;
5031   GL_RGB2_EXT = $804E;
5032   GL_RGB4_EXT = $804F;
5033   GL_RGB5_EXT = $8050;
5034   GL_RGB8_EXT = $8051;
5035   GL_RGB10_EXT = $8052;
5036   GL_RGB12_EXT = $8053;
5037   GL_RGB16_EXT = $8054;
5038   GL_RGBA2_EXT = $8055;
5039   GL_RGBA4_EXT = $8056;
5040   GL_RGB5_A1_EXT = $8057;
5041   GL_RGBA8_EXT = $8058;
5042   GL_RGB10_A2_EXT = $8059;
5043   GL_RGBA12_EXT = $805A;
5044   GL_RGBA16_EXT = $805B;
5045   GL_TEXTURE_RED_SIZE_EXT = $805C;
5046   GL_TEXTURE_GREEN_SIZE_EXT = $805D;
5047   GL_TEXTURE_BLUE_SIZE_EXT = $805E;
5048   GL_TEXTURE_ALPHA_SIZE_EXT = $805F;
5049   GL_TEXTURE_LUMINANCE_SIZE_EXT = $8060;
5050   GL_TEXTURE_INTENSITY_SIZE_EXT = $8061;
5051   GL_REPLACE_EXT = $8062;
5052   GL_PROXY_TEXTURE_1D_EXT = $8063;
5053   GL_PROXY_TEXTURE_2D_EXT = $8064;
5054   GL_TEXTURE_TOO_LARGE_EXT = $8065;
5055
5056   // GL_EXT_texture3D
5057   GL_PACK_SKIP_IMAGES_EXT = $806B;
5058   GL_PACK_IMAGE_HEIGHT_EXT = $806C;
5059   GL_UNPACK_SKIP_IMAGES_EXT = $806D;
5060   GL_UNPACK_IMAGE_HEIGHT_EXT = $806E;
5061   GL_TEXTURE_3D_EXT = $806F;
5062   GL_PROXY_TEXTURE_3D_EXT = $8070;
5063   GL_TEXTURE_DEPTH_EXT = $8071;
5064   GL_TEXTURE_WRAP_R_EXT = $8072;
5065   GL_MAX_3D_TEXTURE_SIZE_EXT = $8073;
5066
5067   // GL_EXT_texture_compression_s3tc
5068   GL_COMPRESSED_RGB_S3TC_DXT1_EXT = $83F0;
5069   GL_COMPRESSED_RGBA_S3TC_DXT1_EXT = $83F1;
5070   GL_COMPRESSED_RGBA_S3TC_DXT3_EXT = $83F2;
5071   GL_COMPRESSED_RGBA_S3TC_DXT5_EXT = $83F3;
5072
5073   // GL_EXT_texture_cube_map
5074   GL_NORMAL_MAP_EXT = $8511;
5075   GL_REFLECTION_MAP_EXT = $8512;
5076   GL_TEXTURE_CUBE_MAP_EXT = $8513;
5077   GL_TEXTURE_BINDING_CUBE_MAP_EXT = $8514;
5078   GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT = $8515;
5079   GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT = $8516;
5080   GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT = $8517;
5081   GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT = $8518;
5082   GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT = $8519;
5083   GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT = $851A;
5084   GL_PROXY_TEXTURE_CUBE_MAP_EXT = $851B;
5085   GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT = $851C;
5086
5087   // GL_EXT_texture_edge_clamp
5088   GL_CLAMP_TO_EDGE_EXT = $812F;
5089
5090   // GL_EXT_texture_env_combine
5091   GL_COMBINE_EXT = $8570;
5092   GL_COMBINE_RGB_EXT = $8571;
5093   GL_COMBINE_ALPHA_EXT = $8572;
5094   GL_RGB_SCALE_EXT = $8573;
5095   GL_ADD_SIGNED_EXT = $8574;
5096   GL_INTERPOLATE_EXT = $8575;
5097   GL_CONSTANT_EXT = $8576;
5098   GL_PRIMARY_COLOR_EXT = $8577;
5099   GL_PREVIOUS_EXT = $8578;
5100   GL_SOURCE0_RGB_EXT = $8580;
5101   GL_SOURCE1_RGB_EXT = $8581;
5102   GL_SOURCE2_RGB_EXT = $8582;
5103   GL_SOURCE0_ALPHA_EXT = $8588;
5104   GL_SOURCE1_ALPHA_EXT = $8589;
5105   GL_SOURCE2_ALPHA_EXT = $858A;
5106   GL_OPERAND0_RGB_EXT = $8590;
5107   GL_OPERAND1_RGB_EXT = $8591;
5108   GL_OPERAND2_RGB_EXT = $8592;
5109   GL_OPERAND0_ALPHA_EXT = $8598;
5110   GL_OPERAND1_ALPHA_EXT = $8599;
5111   GL_OPERAND2_ALPHA_EXT = $859A;
5112
5113   // GL_EXT_texture_env_dot3
5114   GL_DOT3_RGB_EXT = $8740;
5115   GL_DOT3_RGBA_EXT = $8741;
5116
5117   // GL_EXT_texture_filter_anisotropic
5118   GL_TEXTURE_MAX_ANISOTROPY_EXT = $84FE;
5119   GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT = $84FF;
5120
5121   // GL_EXT_texture_lod_bias
5122   GL_MAX_TEXTURE_LOD_BIAS_EXT = $84FD;
5123   GL_TEXTURE_FILTER_CONTROL_EXT = $8500;
5124   GL_TEXTURE_LOD_BIAS_EXT = $8501;
5125
5126   // GL_EXT_texture_object
5127   GL_TEXTURE_PRIORITY_EXT = $8066;
5128   GL_TEXTURE_RESIDENT_EXT = $8067;
5129   GL_TEXTURE_1D_BINDING_EXT = $8068;
5130   GL_TEXTURE_2D_BINDING_EXT = $8069;
5131   GL_TEXTURE_3D_BINDING_EXT = $806A;
5132
5133   // GL_EXT_texture_perturb_normal
5134   GL_PERTURB_EXT = $85AE;
5135   GL_TEXTURE_NORMAL_EXT = $85AF;
5136
5137   // GL_EXT_texture_rectangle
5138   GL_TEXTURE_RECTANGLE_EXT = $84F5;
5139   GL_TEXTURE_BINDING_RECTANGLE_EXT = $84F6;
5140   GL_PROXY_TEXTURE_RECTANGLE_EXT = $84F7;
5141   GL_MAX_RECTANGLE_TEXTURE_SIZE_EXT = $84F8;
5142
5143   // GL_EXT_vertex_array
5144   GL_VERTEX_ARRAY_EXT = $8074;
5145   GL_NORMAL_ARRAY_EXT = $8075;
5146   GL_COLOR_ARRAY_EXT = $8076;
5147   GL_INDEX_ARRAY_EXT = $8077;
5148   GL_TEXTURE_COORD_ARRAY_EXT = $8078;
5149   GL_EDGE_FLAG_ARRAY_EXT = $8079;
5150   GL_VERTEX_ARRAY_SIZE_EXT = $807A;
5151   GL_VERTEX_ARRAY_TYPE_EXT = $807B;
5152   GL_VERTEX_ARRAY_STRIDE_EXT = $807C;
5153   GL_VERTEX_ARRAY_COUNT_EXT = $807D;
5154   GL_NORMAL_ARRAY_TYPE_EXT = $807E;
5155   GL_NORMAL_ARRAY_STRIDE_EXT = $807F;
5156   GL_NORMAL_ARRAY_COUNT_EXT = $8080;
5157   GL_COLOR_ARRAY_SIZE_EXT = $8081;
5158   GL_COLOR_ARRAY_TYPE_EXT = $8082;
5159   GL_COLOR_ARRAY_STRIDE_EXT = $8083;
5160   GL_COLOR_ARRAY_COUNT_EXT = $8084;
5161   GL_INDEX_ARRAY_TYPE_EXT = $8085;
5162   GL_INDEX_ARRAY_STRIDE_EXT = $8086;
5163   GL_INDEX_ARRAY_COUNT_EXT = $8087;
5164   GL_TEXTURE_COORD_ARRAY_SIZE_EXT = $8088;
5165   GL_TEXTURE_COORD_ARRAY_TYPE_EXT = $8089;
5166   GL_TEXTURE_COORD_ARRAY_STRIDE_EXT = $808A;
5167   GL_TEXTURE_COORD_ARRAY_COUNT_EXT = $808B;
5168   GL_EDGE_FLAG_ARRAY_STRIDE_EXT = $808C;
5169   GL_EDGE_FLAG_ARRAY_COUNT_EXT = $808D;
5170   GL_VERTEX_ARRAY_POINTER_EXT = $808E;
5171   GL_NORMAL_ARRAY_POINTER_EXT = $808F;
5172   GL_COLOR_ARRAY_POINTER_EXT = $8090;
5173   GL_INDEX_ARRAY_POINTER_EXT = $8091;
5174   GL_TEXTURE_COORD_ARRAY_POINTER_EXT = $8092;
5175   GL_EDGE_FLAG_ARRAY_POINTER_EXT = $8093;
5176
5177   // GL_EXT_vertex_shader
5178   GL_VERTEX_SHADER_EXT = $8780;
5179   GL_VERTEX_SHADER_BINDING_EXT = $8781;
5180   GL_OP_INDEX_EXT = $8782;
5181   GL_OP_NEGATE_EXT = $8783;
5182   GL_OP_DOT3_EXT = $8784;
5183   GL_OP_DOT4_EXT = $8785;
5184   GL_OP_MUL_EXT = $8786;
5185   GL_OP_ADD_EXT = $8787;
5186   GL_OP_MADD_EXT = $8788;
5187   GL_OP_FRAC_EXT = $8789;
5188   GL_OP_MAX_EXT = $878A;
5189   GL_OP_MIN_EXT = $878B;
5190   GL_OP_SET_GE_EXT = $878C;
5191   GL_OP_SET_LT_EXT = $878D;
5192   GL_OP_CLAMP_EXT = $878E;
5193   GL_OP_FLOOR_EXT = $878F;
5194   GL_OP_ROUND_EXT = $8790;
5195   GL_OP_EXP_BASE_2_EXT = $8791;
5196   GL_OP_LOG_BASE_2_EXT = $8792;
5197   GL_OP_POWER_EXT = $8793;
5198   GL_OP_RECIP_EXT = $8794;
5199   GL_OP_RECIP_SQRT_EXT = $8795;
5200   GL_OP_SUB_EXT = $8796;
5201   GL_OP_CROSS_PRODUCT_EXT = $8797;
5202   GL_OP_MULTIPLY_MATRIX_EXT = $8798;
5203   GL_OP_MOV_EXT = $8799;
5204   GL_OUTPUT_VERTEX_EXT = $879A;
5205   GL_OUTPUT_COLOR0_EXT = $879B;
5206   GL_OUTPUT_COLOR1_EXT = $879C;
5207   GL_OUTPUT_TEXTURE_COORD0_EXT = $879D;
5208   GL_OUTPUT_TEXTURE_COORD1_EXT = $879E;
5209   GL_OUTPUT_TEXTURE_COORD2_EXT = $879F;
5210   GL_OUTPUT_TEXTURE_COORD3_EXT = $87A0;
5211   GL_OUTPUT_TEXTURE_COORD4_EXT = $87A1;
5212   GL_OUTPUT_TEXTURE_COORD5_EXT = $87A2;
5213   GL_OUTPUT_TEXTURE_COORD6_EXT = $87A3;
5214   GL_OUTPUT_TEXTURE_COORD7_EXT = $87A4;
5215   GL_OUTPUT_TEXTURE_COORD8_EXT = $87A5;
5216   GL_OUTPUT_TEXTURE_COORD9_EXT = $87A6;
5217   GL_OUTPUT_TEXTURE_COORD10_EXT = $87A7;
5218   GL_OUTPUT_TEXTURE_COORD11_EXT = $87A8;
5219   GL_OUTPUT_TEXTURE_COORD12_EXT = $87A9;
5220   GL_OUTPUT_TEXTURE_COORD13_EXT = $87AA;
5221   GL_OUTPUT_TEXTURE_COORD14_EXT = $87AB;
5222   GL_OUTPUT_TEXTURE_COORD15_EXT = $87AC;
5223   GL_OUTPUT_TEXTURE_COORD16_EXT = $87AD;
5224   GL_OUTPUT_TEXTURE_COORD17_EXT = $87AE;
5225   GL_OUTPUT_TEXTURE_COORD18_EXT = $87AF;
5226   GL_OUTPUT_TEXTURE_COORD19_EXT = $87B0;
5227   GL_OUTPUT_TEXTURE_COORD20_EXT = $87B1;
5228   GL_OUTPUT_TEXTURE_COORD21_EXT = $87B2;
5229   GL_OUTPUT_TEXTURE_COORD22_EXT = $87B3;
5230   GL_OUTPUT_TEXTURE_COORD23_EXT = $87B4;
5231   GL_OUTPUT_TEXTURE_COORD24_EXT = $87B5;
5232   GL_OUTPUT_TEXTURE_COORD25_EXT = $87B6;
5233   GL_OUTPUT_TEXTURE_COORD26_EXT = $87B7;
5234   GL_OUTPUT_TEXTURE_COORD27_EXT = $87B8;
5235   GL_OUTPUT_TEXTURE_COORD28_EXT = $87B9;
5236   GL_OUTPUT_TEXTURE_COORD29_EXT = $87BA;
5237   GL_OUTPUT_TEXTURE_COORD30_EXT = $87BB;
5238   GL_OUTPUT_TEXTURE_COORD31_EXT = $87BC;
5239   GL_OUTPUT_FOG_EXT = $87BD;
5240   GL_SCALAR_EXT = $87BE;
5241   GL_VECTOR_EXT = $87BF;
5242   GL_MATRIX_EXT = $87C0;
5243   GL_VARIANT_EXT = $87C1;
5244   GL_INVARIANT_EXT = $87C2;
5245   GL_LOCAL_CONSTANT_EXT = $87C3;
5246   GL_LOCAL_EXT = $87C4;
5247   GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT = $87C5;
5248   GL_MAX_VERTEX_SHADER_VARIANTS_EXT = $87C6;
5249   GL_MAX_VERTEX_SHADER_INVARIANTS_EXT = $87C7;
5250   GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = $87C8;
5251   GL_MAX_VERTEX_SHADER_LOCALS_EXT = $87C9;
5252   GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT = $87CA;
5253   GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT = $87CB;
5254   GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = $87CC;
5255   GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT = $87CD;
5256   GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT = $87CE;
5257   GL_VERTEX_SHADER_INSTRUCTIONS_EXT = $87CF;
5258   GL_VERTEX_SHADER_VARIANTS_EXT = $87D0;
5259   GL_VERTEX_SHADER_INVARIANTS_EXT = $87D1;
5260   GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = $87D2;
5261   GL_VERTEX_SHADER_LOCALS_EXT = $87D3;
5262   GL_VERTEX_SHADER_OPTIMIZED_EXT = $87D4;
5263   GL_X_EXT = $87D5;
5264   GL_Y_EXT = $87D6;
5265   GL_Z_EXT = $87D7;
5266   GL_W_EXT = $87D8;
5267   GL_NEGATIVE_X_EXT = $87D9;
5268   GL_NEGATIVE_Y_EXT = $87DA;
5269   GL_NEGATIVE_Z_EXT = $87DB;
5270   GL_NEGATIVE_W_EXT = $87DC;
5271   GL_ZERO_EXT = $87DD;
5272   GL_ONE_EXT = $87DE;
5273   GL_NEGATIVE_ONE_EXT = $87DF;
5274   GL_NORMALIZED_RANGE_EXT = $87E0;
5275   GL_FULL_RANGE_EXT = $87E1;
5276   GL_CURRENT_VERTEX_EXT = $87E2;
5277   GL_MVP_MATRIX_EXT = $87E3;
5278   GL_VARIANT_VALUE_EXT = $87E4;
5279   GL_VARIANT_DATATYPE_EXT = $87E5;
5280   GL_VARIANT_ARRAY_STRIDE_EXT = $87E6;
5281   GL_VARIANT_ARRAY_TYPE_EXT = $87E7;
5282   GL_VARIANT_ARRAY_EXT = $87E8;
5283   GL_VARIANT_ARRAY_POINTER_EXT = $87E9;
5284   GL_INVARIANT_VALUE_EXT = $87EA;
5285   GL_INVARIANT_DATATYPE_EXT = $87EB;
5286   GL_LOCAL_CONSTANT_VALUE_EXT = $87EC;
5287   GL_LOCAL_CONSTANT_DATATYPE_EXT = $87ED;
5288
5289   // GL_EXT_vertex_weighting
5290   GL_MODELVIEW0_STACK_DEPTH_EXT = $0BA3;
5291   GL_MODELVIEW1_STACK_DEPTH_EXT = $8502;
5292   GL_MODELVIEW0_MATRIX_EXT = $0BA6;
5293   GL_MODELVIEW1_MATRIX_EXT = $8506;
5294   GL_VERTEX_WEIGHTING_EXT = $8509;
5295   GL_MODELVIEW0_EXT = $1700;
5296   GL_MODELVIEW1_EXT = $850A;
5297   GL_CURRENT_VERTEX_WEIGHT_EXT = $850B;
5298   GL_VERTEX_WEIGHT_ARRAY_EXT = $850C;
5299   GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT = $850D;
5300   GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT = $850E;
5301   GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT = $850F;
5302   GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT = $8510;
5303
5304   // GL_EXT_depth_bounds_test
5305   GL_DEPTH_BOUNDS_TEST_EXT = $8890;
5306   GL_DEPTH_BOUNDS_EXT = $8891;
5307
5308   // GL_EXT_texture_mirror_clamp
5309   GL_MIRROR_CLAMP_EXT = $8742;
5310   GL_MIRROR_CLAMP_TO_EDGE_EXT = $8743;
5311   GL_MIRROR_CLAMP_TO_BORDER_EXT = $8912;
5312
5313   // GL_EXT_blend_equation_separate
5314   GL_BLEND_EQUATION_RGB_EXT = $8009;
5315   GL_BLEND_EQUATION_ALPHA_EXT = $883D;
5316
5317   // GL_EXT_pixel_buffer_object
5318   GL_PIXEL_PACK_BUFFER_EXT = $88EB;
5319   GL_PIXEL_UNPACK_BUFFER_EXT = $88EC;
5320   GL_PIXEL_PACK_BUFFER_BINDING_EXT = $88ED;
5321   GL_PIXEL_UNPACK_BUFFER_BINDING_EXT = $88EF;
5322
5323   // GL_EXT_stencil_clear_tag
5324   GL_STENCIL_TAG_BITS_EXT = $88F2;
5325   GL_STENCIL_CLEAR_TAG_VALUE_EXT = $88F3;
5326
5327   // GL_EXT_packed_depth_stencil
5328   GL_DEPTH_STENCIL_EXT = $84F9;
5329   GL_UNSIGNED_INT_24_8_EXT = $84FA;
5330   GL_DEPTH24_STENCIL8_EXT = $88F0;
5331   GL_TEXTURE_STENCIL_SIZE_EXT = $88F1;
5332
5333   // GL_EXT_texture_sRGB
5334   GL_SRGB_EXT = $8C40;
5335   GL_SRGB8_EXT = $8C41;
5336   GL_SRGB_ALPHA_EXT = $8C42;
5337   GL_SRGB8_ALPHA8_EXT = $8C43;
5338   GL_SLUMINANCE_ALPHA_EXT = $8C44;
5339   GL_SLUMINANCE8_ALPHA8_EXT = $8C45;
5340   GL_SLUMINANCE_EXT = $8C46;
5341   GL_SLUMINANCE8_EXT = $8C47;
5342   GL_COMPRESSED_SRGB_EXT = $8C48;
5343   GL_COMPRESSED_SRGB_ALPHA_EXT = $8C49;
5344   GL_COMPRESSED_SLUMINANCE_EXT = $8C4A;
5345   GL_COMPRESSED_SLUMINANCE_ALPHA_EXT = $8C4B;
5346   GL_COMPRESSED_SRGB_S3TC_DXT1_EXT = $8C4C;
5347   GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT = $8C4D;
5348   GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT = $8C4E;
5349   GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT = $8C4F;
5350
5351   // GL_EXT_framebuffer_blit
5352   GL_READ_FRAMEBUFFER_EXT = $8CA8;
5353   GL_DRAW_FRAMEBUFFER_EXT = $8CA9;
5354   GL_READ_FRAMEBUFFER_BINDING_EXT = GL_FRAMEBUFFER_BINDING_EXT;
5355   GL_DRAW_FRAMEBUFFER_BINDING_EXT = $8CAA;
5356
5357   // GL_EXT_framebuffer_multisample
5358   GL_RENDERBUFFER_SAMPLES_EXT = $8CAB;
5359   GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT = $8D56;
5360   GL_MAX_SAMPLES_EXT = $8D57;
5361
5362   // GL_EXT_timer_query
5363   GL_TIME_ELAPSED_EXT = $88BF;
5364
5365   // GL_EXT_bindable_uniform
5366   GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT = $8DE2;
5367   GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT = $8DE3;
5368   GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT = $8DE4;
5369   GL_MAX_BINDABLE_UNIFORM_SIZE_EXT = $8DED;
5370   GL_UNIFORM_BUFFER_EXT = $8DEE;
5371   GL_UNIFORM_BUFFER_BINDING_EXT = $8DEF;
5372
5373   // GL_EXT_framebuffer_sRGB
5374   GLX_FRAMEBUFFER_SRGB_CAPABLE_EXT = $20B2;
5375   WGL_FRAMEBUFFER_SRGB_CAPABLE_EXT = $20A9;
5376   GL_FRAMEBUFFER_SRGB_EXT = $8DB9;
5377   GL_FRAMEBUFFER_SRGB_CAPABLE_EXT = $8DBA;
5378
5379   // GL_EXT_geometry_shader4
5380   GL_GEOMETRY_SHADER_EXT = $8DD9;
5381   GL_GEOMETRY_VERTICES_OUT_EXT = $8DDA;
5382   GL_GEOMETRY_INPUT_TYPE_EXT = $8DDB;
5383   GL_GEOMETRY_OUTPUT_TYPE_EXT = $8DDC;
5384   GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT = $8C29;
5385   GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT = $8DDD;
5386   GL_MAX_VERTEX_VARYING_COMPONENTS_EXT = $8DDE;
5387   GL_MAX_VARYING_COMPONENTS_EXT = $8B4B;
5388   GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT = $8DDF;
5389   GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT = $8DE0;
5390   GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT = $8DE1;
5391   GL_LINES_ADJACENCY_EXT = $A;
5392   GL_LINE_STRIP_ADJACENCY_EXT = $B;
5393   GL_TRIANGLES_ADJACENCY_EXT = $C;
5394   GL_TRIANGLE_STRIP_ADJACENCY_EXT = $D;
5395   GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT = $8DA8;
5396   GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT = $8DA9;
5397   GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT = $8DA7;
5398   GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT = $8CD4;
5399   GL_PROGRAM_POINT_SIZE_EXT = $8642;
5400
5401   // GL_EXT_gpu_shader4
5402   GL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT = $88FD;
5403   GL_SAMPLER_1D_ARRAY_EXT = $8DC0;
5404   GL_SAMPLER_2D_ARRAY_EXT = $8DC1;
5405   GL_SAMPLER_BUFFER_EXT = $8DC2;
5406   GL_SAMPLER_1D_ARRAY_SHADOW_EXT = $8DC3;
5407   GL_SAMPLER_2D_ARRAY_SHADOW_EXT = $8DC4;
5408   GL_SAMPLER_CUBE_SHADOW_EXT = $8DC5;
5409   GL_UNSIGNED_INT_VEC2_EXT = $8DC6;
5410   GL_UNSIGNED_INT_VEC3_EXT = $8DC7;
5411   GL_UNSIGNED_INT_VEC4_EXT = $8DC8;
5412   GL_INT_SAMPLER_1D_EXT = $8DC9;
5413   GL_INT_SAMPLER_2D_EXT = $8DCA;
5414   GL_INT_SAMPLER_3D_EXT = $8DCB;
5415   GL_INT_SAMPLER_CUBE_EXT = $8DCC;
5416   GL_INT_SAMPLER_2D_RECT_EXT = $8DCD;
5417   GL_INT_SAMPLER_1D_ARRAY_EXT = $8DCE;
5418   GL_INT_SAMPLER_2D_ARRAY_EXT = $8DCF;
5419   GL_INT_SAMPLER_BUFFER_EXT = $8DD0;
5420   GL_UNSIGNED_INT_SAMPLER_1D_EXT = $8DD1;
5421   GL_UNSIGNED_INT_SAMPLER_2D_EXT = $8DD2;
5422   GL_UNSIGNED_INT_SAMPLER_3D_EXT = $8DD3;
5423   GL_UNSIGNED_INT_SAMPLER_CUBE_EXT = $8DD4;
5424   GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT = $8DD5;
5425   GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT = $8DD6;
5426   GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT = $8DD7;
5427   GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT = $8DD8;
5428   GL_MIN_PROGRAM_TEXEL_OFFSET_EXT = $8904;
5429   GL_MAX_PROGRAM_TEXEL_OFFSET_EXT = $8905;
5430
5431   // GL_EXT_packed_float
5432   GL_R11F_G11F_B10F_EXT = $8C3A;
5433   GL_UNSIGNED_INT_10F_11F_11F_REV_EXT = $8C3B;
5434   RGBA_SIGNED_COMPONENTS_EXT = $8C3C;
5435   WGL_TYPE_RGBA_UNSIGNED_FLOAT_EXT = $20A8;
5436   GLX_RGBA_UNSIGNED_FLOAT_TYPE_EXT = $20B1;
5437   GLX_RGBA_UNSIGNED_FLOAT_BIT_EXT = $00000008;
5438
5439   // GL_EXT_texture_array
5440   GL_TEXTURE_1D_ARRAY_EXT = $8C18;
5441   GL_TEXTURE_2D_ARRAY_EXT = $8C1A;
5442   GL_PROXY_TEXTURE_2D_ARRAY_EXT = $8C1B;
5443   GL_PROXY_TEXTURE_1D_ARRAY_EXT = $8C19;
5444   GL_TEXTURE_BINDING_1D_ARRAY_EXT = $8C1C;
5445   GL_TEXTURE_BINDING_2D_ARRAY_EXT = $8C1D;
5446   GL_MAX_ARRAY_TEXTURE_LAYERS_EXT = $88FF;
5447   GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT = $884E;
5448
5449   // GL_EXT_texture_buffer_object
5450   GL_TEXTURE_BUFFER_EXT = $8C2A;
5451   GL_MAX_TEXTURE_BUFFER_SIZE_EXT = $8C2B;
5452   GL_TEXTURE_BINDING_BUFFER_EXT = $8C2C;
5453   GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT = $8C2D;
5454   GL_TEXTURE_BUFFER_FORMAT_EXT = $8C2E;
5455
5456   // GL_EXT_texture_compression_latc
5457   GL_COMPRESSED_LUMINANCE_LATC1_EXT = $8C70;
5458   GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT = $8C71;
5459   GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT = $8C72;
5460   GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT = $8C73;
5461
5462   // GL_EXT_texture_compression_rgtc
5463   GL_COMPRESSED_RED_RGTC1_EXT = $8DBB;
5464   GL_COMPRESSED_SIGNED_RED_RGTC1_EXT = $8DBC;
5465   GL_COMPRESSED_RED_GREEN_RGTC2_EXT = $8DBD;
5466   GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT = $8DBE;
5467
5468   // GL_EXT_texture_integer
5469   GL_RGBA_INTEGER_MODE_EXT = $8D9E;
5470   GL_RGBA32UI_EXT = $8D70;
5471   GL_RGB32UI_EXT = $8D71;
5472   GL_ALPHA32UI_EXT = $8D72;
5473   GL_INTENSITY32UI_EXT = $8D73;
5474   GL_LUMINANCE32UI_EXT = $8D74;
5475   GL_LUMINANCE_ALPHA32UI_EXT = $8D75;
5476   GL_RGBA16UI_EXT = $8D76;
5477   GL_RGB16UI_EXT = $8D77;
5478   GL_ALPHA16UI_EXT = $8D78;
5479   GL_INTENSITY16UI_EXT = $8D79;
5480   GL_LUMINANCE16UI_EXT = $8D7A;
5481   GL_LUMINANCE_ALPHA16UI_EXT = $8D7B;
5482   GL_RGBA8UI_EXT = $8D7C;
5483   GL_RGB8UI_EXT = $8D7D;
5484   GL_ALPHA8UI_EXT = $8D7E;
5485   GL_INTENSITY8UI_EXT = $8D7F;
5486   GL_LUMINANCE8UI_EXT = $8D80;
5487   GL_LUMINANCE_ALPHA8UI_EXT = $8D81;
5488   GL_RGBA32I_EXT = $8D82;
5489   GL_RGB32I_EXT = $8D83;
5490   GL_ALPHA32I_EXT = $8D84;
5491   GL_INTENSITY32I_EXT = $8D85;
5492   GL_LUMINANCE32I_EXT = $8D86;
5493   GL_LUMINANCE_ALPHA32I_EXT = $8D87;
5494   GL_RGBA16I_EXT = $8D88;
5495   GL_RGB16I_EXT = $8D89;
5496   GL_ALPHA16I_EXT = $8D8A;
5497   GL_INTENSITY16I_EXT = $8D8B;
5498   GL_LUMINANCE16I_EXT = $8D8C;
5499   GL_LUMINANCE_ALPHA16I_EXT = $8D8D;
5500   GL_RGBA8I_EXT = $8D8E;
5501   GL_RGB8I_EXT = $8D8F;
5502   GL_ALPHA8I_EXT = $8D90;
5503   GL_INTENSITY8I_EXT = $8D91;
5504   GL_LUMINANCE8I_EXT = $8D92;
5505   GL_LUMINANCE_ALPHA8I_EXT = $8D93;
5506   GL_RED_INTEGER_EXT = $8D94;
5507   GL_GREEN_INTEGER_EXT = $8D95;
5508   GL_BLUE_INTEGER_EXT = $8D96;
5509   GL_ALPHA_INTEGER_EXT = $8D97;
5510   GL_RGB_INTEGER_EXT = $8D98;
5511   GL_RGBA_INTEGER_EXT = $8D99;
5512   GL_BGR_INTEGER_EXT = $8D9A;
5513   GL_BGRA_INTEGER_EXT = $8D9B;
5514   GL_LUMINANCE_INTEGER_EXT = $8D9C;
5515   GL_LUMINANCE_ALPHA_INTEGER_EXT = $8D9D;
5516
5517   // GL_EXT_texture_shared_exponent
5518   GL_RGB9_E5_EXT = $8C3D;
5519   GL_UNSIGNED_INT_5_9_9_9_REV_EXT = $8C3E;
5520   GL_TEXTURE_SHARED_SIZE_EXT = $8C3F;
5521
5522   // GL_EXT_transform_feedback
5523   GL_TRANSFORM_FEEDBACK_BUFFER_EXT = $8C8E;
5524   GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT = $8C84;
5525   GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT = $8C85;
5526   GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT = $8C8F;
5527   GL_INTERLEAVED_ATTRIBS_EXT = $8C8C;
5528   GL_SEPARATE_ATTRIBS_EXT = $8C8D;
5529   GL_PRIMITIVES_GENERATED_EXT = $8C87;
5530   GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT = $8C88;
5531   GL_RASTERIZER_DISCARD_EXT = $8C89;
5532   GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT = $8C8A;
5533   GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT = $8C8B;
5534   GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT = $8C80;
5535   GL_TRANSFORM_FEEDBACK_VARYINGS_EXT = $8C83;
5536   GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT = $8C7F;
5537   GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT = $8C76;
5538
5539   // GL_EXT_direct_state_access
5540   GL_PROGRAM_MATRIX_EXT = $8E2D;
5541   GL_TRANSPOSE_PROGRAM_MATRIX_EXT = $8E2E;
5542   GL_PROGRAM_MATRIX_STACK_DEPTH_EXT = $8E2F;
5543
5544   // GL_EXT_texture_swizzle
5545   GL_TEXTURE_SWIZZLE_R_EXT = $8E42;
5546   GL_TEXTURE_SWIZZLE_G_EXT = $8E43;
5547   GL_TEXTURE_SWIZZLE_B_EXT = $8E44;
5548   GL_TEXTURE_SWIZZLE_A_EXT = $8E45;
5549   GL_TEXTURE_SWIZZLE_RGBA_EXT = $8E46;
5550
5551   // GL_EXT_provoking_vertex
5552   GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT = $8E4C;
5553   GL_FIRST_VERTEX_CONVENTION_EXT = $8E4D;
5554   GL_LAST_VERTEX_CONVENTION_EXT = $8E4E;
5555   GL_PROVOKING_VERTEX_EXT = $8E4F;
5556
5557   // GL_EXT_texture_snorm
5558   GL_ALPHA_SNORM = $9010;
5559   GL_LUMINANCE_SNORM = $9011;
5560   GL_LUMINANCE_ALPHA_SNORM = $9012;
5561   GL_INTENSITY_SNORM = $9013;
5562   GL_ALPHA8_SNORM = $9014;
5563   GL_LUMINANCE8_SNORM = $9015;
5564   GL_LUMINANCE8_ALPHA8_SNORM = $9016;
5565   GL_INTENSITY8_SNORM = $9017;
5566   GL_ALPHA16_SNORM = $9018;
5567   GL_LUMINANCE16_SNORM = $9019;
5568   GL_LUMINANCE16_ALPHA16_SNORM = $901A;
5569   GL_INTENSITY16_SNORM = $901B;
5570   { reuse GL_RED_SNORM }
5571   { reuse GL_RG_SNORM }
5572   { reuse GL_RGB_SNORM }
5573   { reuse GL_RGBA_SNORM }
5574   { reuse GL_R8_SNORM }
5575   { reuse GL_RG8_SNORM }
5576   { reuse GL_RGB8_SNORM }
5577   { reuse GL_RGBA8_SNORM }
5578   { reuse GL_R16_SNORM }
5579   { reuse GL_RG16_SNORM }
5580   { reuse GL_RGB16_SNORM }
5581   { reuse GL_RGBA16_SNORM }
5582   { reuse GL_SIGNED_NORMALIZED }
5583
5584   // GL_EXT_separate_shader_objects
5585   GL_ACTIVE_PROGRAM_EXT = $8B8D;
5586
5587   // GL_EXT_shader_image_load_store
5588   GL_MAX_IMAGE_UNITS_EXT = $8F38;
5589   GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS_EXT = $8F39;
5590   GL_IMAGE_BINDING_NAME_EXT = $8F3A;
5591   GL_IMAGE_BINDING_LEVEL_EXT = $8F3B;
5592   GL_IMAGE_BINDING_LAYERED_EXT = $8F3C;
5593   GL_IMAGE_BINDING_LAYER_EXT = $8F3D;
5594   GL_IMAGE_BINDING_ACCESS_EXT = $8F3E;
5595   GL_IMAGE_1D_EXT = $904C;
5596   GL_IMAGE_2D_EXT = $904D;
5597   GL_IMAGE_3D_EXT = $904E;
5598   GL_IMAGE_2D_RECT_EXT = $904F;
5599   GL_IMAGE_CUBE_EXT = $9050;
5600   GL_IMAGE_BUFFER_EXT = $9051;
5601   GL_IMAGE_1D_ARRAY_EXT = $9052;
5602   GL_IMAGE_2D_ARRAY_EXT = $9053;
5603   GL_IMAGE_CUBE_MAP_ARRAY_EXT = $9054;
5604   GL_IMAGE_2D_MULTISAMPLE_EXT = $9055;
5605   GL_IMAGE_2D_MULTISAMPLE_ARRAY_EXT = $9056;
5606   GL_INT_IMAGE_1D_EXT = $9057;
5607   GL_INT_IMAGE_2D_EXT = $9058;
5608   GL_INT_IMAGE_3D_EXT = $9059;
5609   GL_INT_IMAGE_2D_RECT_EXT = $905A;
5610   GL_INT_IMAGE_CUBE_EXT = $905B;
5611   GL_INT_IMAGE_BUFFER_EXT = $905C;
5612   GL_INT_IMAGE_1D_ARRAY_EXT = $905D;
5613   GL_INT_IMAGE_2D_ARRAY_EXT = $905E;
5614   GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT = $905F;
5615   GL_INT_IMAGE_2D_MULTISAMPLE_EXT = $9060;
5616   GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT = $9061;
5617   GL_UNSIGNED_INT_IMAGE_1D_EXT = $9062;
5618   GL_UNSIGNED_INT_IMAGE_2D_EXT = $9063;
5619   GL_UNSIGNED_INT_IMAGE_3D_EXT = $9064;
5620   GL_UNSIGNED_INT_IMAGE_2D_RECT_EXT = $9065;
5621   GL_UNSIGNED_INT_IMAGE_CUBE_EXT = $9066;
5622   GL_UNSIGNED_INT_IMAGE_BUFFER_EXT = $9067;
5623   GL_UNSIGNED_INT_IMAGE_1D_ARRAY_EXT = $9068;
5624   GL_UNSIGNED_INT_IMAGE_2D_ARRAY_EXT = $9069;
5625   GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT = $906A;
5626   GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_EXT = $906B;
5627   GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT = $906C;
5628   GL_MAX_IMAGE_SAMPLES_EXT = $906D;
5629   GL_IMAGE_BINDING_FORMAT_EXT = $906E;
5630   GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_EXT = $00000001;
5631   GL_ELEMENT_ARRAY_BARRIER_BIT_EXT = $00000002;
5632   GL_UNIFORM_BARRIER_BIT_EXT = $00000004;
5633   GL_TEXTURE_FETCH_BARRIER_BIT_EXT = $00000008;
5634   GL_SHADER_IMAGE_ACCESS_BARRIER_BIT_EXT = $00000020;
5635   GL_COMMAND_BARRIER_BIT_EXT = $00000040;
5636   GL_PIXEL_BUFFER_BARRIER_BIT_EXT = $00000080;
5637   GL_TEXTURE_UPDATE_BARRIER_BIT_EXT = $00000100;
5638   GL_BUFFER_UPDATE_BARRIER_BIT_EXT = $00000200;
5639   GL_FRAMEBUFFER_BARRIER_BIT_EXT = $00000400;
5640   GL_TRANSFORM_FEEDBACK_BARRIER_BIT_EXT = $00000800;
5641   GL_ATOMIC_COUNTER_BARRIER_BIT_EXT = $00001000;
5642   GL_ALL_BARRIER_BITS_EXT = $FFFFFFFF;
5643
5644   // GL_EXT_vertex_attrib_64bit
5645   { reuse GL_DOUBLE }
5646   GL_DOUBLE_VEC2_EXT = $8FFC;
5647   GL_DOUBLE_VEC3_EXT = $8FFD;
5648   GL_DOUBLE_VEC4_EXT = $8FFE;
5649   GL_DOUBLE_MAT2_EXT = $8F46;
5650   GL_DOUBLE_MAT3_EXT = $8F47;
5651   GL_DOUBLE_MAT4_EXT = $8F48;
5652   GL_DOUBLE_MAT2x3_EXT = $8F49;
5653   GL_DOUBLE_MAT2x4_EXT = $8F4A;
5654   GL_DOUBLE_MAT3x2_EXT = $8F4B;
5655   GL_DOUBLE_MAT3x4_EXT = $8F4C;
5656   GL_DOUBLE_MAT4x2_EXT = $8F4D;
5657   GL_DOUBLE_MAT4x3_EXT = $8F4E;
5658
5659   // GL_EXT_texture_sRGB_decode
5660   GL_TEXTURE_SRGB_DECODE_EXT = $8A48;
5661   GL_DECODE_EXT = $8A49;
5662   GL_SKIP_DECODE_EXT = $8A4A;
5663
5664   // GL_NV_texture_multisample
5665   GL_TEXTURE_COVERAGE_SAMPLES_NV    = $9045;
5666   GL_TEXTURE_COLOR_SAMPLES_NV       = $9046;
5667
5668   // GL_AMD_blend_minmax_factor
5669   GL_FACTOR_MIN_AMD                 = $901C;
5670   GL_FACTOR_MAX_AMD                 = $901D;
5671
5672   // GL_AMD_sample_positions
5673   GL_SUBSAMPLE_DISTANCE_AMD         = $883F;
5674
5675   // GL_EXT_x11_sync_object
5676   GL_SYNC_X11_FENCE_EXT             = $90E1;
5677
5678   // GL_EXT_framebuffer_multisample_blit_scaled
5679   GL_SCALED_RESOLVE_FASTEST_EXT     = $90BA;
5680   GL_SCALED_RESOLVE_NICEST_EXT      = $90BB;
5681
5682   // (4.3) GL_NV_path_rendering
5683         GL_PATH_FORMAT_SVG_NV            = $9070;
5684         GL_PATH_FORMAT_PS_NV             = $9071;
5685         GL_STANDARD_FONT_NAME_NV         = $9072;
5686         GL_SYSTEM_FONT_NAME_NV           = $9073;
5687         GL_FILE_NAME_NV                  = $9074;
5688         GL_PATH_STROKE_WIDTH_NV          = $9075;
5689         GL_PATH_END_CAPS_NV              = $9076;
5690         GL_PATH_INITIAL_END_CAP_NV       = $9077;
5691         GL_PATH_TERMINAL_END_CAP_NV      = $9078;
5692         GL_PATH_JOIN_STYLE_NV            = $9079;
5693         GL_PATH_MITER_LIMIT_NV           = $907A;
5694         GL_PATH_DASH_CAPS_NV             = $907B;
5695         GL_PATH_INITIAL_DASH_CAP_NV      = $907C;
5696         GL_PATH_TERMINAL_DASH_CAP_NV     = $907D;
5697         GL_PATH_DASH_OFFSET_NV           = $907E;
5698         GL_PATH_CLIENT_LENGTH_NV         = $907F;
5699         GL_PATH_FILL_MODE_NV             = $9080;
5700         GL_PATH_FILL_MASK_NV             = $9081;
5701         GL_PATH_FILL_COVER_MODE_NV       = $9082;
5702         GL_PATH_STROKE_COVER_MODE_NV     = $9083;
5703         GL_PATH_STROKE_MASK_NV           = $9084;
5704         GL_PATH_SAMPLE_QUALITY_NV        = $9085;
5705         GL_PATH_STROKE_BOUND_NV          = $9086;
5706         GL_PATH_STROKE_OVERSAMPLE_COUNT_NV= $9087;
5707         GL_COUNT_UP_NV                   = $9088;
5708         GL_COUNT_DOWN_NV                 = $9089;
5709         GL_PATH_OBJECT_BOUNDING_BOX_NV   = $908A;
5710         GL_CONVEX_HULL_NV                = $908B;
5711         GL_MULTI_HULLS_NV                = $908C;
5712         GL_BOUNDING_BOX_NV               = $908D;
5713         GL_TRANSLATE_X_NV                = $908E;
5714         GL_TRANSLATE_Y_NV                = $908F;
5715         GL_TRANSLATE_2D_NV               = $9090;
5716         GL_TRANSLATE_3D_NV               = $9091;
5717         GL_AFFINE_2D_NV                  = $9092;
5718         GL_PROJECTIVE_2D_NV              = $9093;
5719         GL_AFFINE_3D_NV                  = $9094;
5720         GL_PROJECTIVE_3D_NV              = $9095;
5721         GL_TRANSPOSE_AFFINE_2D_NV        = $9096;
5722         GL_TRANSPOSE_PROJECTIVE_2D_NV    = $9097;
5723         GL_TRANSPOSE_AFFINE_3D_NV        = $9098;
5724         GL_TRANSPOSE_PROJECTIVE_3D_NV    = $9099;
5725         GL_UTF8_NV                       = $909A;
5726         GL_UTF16_NV                      = $909B;
5727         GL_BOUNDING_BOX_OF_BOUNDING_BOXES_NV= $909C;
5728         GL_PATH_COMMAND_COUNT_NV         = $909D;
5729         GL_PATH_COORD_COUNT_NV           = $909E;
5730   GL_PATH_DASH_ARRAY_COUNT_NV      = $909F;
5731   GL_PATH_COMPUTED_LENGTH_NV       = $90A0;
5732   GL_PATH_FILL_BOUNDING_BOX_NV     = $90A1;
5733   GL_PATH_STROKE_BOUNDING_BOX_NV   = $90A2;
5734   GL_SQUARE_NV                     = $90A3;
5735   GL_ROUND_NV                      = $90A4;
5736   GL_TRIANGULAR_NV                 = $90A5;
5737   GL_BEVEL_NV                      = $90A6;
5738   GL_MITER_REVERT_NV               = $90A7;
5739   GL_MITER_TRUNCATE_NV             = $90A8;
5740   GL_SKIP_MISSING_GLYPH_NV         = $90A9;
5741   GL_USE_MISSING_GLYPH_NV          = $90AA;
5742   GL_PATH_ERROR_POSITION_NV        = $90AB;
5743   GL_PATH_FOG_GEN_MODE_NV          = $90AC;
5744   GL_ACCUM_ADJACENT_PAIRS_NV       = $90AD;
5745   GL_ADJACENT_PAIRS_NV             = $90AE;
5746   GL_FIRST_TO_REST_NV              = $90AF;
5747   GL_PATH_GEN_MODE_NV              = $90B0;
5748   GL_PATH_GEN_COEFF_NV             = $90B1;
5749   GL_PATH_GEN_COLOR_FORMAT_NV      = $90B2;
5750   GL_PATH_GEN_COMPONENTS_NV        = $90B3;
5751   GL_PATH_STENCIL_FUNC_NV          = $90B7;
5752   GL_PATH_STENCIL_REF_NV           = $90B8;
5753   GL_PATH_STENCIL_VALUE_MASK_NV    = $90B9;
5754   GL_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV= $90BD;
5755   GL_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV= $90BE;
5756   GL_PATH_COVER_DEPTH_FUNC_NV      = $90BF;
5757   GL_PATH_DASH_OFFSET_RESET_NV     = $90B4;
5758   GL_MOVE_TO_RESETS_NV             = $90B5;
5759   GL_MOVE_TO_CONTINUES_NV          = $90B6;
5760   GL_CLOSE_PATH_NV                 = $00;
5761   GL_MOVE_TO_NV                    = $02;
5762   GL_RELATIVE_MOVE_TO_NV           = $03;
5763   GL_LINE_TO_NV                    = $04;
5764   GL_RELATIVE_LINE_TO_NV           = $05;
5765   GL_HORIZONTAL_LINE_TO_NV         = $06;
5766   GL_RELATIVE_HORIZONTAL_LINE_TO_NV= $07;
5767   GL_VERTICAL_LINE_TO_NV           = $08;
5768   GL_RELATIVE_VERTICAL_LINE_TO_NV  = $09;
5769   GL_QUADRATIC_CURVE_TO_NV         = $0A;
5770   GL_RELATIVE_QUADRATIC_CURVE_TO_NV= $0B;
5771   GL_CUBIC_CURVE_TO_NV             = $0C;
5772   GL_RELATIVE_CUBIC_CURVE_TO_NV    = $0D;
5773   GL_SMOOTH_QUADRATIC_CURVE_TO_NV  = $0E;
5774   GL_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV= $0F;
5775   GL_SMOOTH_CUBIC_CURVE_TO_NV      = $10;
5776   GL_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV= $11;
5777   GL_SMALL_CCW_ARC_TO_NV           = $12;
5778   GL_RELATIVE_SMALL_CCW_ARC_TO_NV  = $13;
5779   GL_SMALL_CW_ARC_TO_NV            = $14;
5780   GL_RELATIVE_SMALL_CW_ARC_TO_NV   = $15;
5781   GL_LARGE_CCW_ARC_TO_NV           = $16;
5782   GL_RELATIVE_LARGE_CCW_ARC_TO_NV  = $17;
5783   GL_LARGE_CW_ARC_TO_NV            = $18;
5784   GL_RELATIVE_LARGE_CW_ARC_TO_NV   = $19;
5785   GL_RESTART_PATH_NV               = $F0;
5786   GL_DUP_FIRST_CUBIC_CURVE_TO_NV   = $F2;
5787   GL_DUP_LAST_CUBIC_CURVE_TO_NV    = $F4;
5788   GL_RECT_NV                       = $F6;
5789   GL_CIRCULAR_CCW_ARC_TO_NV        = $F8;
5790   GL_CIRCULAR_CW_ARC_TO_NV         = $FA;
5791   GL_CIRCULAR_TANGENT_ARC_TO_NV    = $FC;
5792   GL_ARC_TO_NV                     = $FE;
5793   GL_RELATIVE_ARC_TO_NV            = $FF;
5794   GL_BOLD_BIT_NV                   = $01;
5795   GL_ITALIC_BIT_NV                 = $02;
5796   GL_GLYPH_WIDTH_BIT_NV            = $01;
5797   GL_GLYPH_HEIGHT_BIT_NV           = $02;
5798   GL_GLYPH_HORIZONTAL_BEARING_X_BIT_NV= $04;
5799   GL_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV= $08;
5800   GL_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV= $10;
5801   GL_GLYPH_VERTICAL_BEARING_X_BIT_NV= $20;
5802   GL_GLYPH_VERTICAL_BEARING_Y_BIT_NV= $40;
5803   GL_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV= $80;
5804   GL_GLYPH_HAS_KERNING_NV          = $100;
5805   GL_FONT_X_MIN_BOUNDS_NV          = $00010000;
5806   GL_FONT_Y_MIN_BOUNDS_NV          = $00020000;
5807   GL_FONT_X_MAX_BOUNDS_NV          = $00040000;
5808   GL_FONT_Y_MAX_BOUNDS_NV          = $00080000;
5809   GL_FONT_UNITS_PER_EM_NV          = $00100000;
5810   GL_FONT_ASCENDER_NV              = $00200000;
5811   GL_FONT_DESCENDER_NV             = $00400000;
5812   GL_FONT_HEIGHT_NV                = $00800000;
5813   GL_FONT_MAX_ADVANCE_WIDTH_NV     = $01000000;
5814   GL_FONT_MAX_ADVANCE_HEIGHT_NV    = $02000000;
5815   GL_FONT_UNDERLINE_POSITION_NV    = $04000000;
5816   GL_FONT_UNDERLINE_THICKNESS_NV   = $08000000;
5817   GL_FONT_HAS_KERNING_NV           = $10000000;
5818
5819   // (4.3) GL_AMD_pinned_memory
5820   GL_EXTERNAL_VIRTUAL_MEMORY_BUFFER_AMD= $9160;
5821
5822   // (4.3) GL_AMD_stencil_operation_extended
5823   GL_SET_AMD                       = $874A;
5824   GL_REPLACE_VALUE_AMD             = $874B;
5825   GL_STENCIL_OP_VALUE_AMD          = $874C;
5826   GL_STENCIL_BACK_OP_VALUE_AMD     = $874D;
5827
5828   // (4.3) GL_AMD_vertex_shader_viewport_index
5829
5830   // (4.3) GL_AMD_vertex_shader_layer
5831
5832   // (4.3) GL_NV_bindless_texture
5833
5834   // (4.3) GL_NV_shader_atomic_float
5835
5836   // (4.3) GL_AMD_query_buffer_object
5837   GL_QUERY_BUFFER_AMD              = $9192;
5838   GL_QUERY_BUFFER_BINDING_AMD      = $9193;
5839   GL_QUERY_RESULT_NO_WAIT_AMD      = $9194;
5840
5841   // GL_FfdMaskSGIX
5842   GL_TEXTURE_DEFORMATION_BIT_SGIX = $00000001;
5843   GL_GEOMETRY_DEFORMATION_BIT_SGIX = $00000002;
5844
5845   // GL_HP_convolution_border_modes
5846   GL_IGNORE_BORDER_HP = $8150;
5847   GL_CONSTANT_BORDER_HP = $8151;
5848   GL_REPLICATE_BORDER_HP = $8153;
5849   GL_CONVOLUTION_BORDER_COLOR_HP = $8154;
5850
5851   // GL_HP_image_transform
5852   GL_IMAGE_SCALE_X_HP = $8155;
5853   GL_IMAGE_SCALE_Y_HP = $8156;
5854   GL_IMAGE_TRANSLATE_X_HP = $8157;
5855   GL_IMAGE_TRANSLATE_Y_HP = $8158;
5856   GL_IMAGE_ROTATE_ANGLE_HP = $8159;
5857   GL_IMAGE_ROTATE_ORIGIN_X_HP = $815A;
5858   GL_IMAGE_ROTATE_ORIGIN_Y_HP = $815B;
5859   GL_IMAGE_MAG_FILTER_HP = $815C;
5860   GL_IMAGE_MIN_FILTER_HP = $815D;
5861   GL_IMAGE_CUBIC_WEIGHT_HP = $815E;
5862   GL_CUBIC_HP = $815F;
5863   GL_AVERAGE_HP = $8160;
5864   GL_IMAGE_TRANSFORM_2D_HP = $8161;
5865   GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP = $8162;
5866   GL_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP = $8163;
5867
5868   // GL_HP_occlusion_test
5869   GL_OCCLUSION_TEST_HP = $8165;
5870   GL_OCCLUSION_TEST_RESULT_HP = $8166;
5871
5872   // GL_HP_texture_lighting
5873   GL_TEXTURE_LIGHTING_MODE_HP = $8167;
5874   GL_TEXTURE_POST_SPECULAR_HP = $8168;
5875   GL_TEXTURE_PRE_SPECULAR_HP = $8169;
5876
5877   // GL_IBM_cull_vertex
5878   GL_CULL_VERTEX_IBM = 103050;
5879
5880   // GL_IBM_rasterpos_clip
5881   GL_RASTER_POSITION_UNCLIPPED_IBM = $19262;
5882
5883   // GL_IBM_texture_mirrored_repeat
5884   GL_MIRRORED_REPEAT_IBM = $8370;
5885
5886   // GL_IBM_vertex_array_lists
5887   GL_VERTEX_ARRAY_LIST_IBM = 103070;
5888   GL_NORMAL_ARRAY_LIST_IBM = 103071;
5889   GL_COLOR_ARRAY_LIST_IBM = 103072;
5890   GL_INDEX_ARRAY_LIST_IBM = 103073;
5891   GL_TEXTURE_COORD_ARRAY_LIST_IBM = 103074;
5892   GL_EDGE_FLAG_ARRAY_LIST_IBM = 103075;
5893   GL_FOG_COORDINATE_ARRAY_LIST_IBM = 103076;
5894   GL_SECONDARY_COLOR_ARRAY_LIST_IBM = 103077;
5895   GL_VERTEX_ARRAY_LIST_STRIDE_IBM = 103080;
5896   GL_NORMAL_ARRAY_LIST_STRIDE_IBM = 103081;
5897   GL_COLOR_ARRAY_LIST_STRIDE_IBM = 103082;
5898   GL_INDEX_ARRAY_LIST_STRIDE_IBM = 103083;
5899   GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM = 103084;
5900   GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM = 103085;
5901   GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM = 103086;
5902   GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM = 103087;
5903
5904   // GL_INGR_color_clamp
5905   GL_RED_MIN_CLAMP_INGR = $8560;
5906   GL_GREEN_MIN_CLAMP_INGR = $8561;
5907   GL_BLUE_MIN_CLAMP_INGR = $8562;
5908   GL_ALPHA_MIN_CLAMP_INGR = $8563;
5909   GL_RED_MAX_CLAMP_INGR = $8564;
5910   GL_GREEN_MAX_CLAMP_INGR = $8565;
5911   GL_BLUE_MAX_CLAMP_INGR = $8566;
5912   GL_ALPHA_MAX_CLAMP_INGR = $8567;
5913
5914   // GL_INGR_interlace_read
5915   GL_INTERLACE_READ_INGR = $8568;
5916
5917   // GL_INTEL_parallel_arrays
5918   GL_PARALLEL_ARRAYS_INTEL = $83F4;
5919   GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL = $83F5;
5920   GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL = $83F6;
5921   GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL = $83F7;
5922   GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL = $83F8;
5923
5924   // GL_NV_copy_depth_to_color
5925   GL_DEPTH_STENCIL_TO_RGBA_NV = $886E;
5926   GL_DEPTH_STENCIL_TO_BGRA_NV = $886F;
5927
5928   // GL_NV_depth_clamp
5929   GL_DEPTH_CLAMP_NV = $864F;
5930
5931   // GL_NV_evaluators
5932   GL_EVAL_2D_NV = $86C0;
5933   GL_EVAL_TRIANGULAR_2D_NV = $86C1;
5934   GL_MAP_TESSELLATION_NV = $86C2;
5935   GL_MAP_ATTRIB_U_ORDER_NV = $86C3;
5936   GL_MAP_ATTRIB_V_ORDER_NV = $86C4;
5937   GL_EVAL_FRACTIONAL_TESSELLATION_NV = $86C5;
5938   GL_EVAL_VERTEX_ATTRIB0_NV = $86C6;
5939   GL_EVAL_VERTEX_ATTRIB1_NV = $86C7;
5940   GL_EVAL_VERTEX_ATTRIB2_NV = $86C8;
5941   GL_EVAL_VERTEX_ATTRIB3_NV = $86C9;
5942   GL_EVAL_VERTEX_ATTRIB4_NV = $86CA;
5943   GL_EVAL_VERTEX_ATTRIB5_NV = $86CB;
5944   GL_EVAL_VERTEX_ATTRIB6_NV = $86CC;
5945   GL_EVAL_VERTEX_ATTRIB7_NV = $86CD;
5946   GL_EVAL_VERTEX_ATTRIB8_NV = $86CE;
5947   GL_EVAL_VERTEX_ATTRIB9_NV = $86CF;
5948   GL_EVAL_VERTEX_ATTRIB10_NV = $86D0;
5949   GL_EVAL_VERTEX_ATTRIB11_NV = $86D1;
5950   GL_EVAL_VERTEX_ATTRIB12_NV = $86D2;
5951   GL_EVAL_VERTEX_ATTRIB13_NV = $86D3;
5952   GL_EVAL_VERTEX_ATTRIB14_NV = $86D4;
5953   GL_EVAL_VERTEX_ATTRIB15_NV = $86D5;
5954   GL_MAX_MAP_TESSELLATION_NV = $86D6;
5955   GL_MAX_RATIONAL_EVAL_ORDER_NV = $86D7;
5956
5957   // GL_NV_fence
5958   GL_ALL_COMPLETED_NV = $84F2;
5959   GL_FENCE_STATUS_NV = $84F3;
5960   GL_FENCE_CONDITION_NV = $84F4;
5961
5962   // GL_NV_float_buffer
5963   GL_FLOAT_R_NV = $8880;
5964   GL_FLOAT_RG_NV = $8881;
5965   GL_FLOAT_RGB_NV = $8882;
5966   GL_FLOAT_RGBA_NV = $8883;
5967   GL_FLOAT_R16_NV = $8884;
5968   GL_FLOAT_R32_NV = $8885;
5969   GL_FLOAT_RG16_NV = $8886;
5970   GL_FLOAT_RG32_NV = $8887;
5971   GL_FLOAT_RGB16_NV = $8888;
5972   GL_FLOAT_RGB32_NV = $8889;
5973   GL_FLOAT_RGBA16_NV = $888A;
5974   GL_FLOAT_RGBA32_NV = $888B;
5975   GL_TEXTURE_FLOAT_COMPONENTS_NV = $888C;
5976   GL_FLOAT_CLEAR_COLOR_VALUE_NV = $888D;
5977   GL_FLOAT_RGBA_MODE_NV = $888E;
5978
5979   // GL_NV_fog_distance
5980   GL_FOG_DISTANCE_MODE_NV = $855A;
5981   GL_EYE_RADIAL_NV = $855B;
5982   GL_EYE_PLANE_ABSOLUTE_NV = $855C;
5983
5984   // GL_NV_fragment_program
5985   GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV = $8868;
5986   GL_FRAGMENT_PROGRAM_NV = $8870;
5987   GL_MAX_TEXTURE_COORDS_NV = $8871;
5988   GL_MAX_TEXTURE_IMAGE_UNITS_NV = $8872;
5989   GL_FRAGMENT_PROGRAM_BINDING_NV = $8873;
5990   GL_PROGRAM_ERROR_STRING_NV = $8874;
5991
5992   // GL_NV_half_float
5993   GL_HALF_FLOAT_NV = $140B;
5994
5995   // GL_NV_light_max_exponent
5996   GL_MAX_SHININESS_NV = $8504;
5997   GL_MAX_SPOT_EXPONENT_NV = $8505;
5998
5999   // GL_NV_multisample_filter_hint
6000   GL_MULTISAMPLE_FILTER_HINT_NV = $8534;
6001
6002   // GL_NV_occlusion_query
6003   GL_PIXEL_COUNTER_BITS_NV = $8864;
6004   GL_CURRENT_OCCLUSION_QUERY_ID_NV = $8865;
6005   GL_PIXEL_COUNT_NV = $8866;
6006   GL_PIXEL_COUNT_AVAILABLE_NV = $8867;
6007
6008   // GL_NV_packed_depth_stencil
6009   GL_DEPTH_STENCIL_NV = $84F9;
6010   GL_UNSIGNED_INT_24_8_NV = $84FA;
6011
6012   // GL_NV_pixel_data_range
6013   GL_WRITE_PIXEL_DATA_RANGE_NV = $8878;
6014   GL_READ_PIXEL_DATA_RANGE_NV = $8879;
6015   GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV = $887A;
6016   GL_READ_PIXEL_DATA_RANGE_LENGTH_NV = $887B;
6017   GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV = $887C;
6018   GL_READ_PIXEL_DATA_RANGE_POINTER_NV = $887D;
6019
6020   // GL_NV_point_sprite
6021   GL_POINT_SPRITE_NV = $8861;
6022   GL_COORD_REPLACE_NV = $8862;
6023   GL_POINT_SPRITE_R_MODE_NV = $8863;
6024
6025   // GL_NV_primitive_restart
6026   GL_PRIMITIVE_RESTART_NV = $8558;
6027   GL_PRIMITIVE_RESTART_INDEX_NV = $8559;
6028
6029   // GL_NV_register_combiners
6030   GL_REGISTER_COMBINERS_NV = $8522;
6031   GL_VARIABLE_A_NV = $8523;
6032   GL_VARIABLE_B_NV = $8524;
6033   GL_VARIABLE_C_NV = $8525;
6034   GL_VARIABLE_D_NV = $8526;
6035   GL_VARIABLE_E_NV = $8527;
6036   GL_VARIABLE_F_NV = $8528;
6037   GL_VARIABLE_G_NV = $8529;
6038   GL_CONSTANT_COLOR0_NV = $852A;
6039   GL_CONSTANT_COLOR1_NV = $852B;
6040   GL_PRIMARY_COLOR_NV = $852C;
6041   GL_SECONDARY_COLOR_NV = $852D;
6042   GL_SPARE0_NV = $852E;
6043   GL_SPARE1_NV = $852F;
6044   GL_DISCARD_NV = $8530;
6045   GL_E_TIMES_F_NV = $8531;
6046   GL_SPARE0_PLUS_SECONDARY_COLOR_NV = $8532;
6047   GL_UNSIGNED_IDENTITY_NV = $8536;
6048   GL_UNSIGNED_INVERT_NV = $8537;
6049   GL_EXPAND_NORMAL_NV = $8538;
6050   GL_EXPAND_NEGATE_NV = $8539;
6051   GL_HALF_BIAS_NORMAL_NV = $853A;
6052   GL_HALF_BIAS_NEGATE_NV = $853B;
6053   GL_SIGNED_IDENTITY_NV = $853C;
6054   GL_SIGNED_NEGATE_NV = $853D;
6055   GL_SCALE_BY_TWO_NV = $853E;
6056   GL_SCALE_BY_FOUR_NV = $853F;
6057   GL_SCALE_BY_ONE_HALF_NV = $8540;
6058   GL_BIAS_BY_NEGATIVE_ONE_HALF_NV = $8541;
6059   GL_COMBINER_INPUT_NV = $8542;
6060   GL_COMBINER_MAPPING_NV = $8543;
6061   GL_COMBINER_COMPONENT_USAGE_NV = $8544;
6062   GL_COMBINER_AB_DOT_PRODUCT_NV = $8545;
6063   GL_COMBINER_CD_DOT_PRODUCT_NV = $8546;
6064   GL_COMBINER_MUX_SUM_NV = $8547;
6065   GL_COMBINER_SCALE_NV = $8548;
6066   GL_COMBINER_BIAS_NV = $8549;
6067   GL_COMBINER_AB_OUTPUT_NV = $854A;
6068   GL_COMBINER_CD_OUTPUT_NV = $854B;
6069   GL_COMBINER_SUM_OUTPUT_NV = $854C;
6070   GL_MAX_GENERAL_COMBINERS_NV = $854D;
6071   GL_NUM_GENERAL_COMBINERS_NV = $854E;
6072   GL_COLOR_SUM_CLAMP_NV = $854F;
6073   GL_COMBINER0_NV = $8550;
6074   GL_COMBINER1_NV = $8551;
6075   GL_COMBINER2_NV = $8552;
6076   GL_COMBINER3_NV = $8553;
6077   GL_COMBINER4_NV = $8554;
6078   GL_COMBINER5_NV = $8555;
6079   GL_COMBINER6_NV = $8556;
6080   GL_COMBINER7_NV = $8557;
6081
6082   // GL_NV_register_combiners2
6083   GL_PER_STAGE_CONSTANTS_NV = $8535;
6084
6085   // GL_NV_texgen_emboss
6086   GL_EMBOSS_LIGHT_NV = $855D;
6087   GL_EMBOSS_CONSTANT_NV = $855E;
6088   GL_EMBOSS_MAP_NV = $855F;
6089
6090   // GL_NV_texgen_reflection
6091   GL_NORMAL_MAP_NV = $8511;
6092   GL_REFLECTION_MAP_NV = $8512;
6093
6094   // GL_NV_texture_env_combine4
6095   GL_COMBINE4_NV = $8503;
6096   GL_SOURCE3_RGB_NV = $8583;
6097   GL_SOURCE3_ALPHA_NV = $858B;
6098   GL_OPERAND3_RGB_NV = $8593;
6099   GL_OPERAND3_ALPHA_NV = $859B;
6100
6101   // GL_NV_texture_expand_normal
6102   GL_TEXTURE_UNSIGNED_REMAP_MODE_NV = $888F;
6103
6104   // GL_NV_texture_rectangle
6105   GL_TEXTURE_RECTANGLE_NV = $84F5;
6106   GL_TEXTURE_BINDING_RECTANGLE_NV = $84F6;
6107   GL_PROXY_TEXTURE_RECTANGLE_NV = $84F7;
6108   GL_MAX_RECTANGLE_TEXTURE_SIZE_NV = $84F8;
6109
6110   // GL_NV_texture_shader
6111   GL_OFFSET_TEXTURE_RECTANGLE_NV = $864C;
6112   GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV = $864D;
6113   GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV = $864E;
6114   GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV = $86D9;
6115   GL_UNSIGNED_INT_S8_S8_8_8_NV = $86DA;
6116   GL_UNSIGNED_INT_8_8_S8_S8_REV_NV = $86DB;
6117   GL_DSDT_MAG_INTENSITY_NV = $86DC;
6118   GL_SHADER_CONSISTENT_NV = $86DD;
6119   GL_TEXTURE_SHADER_NV = $86DE;
6120   GL_SHADER_OPERATION_NV = $86DF;
6121   GL_CULL_MODES_NV = $86E0;
6122   GL_OFFSET_TEXTURE_MATRIX_NV = $86E1;
6123   GL_OFFSET_TEXTURE_SCALE_NV = $86E2;
6124   GL_OFFSET_TEXTURE_BIAS_NV = $86E3;
6125   GL_OFFSET_TEXTURE_2D_MATRIX_NV = GL_OFFSET_TEXTURE_MATRIX_NV;
6126   GL_OFFSET_TEXTURE_2D_SCALE_NV = GL_OFFSET_TEXTURE_SCALE_NV;
6127   GL_OFFSET_TEXTURE_2D_BIAS_NV = GL_OFFSET_TEXTURE_BIAS_NV;
6128   GL_PREVIOUS_TEXTURE_INPUT_NV = $86E4;
6129   GL_CONST_EYE_NV = $86E5;
6130   GL_PASS_THROUGH_NV = $86E6;
6131   GL_CULL_FRAGMENT_NV = $86E7;
6132   GL_OFFSET_TEXTURE_2D_NV = $86E8;
6133   GL_DEPENDENT_AR_TEXTURE_2D_NV = $86E9;
6134   GL_DEPENDENT_GB_TEXTURE_2D_NV = $86EA;
6135   GL_DOT_PRODUCT_NV = $86EC;
6136   GL_DOT_PRODUCT_DEPTH_REPLACE_NV = $86ED;
6137   GL_DOT_PRODUCT_TEXTURE_2D_NV = $86EE;
6138   GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV = $86F0;
6139   GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV = $86F1;
6140   GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV = $86F2;
6141   GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV = $86F3;
6142   GL_HILO_NV = $86F4;
6143   GL_DSDT_NV = $86F5;
6144   GL_DSDT_MAG_NV = $86F6;
6145   GL_DSDT_MAG_VIB_NV = $86F7;
6146   GL_HILO16_NV = $86F8;
6147   GL_SIGNED_HILO_NV = $86F9;
6148   GL_SIGNED_HILO16_NV = $86FA;
6149   GL_SIGNED_RGBA_NV = $86FB;
6150   GL_SIGNED_RGBA8_NV = $86FC;
6151   GL_SIGNED_RGB_NV = $86FE;
6152   GL_SIGNED_RGB8_NV = $86FF;
6153   GL_SIGNED_LUMINANCE_NV = $8701;
6154   GL_SIGNED_LUMINANCE8_NV = $8702;
6155   GL_SIGNED_LUMINANCE_ALPHA_NV = $8703;
6156   GL_SIGNED_LUMINANCE8_ALPHA8_NV = $8704;
6157   GL_SIGNED_ALPHA_NV = $8705;
6158   GL_SIGNED_ALPHA8_NV = $8706;
6159   GL_SIGNED_INTENSITY_NV = $8707;
6160   GL_SIGNED_INTENSITY8_NV = $8708;
6161   GL_DSDT8_NV = $8709;
6162   GL_DSDT8_MAG8_NV = $870A;
6163   GL_DSDT8_MAG8_INTENSITY8_NV = $870B;
6164   GL_SIGNED_RGB_UNSIGNED_ALPHA_NV = $870C;
6165   GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV = $870D;
6166   GL_HI_SCALE_NV = $870E;
6167   GL_LO_SCALE_NV = $870F;
6168   GL_DS_SCALE_NV = $8710;
6169   GL_DT_SCALE_NV = $8711;
6170   GL_MAGNITUDE_SCALE_NV = $8712;
6171   GL_VIBRANCE_SCALE_NV = $8713;
6172   GL_HI_BIAS_NV = $8714;
6173   GL_LO_BIAS_NV = $8715;
6174   GL_DS_BIAS_NV = $8716;
6175   GL_DT_BIAS_NV = $8717;
6176   GL_MAGNITUDE_BIAS_NV = $8718;
6177   GL_VIBRANCE_BIAS_NV = $8719;
6178   GL_TEXTURE_BORDER_VALUES_NV = $871A;
6179   GL_TEXTURE_HI_SIZE_NV = $871B;
6180   GL_TEXTURE_LO_SIZE_NV = $871C;
6181   GL_TEXTURE_DS_SIZE_NV = $871D;
6182   GL_TEXTURE_DT_SIZE_NV = $871E;
6183   GL_TEXTURE_MAG_SIZE_NV = $871F;
6184
6185   // GL_NV_texture_shader2
6186   GL_DOT_PRODUCT_TEXTURE_3D_NV = $86EF;
6187
6188   // GL_NV_texture_shader3
6189   GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV = $8850;
6190   GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV = $8851;
6191   GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV = $8852;
6192   GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV = $8853;
6193   GL_OFFSET_HILO_TEXTURE_2D_NV = $8854;
6194   GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV = $8855;
6195   GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV = $8856;
6196   GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV = $8857;
6197   GL_DEPENDENT_HILO_TEXTURE_2D_NV = $8858;
6198   GL_DEPENDENT_RGB_TEXTURE_3D_NV = $8859;
6199   GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV = $885A;
6200   GL_DOT_PRODUCT_PASS_THROUGH_NV = $885B;
6201   GL_DOT_PRODUCT_TEXTURE_1D_NV = $885C;
6202   GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV = $885D;
6203   GL_HILO8_NV = $885E;
6204   GL_SIGNED_HILO8_NV = $885F;
6205   GL_FORCE_BLUE_TO_ONE_NV = $8860;
6206
6207   // GL_NV_vertex_array_range
6208   GL_VERTEX_ARRAY_RANGE_NV = $851D;
6209   GL_VERTEX_ARRAY_RANGE_LENGTH_NV = $851E;
6210   GL_VERTEX_ARRAY_RANGE_VALID_NV = $851F;
6211   GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV = $8520;
6212   GL_VERTEX_ARRAY_RANGE_POINTER_NV = $8521;
6213
6214   // GL_NV_vertex_array_range2
6215   GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV = $8533;
6216
6217   // GL_NV_vertex_program
6218   GL_VERTEX_PROGRAM_NV = $8620;
6219   GL_VERTEX_STATE_PROGRAM_NV = $8621;
6220   GL_ATTRIB_ARRAY_SIZE_NV = $8623;
6221   GL_ATTRIB_ARRAY_STRIDE_NV = $8624;
6222   GL_ATTRIB_ARRAY_TYPE_NV = $8625;
6223   GL_CURRENT_ATTRIB_NV = $8626;
6224   GL_PROGRAM_LENGTH_NV = $8627;
6225   GL_PROGRAM_STRING_NV = $8628;
6226   GL_MODELVIEW_PROJECTION_NV = $8629;
6227   GL_IDENTITY_NV = $862A;
6228   GL_INVERSE_NV = $862B;
6229   GL_TRANSPOSE_NV = $862C;
6230   GL_INVERSE_TRANSPOSE_NV = $862D;
6231   GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV = $862E;
6232   GL_MAX_TRACK_MATRICES_NV = $862F;
6233   GL_MATRIX0_NV = $8630;
6234   GL_MATRIX1_NV = $8631;
6235   GL_MATRIX2_NV = $8632;
6236   GL_MATRIX3_NV = $8633;
6237   GL_MATRIX4_NV = $8634;
6238   GL_MATRIX5_NV = $8635;
6239   GL_MATRIX6_NV = $8636;
6240   GL_MATRIX7_NV = $8637;
6241   GL_CURRENT_MATRIX_STACK_DEPTH_NV = $8640;
6242   GL_CURRENT_MATRIX_NV = $8641;
6243   GL_VERTEX_PROGRAM_POINT_SIZE_NV = $8642;
6244   GL_VERTEX_PROGRAM_TWO_SIDE_NV = $8643;
6245   GL_PROGRAM_PARAMETER_NV = $8644;
6246   GL_ATTRIB_ARRAY_POINTER_NV = $8645;
6247   GL_PROGRAM_TARGET_NV = $8646;
6248   GL_PROGRAM_RESIDENT_NV = $8647;
6249   GL_TRACK_MATRIX_NV = $8648;
6250   GL_TRACK_MATRIX_TRANSFORM_NV = $8649;
6251   GL_VERTEX_PROGRAM_BINDING_NV = $864A;
6252   GL_PROGRAM_ERROR_POSITION_NV = $864B;
6253   GL_VERTEX_ATTRIB_ARRAY0_NV = $8650;
6254   GL_VERTEX_ATTRIB_ARRAY1_NV = $8651;
6255   GL_VERTEX_ATTRIB_ARRAY2_NV = $8652;
6256   GL_VERTEX_ATTRIB_ARRAY3_NV = $8653;
6257   GL_VERTEX_ATTRIB_ARRAY4_NV = $8654;
6258   GL_VERTEX_ATTRIB_ARRAY5_NV = $8655;
6259   GL_VERTEX_ATTRIB_ARRAY6_NV = $8656;
6260   GL_VERTEX_ATTRIB_ARRAY7_NV = $8657;
6261   GL_VERTEX_ATTRIB_ARRAY8_NV = $8658;
6262   GL_VERTEX_ATTRIB_ARRAY9_NV = $8659;
6263   GL_VERTEX_ATTRIB_ARRAY10_NV = $865A;
6264   GL_VERTEX_ATTRIB_ARRAY11_NV = $865B;
6265   GL_VERTEX_ATTRIB_ARRAY12_NV = $865C;
6266   GL_VERTEX_ATTRIB_ARRAY13_NV = $865D;
6267   GL_VERTEX_ATTRIB_ARRAY14_NV = $865E;
6268   GL_VERTEX_ATTRIB_ARRAY15_NV = $865F;
6269   GL_MAP1_VERTEX_ATTRIB0_4_NV = $8660;
6270   GL_MAP1_VERTEX_ATTRIB1_4_NV = $8661;
6271   GL_MAP1_VERTEX_ATTRIB2_4_NV = $8662;
6272   GL_MAP1_VERTEX_ATTRIB3_4_NV = $8663;
6273   GL_MAP1_VERTEX_ATTRIB4_4_NV = $8664;
6274   GL_MAP1_VERTEX_ATTRIB5_4_NV = $8665;
6275   GL_MAP1_VERTEX_ATTRIB6_4_NV = $8666;
6276   GL_MAP1_VERTEX_ATTRIB7_4_NV = $8667;
6277   GL_MAP1_VERTEX_ATTRIB8_4_NV = $8668;
6278   GL_MAP1_VERTEX_ATTRIB9_4_NV = $8669;
6279   GL_MAP1_VERTEX_ATTRIB10_4_NV = $866A;
6280   GL_MAP1_VERTEX_ATTRIB11_4_NV = $866B;
6281   GL_MAP1_VERTEX_ATTRIB12_4_NV = $866C;
6282   GL_MAP1_VERTEX_ATTRIB13_4_NV = $866D;
6283   GL_MAP1_VERTEX_ATTRIB14_4_NV = $866E;
6284   GL_MAP1_VERTEX_ATTRIB15_4_NV = $866F;
6285   GL_MAP2_VERTEX_ATTRIB0_4_NV = $8670;
6286   GL_MAP2_VERTEX_ATTRIB1_4_NV = $8671;
6287   GL_MAP2_VERTEX_ATTRIB2_4_NV = $8672;
6288   GL_MAP2_VERTEX_ATTRIB3_4_NV = $8673;
6289   GL_MAP2_VERTEX_ATTRIB4_4_NV = $8674;
6290   GL_MAP2_VERTEX_ATTRIB5_4_NV = $8675;
6291   GL_MAP2_VERTEX_ATTRIB6_4_NV = $8676;
6292   GL_MAP2_VERTEX_ATTRIB7_4_NV = $8677;
6293   GL_MAP2_VERTEX_ATTRIB8_4_NV = $8678;
6294   GL_MAP2_VERTEX_ATTRIB9_4_NV = $8679;
6295   GL_MAP2_VERTEX_ATTRIB10_4_NV = $867A;
6296   GL_MAP2_VERTEX_ATTRIB11_4_NV = $867B;
6297   GL_MAP2_VERTEX_ATTRIB12_4_NV = $867C;
6298   GL_MAP2_VERTEX_ATTRIB13_4_NV = $867D;
6299   GL_MAP2_VERTEX_ATTRIB14_4_NV = $867E;
6300   GL_MAP2_VERTEX_ATTRIB15_4_NV = $867F;
6301
6302   // GL_NV_fragment_program2 and GL_NV_vertex_program2_option
6303   GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV = $88F4;
6304   GL_MAX_PROGRAM_CALL_DEPTH_NV = $88F5;
6305
6306   // GL_NV_fragment_program2
6307   GL_MAX_PROGRAM_IF_DEPTH_NV = $88F6;
6308   GL_MAX_PROGRAM_LOOP_DEPTH_NV = $88F7;
6309   GL_MAX_PROGRAM_LOOP_COUNT_NV = $88F8;
6310
6311   // GL_NV_vertex_program3
6312   MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB = $8B4C;
6313
6314   // GL_NV_depth_buffer_float
6315   GL_FLOAT_32_UNSIGNED_INT_24_8_REV_NV = $8DAD;
6316   GL_DEPTH_BUFFER_FLOAT_MODE_NV = $8DAF;
6317
6318   // GL_NV_framebuffer_multisample_coverage
6319   GL_RENDERBUFFER_COVERAGE_SAMPLES_NV = $8CAB;
6320   GL_RENDERBUFFER_COLOR_SAMPLES_NV = $8E10;
6321
6322   // GL_NV_geometry_program4
6323   GL_GEOMETRY_PROGRAM_NV = $8C26;
6324   GL_MAX_PROGRAM_OUTPUT_VERTICES_NV = $8C27;
6325   GL_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV = $8C28;
6326
6327   // GL_NV_gpu_program4
6328   GL_PROGRAM_ATTRIB_COMPONENTS_NV = $8906;
6329   GL_PROGRAM_RESULT_COMPONENTS_NV = $8907;
6330   GL_MAX_PROGRAM_ATTRIB_COMPONENTS_NV = $8908;
6331   GL_MAX_PROGRAM_RESULT_COMPONENTS_NV = $8909;
6332   GL_MAX_PROGRAM_GENERIC_ATTRIBS_NV = $8DA5;
6333   GL_MAX_PROGRAM_GENERIC_RESULTS_NV = $8DA6;
6334
6335   // GL_NV_parameter_buffer_object
6336   GL_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV = $8DA0;
6337   GL_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV = $8DA1;
6338   GL_VERTEX_PROGRAM_PARAMETER_BUFFER_NV = $8DA2;
6339   GL_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV = $8DA3;
6340   GL_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV = $8DA4;
6341
6342   // GL_NV_transform_feedback
6343   GL_TRANSFORM_FEEDBACK_BUFFER_NV = $8C8E;
6344   GL_TRANSFORM_FEEDBACK_BUFFER_START_NV = $8C84;
6345   GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV = $8C85;
6346   GL_TRANSFORM_FEEDBACK_RECORD_NV = $8C86;
6347   GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV = $8C8F;
6348   GL_INTERLEAVED_ATTRIBS_NV = $8C8C;
6349   GL_SEPARATE_ATTRIBS_NV = $8C8D;
6350   GL_PRIMITIVES_GENERATED_NV = $8C87;
6351   GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV = $8C88;
6352   GL_RASTERIZER_DISCARD_NV = $8C89;
6353   GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_NV = $8C8A;
6354   GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV = $8C8B;
6355   GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV = $8C80;
6356   GL_TRANSFORM_FEEDBACK_ATTRIBS_NV = $8C7E;
6357   GL_ACTIVE_VARYINGS_NV = $8C81;
6358   GL_ACTIVE_VARYING_MAX_LENGTH_NV = $8C82;
6359   GL_TRANSFORM_FEEDBACK_VARYINGS_NV = $8C83;
6360   GL_TRANSFORM_FEEDBACK_BUFFER_MODE_NV = $8C7F;
6361   GL_BACK_PRIMARY_COLOR_NV = $8C77;
6362   GL_BACK_SECONDARY_COLOR_NV = $8C78;
6363   GL_TEXTURE_COORD_NV = $8C79;
6364   GL_CLIP_DISTANCE_NV = $8C7A;
6365   GL_VERTEX_ID_NV = $8C7B;
6366   GL_PRIMITIVE_ID_NV = $8C7C;
6367   GL_GENERIC_ATTRIB_NV = $8C7D;
6368   GL_LAYER_NV = $8DAA;
6369   GL_NEXT_BUFFER_NV = -2;
6370   GL_SKIP_COMPONENTS4_NV = -3;
6371   GL_SKIP_COMPONENTS3_NV = -4;
6372   GL_SKIP_COMPONENTS2_NV = -5;
6373   GL_SKIP_COMPONENTS1_NV = -6;
6374
6375   // GL_NV_conditional_render
6376   GL_QUERY_WAIT_NV = $8E13;
6377   GL_QUERY_NO_WAIT_NV = $8E14;
6378   GL_QUERY_BY_REGION_WAIT_NV = $8E15;
6379   GL_QUERY_BY_REGION_NO_WAIT_NV = $8E16;
6380
6381   // GL_NV_present_video
6382   GL_FRAME_NV = $8E26;
6383   GL_FIELDS_NV = $8E27;
6384   GL_CURRENT_TIME_NV = $8E28;
6385   GL_NUM_FILL_STREAMS_NV = $8E29;
6386   GL_PRESENT_TIME_NV = $8E2A;
6387   GL_PRESENT_DURATION_NV = $8E2B;
6388
6389   // GL_NV_explicit_multisample
6390   GL_SAMPLE_POSITION_NV = $8E50;
6391   GL_SAMPLE_MASK_NV = $8E51;
6392   GL_SAMPLE_MASK_VALUE_NV = $8E52;
6393   GL_TEXTURE_BINDING_RENDERBUFFER_NV = $8E53;
6394   GL_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV = $8E54;
6395   GL_TEXTURE_RENDERBUFFER_NV = $8E55;
6396   GL_SAMPLER_RENDERBUFFER_NV = $8E56;
6397   GL_INT_SAMPLER_RENDERBUFFER_NV = $8E57;
6398   GL_UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV = $8E58;
6399   GL_MAX_SAMPLE_MASK_WORDS_NV = $8E59;
6400
6401   // GL_NV_transform_feedback2
6402   GL_TRANSFORM_FEEDBACK_NV = $8E22;
6403   GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV = $8E23;
6404   GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV = $8E24;
6405   GL_TRANSFORM_FEEDBACK_BINDING_NV = $8E25;
6406
6407   // GL_NV_video_capture
6408   GL_VIDEO_BUFFER_NV = $9020;
6409   GL_VIDEO_BUFFER_BINDING_NV = $9021;
6410   GL_FIELD_UPPER_NV = $9022;
6411   GL_FIELD_LOWER_NV = $9023;
6412   GL_NUM_VIDEO_CAPTURE_STREAMS_NV = $9024;
6413   GL_NEXT_VIDEO_CAPTURE_BUFFER_STATUS_NV = $9025;
6414   GL_VIDEO_CAPTURE_TO_422_SUPPORTED_NV = $9026;
6415   GL_LAST_VIDEO_CAPTURE_STATUS_NV = $9027;
6416   GL_VIDEO_BUFFER_PITCH_NV = $9028;
6417   GL_VIDEO_COLOR_CONVERSION_MATRIX_NV = $9029;
6418   GL_VIDEO_COLOR_CONVERSION_MAX_NV = $902A;
6419   GL_VIDEO_COLOR_CONVERSION_MIN_NV = $902B;
6420   GL_VIDEO_COLOR_CONVERSION_OFFSET_NV = $902C;
6421   GL_VIDEO_BUFFER_INTERNAL_FORMAT_NV = $902D;
6422   GL_PARTIAL_SUCCESS_NV = $902E;
6423   GL_SUCCESS_NV = $902F;
6424   GL_FAILURE_NV = $9030;
6425   GL_YCBYCR8_422_NV = $9031;
6426   GL_YCBAYCR8A_4224_NV = $9032;
6427   GL_Z6Y10Z6CB10Z6Y10Z6CR10_422_NV = $9033;
6428   GL_Z6Y10Z6CB10Z6A10Z6Y10Z6CR10Z6A10_4224_NV = $9034;
6429   GL_Z4Y12Z4CB12Z4Y12Z4CR12_422_NV = $9035;
6430   GL_Z4Y12Z4CB12Z4A12Z4Y12Z4CR12Z4A12_4224_NV = $9036;
6431   GL_Z4Y12Z4CB12Z4CR12_444_NV = $9037;
6432   GL_VIDEO_CAPTURE_FRAME_WIDTH_NV = $9038;
6433   GL_VIDEO_CAPTURE_FRAME_HEIGHT_NV = $9039;
6434   GL_VIDEO_CAPTURE_FIELD_UPPER_HEIGHT_NV = $903A;
6435   GL_VIDEO_CAPTURE_FIELD_LOWER_HEIGHT_NV = $903B;
6436   GL_VIDEO_CAPTURE_SURFACE_ORIGIN_NV = $903C;
6437
6438   // GL_NV_shader_buffer_load
6439   GL_BUFFER_GPU_ADDRESS_NV = $8F1D;
6440   GL_GPU_ADDRESS_NV = $8F34;
6441   GL_MAX_SHADER_BUFFER_ADDRESS_NV = $8F35;
6442
6443   // GL_NV_vertex_buffer_unified_memory
6444   GL_VERTEX_ATTRIB_ARRAY_UNIFIED_NV = $8F1E;
6445   GL_ELEMENT_ARRAY_UNIFIED_NV = $8F1F;
6446   GL_VERTEX_ATTRIB_ARRAY_ADDRESS_NV = $8F20;
6447   GL_VERTEX_ARRAY_ADDRESS_NV = $8F21;
6448   GL_NORMAL_ARRAY_ADDRESS_NV = $8F22;
6449   GL_COLOR_ARRAY_ADDRESS_NV = $8F23;
6450   GL_INDEX_ARRAY_ADDRESS_NV = $8F24;
6451   GL_TEXTURE_COORD_ARRAY_ADDRESS_NV = $8F25;
6452   GL_EDGE_FLAG_ARRAY_ADDRESS_NV = $8F26;
6453   GL_SECONDARY_COLOR_ARRAY_ADDRESS_NV = $8F27;
6454   GL_FOG_COORD_ARRAY_ADDRESS_NV = $8F28;
6455   GL_ELEMENT_ARRAY_ADDRESS_NV = $8F29;
6456   GL_VERTEX_ATTRIB_ARRAY_LENGTH_NV = $8F2A;
6457   GL_VERTEX_ARRAY_LENGTH_NV = $8F2B;
6458   GL_NORMAL_ARRAY_LENGTH_NV = $8F2C;
6459   GL_COLOR_ARRAY_LENGTH_NV = $8F2D;
6460   GL_INDEX_ARRAY_LENGTH_NV = $8F2E;
6461   GL_TEXTURE_COORD_ARRAY_LENGTH_NV = $8F2F;
6462   GL_EDGE_FLAG_ARRAY_LENGTH_NV = $8F30;
6463   GL_SECONDARY_COLOR_ARRAY_LENGTH_NV = $8F31;
6464   GL_FOG_COORD_ARRAY_LENGTH_NV = $8F32;
6465   GL_ELEMENT_ARRAY_LENGTH_NV = $8F33;
6466   GL_DRAW_INDIRECT_UNIFIED_NV = $8F40;
6467   GL_DRAW_INDIRECT_ADDRESS_NV = $8F41;
6468   GL_DRAW_INDIRECT_LENGTH_NV = $8F42;
6469
6470   // GL_NV_gpu_program5
6471   GL_MAX_GEOMETRY_PROGRAM_INVOCATIONS_NV = $8E5A;
6472   GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_NV = $8E5B;
6473   GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_NV = $8E5C;
6474   GL_FRAGMENT_PROGRAM_INTERPOLATION_OFFSET_BITS_NV = $8E5D;
6475   GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_NV = $8E5E;
6476   GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_NV = $8E5F;
6477   GL_MAX_PROGRAM_SUBROUTINE_PARAMETERS_NV = $8F44;
6478   GL_MAX_PROGRAM_SUBROUTINE_NUM_NV = $8F45;
6479
6480   // GL_NV_gpu_shader5
6481   GL_INT64_NV = $140E;
6482   GL_UNSIGNED_INT64_NV = $140F;
6483   GL_INT8_NV = $8FE0;
6484   GL_INT8_VEC2_NV = $8FE1;
6485   GL_INT8_VEC3_NV = $8FE2;
6486   GL_INT8_VEC4_NV = $8FE3;
6487   GL_INT16_NV = $8FE4;
6488   GL_INT16_VEC2_NV = $8FE5;
6489   GL_INT16_VEC3_NV = $8FE6;
6490   GL_INT16_VEC4_NV = $8FE7;
6491   GL_INT64_VEC2_NV = $8FE9;
6492   GL_INT64_VEC3_NV = $8FEA;
6493   GL_INT64_VEC4_NV = $8FEB;
6494   GL_UNSIGNED_INT8_NV = $8FEC;
6495   GL_UNSIGNED_INT8_VEC2_NV = $8FED;
6496   GL_UNSIGNED_INT8_VEC3_NV = $8FEE;
6497   GL_UNSIGNED_INT8_VEC4_NV = $8FEF;
6498   GL_UNSIGNED_INT16_NV = $8FF0;
6499   GL_UNSIGNED_INT16_VEC2_NV = $8FF1;
6500   GL_UNSIGNED_INT16_VEC3_NV = $8FF2;
6501   GL_UNSIGNED_INT16_VEC4_NV = $8FF3;
6502   GL_UNSIGNED_INT64_VEC2_NV = $8FF5;
6503   GL_UNSIGNED_INT64_VEC3_NV = $8FF6;
6504   GL_UNSIGNED_INT64_VEC4_NV = $8FF7;
6505   GL_FLOAT16_NV = $8FF8;
6506   GL_FLOAT16_VEC2_NV = $8FF9;
6507   GL_FLOAT16_VEC3_NV = $8FFA;
6508   GL_FLOAT16_VEC4_NV = $8FFB;
6509   { reuse GL_PATCHES }
6510
6511   // GL_NV_shader_buffer_store
6512   GL_SHADER_GLOBAL_ACCESS_BARRIER_BIT_NV = $00000010;
6513   { reuse GL_READ_WRITE }
6514   { reuse GL_WRITE_ONLY }
6515
6516   // GL_NV_tessellation_program5
6517   GL_MAX_PROGRAM_PATCH_ATTRIBS_NV = $86D8;
6518   GL_TESS_CONTROL_PROGRAM_NV = $891E;
6519   GL_TESS_EVALUATION_PROGRAM_NV = $891F;
6520   GL_TESS_CONTROL_PROGRAM_PARAMETER_BUFFER_NV = $8C74;
6521   GL_TESS_EVALUATION_PROGRAM_PARAMETER_BUFFER_NV = $8C75;
6522
6523   // GL_NV_vertex_attrib_integer_64bit
6524   { reuse GL_INT64_NV }
6525   { reuse GL_UNSIGNED_INT64_NV }
6526
6527   // GL_NV_multisample_coverage
6528   GL_COVERAGE_SAMPLES_NV = $80A9;
6529   GL_COLOR_SAMPLES_NV = $8E20;
6530
6531   // GL_NV_vdpau_interop
6532   GL_SURFACE_STATE_NV = $86EB;
6533   GL_SURFACE_REGISTERED_NV = $86FD;
6534   GL_SURFACE_MAPPED_NV = $8700;
6535   GL_WRITE_DISCARD_NV = $88BE;
6536
6537   // GL_OML_interlace
6538   GL_INTERLACE_OML = $8980;
6539   GL_INTERLACE_READ_OML = $8981;
6540
6541   // GL_OML_resample
6542   GL_PACK_RESAMPLE_OML = $8984;
6543   GL_UNPACK_RESAMPLE_OML = $8985;
6544   GL_RESAMPLE_REPLICATE_OML = $8986;
6545   GL_RESAMPLE_ZERO_FILL_OML = $8987;
6546   GL_RESAMPLE_AVERAGE_OML = $8988;
6547   GL_RESAMPLE_DECIMATE_OML = $8989;
6548
6549   // GL_OML_subsample
6550   GL_FORMAT_SUBSAMPLE_24_24_OML = $8982;
6551   GL_FORMAT_SUBSAMPLE_244_244_OML = $8983;
6552
6553   // GL_PGI_misc_hints
6554   GL_PREFER_DOUBLEBUFFER_HINT_PGI = $1A1F8;
6555   GL_CONSERVE_MEMORY_HINT_PGI = $1A1FD;
6556   GL_RECLAIM_MEMORY_HINT_PGI = $1A1FE;
6557   GL_NATIVE_GRAPHICS_HANDLE_PGI = $1A202;
6558   GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI = $1A203;
6559   GL_NATIVE_GRAPHICS_END_HINT_PGI = $1A204;
6560   GL_ALWAYS_FAST_HINT_PGI = $1A20C;
6561   GL_ALWAYS_SOFT_HINT_PGI = $1A20D;
6562   GL_ALLOW_DRAW_OBJ_HINT_PGI = $1A20E;
6563   GL_ALLOW_DRAW_WIN_HINT_PGI = $1A20F;
6564   GL_ALLOW_DRAW_FRG_HINT_PGI = $1A210;
6565   GL_ALLOW_DRAW_MEM_HINT_PGI = $1A211;
6566   GL_STRICT_DEPTHFUNC_HINT_PGI = $1A216;
6567   GL_STRICT_LIGHTING_HINT_PGI = $1A217;
6568   GL_STRICT_SCISSOR_HINT_PGI = $1A218;
6569   GL_FULL_STIPPLE_HINT_PGI = $1A219;
6570   GL_CLIP_NEAR_HINT_PGI = $1A220;
6571   GL_CLIP_FAR_HINT_PGI = $1A221;
6572   GL_WIDE_LINE_HINT_PGI = $1A222;
6573   GL_BACK_NORMALS_HINT_PGI = $1A223;
6574
6575   // GL_PGI_vertex_hints
6576   GL_VERTEX_DATA_HINT_PGI = $1A22A;
6577   GL_VERTEX_CONSISTENT_HINT_PGI = $1A22B;
6578   GL_MATERIAL_SIDE_HINT_PGI = $1A22C;
6579   GL_MAX_VERTEX_HINT_PGI = $1A22D;
6580   GL_COLOR3_BIT_PGI = $00010000;
6581   GL_COLOR4_BIT_PGI = $00020000;
6582   GL_EDGEFLAG_BIT_PGI = $00040000;
6583   GL_INDEX_BIT_PGI = $00080000;
6584   GL_MAT_AMBIENT_BIT_PGI = $00100000;
6585   GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI = $00200000;
6586   GL_MAT_DIFFUSE_BIT_PGI = $00400000;
6587   GL_MAT_EMISSION_BIT_PGI = $00800000;
6588   GL_MAT_COLOR_INDEXES_BIT_PGI = $01000000;
6589   GL_MAT_SHININESS_BIT_PGI = $02000000;
6590   GL_MAT_SPECULAR_BIT_PGI = $04000000;
6591   GL_NORMAL_BIT_PGI = $08000000;
6592   GL_TEXCOORD1_BIT_PGI = $10000000;
6593   GL_TEXCOORD2_BIT_PGI = $20000000;
6594   GL_TEXCOORD3_BIT_PGI = $40000000;
6595   GL_TEXCOORD4_BIT_PGI = $80000000;
6596   GL_VERTEX23_BIT_PGI = $00000004;
6597   GL_VERTEX4_BIT_PGI = $00000008;
6598
6599   // GL_REND_screen_coordinates
6600   GL_SCREEN_COORDINATES_REND = $8490;
6601   GL_INVERTED_SCREEN_W_REND = $8491;
6602
6603   // GL_S3_s3tc
6604   GL_RGB_S3TC = $83A0;
6605   GL_RGB4_S3TC = $83A1;
6606   GL_RGBA_S3TC = $83A2;
6607   GL_RGBA4_S3TC = $83A3;
6608
6609   // GL_SGIS_detail_texture
6610   GL_DETAIL_TEXTURE_2D_SGIS = $8095;
6611   GL_DETAIL_TEXTURE_2D_BINDING_SGIS = $8096;
6612   GL_LINEAR_DETAIL_SGIS = $8097;
6613   GL_LINEAR_DETAIL_ALPHA_SGIS = $8098;
6614   GL_LINEAR_DETAIL_COLOR_SGIS = $8099;
6615   GL_DETAIL_TEXTURE_LEVEL_SGIS = $809A;
6616   GL_DETAIL_TEXTURE_MODE_SGIS = $809B;
6617   GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS = $809C;
6618
6619   // GL_SGIS_fog_function
6620   GL_FOG_FUNC_SGIS = $812A;
6621   GL_FOG_FUNC_POINTS_SGIS = $812B;
6622   GL_MAX_FOG_FUNC_POINTS_SGIS = $812C;
6623
6624   // GL_SGIS_generate_mipmap
6625   GL_GENERATE_MIPMAP_SGIS = $8191;
6626   GL_GENERATE_MIPMAP_HINT_SGIS = $8192;
6627
6628   // GL_SGIS_multisample
6629   GL_MULTISAMPLE_SGIS = $809D;
6630   GL_SAMPLE_ALPHA_TO_MASK_SGIS = $809E;
6631   GL_SAMPLE_ALPHA_TO_ONE_SGIS = $809F;
6632   GL_SAMPLE_MASK_SGIS = $80A0;
6633   GL_1PASS_SGIS = $80A1;
6634   GL_2PASS_0_SGIS = $80A2;
6635   GL_2PASS_1_SGIS = $80A3;
6636   GL_4PASS_0_SGIS = $80A4;
6637   GL_4PASS_1_SGIS = $80A5;
6638   GL_4PASS_2_SGIS = $80A6;
6639   GL_4PASS_3_SGIS = $80A7;
6640   GL_SAMPLE_BUFFERS_SGIS = $80A8;
6641   GL_SAMPLES_SGIS = $80A9;
6642   GL_SAMPLE_MASK_VALUE_SGIS = $80AA;
6643   GL_SAMPLE_MASK_INVERT_SGIS = $80AB;
6644   GL_SAMPLE_PATTERN_SGIS = $80AC;
6645
6646   // GL_SGIS_pixel_texture
6647   GL_PIXEL_TEXTURE_SGIS = $8353;
6648   GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS = $8354;
6649   GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS = $8355;
6650   GL_PIXEL_GROUP_COLOR_SGIS = $8356;
6651
6652   // GL_SGIS_point_line_texgen
6653   GL_EYE_DISTANCE_TO_POINT_SGIS = $81F0;
6654   GL_OBJECT_DISTANCE_TO_POINT_SGIS = $81F1;
6655   GL_EYE_DISTANCE_TO_LINE_SGIS = $81F2;
6656   GL_OBJECT_DISTANCE_TO_LINE_SGIS = $81F3;
6657   GL_EYE_POINT_SGIS = $81F4;
6658   GL_OBJECT_POINT_SGIS = $81F5;
6659   GL_EYE_LINE_SGIS = $81F6;
6660   GL_OBJECT_LINE_SGIS = $81F7;
6661
6662   // GL_SGIS_point_parameters
6663   GL_POINT_SIZE_MIN_SGIS = $8126;
6664   GL_POINT_SIZE_MAX_SGIS = $8127;
6665   GL_POINT_FADE_THRESHOLD_SIZE_SGIS = $8128;
6666   GL_DISTANCE_ATTENUATION_SGIS = $8129;
6667
6668   // GL_SGIS_sharpen_texture
6669   GL_LINEAR_SHARPEN_SGIS = $80AD;
6670   GL_LINEAR_SHARPEN_ALPHA_SGIS = $80AE;
6671   GL_LINEAR_SHARPEN_COLOR_SGIS = $80AF;
6672   GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS = $80B0;
6673
6674   // GL_SGIS_texture4D
6675   GL_PACK_SKIP_VOLUMES_SGIS = $8130;
6676   GL_PACK_IMAGE_DEPTH_SGIS = $8131;
6677   GL_UNPACK_SKIP_VOLUMES_SGIS = $8132;
6678   GL_UNPACK_IMAGE_DEPTH_SGIS = $8133;
6679   GL_TEXTURE_4D_SGIS = $8134;
6680   GL_PROXY_TEXTURE_4D_SGIS = $8135;
6681   GL_TEXTURE_4DSIZE_SGIS = $8136;
6682   GL_TEXTURE_WRAP_Q_SGIS = $8137;
6683   GL_MAX_4D_TEXTURE_SIZE_SGIS = $8138;
6684   GL_TEXTURE_4D_BINDING_SGIS = $814F;
6685
6686   // GL_SGIS_texture_color_mask
6687   GL_TEXTURE_COLOR_WRITEMASK_SGIS = $81EF;
6688
6689   // GL_SGIS_texture_edge_clamp
6690   GL_CLAMP_TO_EDGE_SGIS = $812F;
6691
6692   // GL_SGIS_texture_filter4
6693   GL_FILTER4_SGIS = $8146;
6694   GL_TEXTURE_FILTER4_SIZE_SGIS = $8147;
6695
6696   // GL_SGIS_texture_lod
6697   GL_TEXTURE_MIN_LOD_SGIS = $813A;
6698   GL_TEXTURE_MAX_LOD_SGIS = $813B;
6699   GL_TEXTURE_BASE_LEVEL_SGIS = $813C;
6700   GL_TEXTURE_MAX_LEVEL_SGIS = $813D;
6701
6702   // GL_SGIS_texture_select
6703   GL_DUAL_ALPHA4_SGIS = $8110;
6704   GL_DUAL_ALPHA8_SGIS = $8111;
6705   GL_DUAL_ALPHA12_SGIS = $8112;
6706   GL_DUAL_ALPHA16_SGIS = $8113;
6707   GL_DUAL_LUMINANCE4_SGIS = $8114;
6708   GL_DUAL_LUMINANCE8_SGIS = $8115;
6709   GL_DUAL_LUMINANCE12_SGIS = $8116;
6710   GL_DUAL_LUMINANCE16_SGIS = $8117;
6711   GL_DUAL_INTENSITY4_SGIS = $8118;
6712   GL_DUAL_INTENSITY8_SGIS = $8119;
6713   GL_DUAL_INTENSITY12_SGIS = $811A;
6714   GL_DUAL_INTENSITY16_SGIS = $811B;
6715   GL_DUAL_LUMINANCE_ALPHA4_SGIS = $811C;
6716   GL_DUAL_LUMINANCE_ALPHA8_SGIS = $811D;
6717   GL_QUAD_ALPHA4_SGIS = $811E;
6718   GL_QUAD_ALPHA8_SGIS = $811F;
6719   GL_QUAD_LUMINANCE4_SGIS = $8120;
6720   GL_QUAD_LUMINANCE8_SGIS = $8121;
6721   GL_QUAD_INTENSITY4_SGIS = $8122;
6722   GL_QUAD_INTENSITY8_SGIS = $8123;
6723   GL_DUAL_TEXTURE_SELECT_SGIS = $8124;
6724   GL_QUAD_TEXTURE_SELECT_SGIS = $8125;
6725
6726   // GL_SGIX_async
6727   GL_ASYNC_MARKER_SGIX = $8329;
6728
6729   // GL_SGIX_async_histogram
6730   GL_ASYNC_HISTOGRAM_SGIX = $832C;
6731   GL_MAX_ASYNC_HISTOGRAM_SGIX = $832D;
6732
6733   // GL_SGIX_async_pixel
6734   GL_ASYNC_TEX_IMAGE_SGIX = $835C;
6735   GL_ASYNC_DRAW_PIXELS_SGIX = $835D;
6736   GL_ASYNC_READ_PIXELS_SGIX = $835E;
6737   GL_MAX_ASYNC_TEX_IMAGE_SGIX = $835F;
6738   GL_MAX_ASYNC_DRAW_PIXELS_SGIX = $8360;
6739   GL_MAX_ASYNC_READ_PIXELS_SGIX = $8361;
6740
6741   // GL_SGIX_blend_alpha_minmax
6742   GL_ALPHA_MIN_SGIX = $8320;
6743   GL_ALPHA_MAX_SGIX = $8321;
6744
6745   // GL_SGIX_calligraphic_fragment
6746   GL_CALLIGRAPHIC_FRAGMENT_SGIX = $8183;
6747
6748   // GL_SGIX_clipmap
6749   GL_LINEAR_CLIPMAP_LINEAR_SGIX = $8170;
6750   GL_TEXTURE_CLIPMAP_CENTER_SGIX = $8171;
6751   GL_TEXTURE_CLIPMAP_FRAME_SGIX = $8172;
6752   GL_TEXTURE_CLIPMAP_OFFSET_SGIX = $8173;
6753   GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX = $8174;
6754   GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX = $8175;
6755   GL_TEXTURE_CLIPMAP_DEPTH_SGIX = $8176;
6756   GL_MAX_CLIPMAP_DEPTH_SGIX = $8177;
6757   GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX = $8178;
6758   GL_NEAREST_CLIPMAP_NEAREST_SGIX = $844D;
6759   GL_NEAREST_CLIPMAP_LINEAR_SGIX = $844E;
6760   GL_LINEAR_CLIPMAP_NEAREST_SGIX = $844F;
6761
6762   // GL_SGIX_convolution_accuracy
6763   GL_CONVOLUTION_HINT_SGIX = $8316;
6764
6765   // GL_SGIX_depth_texture
6766   GL_DEPTH_COMPONENT16_SGIX = $81A5;
6767   GL_DEPTH_COMPONENT24_SGIX = $81A6;
6768   GL_DEPTH_COMPONENT32_SGIX = $81A7;
6769
6770   // GL_SGIX_fog_offset
6771   GL_FOG_OFFSET_SGIX = $8198;
6772   GL_FOG_OFFSET_VALUE_SGIX = $8199;
6773
6774   // GL_SGIX_fog_scale
6775   GL_FOG_SCALE_SGIX = $81FC;
6776   GL_FOG_SCALE_VALUE_SGIX = $81FD;
6777
6778   // GL_SGIX_fragment_lighting
6779   GL_FRAGMENT_LIGHTING_SGIX = $8400;
6780   GL_FRAGMENT_COLOR_MATERIAL_SGIX = $8401;
6781   GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX = $8402;
6782   GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX = $8403;
6783   GL_MAX_FRAGMENT_LIGHTS_SGIX = $8404;
6784   GL_MAX_ACTIVE_LIGHTS_SGIX = $8405;
6785   GL_CURRENT_RASTER_NORMAL_SGIX = $8406;
6786   GL_LIGHT_ENV_MODE_SGIX = $8407;
6787   GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX = $8408;
6788   GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX = $8409;
6789   GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX = $840A;
6790   GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX = $840B;
6791   GL_FRAGMENT_LIGHT0_SGIX = $840C;
6792   GL_FRAGMENT_LIGHT1_SGIX = $840D;
6793   GL_FRAGMENT_LIGHT2_SGIX = $840E;
6794   GL_FRAGMENT_LIGHT3_SGIX = $840F;
6795   GL_FRAGMENT_LIGHT4_SGIX = $8410;
6796   GL_FRAGMENT_LIGHT5_SGIX = $8411;
6797   GL_FRAGMENT_LIGHT6_SGIX = $8412;
6798   GL_FRAGMENT_LIGHT7_SGIX = $8413;
6799
6800   // GL_SGIX_framezoom
6801   GL_FRAMEZOOM_SGIX = $818B;
6802   GL_FRAMEZOOM_FACTOR_SGIX = $818C;
6803   GL_MAX_FRAMEZOOM_FACTOR_SGIX = $818D;
6804
6805   // GL_SGIX_impact_pixel_texture
6806   GL_PIXEL_TEX_GEN_Q_CEILING_SGIX = $8184;
6807   GL_PIXEL_TEX_GEN_Q_ROUND_SGIX = $8185;
6808   GL_PIXEL_TEX_GEN_Q_FLOOR_SGIX = $8186;
6809   GL_PIXEL_TEX_GEN_ALPHA_REPLACE_SGIX = $8187;
6810   GL_PIXEL_TEX_GEN_ALPHA_NO_REPLACE_SGIX = $8188;
6811   GL_PIXEL_TEX_GEN_ALPHA_LS_SGIX = $8189;
6812   GL_PIXEL_TEX_GEN_ALPHA_MS_SGIX = $818A;
6813
6814   // GL_SGIX_instruments
6815   GL_INSTRUMENT_BUFFER_POINTER_SGIX = $8180;
6816   GL_INSTRUMENT_MEASUREMENTS_SGIX = $8181;
6817
6818   // GL_SGIX_interlace
6819   GL_INTERLACE_SGIX = $8094;
6820
6821   // GL_SGIX_ir_instrument1
6822   GL_IR_INSTRUMENT1_SGIX = $817F;
6823
6824   // GL_SGIX_list_priority
6825   GL_LIST_PRIORITY_SGIX = $8182;
6826
6827   // GL_SGIX_pixel_texture
6828   GL_PIXEL_TEX_GEN_SGIX = $8139;
6829   GL_PIXEL_TEX_GEN_MODE_SGIX = $832B;
6830
6831   // GL_SGIX_pixel_tiles
6832   GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX = $813E;
6833   GL_PIXEL_TILE_CACHE_INCREMENT_SGIX = $813F;
6834   GL_PIXEL_TILE_WIDTH_SGIX = $8140;
6835   GL_PIXEL_TILE_HEIGHT_SGIX = $8141;
6836   GL_PIXEL_TILE_GRID_WIDTH_SGIX = $8142;
6837   GL_PIXEL_TILE_GRID_HEIGHT_SGIX = $8143;
6838   GL_PIXEL_TILE_GRID_DEPTH_SGIX = $8144;
6839   GL_PIXEL_TILE_CACHE_SIZE_SGIX = $8145;
6840
6841   // GL_SGIX_polynomial_ffd
6842   GL_GEOMETRY_DEFORMATION_SGIX = $8194;
6843   GL_TEXTURE_DEFORMATION_SGIX = $8195;
6844   GL_DEFORMATIONS_MASK_SGIX = $8196;
6845   GL_MAX_DEFORMATION_ORDER_SGIX = $8197;
6846
6847   // GL_SGIX_reference_plane
6848   GL_REFERENCE_PLANE_SGIX = $817D;
6849   GL_REFERENCE_PLANE_EQUATION_SGIX = $817E;
6850
6851   // GL_SGIX_resample
6852   GL_PACK_RESAMPLE_SGIX = $842C;
6853   GL_UNPACK_RESAMPLE_SGIX = $842D;
6854   GL_RESAMPLE_REPLICATE_SGIX = $842E;
6855   GL_RESAMPLE_ZERO_FILL_SGIX = $842F;
6856   GL_RESAMPLE_DECIMATE_SGIX = $8430;
6857
6858   // GL_SGIX_scalebias_hint
6859   GL_SCALEBIAS_HINT_SGIX = $8322;
6860
6861   // GL_SGIX_shadow
6862   GL_TEXTURE_COMPARE_SGIX = $819A;
6863   GL_TEXTURE_COMPARE_OPERATOR_SGIX = $819B;
6864   GL_TEXTURE_LEQUAL_R_SGIX = $819C;
6865   GL_TEXTURE_GEQUAL_R_SGIX = $819D;
6866
6867   // GL_SGIX_shadow_ambient
6868   GL_SHADOW_AMBIENT_SGIX = $80BF;
6869
6870   // GL_SGIX_sprite
6871   GL_SPRITE_SGIX = $8148;
6872   GL_SPRITE_MODE_SGIX = $8149;
6873   GL_SPRITE_AXIS_SGIX = $814A;
6874   GL_SPRITE_TRANSLATION_SGIX = $814B;
6875   GL_SPRITE_AXIAL_SGIX = $814C;
6876   GL_SPRITE_OBJECT_ALIGNED_SGIX = $814D;
6877   GL_SPRITE_EYE_ALIGNED_SGIX = $814E;
6878
6879   // GL_SGIX_subsample
6880   GL_PACK_SUBSAMPLE_RATE_SGIX = $85A0;
6881   GL_UNPACK_SUBSAMPLE_RATE_SGIX = $85A1;
6882   GL_PIXEL_SUBSAMPLE_4444_SGIX = $85A2;
6883   GL_PIXEL_SUBSAMPLE_2424_SGIX = $85A3;
6884   GL_PIXEL_SUBSAMPLE_4242_SGIX = $85A4;
6885
6886   // GL_SGIX_texture_add_env
6887   GL_TEXTURE_ENV_BIAS_SGIX = $80BE;
6888
6889   // GL_SGIX_texture_coordinate_clamp
6890   GL_TEXTURE_MAX_CLAMP_S_SGIX = $8369;
6891   GL_TEXTURE_MAX_CLAMP_T_SGIX = $836A;
6892   GL_TEXTURE_MAX_CLAMP_R_SGIX = $836B;
6893
6894   // GL_SGIX_texture_lod_bias
6895   GL_TEXTURE_LOD_BIAS_S_SGIX = $818E;
6896   GL_TEXTURE_LOD_BIAS_T_SGIX = $818F;
6897   GL_TEXTURE_LOD_BIAS_R_SGIX = $8190;
6898
6899   // GL_SGIX_texture_multi_buffer
6900   GL_TEXTURE_MULTI_BUFFER_HINT_SGIX = $812E;
6901
6902   // GL_SGIX_texture_scale_bias
6903   GL_POST_TEXTURE_FILTER_BIAS_SGIX = $8179;
6904   GL_POST_TEXTURE_FILTER_SCALE_SGIX = $817A;
6905   GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX = $817B;
6906   GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX = $817C;
6907
6908   // GL_SGIX_vertex_preclip
6909   GL_VERTEX_PRECLIP_SGIX = $83EE;
6910   GL_VERTEX_PRECLIP_HINT_SGIX = $83EF;
6911
6912   // GL_SGIX_ycrcb
6913   GL_YCRCB_422_SGIX = $81BB;
6914   GL_YCRCB_444_SGIX = $81BC;
6915
6916   // GL_SGIX_ycrcba
6917   GL_YCRCB_SGIX = $8318;
6918   GL_YCRCBA_SGIX = $8319;
6919
6920   // GL_SGI_color_matrix
6921   GL_COLOR_MATRIX_SGI = $80B1;
6922   GL_COLOR_MATRIX_STACK_DEPTH_SGI = $80B2;
6923   GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI = $80B3;
6924   GL_POST_COLOR_MATRIX_RED_SCALE_SGI = $80B4;
6925   GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI = $80B5;
6926   GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI = $80B6;
6927   GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI = $80B7;
6928   GL_POST_COLOR_MATRIX_RED_BIAS_SGI = $80B8;
6929   GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI = $80B9;
6930   GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI = $80BA;
6931   GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI = $80BB;
6932
6933   // GL_SGI_color_table
6934   GL_COLOR_TABLE_SGI = $80D0;
6935   GL_POST_CONVOLUTION_COLOR_TABLE_SGI = $80D1;
6936   GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI = $80D2;
6937   GL_PROXY_COLOR_TABLE_SGI = $80D3;
6938   GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI = $80D4;
6939   GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI = $80D5;
6940   GL_COLOR_TABLE_SCALE_SGI = $80D6;
6941   GL_COLOR_TABLE_BIAS_SGI = $80D7;
6942   GL_COLOR_TABLE_FORMAT_SGI = $80D8;
6943   GL_COLOR_TABLE_WIDTH_SGI = $80D9;
6944   GL_COLOR_TABLE_RED_SIZE_SGI = $80DA;
6945   GL_COLOR_TABLE_GREEN_SIZE_SGI = $80DB;
6946   GL_COLOR_TABLE_BLUE_SIZE_SGI = $80DC;
6947   GL_COLOR_TABLE_ALPHA_SIZE_SGI = $80DD;
6948   GL_COLOR_TABLE_LUMINANCE_SIZE_SGI = $80DE;
6949   GL_COLOR_TABLE_INTENSITY_SIZE_SGI = $80DF;
6950
6951   // GL_SGI_depth_pass_instrument
6952   GL_DEPTH_PASS_INSTRUMENT_SGIX = $8310;
6953   GL_DEPTH_PASS_INSTRUMENT_COUNTERS_SGIX = $8311;
6954   GL_DEPTH_PASS_INSTRUMENT_MAX_SGIX = $8312;
6955
6956   // GL_SGI_texture_color_table
6957   GL_TEXTURE_COLOR_TABLE_SGI = $80BC;
6958   GL_PROXY_TEXTURE_COLOR_TABLE_SGI = $80BD;
6959
6960   // GL_SUNX_constant_data
6961   GL_UNPACK_CONSTANT_DATA_SUNX = $81D5;
6962   GL_TEXTURE_CONSTANT_DATA_SUNX = $81D6;
6963
6964   // GL_SUN_convolution_border_modes
6965   GL_WRAP_BORDER_SUN = $81D4;
6966
6967   // GL_SUN_global_alpha
6968   GL_GLOBAL_ALPHA_SUN = $81D9;
6969   GL_GLOBAL_ALPHA_FACTOR_SUN = $81DA;
6970
6971   // GL_SUN_mesh_array
6972   GL_QUAD_MESH_SUN = $8614;
6973   GL_TRIANGLE_MESH_SUN = $8615;
6974
6975   // GL_SUN_slice_accum
6976   GL_SLICE_ACCUM_SUN = $85CC;
6977
6978   // GL_SUN_triangle_list
6979   GL_RESTART_SUN = $0001;
6980   GL_REPLACE_MIDDLE_SUN = $0002;
6981   GL_REPLACE_OLDEST_SUN = $0003;
6982   GL_TRIANGLE_LIST_SUN = $81D7;
6983   GL_REPLACEMENT_CODE_SUN = $81D8;
6984   GL_REPLACEMENT_CODE_ARRAY_SUN = $85C0;
6985   GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN = $85C1;
6986   GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN = $85C2;
6987   GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN = $85C3;
6988   GL_R1UI_V3F_SUN = $85C4;
6989   GL_R1UI_C4UB_V3F_SUN = $85C5;
6990   GL_R1UI_C3F_V3F_SUN = $85C6;
6991   GL_R1UI_N3F_V3F_SUN = $85C7;
6992   GL_R1UI_C4F_N3F_V3F_SUN = $85C8;
6993   GL_R1UI_T2F_V3F_SUN = $85C9;
6994   GL_R1UI_T2F_N3F_V3F_SUN = $85CA;
6995   GL_R1UI_T2F_C4F_N3F_V3F_SUN = $85CB;
6996
6997   // GL_WIN_phong_shading
6998   GL_PHONG_WIN = $80EA;
6999   GL_PHONG_HINT_WIN = $80EB;
7000
7001   // GL_WIN_specular_fog
7002   GL_FOG_SPECULAR_TEXTURE_WIN = $80EC;
7003
7004   // GL_ARB_vertex_shader
7005   GL_VERTEX_SHADER_ARB = $8B31;
7006   GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB = $8B4A;
7007   GL_MAX_VARYING_FLOATS_ARB = $8B4B;
7008   GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB = $8B4C;
7009   GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB = $8B4D;
7010   GL_OBJECT_ACTIVE_ATTRIBUTES_ARB = $8B89;
7011   GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB = $8B8A;
7012
7013   // GL_KHR_blend_equation_advanced
7014   GL_MULTIPLY_KHR = $9294;
7015   GL_SCREEN_KHR = $9295;
7016   GL_OVERLAY_KHR = $9296;
7017   GL_DARKEN_KHR = $9297;
7018   GL_LIGHTEN_KHR = $9298;
7019   GL_COLORDODGE_KHR = $9299;
7020   GL_COLORBURN_KHR = $929A;
7021   GL_HARDLIGHT_KHR = $929B;
7022   GL_SOFTLIGHT_KHR = $929C;
7023   GL_DIFFERENCE_KHR = $929E;
7024   GL_EXCLUSION_KHR = $92A0;
7025   GL_HSL_HUE_KHR = $92AD;
7026   GL_HSL_SATURATION_KHR = $92AE;
7027   GL_HSL_COLOR_KHR = $92AF;
7028   GL_HSL_LUMINOSITY_KHR = $92B0;
7029
7030   // GL_KHR_blend_equation_advanced_coherent
7031   GL_BLEND_ADVANCED_COHERENT_KHR = $9285;
7032
7033   // GL_KHR_robustness
7034   GL_CONTEXT_ROBUST_ACCESS = $90F3;
7035
7036   // GL_ARB_fragment_shader
7037   GL_FRAGMENT_SHADER_ARB = $8B30;
7038   GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB = $8B49; // 1.4
7039   GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB = $8B8B; // 1.4
7040
7041   // GL_ARB_occlusion_query
7042   GL_SAMPLES_PASSED_ARB = $8914;
7043   GL_QUERY_COUNTER_BITS_ARB = $8864;
7044   GL_CURRENT_QUERY_ARB = $8865;
7045   GL_QUERY_RESULT_ARB = $8866;
7046   GL_QUERY_RESULT_AVAILABLE_ARB = $8867;
7047
7048   // GL_ARB_pipeline_statistics_query
7049   GL_VERTICES_SUBMITTED_ARB         = $82EE;
7050   GL_PRIMITIVES_SUBMITTED_ARB       = $82EF;
7051   GL_VERTEX_SHADER_INVOCATIONS_ARB  = $82F0;
7052   GL_TESS_CONTROL_SHADER_PATCHES_ARB = $82F1;
7053   GL_TESS_EVALUATION_SHADER_INVOCATIONS_ARB = $82F2;
7054   GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED_ARB = $82F3;
7055   GL_FRAGMENT_SHADER_INVOCATIONS_ARB = $82F4;
7056   GL_COMPUTE_SHADER_INVOCATIONS_ARB = $82F5;
7057   GL_CLIPPING_INPUT_PRIMITIVES_ARB  = $82F6;
7058   GL_CLIPPING_OUTPUT_PRIMITIVES_ARB = $82F7;
7059
7060   // GL_ARB_point_sprite
7061   GL_POINT_SPRITE_ARB = $8861;
7062   GL_COORD_REPLACE_ARB = $8862;
7063
7064   // GL_ARB_shading_language_100
7065   GL_SHADING_LANGUAGE_VERSION_ARB = $8B8C; // 1.4
7066
7067   // GL_ARB_shader_objects
7068   GL_PROGRAM_OBJECT_ARB = $8B40;
7069
7070   GL_OBJECT_TYPE_ARB = $8B4E;
7071   GL_OBJECT_SUBTYPE_ARB = $8B4F;
7072   GL_OBJECT_DELETE_STATUS_ARB = $8B80;
7073   GL_OBJECT_COMPILE_STATUS_ARB = $8B81;
7074   GL_OBJECT_LINK_STATUS_ARB = $8B82;
7075   GL_OBJECT_VALIDATE_STATUS_ARB = $8B83;
7076   GL_OBJECT_INFO_LOG_LENGTH_ARB = $8B84;
7077   GL_OBJECT_ATTACHED_OBJECTS_ARB = $8B85;
7078   GL_OBJECT_ACTIVE_UNIFORMS_ARB = $8B86;
7079   GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB = $8B87;
7080   GL_OBJECT_SHADER_SOURCE_LENGTH_ARB = $8B88;
7081
7082   GL_SHADER_OBJECT_ARB = $8B48;
7083
7084   GL_FLOAT_VEC2_ARB = $8B50;
7085   GL_FLOAT_VEC3_ARB = $8B51;
7086   GL_FLOAT_VEC4_ARB = $8B52;
7087   GL_INT_VEC2_ARB = $8B53;
7088   GL_INT_VEC3_ARB = $8B54;
7089   GL_INT_VEC4_ARB = $8B55;
7090   GL_BOOL_ARB = $8B56;
7091   GL_BOOL_VEC2_ARB = $8B57;
7092   GL_BOOL_VEC3_ARB = $8B58;
7093   GL_BOOL_VEC4_ARB = $8B59;
7094   GL_FLOAT_MAT2_ARB = $8B5A;
7095   GL_FLOAT_MAT3_ARB = $8B5B;
7096   GL_FLOAT_MAT4_ARB = $8B5C;
7097   GL_SAMPLER_1D_ARB = $8B5D;
7098   GL_SAMPLER_2D_ARB = $8B5E;
7099   GL_SAMPLER_3D_ARB = $8B5F;
7100   GL_SAMPLER_CUBE_ARB = $8B60;
7101   GL_SAMPLER_1D_SHADOW_ARB = $8B61;
7102   GL_SAMPLER_2D_SHADOW_ARB = $8B62;
7103   GL_SAMPLER_2D_RECT_ARB = $8B63;
7104   GL_SAMPLER_2D_RECT_SHADOW_ARB = $8B64;
7105
7106   // WGL_3DFX_multisample
7107   WGL_SAMPLE_BUFFERS_3DFX = $2060;
7108   WGL_SAMPLES_3DFX = $2061;
7109
7110   // WGL_ARB_buffer_region
7111   WGL_FRONT_COLOR_BUFFER_BIT_ARB = $00000001;
7112   WGL_BACK_COLOR_BUFFER_BIT_ARB = $00000002;
7113   WGL_DEPTH_BUFFER_BIT_ARB = $00000004;
7114   WGL_STENCIL_BUFFER_BIT_ARB = $00000008;
7115
7116   // WGL_ARB_context_flush_control
7117   WGL_CONTEXT_RELEASE_BEHAVIOR_ARB = $2097;
7118   WGL_CONTEXT_RELEASE_BEHAVIOR_NONE_ARB = 0;
7119   WGL_CONTEXT_RELEASE_BEHAVIOR_FLUSH_ARB = $2098;
7120
7121   // WGL_ARB_make_current_read
7122   ERROR_INVALID_PIXEL_TYPE_ARB = $2043;
7123   ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB = $2054;
7124
7125   // WGL_ARB_multisample
7126   WGL_SAMPLE_BUFFERS_ARB = $2041;
7127   WGL_SAMPLES_ARB = $2042;
7128
7129   // WGL_ARB_pbuffer
7130   WGL_DRAW_TO_PBUFFER_ARB = $202D;
7131   WGL_MAX_PBUFFER_PIXELS_ARB = $202E;
7132   WGL_MAX_PBUFFER_WIDTH_ARB = $202F;
7133   WGL_MAX_PBUFFER_HEIGHT_ARB = $2030;
7134   WGL_PBUFFER_LARGEST_ARB = $2033;
7135   WGL_PBUFFER_WIDTH_ARB = $2034;
7136   WGL_PBUFFER_HEIGHT_ARB = $2035;
7137   WGL_PBUFFER_LOST_ARB = $2036;
7138
7139   // WGL_ARB_pixel_format
7140   WGL_NUMBER_PIXEL_FORMATS_ARB = $2000;
7141   WGL_DRAW_TO_WINDOW_ARB = $2001;
7142   WGL_DRAW_TO_BITMAP_ARB = $2002;
7143   WGL_ACCELERATION_ARB = $2003;
7144   WGL_NEED_PALETTE_ARB = $2004;
7145   WGL_NEED_SYSTEM_PALETTE_ARB = $2005;
7146   WGL_SWAP_LAYER_BUFFERS_ARB = $2006;
7147   WGL_SWAP_METHOD_ARB = $2007;
7148   WGL_NUMBER_OVERLAYS_ARB = $2008;
7149   WGL_NUMBER_UNDERLAYS_ARB = $2009;
7150   WGL_TRANSPARENT_ARB = $200A;
7151   WGL_TRANSPARENT_RED_VALUE_ARB = $2037;
7152   WGL_TRANSPARENT_GREEN_VALUE_ARB = $2038;
7153   WGL_TRANSPARENT_BLUE_VALUE_ARB = $2039;
7154   WGL_TRANSPARENT_ALPHA_VALUE_ARB = $203A;
7155   WGL_TRANSPARENT_INDEX_VALUE_ARB = $203B;
7156   WGL_SHARE_DEPTH_ARB = $200C;
7157   WGL_SHARE_STENCIL_ARB = $200D;
7158   WGL_SHARE_ACCUM_ARB = $200E;
7159   WGL_SUPPORT_GDI_ARB = $200F;
7160   WGL_SUPPORT_OPENGL_ARB = $2010;
7161   WGL_DOUBLE_BUFFER_ARB = $2011;
7162   WGL_STEREO_ARB = $2012;
7163   WGL_PIXEL_TYPE_ARB = $2013;
7164   WGL_COLOR_BITS_ARB = $2014;
7165   WGL_RED_BITS_ARB = $2015;
7166   WGL_RED_SHIFT_ARB = $2016;
7167   WGL_GREEN_BITS_ARB = $2017;
7168   WGL_GREEN_SHIFT_ARB = $2018;
7169   WGL_BLUE_BITS_ARB = $2019;
7170   WGL_BLUE_SHIFT_ARB = $201A;
7171   WGL_ALPHA_BITS_ARB = $201B;
7172   WGL_ALPHA_SHIFT_ARB = $201C;
7173   WGL_ACCUM_BITS_ARB = $201D;
7174   WGL_ACCUM_RED_BITS_ARB = $201E;
7175   WGL_ACCUM_GREEN_BITS_ARB = $201F;
7176   WGL_ACCUM_BLUE_BITS_ARB = $2020;
7177   WGL_ACCUM_ALPHA_BITS_ARB = $2021;
7178   WGL_DEPTH_BITS_ARB = $2022;
7179   WGL_STENCIL_BITS_ARB = $2023;
7180   WGL_AUX_BUFFERS_ARB = $2024;
7181   WGL_NO_ACCELERATION_ARB = $2025;
7182   WGL_GENERIC_ACCELERATION_ARB = $2026;
7183   WGL_FULL_ACCELERATION_ARB = $2027;
7184   WGL_SWAP_EXCHANGE_ARB = $2028;
7185   WGL_SWAP_COPY_ARB = $2029;
7186   WGL_SWAP_UNDEFINED_ARB = $202A;
7187   WGL_TYPE_RGBA_ARB = $202B;
7188   WGL_TYPE_COLORINDEX_ARB = $202C;
7189
7190   // WGL_ARB_pixel_format_float
7191   WGL_RGBA_FLOAT_MODE_ARB = $8820;
7192   WGL_CLAMP_VERTEX_COLOR_ARB = $891A;
7193   WGL_CLAMP_FRAGMENT_COLOR_ARB = $891B;
7194   WGL_CLAMP_READ_COLOR_ARB = $891C;
7195   WGL_FIXED_ONLY_ARB = $891D;
7196
7197   // WGL_ARB_render_texture
7198   WGL_BIND_TO_TEXTURE_RGB_ARB = $2070;
7199   WGL_BIND_TO_TEXTURE_RGBA_ARB = $2071;
7200   WGL_TEXTURE_FORMAT_ARB = $2072;
7201   WGL_TEXTURE_TARGET_ARB = $2073;
7202   WGL_MIPMAP_TEXTURE_ARB = $2074;
7203   WGL_TEXTURE_RGB_ARB = $2075;
7204   WGL_TEXTURE_RGBA_ARB = $2076;
7205   WGL_NO_TEXTURE_ARB = $2077;
7206   WGL_TEXTURE_CUBE_MAP_ARB = $2078;
7207   WGL_TEXTURE_1D_ARB = $2079;
7208   WGL_TEXTURE_2D_ARB = $207A;
7209   WGL_MIPMAP_LEVEL_ARB = $207B;
7210   WGL_CUBE_MAP_FACE_ARB = $207C;
7211   WGL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB = $207D;
7212   WGL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB = $207E;
7213   WGL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB = $207F;
7214   WGL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB = $2080;
7215   WGL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB = $2081;
7216   WGL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB = $2082;
7217   WGL_FRONT_LEFT_ARB = $2083;
7218   WGL_FRONT_RIGHT_ARB = $2084;
7219   WGL_BACK_LEFT_ARB = $2085;
7220   WGL_BACK_RIGHT_ARB = $2086;
7221   WGL_AUX0_ARB = $2087;
7222   WGL_AUX1_ARB = $2088;
7223   WGL_AUX2_ARB = $2089;
7224   WGL_AUX3_ARB = $208A;
7225   WGL_AUX4_ARB = $208B;
7226   WGL_AUX5_ARB = $208C;
7227   WGL_AUX6_ARB = $208D;
7228   WGL_AUX7_ARB = $208E;
7229   WGL_AUX8_ARB = $208F;
7230   WGL_AUX9_ARB = $2090;
7231
7232   // WGL_ARB_robustness_application_isolation
7233   WGL_CONTEXT_RESET_ISOLATION_BIT_ARB = $00000008;
7234
7235   // WGL_ARB_create_context
7236   WGL_CONTEXT_DEBUG_BIT_ARB = $00000001;
7237   WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB = $00000002;
7238   WGL_CONTEXT_MAJOR_VERSION_ARB = $2091;
7239   WGL_CONTEXT_MINOR_VERSION_ARB = $2092;
7240   WGL_CONTEXT_LAYER_PLANE_ARB = $2093;
7241   WGL_CONTEXT_FLAGS_ARB = $2094;
7242   ERROR_INVALID_VERSION_ARB = $2095;
7243
7244   // WGL_ARB_create_context_profile
7245   WGL_CONTEXT_PROFILE_MASK_ARB = $9126;
7246   WGL_CONTEXT_CORE_PROFILE_BIT_ARB = $00000001;
7247   WGL_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB = $00000002;
7248   ERROR_INVALID_PROFILE_ARB = $2096;
7249
7250   // WGL_ARB_framebuffer_sRGB
7251   WGL_FRAMEBUFFER_SRGB_CAPABLE_ARB = $20A9;
7252
7253   // WGL_ARB_create_context_robustness
7254   WGL_CONTEXT_ROBUST_ACCESS_BIT_ARB = $00000004;
7255   WGL_LOSE_CONTEXT_ON_RESET_ARB = $8252;
7256   WGL_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB = $8256;
7257   WGL_NO_RESET_NOTIFICATION_ARB = $8261;
7258
7259   // WGL_ATI_pixel_format_float
7260   WGL_TYPE_RGBA_FLOAT_ATI = $21A0;
7261   GL_TYPE_RGBA_FLOAT_ATI = $8820;
7262   GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI = $8835;
7263
7264   // WGL_AMD_gpu_association
7265   WGL_GPU_VENDOR_AMD = $1F00;
7266   WGL_GPU_RENDERER_STRING_AMD = $1F01;
7267   WGL_GPU_OPENGL_VERSION_STRING_AMD = $1F02;
7268   WGL_GPU_FASTEST_TARGET_GPUS_AMD = $21A2;
7269   WGL_GPU_RAM_AMD = $21A3;
7270   WGL_GPU_CLOCK_AMD = $21A4;
7271   WGL_GPU_NUM_PIPES_AMD = $21A5;
7272   WGL_GPU_NUM_SIMD_AMD = $21A6;
7273   WGL_GPU_NUM_RB_AMD = $21A7;
7274   WGL_GPU_NUM_SPI_AMD = $21A8;
7275
7276   // WGL_EXT_depth_float
7277   WGL_DEPTH_FLOAT_EXT = $2040;
7278
7279   // WGL_EXT_make_current_read
7280   ERROR_INVALID_PIXEL_TYPE_EXT = $2043;
7281
7282   // WGL_EXT_multisample
7283   WGL_SAMPLE_BUFFERS_EXT = $2041;
7284   WGL_SAMPLES_EXT = $2042;
7285
7286   // WGL_EXT_pbuffer
7287   WGL_DRAW_TO_PBUFFER_EXT = $202D;
7288   WGL_MAX_PBUFFER_PIXELS_EXT = $202E;
7289   WGL_MAX_PBUFFER_WIDTH_EXT = $202F;
7290   WGL_MAX_PBUFFER_HEIGHT_EXT = $2030;
7291   WGL_OPTIMAL_PBUFFER_WIDTH_EXT = $2031;
7292   WGL_OPTIMAL_PBUFFER_HEIGHT_EXT = $2032;
7293   WGL_PBUFFER_LARGEST_EXT = $2033;
7294   WGL_PBUFFER_WIDTH_EXT = $2034;
7295   WGL_PBUFFER_HEIGHT_EXT = $2035;
7296
7297   // WGL_EXT_pixel_format
7298   WGL_NUMBER_PIXEL_FORMATS_EXT = $2000;
7299   WGL_DRAW_TO_WINDOW_EXT = $2001;
7300   WGL_DRAW_TO_BITMAP_EXT = $2002;
7301   WGL_ACCELERATION_EXT = $2003;
7302   WGL_NEED_PALETTE_EXT = $2004;
7303   WGL_NEED_SYSTEM_PALETTE_EXT = $2005;
7304   WGL_SWAP_LAYER_BUFFERS_EXT = $2006;
7305   WGL_SWAP_METHOD_EXT = $2007;
7306   WGL_NUMBER_OVERLAYS_EXT = $2008;
7307   WGL_NUMBER_UNDERLAYS_EXT = $2009;
7308   WGL_TRANSPARENT_EXT = $200A;
7309   WGL_TRANSPARENT_VALUE_EXT = $200B;
7310   WGL_SHARE_DEPTH_EXT = $200C;
7311   WGL_SHARE_STENCIL_EXT = $200D;
7312   WGL_SHARE_ACCUM_EXT = $200E;
7313   WGL_SUPPORT_GDI_EXT = $200F;
7314   WGL_SUPPORT_OPENGL_EXT = $2010;
7315   WGL_DOUBLE_BUFFER_EXT = $2011;
7316   WGL_STEREO_EXT = $2012;
7317   WGL_PIXEL_TYPE_EXT = $2013;
7318   WGL_COLOR_BITS_EXT = $2014;
7319   WGL_RED_BITS_EXT = $2015;
7320   WGL_RED_SHIFT_EXT = $2016;
7321   WGL_GREEN_BITS_EXT = $2017;
7322   WGL_GREEN_SHIFT_EXT = $2018;
7323   WGL_BLUE_BITS_EXT = $2019;
7324   WGL_BLUE_SHIFT_EXT = $201A;
7325   WGL_ALPHA_BITS_EXT = $201B;
7326   WGL_ALPHA_SHIFT_EXT = $201C;
7327   WGL_ACCUM_BITS_EXT = $201D;
7328   WGL_ACCUM_RED_BITS_EXT = $201E;
7329   WGL_ACCUM_GREEN_BITS_EXT = $201F;
7330   WGL_ACCUM_BLUE_BITS_EXT = $2020;
7331   WGL_ACCUM_ALPHA_BITS_EXT = $2021;
7332   WGL_DEPTH_BITS_EXT = $2022;
7333   WGL_STENCIL_BITS_EXT = $2023;
7334   WGL_AUX_BUFFERS_EXT = $2024;
7335   WGL_NO_ACCELERATION_EXT = $2025;
7336   WGL_GENERIC_ACCELERATION_EXT = $2026;
7337   WGL_FULL_ACCELERATION_EXT = $2027;
7338   WGL_SWAP_EXCHANGE_EXT = $2028;
7339   WGL_SWAP_COPY_EXT = $2029;
7340   WGL_SWAP_UNDEFINED_EXT = $202A;
7341   WGL_TYPE_RGBA_EXT = $202B;
7342   WGL_TYPE_COLORINDEX_EXT = $202C;
7343
7344   // WGL_I3D_digital_video_control
7345   WGL_DIGITAL_VIDEO_CURSOR_ALPHA_FRAMEBUFFER_I3D = $2050;
7346   WGL_DIGITAL_VIDEO_CURSOR_ALPHA_VALUE_I3D = $2051;
7347   WGL_DIGITAL_VIDEO_CURSOR_INCLUDED_I3D = $2052;
7348   WGL_DIGITAL_VIDEO_GAMMA_CORRECTED_I3D = $2053;
7349
7350   // WGL_I3D_gamma
7351   WGL_GAMMA_TABLE_SIZE_I3D = $204E;
7352   WGL_GAMMA_EXCLUDE_DESKTOP_I3D = $204F;
7353
7354   // WGL_I3D_genlock
7355   WGL_GENLOCK_SOURCE_MULTIVIEW_I3D = $2044;
7356   WGL_GENLOCK_SOURCE_EXTENAL_SYNC_I3D = $2045;
7357   WGL_GENLOCK_SOURCE_EXTENAL_FIELD_I3D = $2046;
7358   WGL_GENLOCK_SOURCE_EXTENAL_TTL_I3D = $2047;
7359   WGL_GENLOCK_SOURCE_DIGITAL_SYNC_I3D = $2048;
7360   WGL_GENLOCK_SOURCE_DIGITAL_FIELD_I3D = $2049;
7361   WGL_GENLOCK_SOURCE_EDGE_FALLING_I3D = $204A;
7362   WGL_GENLOCK_SOURCE_EDGE_RISING_I3D = $204B;
7363   WGL_GENLOCK_SOURCE_EDGE_BOTH_I3D = $204C;
7364
7365   // WGL_I3D_image_buffer
7366   WGL_IMAGE_BUFFER_MIN_ACCESS_I3D = $00000001;
7367   WGL_IMAGE_BUFFER_LOCK_I3D = $00000002;
7368
7369   // WGL_NV_float_buffer
7370   WGL_FLOAT_COMPONENTS_NV = $20B0;
7371   WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_R_NV = $20B1;
7372   WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RG_NV = $20B2;
7373   WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGB_NV = $20B3;
7374   WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGBA_NV = $20B4;
7375   WGL_TEXTURE_FLOAT_R_NV = $20B5;
7376   WGL_TEXTURE_FLOAT_RG_NV = $20B6;
7377   WGL_TEXTURE_FLOAT_RGB_NV = $20B7;
7378   WGL_TEXTURE_FLOAT_RGBA_NV = $20B8;
7379
7380   // WGL_NV_render_depth_texture
7381   WGL_BIND_TO_TEXTURE_DEPTH_NV = $20A3;
7382   WGL_BIND_TO_TEXTURE_RECTANGLE_DEPTH_NV = $20A4;
7383   WGL_DEPTH_TEXTURE_FORMAT_NV = $20A5;
7384   WGL_TEXTURE_DEPTH_COMPONENT_NV = $20A6;
7385   WGL_DEPTH_COMPONENT_NV = $20A7;
7386
7387   // WGL_NV_render_texture_rectangle
7388   WGL_BIND_TO_TEXTURE_RECTANGLE_RGB_NV = $20A0;
7389   WGL_BIND_TO_TEXTURE_RECTANGLE_RGBA_NV = $20A1;
7390   WGL_TEXTURE_RECTANGLE_NV = $20A2;
7391
7392   // WGL_NV_present_video
7393   WGL_NUM_VIDEO_SLOTS_NV = $20F0;
7394
7395   // WGL_NV_video_output
7396   WGL_BIND_TO_VIDEO_RGB_NV = $20C0;
7397   WGL_BIND_TO_VIDEO_RGBA_NV = $20C1;
7398   WGL_BIND_TO_VIDEO_RGB_AND_DEPTH_NV = $20C2;
7399   WGL_VIDEO_OUT_COLOR_NV = $20C3;
7400   WGL_VIDEO_OUT_ALPHA_NV = $20C4;
7401   WGL_VIDEO_OUT_DEPTH_NV = $20C5;
7402   WGL_VIDEO_OUT_COLOR_AND_ALPHA_NV = $20C6;
7403   WGL_VIDEO_OUT_COLOR_AND_DEPTH_NV = $20C7;
7404   WGL_VIDEO_OUT_FRAME = $20C8;
7405   WGL_VIDEO_OUT_FIELD_1 = $20C9;
7406   WGL_VIDEO_OUT_FIELD_2 = $20CA;
7407   WGL_VIDEO_OUT_STACKED_FIELDS_1_2 = $20CB;
7408   WGL_VIDEO_OUT_STACKED_FIELDS_2_1 = $20CC;
7409
7410   // WGL_NV_gpu_affinity
7411   WGL_ERROR_INCOMPATIBLE_AFFINITY_MASKS_NV = $20D0;
7412   WGL_ERROR_MISSING_AFFINITY_MASK_NV = $20D1;
7413
7414   // WGL_NV_video_capture
7415   WGL_UNIQUE_ID_NV = $20CE;
7416   WGL_NUM_VIDEO_CAPTURE_SLOTS_NV = $20CF;
7417
7418   // WGL_NV_multisample_coverage
7419   WGL_COVERAGE_SAMPLES_NV = $2042;
7420   WGL_COLOR_SAMPLES_NV = $20B9;
7421
7422   // WGL_EXT_create_context_es2_profile
7423   WGL_CONTEXT_ES2_PROFILE_BIT_EXT = $00000004;
7424
7425   // WGL_NV_DX_interop
7426   WGL_ACCESS_READ_ONLY_NV        = $00000000;
7427   WGL_ACCESS_READ_WRITE_NV       = $00000001;
7428   WGL_ACCESS_WRITE_DISCARD_NV    = $00000002;
7429
7430   // WIN_draw_range_elements
7431   GL_MAX_ELEMENTS_VERTICES_WIN = $80E8;
7432   GL_MAX_ELEMENTS_INDICES_WIN = $80E9;
7433
7434   // GLX 1.1 and later:
7435   GLX_VENDOR = 1;
7436   GLX_VERSION = 2;
7437   GLX_EXTENSIONS = 3;
7438
7439   GLX_USE_GL = 1;
7440   GLX_BUFFER_SIZE = 2;
7441   GLX_LEVEL = 3;
7442   GLX_RGBA = 4;
7443   GLX_DOUBLEBUFFER = 5;
7444   GLX_STEREO = 6;
7445   GLX_AUX_BUFFERS = 7;
7446   GLX_RED_SIZE = 8;
7447   GLX_GREEN_SIZE = 9;
7448   GLX_BLUE_SIZE = 10;
7449   GLX_ALPHA_SIZE = 11;
7450   GLX_DEPTH_SIZE = 12;
7451   GLX_STENCIL_SIZE = 13;
7452   GLX_ACCUM_RED_SIZE = 14;
7453   GLX_ACCUM_GREEN_SIZE = 15;
7454   GLX_ACCUM_BLUE_SIZE = 16;
7455   GLX_ACCUM_ALPHA_SIZE = 17;
7456
7457   // GLX_VERSION_1_3
7458   GLX_WINDOW_BIT = $00000001;
7459   GLX_PIXMAP_BIT = $00000002;
7460   GLX_PBUFFER_BIT = $00000004;
7461   GLX_RGBA_BIT = $00000001;
7462   GLX_COLOR_INDEX_BIT = $00000002;
7463   GLX_PBUFFER_CLOBBER_MASK = $08000000;
7464   GLX_FRONT_LEFT_BUFFER_BIT = $00000001;
7465   GLX_FRONT_RIGHT_BUFFER_BIT = $00000002;
7466   GLX_BACK_LEFT_BUFFER_BIT = $00000004;
7467   GLX_BACK_RIGHT_BUFFER_BIT = $00000008;
7468   GLX_AUX_BUFFERS_BIT = $00000010;
7469   GLX_DEPTH_BUFFER_BIT = $00000020;
7470   GLX_STENCIL_BUFFER_BIT = $00000040;
7471   GLX_ACCUM_BUFFER_BIT = $00000080;
7472   GLX_CONFIG_CAVEAT = $20;
7473   GLX_X_VISUAL_TYPE = $22;
7474   GLX_TRANSPARENT_TYPE = $23;
7475   GLX_TRANSPARENT_INDEX_VALUE = $24;
7476   GLX_TRANSPARENT_RED_VALUE = $25;
7477   GLX_TRANSPARENT_GREEN_VALUE = $26;
7478   GLX_TRANSPARENT_BLUE_VALUE = $27;
7479   GLX_TRANSPARENT_ALPHA_VALUE = $28;
7480   GLX_DONT_CARE = $FFFFFFFF;
7481   GLX_NONE = $8000;
7482   GLX_SLOW_CONFIG = $8001;
7483   GLX_TRUE_COLOR = $8002;
7484   GLX_DIRECT_COLOR = $8003;
7485   GLX_PSEUDO_COLOR = $8004;
7486   GLX_STATIC_COLOR = $8005;
7487   GLX_GRAY_SCALE = $8006;
7488   GLX_STATIC_GRAY = $8007;
7489   GLX_TRANSPARENT_RGB = $8008;
7490   GLX_TRANSPARENT_INDEX = $8009;
7491   GLX_VISUAL_ID = $800B;
7492   GLX_SCREEN = $800C;
7493   GLX_NON_CONFORMANT_CONFIG = $800D;
7494   GLX_DRAWABLE_TYPE = $8010;
7495   GLX_RENDER_TYPE = $8011;
7496   GLX_X_RENDERABLE = $8012;
7497   GLX_FBCONFIG_ID = $8013;
7498   GLX_RGBA_TYPE = $8014;
7499   GLX_COLOR_INDEX_TYPE = $8015;
7500   GLX_MAX_PBUFFER_WIDTH = $8016;
7501   GLX_MAX_PBUFFER_HEIGHT = $8017;
7502   GLX_MAX_PBUFFER_PIXELS = $8018;
7503   GLX_PRESERVED_CONTENTS = $801B;
7504   GLX_LARGEST_PBUFFER = $801C;
7505   GLX_WIDTH = $801D;
7506   GLX_HEIGHT = $801E;
7507   GLX_EVENT_MASK = $801F;
7508   GLX_DAMAGED = $8020;
7509   GLX_SAVED = $8021;
7510   GLX_WINDOW = $8022;
7511   GLX_PBUFFER = $8023;
7512   GLX_PBUFFER_HEIGHT = $8040;
7513   GLX_PBUFFER_WIDTH = $8041;
7514
7515   // GLX_VERSION_1_4
7516   GLX_SAMPLE_BUFFERS = 100000;
7517   GLX_SAMPLES = 100001;
7518
7519   // GLX_ARB_multisample
7520   GLX_SAMPLE_BUFFERS_ARB = 100000;
7521   GLX_SAMPLES_ARB = 100001;
7522
7523   // GLX_ARB_robustness_application_isolation
7524   GLX_CONTEXT_RESET_ISOLATION_BIT_ARB = $00000008;
7525
7526   // GLX_ARB_fbconfig_float
7527   GLX_RGBA_FLOAT_TYPE_ARB = $20B9;
7528   GLX_RGBA_FLOAT_BIT_ARB = $00000004;
7529
7530   // GLX_ARB_context_flush_control
7531   GLX_CONTEXT_RELEASE_BEHAVIOR_ARB = $2097;
7532   GLX_CONTEXT_RELEASE_BEHAVIOR_NONE_ARB = 0;
7533   GLX_CONTEXT_RELEASE_BEHAVIOR_FLUSH_ARB = $2098;
7534
7535   // GLX_ARB_create_context
7536   GLX_CONTEXT_DEBUG_BIT_ARB = $00000001;
7537   GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB = $00000002;
7538   GLX_CONTEXT_MAJOR_VERSION_ARB = $2091;
7539   GLX_CONTEXT_MINOR_VERSION_ARB = $2092;
7540   GLX_CONTEXT_FLAGS_ARB = $2094;
7541
7542   // GLX_ARB_create_context_profile
7543   GLX_CONTEXT_CORE_PROFILE_BIT_ARB = $00000001;
7544   GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB = $00000002;
7545   GLX_CONTEXT_PROFILE_MASK_ARB = $9126;
7546
7547   // GLX_ARB_vertex_buffer_object
7548   GLX_CONTEXT_ALLOW_BUFFER_BYTE_ORDER_MISMATCH_ARB = $2095;
7549
7550   // GLX_ARB_framebuffer_sRGB
7551   GLX_FRAMEBUFFER_SRGB_CAPABLE_ARB = $20B2;
7552
7553   // GLX_ARB_create_context_robustness
7554   GLX_CONTEXT_ROBUST_ACCESS_BIT_ARB = $00000004;
7555   GLX_LOSE_CONTEXT_ON_RESET_ARB = $8252;
7556   GLX_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB = $8256;
7557   GLX_NO_RESET_NOTIFICATION_ARB = $8261;
7558
7559   // GLX_EXT_visual_info
7560   GLX_X_VISUAL_TYPE_EXT = $22;
7561   GLX_TRANSPARENT_TYPE_EXT = $23;
7562   GLX_TRANSPARENT_INDEX_VALUE_EXT = $24;
7563   GLX_TRANSPARENT_RED_VALUE_EXT = $25;
7564   GLX_TRANSPARENT_GREEN_VALUE_EXT = $26;
7565   GLX_TRANSPARENT_BLUE_VALUE_EXT = $27;
7566   GLX_TRANSPARENT_ALPHA_VALUE_EXT = $28;
7567   GLX_NONE_EXT = $8000;
7568   GLX_TRUE_COLOR_EXT = $8002;
7569   GLX_DIRECT_COLOR_EXT = $8003;
7570   GLX_PSEUDO_COLOR_EXT = $8004;
7571   GLX_STATIC_COLOR_EXT = $8005;
7572   GLX_GRAY_SCALE_EXT = $8006;
7573   GLX_STATIC_GRAY_EXT = $8007;
7574   GLX_TRANSPARENT_RGB_EXT = $8008;
7575   GLX_TRANSPARENT_INDEX_EXT = $8009;
7576
7577   // GLX_EXT_visual_rating
7578   GLX_VISUAL_CAVEAT_EXT = $20;
7579   GLX_SLOW_VISUAL_EXT = $8001;
7580   GLX_NON_CONFORMANT_VISUAL_EXT = $800D;
7581   (* reuse GLX_NONE_EXT *)
7582
7583   // GLX_EXT_import_context
7584   GLX_SHARE_CONTEXT_EXT = $800A;
7585   GLX_VISUAL_ID_EXT = $800B;
7586   GLX_SCREEN_EXT = $800C;
7587
7588   // GLX_EXT_fbconfig_packed_float
7589 //  GLX_RGBA_UNSIGNED_FLOAT_TYPE_EXT = $20B1;
7590 //  GLX_RGBA_UNSIGNED_FLOAT_BIT_EXT = $00000008;
7591
7592   // GLX_EXT_framebuffer_sRGB
7593 //  GLX_FRAMEBUFFER_SRGB_CAPABLE_EXT = $20B2;
7594
7595   // GLX_EXT_texture_from_pixmap
7596   GLX_TEXTURE_1D_BIT_EXT = $00000001;
7597   GLX_TEXTURE_2D_BIT_EXT = $00000002;
7598   GLX_TEXTURE_RECTANGLE_BIT_EXT = $00000004;
7599   GLX_BIND_TO_TEXTURE_RGB_EXT = $20D0;
7600   GLX_BIND_TO_TEXTURE_RGBA_EXT = $20D1;
7601   GLX_BIND_TO_MIPMAP_TEXTURE_EXT = $20D2;
7602   GLX_BIND_TO_TEXTURE_TARGETS_EXT = $20D3;
7603   GLX_Y_INVERTED_EXT = $20D4;
7604   GLX_TEXTURE_FORMAT_EXT = $20D5;
7605   GLX_TEXTURE_TARGET_EXT = $20D6;
7606   GLX_MIPMAP_TEXTURE_EXT = $20D7;
7607   GLX_TEXTURE_FORMAT_NONE_EXT = $20D8;
7608   GLX_TEXTURE_FORMAT_RGB_EXT = $20D9;
7609   GLX_TEXTURE_FORMAT_RGBA_EXT = $20DA;
7610   GLX_TEXTURE_1D_EXT = $20DB;
7611   GLX_TEXTURE_2D_EXT = $20DC;
7612   GLX_TEXTURE_RECTANGLE_EXT = $20DD;
7613   GLX_FRONT_LEFT_EXT = $20DE;
7614   GLX_FRONT_RIGHT_EXT = $20DF;
7615   GLX_BACK_LEFT_EXT = $20E0;
7616   GLX_BACK_RIGHT_EXT = $20E1;
7617   GLX_FRONT_EXT = GLX_FRONT_LEFT_EXT;
7618   GLX_BACK_EXT = GLX_BACK_LEFT_EXT;
7619   GLX_AUX0_EXT = $20E2;
7620   GLX_AUX1_EXT = $20E3;
7621   GLX_AUX2_EXT = $20E4;
7622   GLX_AUX3_EXT = $20E5;
7623   GLX_AUX4_EXT = $20E6;
7624   GLX_AUX5_EXT = $20E7;
7625   GLX_AUX6_EXT = $20E8;
7626   GLX_AUX7_EXT = $20E9;
7627   GLX_AUX8_EXT = $20EA;
7628   GLX_AUX9_EXT = $20EB;
7629
7630   // GLX_EXT_swap_control
7631   GLX_SWAP_INTERVAL_EXT = $20F1;
7632   GLX_MAX_SWAP_INTERVAL_EXT = $20F2;
7633
7634   // GLX_EXT_create_context_es2_profile
7635   GLX_CONTEXT_ES2_PROFILE_BIT_EXT = $00000004;
7636
7637   // GL_EXT_Late_Swaps
7638   GLX_LATE_SWAPS_TEAR_EXT         = $20F3;
7639
7640   // GLU
7641   GLU_INVALID_ENUM = 100900;
7642   GLU_INVALID_VALUE = 100901;
7643   GLU_OUT_OF_MEMORY = 100902;
7644   GLU_INCOMPATIBLE_GL_VERSION = 100903;
7645   GLU_VERSION = 100800;
7646   GLU_EXTENSIONS = 100801;
7647   GLU_TRUE: ByteBool = True;
7648   GLU_FALSE: ByteBool = False;
7649   GLU_SMOOTH = 100000;
7650   GLU_FLAT = 100001;
7651   GLU_NONE = 100002;
7652   GLU_POINT = 100010;
7653   GLU_LINE = 100011;
7654   GLU_FILL = 100012;
7655   GLU_SILHOUETTE = 100013;
7656   GLU_OUTSIDE = 100020;
7657   GLU_INSIDE = 100021;
7658   GLU_TESS_MAX_COORD = 1.0E150;
7659   GLU_TESS_WINDING_RULE = 100140;
7660   GLU_TESS_BOUNDARY_ONLY = 100141;
7661   GLU_TESS_TOLERANCE = 100142;
7662   GLU_TESS_WINDING_ODD = 100130;
7663   GLU_TESS_WINDING_NONZERO = 100131;
7664   GLU_TESS_WINDING_POSITIVE = 100132;
7665   GLU_TESS_WINDING_NEGATIVE = 100133;
7666   GLU_TESS_WINDING_ABS_GEQ_TWO = 100134;
7667   GLU_TESS_BEGIN = 100100; // TGLUTessBeginProc
7668   GLU_TESS_VERTEX = 100101; // TGLUTessVertexProc
7669   GLU_TESS_END = 100102; // TGLUTessEndProc
7670   GLU_TESS_ERROR = 100103; // TGLUTessErrorProc
7671   GLU_TESS_EDGE_FLAG = 100104; // TGLUTessEdgeFlagProc
7672   GLU_TESS_COMBINE = 100105; // TGLUTessCombineProc
7673   GLU_TESS_BEGIN_DATA = 100106; // TGLUTessBeginDataProc
7674   GLU_TESS_VERTEX_DATA = 100107; // TGLUTessVertexDataProc
7675   GLU_TESS_END_DATA = 100108; // TGLUTessEndDataProc
7676   GLU_TESS_ERROR_DATA = 100109; // TGLUTessErrorDataProc
7677   GLU_TESS_EDGE_FLAG_DATA = 100110; // TGLUTessEdgeFlagDataProc
7678   GLU_TESS_COMBINE_DATA = 100111; // TGLUTessCombineDataProc
7679   GLU_TESS_ERROR1 = 100151;
7680   GLU_TESS_ERROR2 = 100152;
7681   GLU_TESS_ERROR3 = 100153;
7682   GLU_TESS_ERROR4 = 100154;
7683   GLU_TESS_ERROR5 = 100155;
7684   GLU_TESS_ERROR6 = 100156;
7685   GLU_TESS_ERROR7 = 100157;
7686   GLU_TESS_ERROR8 = 100158;
7687   GLU_TESS_MISSING_BEGIN_POLYGON = GLU_TESS_ERROR1;
7688   GLU_TESS_MISSING_BEGIN_CONTOUR = GLU_TESS_ERROR2;
7689   GLU_TESS_MISSING_END_POLYGON = GLU_TESS_ERROR3;
7690   GLU_TESS_MISSING_END_CONTOUR = GLU_TESS_ERROR4;
7691   GLU_TESS_COORD_TOO_LARGE = GLU_TESS_ERROR5;
7692   GLU_TESS_NEED_COMBINE_CALLBACK = GLU_TESS_ERROR6;
7693   GLU_AUTO_LOAD_MATRIX = 100200;
7694   GLU_CULLING = 100201;
7695   GLU_SAMPLING_TOLERANCE = 100203;
7696   GLU_DISPLAY_MODE = 100204;
7697   GLU_PARAMETRIC_TOLERANCE = 100202;
7698   GLU_SAMPLING_METHOD = 100205;
7699   GLU_U_STEP = 100206;
7700   GLU_V_STEP = 100207;
7701   GLU_PATH_LENGTH = 100215;
7702   GLU_PARAMETRIC_ERROR = 100216;
7703   GLU_DOMAIN_DISTANCE = 100217;
7704   GLU_MAP1_TRIM_2 = 100210;
7705   GLU_MAP1_TRIM_3 = 100211;
7706   GLU_OUTLINE_POLYGON = 100240;
7707   GLU_OUTLINE_PATCH = 100241;
7708   GLU_NURBS_ERROR1 = 100251;
7709   GLU_NURBS_ERROR2 = 100252;
7710   GLU_NURBS_ERROR3 = 100253;
7711   GLU_NURBS_ERROR4 = 100254;
7712   GLU_NURBS_ERROR5 = 100255;
7713   GLU_NURBS_ERROR6 = 100256;
7714   GLU_NURBS_ERROR7 = 100257;
7715   GLU_NURBS_ERROR8 = 100258;
7716   GLU_NURBS_ERROR9 = 100259;
7717   GLU_NURBS_ERROR10 = 100260;
7718   GLU_NURBS_ERROR11 = 100261;
7719   GLU_NURBS_ERROR12 = 100262;
7720   GLU_NURBS_ERROR13 = 100263;
7721   GLU_NURBS_ERROR14 = 100264;
7722   GLU_NURBS_ERROR15 = 100265;
7723   GLU_NURBS_ERROR16 = 100266;
7724   GLU_NURBS_ERROR17 = 100267;
7725   GLU_NURBS_ERROR18 = 100268;
7726   GLU_NURBS_ERROR19 = 100269;
7727   GLU_NURBS_ERROR20 = 100270;
7728   GLU_NURBS_ERROR21 = 100271;
7729   GLU_NURBS_ERROR22 = 100272;
7730   GLU_NURBS_ERROR23 = 100273;
7731   GLU_NURBS_ERROR24 = 100274;
7732   GLU_NURBS_ERROR25 = 100275;
7733   GLU_NURBS_ERROR26 = 100276;
7734   GLU_NURBS_ERROR27 = 100277;
7735   GLU_NURBS_ERROR28 = 100278;
7736   GLU_NURBS_ERROR29 = 100279;
7737   GLU_NURBS_ERROR30 = 100280;
7738   GLU_NURBS_ERROR31 = 100281;
7739   GLU_NURBS_ERROR32 = 100282;
7740   GLU_NURBS_ERROR33 = 100283;
7741   GLU_NURBS_ERROR34 = 100284;
7742   GLU_NURBS_ERROR35 = 100285;
7743   GLU_NURBS_ERROR36 = 100286;
7744   GLU_NURBS_ERROR37 = 100287;
7745   GLU_CW = 100120;
7746   GLU_CCW = 100121;
7747   GLU_INTERIOR = 100122;
7748   GLU_EXTERIOR = 100123;
7749   GLU_UNKNOWN = 100124;
7750   GLU_BEGIN = GLU_TESS_BEGIN;
7751   GLU_VERTEX = GLU_TESS_VERTEX;
7752   GLU_END = GLU_TESS_END;
7753   GLU_ERROR = GLU_TESS_ERROR;
7754   GLU_EDGE_FLAG = GLU_TESS_EDGE_FLAG;
7755
7756 type
7757   // GL_VERSION_1_0
7758   TglCullFace = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7759   TglFrontFace = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7760   TglHint = procedure(target: GLenum; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7761   TglLineWidth = procedure(width: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7762   TglPointSize = procedure(size: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7763   TglPolygonMode = procedure(face: GLenum; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7764   TglScissor = procedure(x: GLint; y: GLint; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7765   TglTexParameterf = procedure(target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7766   TglTexParameterfv = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7767   TglTexParameteri = procedure(target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7768   TglTexParameteriv = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7769   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}
7770   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}
7771   TglDrawBuffer = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7772   TglClear = procedure(mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7773   TglClearColor = procedure(red: GLclampf; green: GLclampf; blue: GLclampf; alpha: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7774   TglClearStencil = procedure(s: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7775   TglClearDepth = procedure(depth: GLclampd); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7776   TglStencilMask = procedure(mask: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7777   TglColorMask = procedure(red: GLboolean; green: GLboolean; blue: GLboolean; alpha: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7778   TglDepthMask = procedure(flag: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7779   TglDisable = procedure(cap: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7780   TglEnable = procedure(cap: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7781   TglFinish = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7782   TglFlush = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7783   TglBlendFunc = procedure(sfactor: GLenum; dfactor: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7784   TglLogicOp = procedure(opcode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7785   TglStencilFunc = procedure(func: GLenum; ref: GLint; mask: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7786   TglStencilOp = procedure(fail: GLenum; zfail: GLenum; zpass: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7787   TglDepthFunc = procedure(func: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7788   TglPixelStoref = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7789   TglPixelStorei = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7790   TglReadBuffer = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7791   TglReadPixels = procedure(x: GLint; y: GLint; width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7792   TglGetBooleanv = procedure(pname: GLenum; params: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7793   TglGetDoublev = procedure(pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7794   TglGetError = function(): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7795   TglGetFloatv = procedure(pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7796   TglGetIntegerv = procedure(pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7797   TglGetString = function(name: GLenum): PAnsiChar; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7798   TglGetTexImage = procedure(target: GLenum; level: GLint; format: GLenum; _type: GLenum; pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7799   TglGetTexParameteriv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7800   TglGetTexParameterfv = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7801   TglGetTexLevelParameterfv = procedure(target: GLenum; level: GLint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7802   TglGetTexLevelParameteriv = procedure(target: GLenum; level: GLint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7803   TglIsEnabled = function(cap: GLenum): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7804   TglDepthRange = procedure(zNear: GLclampd; zFar: GLclampd); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7805   TglViewport = procedure(x: GLint; y: GLint; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7806
7807   // GL_VERSION_1_1
7808   TglDrawArrays = procedure(mode: GLenum; first: GLint; count: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7809   TglDrawElements = procedure(mode: GLenum; count: GLsizei; _type: GLenum; const indices: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7810   TglGetPointerv = procedure(pname: GLenum; params: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7811   TglPolygonOffset = procedure(factor: GLfloat; units: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7812   TglCopyTexImage1D = procedure(target: GLenum; level: GLint; internalFormat: GLenum; x: GLint; y: GLint; width: GLsizei; border: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7813   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}
7814   TglCopyTexSubImage1D = procedure(target: GLenum; level: GLint; xoffset: GLint; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7815   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}
7816   TglTexSubImage1D = procedure(target: GLenum; level: GLint; xoffset: GLint; width: GLsizei; format: GLenum; _type: GLenum; const pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7817   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}
7818   TglBindTexture = procedure(target: GLenum; texture: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7819   TglDeleteTextures = procedure(n: GLsizei; const textures: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7820   TglGenTextures = procedure(n: GLsizei; textures: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7821
7822 {$ifdef DGL_DEPRECATED}
7823   TglAccum = procedure(op: GLenum; value: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7824   TglAlphaFunc = procedure(func: GLenum; ref: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7825   TglAreTexturesResident = function(n: GLsizei; const textures: PGLuint; residences: PGLboolean): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7826   TglArrayElement = procedure(i: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7827   TglBegin = procedure(mode: GLenum); {$IFNDEF CLR}{$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}{$ENDIF}
7828   TglBitmap = procedure(width: GLsizei; height: GLsizei; xorig: GLfloat; yorig: GLfloat; xmove: GLfloat; ymove: GLfloat; const bitmap: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7829   TglCallList = procedure(list: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7830   TglCallLists = procedure(n: GLsizei; _type: GLenum; const lists: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7831   TglClearAccum = procedure(red: GLfloat; green: GLfloat; blue: GLfloat; alpha: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7832   TglClearIndex = procedure(c: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7833   TglClipPlane = procedure(plane: GLenum; const equation: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7834   TglColor3b = procedure(red: GLbyte; green: GLbyte; blue: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7835   TglColor3bv = procedure(const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7836   TglColor3d = procedure(red: GLdouble; green: GLdouble; blue: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7837   TglColor3dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7838   TglColor3f = procedure(red: GLfloat; green: GLfloat; blue: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7839   TglColor3fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7840   TglColor3i = procedure(red: GLint; green: GLint; blue: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7841   TglColor3iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7842   TglColor3s = procedure(red: GLshort; green: GLshort; blue: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7843   TglColor3sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7844   TglColor3ub = procedure(red: GLubyte; green: GLubyte; blue: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7845   TglColor3ubv = procedure(const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7846   TglColor3ui = procedure(red: GLuint; green: GLuint; blue: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7847   TglColor3uiv = procedure(const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7848   TglColor3us = procedure(red: GLushort; green: GLushort; blue: GLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7849   TglColor3usv = procedure(const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7850   TglColor4b = procedure(red: GLbyte; green: GLbyte; blue: GLbyte; alpha: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7851   TglColor4bv = procedure(const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7852   TglColor4d = procedure(red: GLdouble; green: GLdouble; blue: GLdouble; alpha: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7853   TglColor4dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7854   TglColor4f = procedure(red: GLfloat; green: GLfloat; blue: GLfloat; alpha: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7855   TglColor4fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7856   TglColor4i = procedure(red: GLint; green: GLint; blue: GLint; alpha: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7857   TglColor4iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7858   TglColor4s = procedure(red: GLshort; green: GLshort; blue: GLshort; alpha: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7859   TglColor4sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7860   TglColor4ub = procedure(red: GLubyte; green: GLubyte; blue: GLubyte; alpha: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7861   TglColor4ubv = procedure(const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7862   TglColor4ui = procedure(red: GLuint; green: GLuint; blue: GLuint; alpha: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7863   TglColor4uiv = procedure(const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7864   TglColor4us = procedure(red: GLushort; green: GLushort; blue: GLushort; alpha: GLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7865   TglColor4usv = procedure(const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7866   TglColorMaterial = procedure(face: GLenum; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7867   TglColorPointer = procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7868   TglCopyPixels = procedure(x: GLint; y: GLint; width: GLsizei; height: GLsizei; _type: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7869   TglDeleteLists = procedure(list: GLuint; range: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7870   TglDisableClientState = procedure(_array: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7871   TglDrawPixels = procedure(width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; const pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7872   TglEdgeFlag = procedure(flag: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7873   TglEdgeFlagPointer = procedure(stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7874   TglEdgeFlagv = procedure(const flag: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7875   TglEnableClientState = procedure(_array: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7876   TglEnd = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7877   TglEndList = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7878   TglEvalCoord1d = procedure(u: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7879   TglEvalCoord1dv = procedure(const u: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7880   TglEvalCoord1f = procedure(u: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7881   TglEvalCoord1fv = procedure(const u: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7882   TglEvalCoord2d = procedure(u: GLdouble; v: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7883   TglEvalCoord2dv = procedure(const u: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7884   TglEvalCoord2f = procedure(u: GLfloat; v: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7885   TglEvalCoord2fv = procedure(const u: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7886   TglEvalMesh1 = procedure(mode: GLenum; i1: GLint; i2: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7887   TglEvalMesh2 = procedure(mode: GLenum; i1: GLint; i2: GLint; j1: GLint; j2: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7888   TglEvalPoint1 = procedure(i: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7889   TglEvalPoint2 = procedure(i: GLint; j: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7890   TglFeedbackBuffer = procedure(size: GLsizei; _type: GLenum; buffer: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7891   TglFogf = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7892   TglFogfv = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7893   TglFogi = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7894   TglFogiv = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7895   TglFrustum = procedure(left: GLdouble; right: GLdouble; bottom: GLdouble; top: GLdouble; zNear: GLdouble; zFar: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7896   TglGenLists = function(range: GLsizei): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7897   TglGetClipPlane = procedure(plane: GLenum; equation: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7898   TglGetLightfv = procedure(light: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7899   TglGetLightiv = procedure(light: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7900   TglGetMapdv = procedure(target: GLenum; query: GLenum; v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7901   TglGetMapfv = procedure(target: GLenum; query: GLenum; v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7902   TglGetMapiv = procedure(target: GLenum; query: GLenum; v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7903   TglGetMaterialfv = procedure(face: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7904   TglGetMaterialiv = procedure(face: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7905   TglGetPixelMapfv = procedure(map: GLenum; values: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7906   TglGetPixelMapuiv = procedure(map: GLenum; values: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7907   TglGetPixelMapusv = procedure(map: GLenum; values: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7908   TglGetPolygonStipple = procedure(mask: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7909   TglGetTexEnvfv = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7910   TglGetTexEnviv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7911   TglGetTexGendv = procedure(coord: GLenum; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7912   TglGetTexGenfv = procedure(coord: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7913   TglGetTexGeniv = procedure(coord: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7914   TglIndexMask = procedure(mask: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7915   TglIndexPointer = procedure(_type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7916   TglIndexd = procedure(c: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7917   TglIndexdv = procedure(const c: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7918   TglIndexf = procedure(c: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7919   TglIndexfv = procedure(const c: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7920   TglIndexi = procedure(c: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7921   TglIndexiv = procedure(const c: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7922   TglIndexs = procedure(c: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7923   TglIndexsv = procedure(const c: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7924   TglIndexub = procedure(c: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7925   TglIndexubv = procedure(const c: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7926   TglInitNames = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7927   TglInterleavedArrays = procedure(format: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7928   TglIsList = function(list: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7929   TglIsTexture = function(texture: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7930   TglLightModelf = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7931   TglLightModelfv = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7932   TglLightModeli = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7933   TglLightModeliv = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7934   TglLightf = procedure(light: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7935   TglLightfv = procedure(light: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7936   TglLighti = procedure(light: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7937   TglLightiv = procedure(light: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7938   TglLineStipple = procedure(factor: GLint; pattern: GLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7939   TglListBase = procedure(base: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7940   TglLoadIdentity = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7941   TglLoadMatrixd = procedure(const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7942   TglLoadMatrixf = procedure(const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7943   TglLoadName = procedure(name: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7944   TglMap1d = procedure(target: GLenum; u1: GLdouble; u2: GLdouble; stride: GLint; order: GLint; const points: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7945   TglMap1f = procedure(target: GLenum; u1: GLfloat; u2: GLfloat; stride: GLint; order: GLint; const points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7946   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}
7947   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}
7948   TglMapGrid1d = procedure(un: GLint; u1: GLdouble; u2: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7949   TglMapGrid1f = procedure(un: GLint; u1: GLfloat; u2: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7950   TglMapGrid2d = procedure(un: GLint; u1: GLdouble; u2: GLdouble; vn: GLint; v1: GLdouble; v2: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7951   TglMapGrid2f = procedure(un: GLint; u1: GLfloat; u2: GLfloat; vn: GLint; v1: GLfloat; v2: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7952   TglMaterialf = procedure(face: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7953   TglMaterialfv = procedure(face: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7954   TglMateriali = procedure(face: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7955   TglMaterialiv = procedure(face: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7956   TglMatrixMode = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7957   TglMultMatrixd = procedure(const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7958   TglMultMatrixf = procedure(const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7959   TglNewList = procedure(list: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7960   TglNormal3b = procedure(nx: GLbyte; ny: GLbyte; nz: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7961   TglNormal3bv = procedure(const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7962   TglNormal3d = procedure(nx: GLdouble; ny: GLdouble; nz: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7963   TglNormal3dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7964   TglNormal3f = procedure(nx: GLfloat; ny: GLfloat; nz: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7965   TglNormal3fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7966   TglNormal3i = procedure(nx: GLint; ny: GLint; nz: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7967   TglNormal3iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7968   TglNormal3s = procedure(nx: GLshort; ny: GLshort; nz: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7969   TglNormal3sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7970   TglNormalPointer = procedure(_type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7971   TglOrtho = procedure(left: GLdouble; right: GLdouble; bottom: GLdouble; top: GLdouble; zNear: GLdouble; zFar: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7972   TglPassThrough = procedure(token: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7973   TglPixelMapfv = procedure(map: GLenum; mapsize: GLsizei; const values: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7974   TglPixelMapuiv = procedure(map: GLenum; mapsize: GLsizei; const values: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7975   TglPixelMapusv = procedure(map: GLenum; mapsize: GLsizei; const values: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7976   TglPixelTransferf = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7977   TglPixelTransferi = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7978   TglPixelZoom = procedure(xfactor: GLfloat; yfactor: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7979   TglPolygonStipple = procedure(const mask: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7980   TglPopAttrib = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7981   TglPopClientAttrib = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7982   TglPopMatrix = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7983   TglPopName = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7984   TglPrioritizeTextures = procedure(n: GLsizei; const textures: PGLuint; const priorities: PGLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7985   TglPushAttrib = procedure(mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7986   TglPushClientAttrib = procedure(mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7987   TglPushMatrix = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7988   TglPushName = procedure(name: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7989   TglRasterPos2d = procedure(x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7990   TglRasterPos2dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7991   TglRasterPos2f = procedure(x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7992   TglRasterPos2fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7993   TglRasterPos2i = procedure(x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7994   TglRasterPos2iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7995   TglRasterPos2s = procedure(x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7996   TglRasterPos2sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7997   TglRasterPos3d = procedure(x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7998   TglRasterPos3dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7999   TglRasterPos3f = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8000   TglRasterPos3fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8001   TglRasterPos3i = procedure(x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8002   TglRasterPos3iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8003   TglRasterPos3s = procedure(x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8004   TglRasterPos3sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8005   TglRasterPos4d = procedure(x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8006   TglRasterPos4dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8007   TglRasterPos4f = procedure(x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8008   TglRasterPos4fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8009   TglRasterPos4i = procedure(x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8010   TglRasterPos4iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8011   TglRasterPos4s = procedure(x: GLshort; y: GLshort; z: GLshort; w: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8012   TglRasterPos4sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8013   TglRectd = procedure(x1: GLdouble; y1: GLdouble; x2: GLdouble; y2: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8014   TglRectdv = procedure(const v1: PGLdouble; const v2: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8015   TglRectf = procedure(x1: GLfloat; y1: GLfloat; x2: GLfloat; y2: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8016   TglRectfv = procedure(const v1: PGLfloat; const v2: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8017   TglRecti = procedure(x1: GLint; y1: GLint; x2: GLint; y2: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8018   TglRectiv = procedure(const v1: PGLint; const v2: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8019   TglRects = procedure(x1: GLshort; y1: GLshort; x2: GLshort; y2: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8020   TglRectsv = procedure(const v1: PGLshort; const v2: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8021   TglRenderMode = function(mode: GLenum): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8022   TglRotated = procedure(angle: GLdouble; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8023   TglRotatef = procedure(angle: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8024   TglScaled = procedure(x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8025   TglScalef = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8026   TglSelectBuffer = procedure(size: GLsizei; buffer: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8027   TglShadeModel = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8028   TglTexCoord1d = procedure(s: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8029   TglTexCoord1dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8030   TglTexCoord1f = procedure(s: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8031   TglTexCoord1fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8032   TglTexCoord1i = procedure(s: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8033   TglTexCoord1iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8034   TglTexCoord1s = procedure(s: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8035   TglTexCoord1sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8036   TglTexCoord2d = procedure(s: GLdouble; t: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8037   TglTexCoord2dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8038   TglTexCoord2f = procedure(s: GLfloat; t: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8039   TglTexCoord2fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8040   TglTexCoord2i = procedure(s: GLint; t: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8041   TglTexCoord2iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8042   TglTexCoord2s = procedure(s: GLshort; t: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8043   TglTexCoord2sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8044   TglTexCoord3d = procedure(s: GLdouble; t: GLdouble; r: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8045   TglTexCoord3dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8046   TglTexCoord3f = procedure(s: GLfloat; t: GLfloat; r: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8047   TglTexCoord3fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8048   TglTexCoord3i = procedure(s: GLint; t: GLint; r: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8049   TglTexCoord3iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8050   TglTexCoord3s = procedure(s: GLshort; t: GLshort; r: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8051   TglTexCoord3sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8052   TglTexCoord4d = procedure(s: GLdouble; t: GLdouble; r: GLdouble; q: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8053   TglTexCoord4dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8054   TglTexCoord4f = procedure(s: GLfloat; t: GLfloat; r: GLfloat; q: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8055   TglTexCoord4fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8056   TglTexCoord4i = procedure(s: GLint; t: GLint; r: GLint; q: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8057   TglTexCoord4iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8058   TglTexCoord4s = procedure(s: GLshort; t: GLshort; r: GLshort; q: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8059   TglTexCoord4sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8060   TglTexCoordPointer = procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8061   TglTexEnvf = procedure(target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8062   TglTexEnvfv = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8063   TglTexEnvi = procedure(target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8064   TglTexEnviv = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8065   TglTexGend = procedure(coord: GLenum; pname: GLenum; param: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8066   TglTexGendv = procedure(coord: GLenum; pname: GLenum; const params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8067   TglTexGenf = procedure(coord: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8068   TglTexGenfv = procedure(coord: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8069   TglTexGeni = procedure(coord: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8070   TglTexGeniv = procedure(coord: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8071
8072
8073   TglTranslated = procedure(x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8074   TglTranslatef = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8075   TglVertex2d = procedure(x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8076   TglVertex2dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8077   TglVertex2f = procedure(x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8078   TglVertex2fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8079   TglVertex2i = procedure(x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8080   TglVertex2iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8081   TglVertex2s = procedure(x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8082   TglVertex2sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8083   TglVertex3d = procedure(x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8084   TglVertex3dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8085   TglVertex3f = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8086   TglVertex3fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8087   TglVertex3i = procedure(x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8088   TglVertex3iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8089   TglVertex3s = procedure(x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8090   TglVertex3sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8091   TglVertex4d = procedure(x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8092   TglVertex4dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8093   TglVertex4f = procedure(x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8094   TglVertex4fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8095   TglVertex4i = procedure(x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8096   TglVertex4iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8097   TglVertex4s = procedure(x: GLshort; y: GLshort; z: GLshort; w: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8098   TglVertex4sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8099   TglVertexPointer = procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8100 {$endif}
8101
8102   // GL_VERSION_1_2
8103   TglBlendColor = procedure(red: GLclampf; green: GLclampf; blue: GLclampf; alpha: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8104   TglBlendEquation = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8105   TglDrawRangeElements = procedure(mode: GLenum; start: GLuint; _end: GLuint; count: GLsizei; _type: GLenum; const indices: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8106   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}
8107   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}
8108   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}
8109 {$ifdef DGL_DEPRECATED}
8110   TglColorTable = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; format: GLenum; _type: GLenum; const table: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8111   TglColorTableParameterfv = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8112   TglColorTableParameteriv = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8113   TglCopyColorTable = procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8114   TglGetColorTable = procedure(target: GLenum; format: GLenum; _type: GLenum; table: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8115   TglGetColorTableParameterfv = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8116   TglGetColorTableParameteriv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8117   TglColorSubTable = procedure(target: GLenum; start: GLsizei; count: GLsizei; format: GLenum; _type: GLenum; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8118   TglCopyColorSubTable = procedure(target: GLenum; start: GLsizei; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8119   TglConvolutionFilter1D = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; format: GLenum; _type: GLenum; const image: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8120   TglConvolutionFilter2D = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; const image: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8121   TglConvolutionParameterf = procedure(target: GLenum; pname: GLenum; params: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8122   TglConvolutionParameterfv = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8123   TglConvolutionParameteri = procedure(target: GLenum; pname: GLenum; params: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8124   TglConvolutionParameteriv = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8125   TglCopyConvolutionFilter1D = procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8126   TglCopyConvolutionFilter2D = procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8127   TglGetConvolutionFilter = procedure(target: GLenum; format: GLenum; _type: GLenum; image: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8128   TglGetConvolutionParameterfv = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8129   TglGetConvolutionParameteriv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8130   TglGetSeparableFilter = procedure(target: GLenum; format: GLenum; _type: GLenum; row: PGLvoid; column: PGLvoid; span: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8131   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}
8132   TglGetHistogram = procedure(target: GLenum; reset: GLboolean; format: GLenum; _type: GLenum; values: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8133   TglGetHistogramParameterfv = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8134   TglGetHistogramParameteriv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8135   TglGetMinmax = procedure(target: GLenum; reset: GLboolean; format: GLenum; _type: GLenum; values: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8136   TglGetMinmaxParameterfv = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8137   TglGetMinmaxParameteriv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8138   TglHistogram = procedure(target: GLenum; width: GLsizei; internalformat: GLenum; sink: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8139   TglMinmax = procedure(target: GLenum; internalformat: GLenum; sink: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8140   TglResetHistogram = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8141   TglResetMinmax = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8142 {$endif}
8143
8144   // GL_VERSION_1_3
8145   TglActiveTexture = procedure(texture: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8146   TglSampleCoverage = procedure(value: GLclampf; invert: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8147   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}
8148   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}
8149   TglCompressedTexImage1D = procedure(target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; border: GLint; imageSize: GLsizei; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8150   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}
8151   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}
8152   TglCompressedTexSubImage1D = procedure(target: GLenum; level: GLint; xoffset: GLint; width: GLsizei; format: GLenum; imageSize: GLsizei; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8153   TglGetCompressedTexImage = procedure(target: GLenum; level: GLint; img: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8154 {$ifdef DGL_DEPRECATED}
8155   TglClientActiveTexture = procedure(texture: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8156   TglMultiTexCoord1d = procedure(target: GLenum; s: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8157   TglMultiTexCoord1dv = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8158   TglMultiTexCoord1f = procedure(target: GLenum; s: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8159   TglMultiTexCoord1fv = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8160   TglMultiTexCoord1i = procedure(target: GLenum; s: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8161   TglMultiTexCoord1iv = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8162   TglMultiTexCoord1s = procedure(target: GLenum; s: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8163   TglMultiTexCoord1sv = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8164   TglMultiTexCoord2d = procedure(target: GLenum; s: GLdouble; t: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8165   TglMultiTexCoord2dv = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8166   TglMultiTexCoord2f = procedure(target: GLenum; s: GLfloat; t: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8167   TglMultiTexCoord2fv = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8168   TglMultiTexCoord2i = procedure(target: GLenum; s: GLint; t: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8169   TglMultiTexCoord2iv = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8170   TglMultiTexCoord2s = procedure(target: GLenum; s: GLshort; t: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8171   TglMultiTexCoord2sv = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8172   TglMultiTexCoord3d = procedure(target: GLenum; s: GLdouble; t: GLdouble; r: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8173   TglMultiTexCoord3dv = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8174   TglMultiTexCoord3f = procedure(target: GLenum; s: GLfloat; t: GLfloat; r: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8175   TglMultiTexCoord3fv = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8176   TglMultiTexCoord3i = procedure(target: GLenum; s: GLint; t: GLint; r: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8177   TglMultiTexCoord3iv = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8178   TglMultiTexCoord3s = procedure(target: GLenum; s: GLshort; t: GLshort; r: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8179   TglMultiTexCoord3sv = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8180   TglMultiTexCoord4d = procedure(target: GLenum; s: GLdouble; t: GLdouble; r: GLdouble; q: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8181   TglMultiTexCoord4dv = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8182   TglMultiTexCoord4f = procedure(target: GLenum; s: GLfloat; t: GLfloat; r: GLfloat; q: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8183   TglMultiTexCoord4fv = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8184   TglMultiTexCoord4i = procedure(target: GLenum; s: GLint; t: GLint; r: GLint; q: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8185   TglMultiTexCoord4iv = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8186   TglMultiTexCoord4s = procedure(target: GLenum; s: GLshort; t: GLshort; r: GLshort; q: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8187   TglMultiTexCoord4sv = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8188   TglLoadTransposeMatrixf = procedure(const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8189   TglLoadTransposeMatrixd = procedure(const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8190   TglMultTransposeMatrixf = procedure(const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8191   TglMultTransposeMatrixd = procedure(const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8192 {$endif}
8193
8194   // GL_VERSION_1_4
8195   TglBlendFuncSeparate = procedure(sfactorRGB: GLenum; dfactorRGB: GLenum; sfactorAlpha: GLenum; dfactorAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8196   TglMultiDrawArrays = procedure(mode: GLenum; const first: PGLint; const count: PGLsizei; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8197   TglMultiDrawElements = procedure(mode: GLenum; const count: PGLsizei; _type: GLenum; const indices: PGLvoid; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8198   TglPointParameterf = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8199   TglPointParameterfv = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8200   TglPointParameteri = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8201   TglPointParameteriv = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8202 {$ifdef DGL_DEPRECATED}
8203   TglFogCoordf = procedure(coord: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8204   TglFogCoordfv = procedure(const coord: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8205   TglFogCoordd = procedure(coord: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8206   TglFogCoorddv = procedure(const coord: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8207   TglFogCoordPointer = procedure(_type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8208   TglSecondaryColor3b = procedure(red: GLbyte; green: GLbyte; blue: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8209   TglSecondaryColor3bv = procedure(const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8210   TglSecondaryColor3d = procedure(red: GLdouble; green: GLdouble; blue: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8211   TglSecondaryColor3dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8212   TglSecondaryColor3f = procedure(red: GLfloat; green: GLfloat; blue: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8213   TglSecondaryColor3fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8214   TglSecondaryColor3i = procedure(red: GLint; green: GLint; blue: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8215   TglSecondaryColor3iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8216   TglSecondaryColor3s = procedure(red: GLshort; green: GLshort; blue: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8217   TglSecondaryColor3sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8218   TglSecondaryColor3ub = procedure(red: GLubyte; green: GLubyte; blue: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8219   TglSecondaryColor3ubv = procedure(const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8220   TglSecondaryColor3ui = procedure(red: GLuint; green: GLuint; blue: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8221   TglSecondaryColor3uiv = procedure(const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8222   TglSecondaryColor3us = procedure(red: GLushort; green: GLushort; blue: GLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8223   TglSecondaryColor3usv = procedure(const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8224   TglSecondaryColorPointer = procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8225   TglWindowPos2d = procedure(x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8226   TglWindowPos2dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8227   TglWindowPos2f = procedure(x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8228   TglWindowPos2fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8229   TglWindowPos2i = procedure(x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8230   TglWindowPos2iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8231   TglWindowPos2s = procedure(x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8232   TglWindowPos2sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8233   TglWindowPos3d = procedure(x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8234   TglWindowPos3dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8235   TglWindowPos3f = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8236   TglWindowPos3fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8237   TglWindowPos3i = procedure(x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8238   TglWindowPos3iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8239   TglWindowPos3s = procedure(x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8240   TglWindowPos3sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8241 {$endif}
8242
8243   // GL_VERSION_1_5
8244   TglGenQueries = procedure(n: GLsizei; ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8245   TglDeleteQueries = procedure(n: GLsizei; const ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8246   TglIsQuery = function(id: GLuint): boolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8247   TglBeginQuery = procedure(target: GLenum; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8248   TglEndQuery = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8249   TglGetQueryiv = procedure(target, pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8250   TglGetQueryObjectiv = procedure(id: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8251   TglGetQueryObjectuiv = procedure(id: GLuint; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8252   TglBindBuffer = procedure(target: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8253   TglDeleteBuffers = procedure(n: GLsizei; const buffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8254   TglGenBuffers = procedure(n: GLsizei; buffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8255   TglIsBuffer = function(buffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8256   TglBufferData = procedure(target: GLenum; size: GLsizeiptr; const data: PGLvoid; usage: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8257   TglBufferSubData = procedure(target: GLenum; offset: GLintptr; size: GLsizeiptr; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8258   TglGetBufferSubData = procedure(target: GLenum; offset: GLintptr; size: GLsizeiptr; data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8259   TglMapBuffer = function(target: GLenum; access: GLenum): PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8260   TglUnmapBuffer = function(target: GLenum): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8261   TglGetBufferParameteriv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8262   TglGetBufferPointerv = procedure(target: GLenum; pname: GLenum; params: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8263
8264   // GL_VERSION_2_0
8265   TglBlendEquationSeparate = procedure(modeRGB: GLenum; modeAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8266   TglDrawBuffers = procedure(n: GLsizei; const bufs: PGLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8267   TglStencilOpSeparate = procedure(face: GLenum; sfail: GLenum; dpfail: GLenum; dppass: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8268   TglStencilFuncSeparate = procedure(face: GLenum; func: GLenum; ref: GLint; mask: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8269   TglStencilMaskSeparate = procedure(face: GLenum; mask: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8270   TglAttachShader = procedure(programObj, shaderObj: GLhandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8271   TglBindAttribLocation = procedure(programObj: GLhandle; index: GLuint; name: PGLChar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8272   TglCompileShader = procedure(shaderObj: GLhandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8273   TglCreateProgram = function: GLhandle; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8274   TglCreateShader = function(shaderType: GLenum): GLhandle; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8275   TglDeleteProgram = procedure(programObj: GLhandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8276   TglDeleteShader = procedure(shaderObj: GLhandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8277   TglDetachShader = procedure(programObj, shaderObj: GLhandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8278   TglDisableVertexAttribArray = procedure(index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8279   TglEnableVertexAttribArray = procedure(index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8280   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}
8281   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}
8282   TglGetAttachedShaders = procedure(programObj: GLhandle; MaxCount: GLsizei; var Count: GLint; shaders: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8283   TglGetAttribLocation = function(programObj: GLhandle; char: PGLChar): glint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8284   TglGetProgramiv = procedure(programObj: GLhandle; pname: GLenum; params: PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8285   TglGetProgramInfoLog = procedure(programObj: GLHandle; maxLength: glsizei; length: PGLSizei; infoLog: PGLChar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8286   TglGetShaderiv = procedure(shaderObj: GLhandle; pname: GLenum; params: PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8287   TglGetShaderInfoLog = procedure(shaderObj: GLHandle; maxLength: glsizei; length: PGLSizei; infoLog: PGLChar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8288   TglGetShaderSource = procedure(shaderObj: GLhandle; maxlength: GLsizei; var length: GLsizei; source: PGLChar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8289   TglGetUniformLocation = function(programObj: GLhandle; const char: PGLChar): glint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8290   TglGetUniformfv = procedure(programObj: GLhandle; location: GLint; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8291   TglGetUniformiv = procedure(programObj: GLhandle; location: GLint; params: PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8292   TglGetVertexAttribfv = procedure(index: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8293   TglGetVertexAttribiv = procedure(index: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8294   TglGetVertexAttribPointerv = procedure(index: GLuint; pname: GLenum; _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8295   TglIsProgram = function(programObj: GLhandle) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8296   TglIsShader = function(shaderObj: GLhandle) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8297   TglLinkProgram = procedure(programObj: GLHandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8298   TglShaderSource = procedure(shaderObj: GLHandle; count: glsizei; const _string: PPGLChar; lengths: pglint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8299   TglUseProgram = procedure(programObj: GLhandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8300   TglUniform1f = procedure(location: GLint; v0: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8301   TglUniform2f = procedure(location: GLint; v0, v1: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8302   TglUniform3f = procedure(location: GLint; v0, v1, v2: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8303   TglUniform4f = procedure(location: GLint; v0, v1, v2, v3: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8304   TglUniform1i = procedure(location: GLint; v0: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8305   TglUniform2i = procedure(location: GLint; v0, v1: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8306   TglUniform3i = procedure(location: GLint; v0, v1, v2: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8307   TglUniform4i = procedure(location: GLint; v0, v1, v2, v3: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8308   TglUniform1fv = procedure(location: GLint; count: GLsizei; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8309   TglUniform2fv = procedure(location: GLint; count: GLsizei; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8310   TglUniform3fv = procedure(location: GLint; count: GLsizei; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8311   TglUniform4fv = procedure(location: GLint; count: GLsizei; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8312   TglUniform1iv = procedure(location: GLint; count: GLsizei; value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8313   TglUniform2iv = procedure(location: GLint; count: GLsizei; value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8314   TglUniform3iv = procedure(location: GLint; count: GLsizei; value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8315   TglUniform4iv = procedure(location: GLint; count: GLsizei; value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8316   TglUniformMatrix2fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8317   TglUniformMatrix3fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8318   TglUniformMatrix4fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8319   TglValidateProgram = procedure(programObj: GLhandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8320   TglVertexAttrib1d = procedure(index: GLuint; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8321   TglVertexAttrib1dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8322   TglVertexAttrib1f = procedure(index: GLuint; x: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8323   TglVertexAttrib1fv = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8324   TglVertexAttrib1s = procedure(index: GLuint; x: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8325   TglVertexAttrib1sv = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8326   TglVertexAttrib2d = procedure(index: GLuint; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8327   TglVertexAttrib2dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8328   TglVertexAttrib2f = procedure(index: GLuint; x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8329   TglVertexAttrib2fv = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8330   TglVertexAttrib2s = procedure(index: GLuint; x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8331   TglVertexAttrib2sv = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8332   TglVertexAttrib3d = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8333   TglVertexAttrib3dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8334   TglVertexAttrib3f = procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8335   TglVertexAttrib3fv = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8336   TglVertexAttrib3s = procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8337   TglVertexAttrib3sv = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8338   TglVertexAttrib4Nbv = procedure(index: GLuint; const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8339   TglVertexAttrib4Niv = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8340   TglVertexAttrib4Nsv = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8341   TglVertexAttrib4Nub = procedure(index: GLuint; x: GLubyte; y: GLubyte; z: GLubyte; w: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8342   TglVertexAttrib4Nubv = procedure(index: GLuint; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8343   TglVertexAttrib4Nuiv = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8344   TglVertexAttrib4Nusv = procedure(index: GLuint; const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8345   TglVertexAttrib4bv = procedure(index: GLuint; const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8346   TglVertexAttrib4d = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8347   TglVertexAttrib4dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8348   TglVertexAttrib4f = procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8349   TglVertexAttrib4fv = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8350   TglVertexAttrib4iv = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8351   TglVertexAttrib4s = procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort; w: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8352   TglVertexAttrib4sv = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8353   TglVertexAttrib4ubv = procedure(index: GLuint; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8354   TglVertexAttrib4uiv = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8355   TglVertexAttrib4usv = procedure(index: GLuint; const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8356   TglVertexAttribPointer = procedure(index: GLuint; size: GLint; _type: GLenum; normalized: GLboolean; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8357
8358   // GL_VERSION_2_1
8359   TglUniformMatrix2x3fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8360   TglUniformMatrix3x2fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8361   TglUniformMatrix2x4fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8362   TglUniformMatrix4x2fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8363   TglUniformMatrix3x4fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8364   TglUniformMatrix4x3fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8365
8366   // GL_VERSION_3_0
8367   { OpenGL 3.0 also reuses entry points from these extensions: }
8368   { ARB_framebuffer_object }
8369   { ARB_map_buffer_range }
8370   { ARB_vertex_array_object }
8371   TglColorMaski = procedure(index_: GLuint; r: GLboolean; g: GLboolean; b: GLboolean; a: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8372   TglGetBooleani_v = procedure(target: GLenum; index_: GLuint; data: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8373   TglGetIntegeri_v = procedure(target: GLenum; index_: GLuint; data: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8374   TglEnablei = procedure(target: GLenum; index_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8375   TglDisablei = procedure(target: GLenum; index_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8376   TglIsEnabledi = function(target: GLenum; index_: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8377   TglBeginTransformFeedback = procedure(primitiveMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8378   TglEndTransformFeedback = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8379   TglBindBufferRange = procedure(target: GLenum; index_: GLuint; buffer: GLuint; offset: GLintptr; size: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8380   TglBindBufferBase = procedure(target: GLenum; index_: GLuint; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8381   TglTransformFeedbackVaryings = procedure(program_: GLuint; count: GLsizei; const varyings: PPGLchar; bufferMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8382   TglGetTransformFeedbackVarying = procedure(program_: GLuint; index_: GLuint; bufSize: GLsizei; length: PGLsizei; size: PGLsizei; type_: PGLsizei; name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8383   TglClampColor = procedure(targe: GLenum; clamp: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8384   TglBeginConditionalRender = procedure(id: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8385   TglEndConditionalRender = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8386   TglVertexAttribIPointer = procedure(index_: GLuint; size: GLint; type_: GLenum; stride: GLsizei; const pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8387   TglGetVertexAttribIiv = procedure(index_: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8388   TglGetVertexAttribIuiv = procedure(index_: GLuint; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8389   TglVertexAttribI1i = procedure(index_: GLuint; x: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8390   TglVertexAttribI2i = procedure(index_: GLuint; x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8391   TglVertexAttribI3i = procedure(index_: GLuint; x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8392   TglVertexAttribI4i = procedure(index_: GLuint; x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8393   TglVertexAttribI1ui = procedure(index_: GLuint; x: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8394   TglVertexAttribI2ui = procedure(index_: GLuint; x: GLuint; y: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8395   TglVertexAttribI3ui = procedure(index_: GLuint; x: GLuint; y: GLuint; z: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8396   TglVertexAttribI4ui = procedure(index_: GLuint; x: GLuint; y: GLuint; z: GLuint; w: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8397   TglVertexAttribI1iv = procedure(index_: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8398   TglVertexAttribI2iv = procedure(index_: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8399   TglVertexAttribI3iv = procedure(index_: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8400   TglVertexAttribI4iv = procedure(index_: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8401   TglVertexAttribI1uiv = procedure(index_: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8402   TglVertexAttribI2uiv = procedure(index_: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8403   TglVertexAttribI3uiv = procedure(index_: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8404   TglVertexAttribI4uiv = procedure(index_: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8405   TglVertexAttribI4bv = procedure(index_: GLuint; const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8406   TglVertexAttribI4sv = procedure(index_: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8407   TglVertexAttribI4ubv = procedure(index_: GLuint; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8408   TglVertexAttribI4usv = procedure(index_: GLuint; const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8409   TglGetUniformuiv = procedure(program_: GLuint; location: GLint; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8410   TglBindFragDataLocation = procedure(program_: GLuint; color: GLuint; const name: PGLChar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8411   TglGetFragDataLocation = function(program_: GLuint; const name: PGLChar): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8412   TglUniform1ui = procedure(location: GLint; v0: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8413   TglUniform2ui = procedure(location: GLint; v0: GLuint; v1: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8414   TglUniform3ui = procedure(location: GLint; v0: GLuint; v1: GLuint; v2: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8415   TglUniform4ui = procedure(location: GLint; v0: GLuint; v1: GLuint; v2: GLuint; v3: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8416   TglUniform1uiv = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8417   TglUniform2uiv = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8418   TglUniform3uiv = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8419   TglUniform4uiv = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8420   TglTexParameterIiv = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8421   TglTexParameterIuiv = procedure(target: GLenum; pname: GLenum; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8422   TglGetTexParameterIiv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8423   TglGetTexParameterIuiv = procedure(target: GLenum; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8424   TglClearBufferiv = procedure(buffer: GLenum; drawbuffer: GLint; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8425   TglClearBufferuiv = procedure(buffer: GLenum; drawbuffer: GLint; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8426   TglClearBufferfv = procedure(buffer: GLenum; drawbuffer: GLint; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8427   TglClearBufferfi = procedure(buffer: GLenum; drawbuffer: GLint; depth: GLfloat; stencil: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8428   TglGetStringi = function(name: GLenum; index: GLuint): PGLubyte; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8429
8430   // GL_VERSION_2_1
8431   TglEnableVertexArrayEXT = procedure(vaobj: GLuint; array_: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8432   TglEnableVertexArrayAttribEXT = procedure(vaobj: GLuint; index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8433   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}
8434
8435   // GL_VERSION_3_1
8436   { OpenGL 3.1 also reuses entry points from these extensions: }
8437   { ARB_copy_buffer }
8438   { ARB_uniform_buffer_object }
8439   TglDrawArraysInstanced = procedure(mode: GLenum; first: GLint; count: GLsizei; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8440   TglDrawElementsInstanced = procedure(mode: GLenum; count: GLsizei; type_: GLenum; const indices: PGLvoid; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8441   TglTexBuffer = procedure(target: GLenum; internalformat: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8442   TglPrimitiveRestartIndex = procedure(index_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8443
8444   // GL_VERSION_3_2
8445   { OpenGL 3.2 also reuses entry points from these extensions: }
8446   { ARB_draw_elements_base_vertex }
8447   { ARB_provoking_vertex }
8448   { ARB_sync }
8449   { ARB_texture_multisample }
8450   TglGetInteger64i_v = procedure(target: GLenum; index_: GLuint; data: PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8451   TglGetBufferParameteri64v = procedure(target: GLenum; pname: GLenum; params: PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8452   TglFramebufferTexture = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8453 //  TglFramebufferTextureFace = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; face: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8454
8455   // GL_VERSION_3_3
8456   { OpenGL 3.3 also reuses entry points from these extensions: }
8457   { ARB_blend_func_extended }
8458   { ARB_sampler_objects }
8459   { ARB_explicit_attrib_location, but it has none }
8460   { ARB_occlusion_query2 (no entry points) }
8461   { ARB_shader_bit_encoding (no entry points) }
8462   { ARB_texture_rgb10_a2ui (no entry points) }
8463   { ARB_texture_swizzle (no entry points) }
8464   { ARB_timer_query }
8465   { ARB_vertex_type_2_10_10_10_rev }
8466   TglVertexAttribDivisor = procedure(index: GLuint; divisor: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8467
8468   // GL_VERSION_4_0
8469   { OpenGL 4.0 also reuses entry points from these extensions: }
8470   { ARB_texture_query_lod (no entry points) }
8471   { ARB_draw_indirect }
8472   { ARB_gpu_shader5 (no entry points) }
8473   { ARB_gpu_shader_fp64 }
8474   { ARB_shader_subroutine }
8475   { ARB_tessellation_shader }
8476   { ARB_texture_buffer_object_rgb32 (no entry points) }
8477   { ARB_texture_cube_map_array (no entry points) }
8478   { ARB_texture_gather (no entry points) }
8479   { ARB_transform_feedback2 }
8480   { ARB_transform_feedback3 }
8481   TglMinSampleShading = procedure(value: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8482   TglBlendEquationi = procedure(buf: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8483   TglBlendEquationSeparatei = procedure(buf: GLuint; modeRGB: GLenum; modeAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8484   TglBlendFunci = procedure(buf: GLuint; src: GLenum; dst: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8485   TglBlendFuncSeparatei = procedure(buf: GLuint; srcRGB: GLenum; dstRGB: GLenum; srcAlpha: GLenum; dstAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8486
8487   // GL_VERSION_4_1
8488   { OpenGL 4.1 also reuses entry points from these extensions: }
8489   { ARB_ES2_compatibility }
8490   { ARB_get_program_binary }
8491   { ARB_separate_shader_objects }
8492   { ARB_shader_precision (no entry points) }
8493   { ARB_vertex_attrib_64bit }
8494   { ARB_viewport_array }
8495
8496   // GL_3DFX_tbuffer
8497   TglTbufferMask3DFX = procedure(mask: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8498
8499   // GL_APPLE_element_array
8500   TglElementPointerAPPLE = procedure(_type: GLenum; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8501   TglDrawElementArrayAPPLE = procedure(mode: GLenum; first: GLint; count: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8502   TglDrawRangeElementArrayAPPLE = procedure(mode: GLenum; start: GLuint; _end: GLuint; first: GLint; count: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8503   TglMultiDrawElementArrayAPPLE = procedure(mode: GLenum; const first: PGLint; const count: PGLsizei; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8504   TglMultiDrawRangeElementArrayAPPLE = procedure(mode: GLenum; start: GLuint; _end: GLuint; const first: PGLint; const count: PGLsizei; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8505
8506   // GL_APPLE_fence
8507   TglGenFencesAPPLE = procedure(n: GLsizei; fences: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8508   TglDeleteFencesAPPLE = procedure(n: GLsizei; const fences: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8509   TglSetFenceAPPLE = procedure(fence: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8510   TglIsFenceAPPLE = function(fence: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8511   TglTestFenceAPPLE = function(fence: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8512   TglFinishFenceAPPLE = procedure(fence: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8513   TglTestObjectAPPLE = function(_object: GLenum; name: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8514   TglFinishObjectAPPLE = procedure(_object: GLenum; name: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8515
8516   // GL_APPLE_vertex_array_object
8517   TglBindVertexArrayAPPLE = procedure(_array: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8518   TglDeleteVertexArraysAPPLE = procedure(n: GLsizei; const arrays: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8519   TglGenVertexArraysAPPLE = procedure(n: GLsizei; const arrays: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8520   TglIsVertexArrayAPPLE = function(_array: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8521
8522   // GL_APPLE_vertex_array_range
8523   TglVertexArrayRangeAPPLE = procedure(length: GLsizei; _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8524   TglFlushVertexArrayRangeAPPLE = procedure(length: GLsizei; _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8525   TglVertexArrayParameteriAPPLE = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8526
8527   // GL_APPLE_texture_range
8528   TglTextureRangeAPPLE = procedure(target: GLenum; length: GLsizei; const Pointer_: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8529   TglGetTexParameterPointervAPPLE = procedure(target: GLenum; pname: GLenum; params: PPGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8530
8531   // GL_APPLE_vertex_program_evaluators
8532   TglEnableVertexAttribAPPLE = procedure(index_: GLuint; pname: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8533   TglDisableVertexAttribAPPLE = procedure(index_: GLuint; pname: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8534   TglIsVertexAttribEnabledAPPLE = function(index_: GLuint; pname: GLenum): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8535   TglMapVertexAttrib1dAPPLE = procedure(index_: GLuint; size: GLuint; u1: GLdouble; u2: GLdouble; stride: GLint; order: GLint; const points: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8536   TglMapVertexAttrib1fAPPLE = procedure(index_: GLuint; size: GLuint; u1: GLfloat; u2: GLfloat; stride: GLint; order: GLint; const points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8537   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}
8538   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}
8539
8540   // GL_APPLE_object_purgeable
8541   TglObjectPurgeableAPPLE = function(objectType: GLenum; name: GLuint; option: GLenum): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8542   TglObjectUnpurgeableAPPLE = function(objectType: GLenum; name: GLuint; option: GLenum): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8543   TglGetObjectParameterivAPPLE = procedure(objectType: GLenum; name: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8544
8545   // GL_ARB_matrix_palette
8546   TglCurrentPaletteMatrixARB = procedure(index: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8547   TglMatrixIndexubvARB = procedure(size: GLint; const indices: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8548   TglMatrixIndexusvARB = procedure(size: GLint; const indices: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8549   TglMatrixIndexuivARB = procedure(size: GLint; const indices: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8550   TglMatrixIndexPointerARB = procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8551
8552   // GL_ARB_multisample
8553   TglSampleCoverageARB = procedure(value: GLclampf; invert: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8554
8555   // GL_ARB_multitexture
8556   TglActiveTextureARB = procedure(texture: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8557   TglClientActiveTextureARB = procedure(texture: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8558   TglMultiTexCoord1dARB = procedure(target: GLenum; s: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8559   TglMultiTexCoord1dvARB = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8560   TglMultiTexCoord1fARB = procedure(target: GLenum; s: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8561   TglMultiTexCoord1fvARB = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8562   TglMultiTexCoord1iARB = procedure(target: GLenum; s: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8563   TglMultiTexCoord1ivARB = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8564   TglMultiTexCoord1sARB = procedure(target: GLenum; s: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8565   TglMultiTexCoord1svARB = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8566   TglMultiTexCoord2dARB = procedure(target: GLenum; s: GLdouble; t: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8567   TglMultiTexCoord2dvARB = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8568   TglMultiTexCoord2fARB = procedure(target: GLenum; s: GLfloat; t: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8569   TglMultiTexCoord2fvARB = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8570   TglMultiTexCoord2iARB = procedure(target: GLenum; s: GLint; t: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8571   TglMultiTexCoord2ivARB = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8572   TglMultiTexCoord2sARB = procedure(target: GLenum; s: GLshort; t: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8573   TglMultiTexCoord2svARB = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8574   TglMultiTexCoord3dARB = procedure(target: GLenum; s: GLdouble; t: GLdouble; r: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8575   TglMultiTexCoord3dvARB = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8576   TglMultiTexCoord3fARB = procedure(target: GLenum; s: GLfloat; t: GLfloat; r: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8577   TglMultiTexCoord3fvARB = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8578   TglMultiTexCoord3iARB = procedure(target: GLenum; s: GLint; t: GLint; r: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8579   TglMultiTexCoord3ivARB = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8580   TglMultiTexCoord3sARB = procedure(target: GLenum; s: GLshort; t: GLshort; r: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8581   TglMultiTexCoord3svARB = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8582   TglMultiTexCoord4dARB = procedure(target: GLenum; s: GLdouble; t: GLdouble; r: GLdouble; q: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8583   TglMultiTexCoord4dvARB = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8584   TglMultiTexCoord4fARB = procedure(target: GLenum; s: GLfloat; t: GLfloat; r: GLfloat; q: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8585   TglMultiTexCoord4fvARB = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8586   TglMultiTexCoord4iARB = procedure(target: GLenum; s: GLint; t: GLint; r: GLint; q: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8587   TglMultiTexCoord4ivARB = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8588   TglMultiTexCoord4sARB = procedure(target: GLenum; s: GLshort; t: GLshort; r: GLshort; q: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8589   TglMultiTexCoord4svARB = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8590
8591   // GL_ARB_point_parameters
8592   TglPointParameterfARB = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8593   TglPointParameterfvARB = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8594
8595   // GL_ARB_texture_compression
8596   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}
8597   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}
8598   TglCompressedTexImage1DARB = procedure(target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; border: GLint; imageSize: GLsizei; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8599   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}
8600   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}
8601   TglCompressedTexSubImage1DARB = procedure(target: GLenum; level: GLint; xoffset: GLint; width: GLsizei; format: GLenum; imageSize: GLsizei; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8602   TglGetCompressedTexImageARB = procedure(target: GLenum; level: GLint; img: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8603
8604   // GL_ARB_transpose_matrix
8605   TglLoadTransposeMatrixfARB = procedure(const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8606   TglLoadTransposeMatrixdARB = procedure(const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8607   TglMultTransposeMatrixfARB = procedure(const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8608   TglMultTransposeMatrixdARB = procedure(const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8609
8610   // GL_ARB_vertex_blend
8611   TglWeightbvARB = procedure(size: GLint; const weights: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8612   TglWeightsvARB = procedure(size: GLint; const weights: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8613   TglWeightivARB = procedure(size: GLint; const weights: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8614   TglWeightfvARB = procedure(size: GLint; const weights: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8615   TglWeightdvARB = procedure(size: GLint; const weights: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8616   TglWeightubvARB = procedure(size: GLint; const weights: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8617   TglWeightusvARB = procedure(size: GLint; const weights: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8618   TglWeightuivARB = procedure(size: GLint; const weights: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8619   TglWeightPointerARB = procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8620   TglVertexBlendARB = procedure(count: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8621
8622   // GL_ARB_vertex_buffer_object
8623   TglBindBufferARB = procedure(target: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8624   TglDeleteBuffersARB = procedure(n: GLsizei; const buffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8625   TglGenBuffersARB = procedure(n: GLsizei; buffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8626   TglIsBufferARB = function(buffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8627   TglBufferDataARB = procedure(target: GLenum; size: GLsizeiptrARB; const data: PGLvoid; usage: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8628   TglBufferSubDataARB = procedure(target: GLenum; offset: GLintptrARB; size: GLsizeiptrARB; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8629   TglGetBufferSubDataARB = procedure(target: GLenum; offset: GLintptrARB; size: GLsizeiptrARB; data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8630   TglMapBufferARB = function(target: GLenum; access: GLenum): PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8631   TglUnmapBufferARB = function(target: GLenum): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8632   TglGetBufferParameterivARB = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8633   TglGetBufferPointervARB = procedure(target: GLenum; pname: GLenum; params: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8634
8635   // GL_ARB_vertex_program
8636   TglVertexAttrib1dARB = procedure(index: GLuint; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8637   TglVertexAttrib1dvARB = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8638   TglVertexAttrib1fARB = procedure(index: GLuint; x: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8639   TglVertexAttrib1fvARB = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8640   TglVertexAttrib1sARB = procedure(index: GLuint; x: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8641   TglVertexAttrib1svARB = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8642   TglVertexAttrib2dARB = procedure(index: GLuint; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8643   TglVertexAttrib2dvARB = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8644   TglVertexAttrib2fARB = procedure(index: GLuint; x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8645   TglVertexAttrib2fvARB = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8646   TglVertexAttrib2sARB = procedure(index: GLuint; x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8647   TglVertexAttrib2svARB = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8648   TglVertexAttrib3dARB = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8649   TglVertexAttrib3dvARB = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8650   TglVertexAttrib3fARB = procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8651   TglVertexAttrib3fvARB = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8652   TglVertexAttrib3sARB = procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8653   TglVertexAttrib3svARB = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8654   TglVertexAttrib4NbvARB = procedure(index: GLuint; const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8655   TglVertexAttrib4NivARB = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8656   TglVertexAttrib4NsvARB = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8657   TglVertexAttrib4NubARB = procedure(index: GLuint; x: GLubyte; y: GLubyte; z: GLubyte; w: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8658   TglVertexAttrib4NubvARB = procedure(index: GLuint; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8659   TglVertexAttrib4NuivARB = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8660   TglVertexAttrib4NusvARB = procedure(index: GLuint; const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8661   TglVertexAttrib4bvARB = procedure(index: GLuint; const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8662   TglVertexAttrib4dARB = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8663   TglVertexAttrib4dvARB = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8664   TglVertexAttrib4fARB = procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8665   TglVertexAttrib4fvARB = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8666   TglVertexAttrib4ivARB = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8667   TglVertexAttrib4sARB = procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort; w: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8668   TglVertexAttrib4svARB = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8669   TglVertexAttrib4ubvARB = procedure(index: GLuint; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8670   TglVertexAttrib4uivARB = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8671   TglVertexAttrib4usvARB = procedure(index: GLuint; const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8672   TglVertexAttribPointerARB = procedure(index: GLuint; size: GLint; _type: GLenum; normalized: GLboolean; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8673   TglEnableVertexAttribArrayARB = procedure(index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8674   TglDisableVertexAttribArrayARB = procedure(index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8675   TglProgramStringARB = procedure(target: GLenum; format: GLenum; len: GLsizei; const _string: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8676   TglBindProgramARB = procedure(target: GLenum; _program: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8677   TglDeleteProgramsARB = procedure(n: GLsizei; const programs: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8678   TglGenProgramsARB = procedure(n: GLsizei; programs: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8679   TglProgramEnvParameter4dARB = procedure(target: GLenum; index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8680   TglProgramEnvParameter4dvARB = procedure(target: GLenum; index: GLuint; const params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8681   TglProgramEnvParameter4fARB = procedure(target: GLenum; index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8682   TglProgramEnvParameter4fvARB = procedure(target: GLenum; index: GLuint; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8683   TglProgramLocalParameter4dARB = procedure(target: GLenum; index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8684   TglProgramLocalParameter4dvARB = procedure(target: GLenum; index: GLuint; const params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8685   TglProgramLocalParameter4fARB = procedure(target: GLenum; index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8686   TglProgramLocalParameter4fvARB = procedure(target: GLenum; index: GLuint; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8687   TglGetProgramEnvParameterdvARB = procedure(target: GLenum; index: GLuint; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8688   TglGetProgramEnvParameterfvARB = procedure(target: GLenum; index: GLuint; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8689   TglGetProgramLocalParameterdvARB = procedure(target: GLenum; index: GLuint; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8690   TglGetProgramLocalParameterfvARB = procedure(target: GLenum; index: GLuint; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8691   TglGetProgramivARB = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8692   TglGetProgramStringARB = procedure(target: GLenum; pname: GLenum; _string: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8693   TglGetVertexAttribdvARB = procedure(index: GLuint; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8694   TglGetVertexAttribfvARB = procedure(index: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8695   TglGetVertexAttribivARB = procedure(index: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8696   TglGetVertexAttribPointervARB = procedure(index: GLuint; pname: GLenum; _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8697   TglIsProgramARB = function(_program: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8698
8699   // GL_ARB_window_pos
8700   TglWindowPos2dARB = procedure(x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8701   TglWindowPos2dvARB = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8702   TglWindowPos2fARB = procedure(x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8703   TglWindowPos2fvARB = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8704   TglWindowPos2iARB = procedure(x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8705   TglWindowPos2ivARB = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8706   TglWindowPos2sARB = procedure(x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8707   TglWindowPos2svARB = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8708   TglWindowPos3dARB = procedure(x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8709   TglWindowPos3dvARB = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8710   TglWindowPos3fARB = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8711   TglWindowPos3fvARB = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8712   TglWindowPos3iARB = procedure(x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8713   TglWindowPos3ivARB = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8714   TglWindowPos3sARB = procedure(x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8715   TglWindowPos3svARB = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8716
8717   // GL_ARB_draw_buffers
8718   TglDrawBuffersARB = procedure(n: GLsizei; bufs: PGLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8719
8720   // GL_ARB_color_buffer_float
8721   TglClampColorARB = procedure(target: GLenum; clamp: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8722
8723   // GL_ARB_vertex_shader
8724   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}
8725   TglGetAttribLocationARB = function(programObj: GLhandleARB; const char: PGLcharARB): glint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8726   TglBindAttribLocationARB = procedure(programObj: GLhandleARB; index: GLuint; const name: PGLcharARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8727
8728   // GL_ARB_shader_objects
8729   TglDeleteObjectARB = procedure(Obj: GLHandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8730   TglGetHandleARB = function(pname: GlEnum): GLHandleARB; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8731   TglDetachObjectARB = procedure(container, attached: GLHandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8732   TglCreateShaderObjectARB = function(shaderType: glenum): GLHandleARB; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8733   TglShaderSourceARB = procedure(shaderObj: GLHandleARB; count: glsizei; const _string: PPGLCharARB; lengths: pglint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8734   TglCompileShaderARB = procedure(shaderObj: GLHandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8735   TglCreateProgramObjectARB = function: GLHandleARB; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8736   TglAttachObjectARB = procedure(programObj, shaderObj: GLhandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8737   TglLinkProgramARB = procedure(programObj: GLHandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8738   TglUseProgramObjectARB = procedure(programObj: GLHandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8739   TglValidateProgramARB = procedure(programObj: GLhandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8740   TglUniform1fARB = procedure(location: glint; v0: glfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8741   TglUniform2fARB = procedure(location: glint; v0, v1: glfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8742   TglUniform3fARB = procedure(location: glint; v0, v1, v2: glfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8743   TglUniform4fARB = procedure(location: glint; v0, v1, v2, v3: glfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8744   TglUniform1iARB = procedure(location: glint; v0: glint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8745   TglUniform2iARB = procedure(location: glint; v0, v1: glint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8746   TglUniform3iARB = procedure(location: glint; v0, v1, v2: glint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8747   TglUniform4iARB = procedure(location: glint; v0, v1, v2, v3: glint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8748   TglUniform1fvARB = procedure(location: glint; count: GLsizei; value: pglfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8749   TglUniform2fvARB = procedure(location: glint; count: GLsizei; value: pglfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8750   TglUniform3fvARB = procedure(location: glint; count: GLsizei; value: pglfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8751   TglUniform4fvARB = procedure(location: glint; count: GLsizei; value: pglfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8752   TglUniform1ivARB = procedure(location: glint; count: GLsizei; value: pglint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8753   TglUniform2ivARB = procedure(location: glint; count: GLsizei; value: pglint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8754   TglUniform3ivARB = procedure(location: glint; count: GLsizei; value: pglint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8755   TglUniform4ivARB = procedure(location: glint; count: GLsizei; value: pglint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8756   TglUniformMatrix2fvARB = procedure(location: glint; count: glsizei; transpose: glboolean; value: pglfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8757   TglUniformMatrix3fvARB = procedure(location: glint; count: glsizei; transpose: glboolean; value: pglfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8758   TglUniformMatrix4fvARB = procedure(location: glint; count: glsizei; transpose: glboolean; value: pglfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8759   TglGetObjectParameterfvARB = procedure(Obj: GLHandleARB; pname: GLEnum; params: PGLFloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8760   TglGetObjectParameterivARB = procedure(Obj: GLHandleARB; pname: GLEnum; params: PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8761   TglGetInfoLogARB = procedure(shaderObj: GLHandleARB; maxLength: glsizei; var length: glint; infoLog: PGLcharARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8762   TglGetAttachedObjectsARB = procedure(programobj: GLhandleARB; maxCount: GLsizei; var count: GLsizei; objects: PGLhandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8763   TglGetUniformLocationARB = function(programObj: GLhandleARB; const char: PGLcharARB): glint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8764   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}
8765   TglGetUniformfvARB = procedure(programObj: GLhandleARB; location: GLint; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8766   TglGetUniformivARB = procedure(programObj: GLhandleARB; location: GLint; params: PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8767   TglGetShaderSourceARB = procedure(shader: GLhandleARB; maxLength: GLsizei; var length: GLsizei; source: PGLcharARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8768
8769   // GL_ARB_Occlusion_Query
8770   TglGenQueriesARB = procedure(n: GLsizei; ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8771   TglDeleteQueriesARB = procedure(n: GLsizei; const ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8772   TglIsQueryARB = function(id: GLuint): boolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8773   TglBeginQueryARB = procedure(target: GLenum; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8774   TglEndQueryARB = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8775   TglGetQueryivARB = procedure(target, pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8776   TglGetQueryObjectivARB = procedure(id: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8777   TglGetQueryObjectuivARB = procedure(id: GLuint; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8778
8779   // GL_ARB_draw_instanced
8780   TglDrawArraysInstancedARB = procedure(mode: GLenum; first: GLint; count: GLsizei; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8781   TglDrawElementsInstancedARB = procedure(mode: GLenum; count: GLsizei; type_: GLenum; const indices: PGLvoid; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8782
8783   // GL_ARB_framebuffer_object
8784   TglIsRenderbuffer = function(renderbuffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8785   TglBindRenderbuffer = procedure(target: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8786   TglDeleteRenderbuffers = procedure(n: GLsizei; const renderbuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8787   TglGenRenderbuffers = procedure(n: GLsizei; renderbuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8788   TglRenderbufferStorage = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8789   TglGetRenderbufferParameteriv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8790   TglIsFramebuffer = function(framebuffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8791   TglBindFramebuffer = procedure(target: GLenum; framebuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8792   TglDeleteFramebuffers = procedure(n: GLsizei; const framebuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8793   TglGenFramebuffers = procedure(n: GLsizei; framebuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8794   TglCheckFramebufferStatus = function(target: GLenum): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8795   TglFramebufferTexture1D = procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8796   TglFramebufferTexture2D = procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8797   TglFramebufferTexture3D = procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint; zoffset: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8798   TglFramebufferRenderbuffer = procedure(target: GLenum; attachment: GLenum; renderbuffertarget: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8799   TglGetFramebufferAttachmentParameteriv = procedure(target: GLenum; attachment: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8800   TglGenerateMipmap = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8801   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}
8802   TglRenderbufferStorageMultisample = procedure(target: GLenum; samples: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8803   TglFramebufferTextureLayer = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; layer: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8804
8805   // GL_ARB_geometry_shader4
8806   TglProgramParameteriARB = procedure(program_: GLuint; pname: GLenum; value: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8807   TglFramebufferTextureARB = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8808   TglFramebufferTextureLayerARB = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; layer: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8809   TglFramebufferTextureFaceARB = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; face: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8810
8811   // GL_ARB_instanced_arrays
8812   TglVertexAttribDivisorARB = procedure(index_: GLuint; divisor: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8813
8814   // GL_ARB_map_buffer_range
8815   TglMapBufferRange = function(target: GLenum; offset: GLintptr; length: GLsizeiptr; access: GLbitfield): PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8816   TglFlushMappedBufferRange = procedure(target: GLenum; offset: GLintptr; length: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8817
8818   // GL_ARB_texture_buffer_object
8819   TglTexBufferARB = procedure(target: GLenum; internalformat: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8820
8821   // GL_ARB_vertex_array_object
8822   TglBindVertexArray = procedure(array_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8823   TglDeleteVertexArrays = procedure(n: GLsizei; const arrays: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8824   TglGenVertexArrays = procedure(n: GLsizei; arrays: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8825   TglIsVertexArray = function(array_: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8826
8827   // GL_ARB_uniform_buffer_object
8828   TglGetUniformIndices = procedure(program_: GLuint; uniformCount: GLsizei; const uniformNames: PPGLchar; uniformIndices: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8829   TglGetActiveUniformsiv = procedure(program_: GLuint; uniformCount: GLsizei; const uniformIndices: PGLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8830   TglGetActiveUniformName = procedure(program_: GLuint; uniformIndex: GLuint; bufSize: GLsizei; length: PGLsizei; uniformName: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8831   TglGetUniformBlockIndex = function(program_: GLuint; const uniformBlockName: PGLchar): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8832   TglGetActiveUniformBlockiv = procedure(program_: GLuint; uniformBlockIndex: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8833   TglGetActiveUniformBlockName = procedure(program_: GLuint; uniformBlockIndex: GLuint; bufSize: GLsizei; length: PGLsizei; uniformBlockName: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8834   TglUniformBlockBinding = procedure(program_: GLuint; uniformBlockIndex: GLuint; uniformBlockBinding: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8835
8836   // GL_ARB_copy_buffer
8837   TglCopyBufferSubData = procedure(readTarget: GLenum; writeTarget: GLenum; readOffset: GLintptr; writeOffset: GLintptr; size: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8838
8839   // GL_ARB_draw_elements_base_vertex
8840   TglDrawElementsBaseVertex = procedure(mode: GLenum; count: GLsizei; type_: GLenum; const indices: PGLvoid; basevertex: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8841   TglDrawRangeElementsBaseVertex = procedure(mode: GLenum; start: GLuint; end_: GLuint; count: GLsizei; type_: GLenum; const indices: PGLvoid; basevertex: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8842   TglDrawElementsInstancedBaseVertex = procedure(mode: GLenum; count: GLsizei; type_: GLenum; const indices: PGLvoid; primcount: GLsizei; basevertex: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8843   TglMultiDrawElementsBaseVertex = procedure(mode: GLenum; const count: PGLsizei; type_: GLenum; const indices: PPGLvoid; primcount: GLsizei; const basevertex: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8844
8845   // GL_ARB_provoking_vertex
8846   TglProvokingVertex = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8847
8848   // GL_ARB_sync
8849   TglFenceSync = function(condition: GLenum; flags: GLbitfield): GLsync; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8850   TglIsSync = function(sync: GLsync): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8851   TglDeleteSync = procedure(sync: GLsync); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8852   TglClientWaitSync = function(sync: GLsync; flags: GLbitfield; timeout: GLuint64): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8853   TglWaitSync = procedure(sync: GLsync; flags: GLbitfield; timeout: GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8854   TglGetInteger64v = procedure(pname: GLenum; params: PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8855   TglGetSynciv = procedure(sync: GLsync; pname: GLenum; butSize: GLsizei; length: PGLsizei; values: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8856
8857   // GL_ARB_texture_multisample
8858   TglTexImage2DMultisample = procedure(target: GLenum; samples: GLsizei; internalformat: GLint; width: GLsizei; height: GLsizei; fixedsamplelocations: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8859   TglTexImage3DMultisample = procedure(target: GLenum; samples: GLsizei; internalformat: GLint; width: GLsizei; height: GLsizei; depth: GLsizei; fixedsamplelocations: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8860   TglGetMultisamplefv = procedure(pname: GLenum; index_: GLuint; val: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8861   TglSampleMaski = procedure(index_: GLuint; mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8862
8863   // GL_ARB_draw_buffers_blend
8864   TglBlendEquationiARB = procedure(buf: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8865   TglBlendEquationSeparateiARB = procedure(buf: GLuint; modeRGB: GLenum; modeAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8866   TglBlendFunciARB = procedure(buf: GLuint; src: GLenum; dst: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8867   TglBlendFuncSeparateiARB = procedure(buf: GLuint; srcRGB: GLenum; dstRGB: GLenum; srcAlpha: GLenum; dstAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8868
8869   // GL_ARB_sample_shading
8870   TglMinSampleShadingARB = procedure(value: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8871
8872   // GL_ARB_shading_language_include
8873   TglNamedStringARB = procedure(type_: GLenum; namelen: GLint; const name: PGLchar; stringlen: GLint; const string_: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8874   TglDeleteNamedStringARB = procedure(namelen: GLint; const name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8875   TglCompileShaderIncludeARB = procedure (shader: GLuint; count: GLsizei; const path: PPGLchar; const length: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8876   TglIsNamedStringARB = function(namelen: GLint; const name: PGLchar): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8877   TglGetNamedStringARB = procedure(namelen: GLint; const name: PGLchar; bufSize: GLsizei; stringlen: GLint; string_: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8878   TglGetNamedStringivARB = procedure(namelen: GLint; const name: PGLchar; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8879
8880   // GL_ARB_blend_func_extended
8881   TglBindFragDataLocationIndexed = procedure(program_: GLuint; colorNumber: GLuint; index: GLuint; const name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8882   TglGetFragDataIndex = function(program_: GLuint; const name: PGLchar): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8883
8884   // GL_ARB_sampler_objects
8885   TglGenSamplers = procedure(count: GLsizei; samplers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8886   TglDeleteSamplers = procedure(count: GLsizei; const samplers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8887   TglIsSampler = function(sampler: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8888   TglBindSampler = procedure(unit_: GLuint; sampler: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8889   TglSamplerParameteri = procedure(sampler: GLuint; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8890   TglSamplerParameteriv = procedure(sampler: GLuint; pname: GLenum; const param: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8891   TglSamplerParameterf = procedure(sampler: GLuint; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8892   TglSamplerParameterfv = procedure(sampler: GLuint; pname: GLenum; const param: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8893   TglSamplerParameterIiv = procedure(sampler: GLuint; pname: GLenum; const param: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8894   TglSamplerParameterIuiv = procedure(sampler: GLuint; pname: GLenum; const param: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8895   TglGetSamplerParameteriv = procedure(sampler: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8896   TglGetSamplerParameterIiv = procedure(sampler: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8897   TglGetSamplerParameterfv = procedure(sampler: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8898   TglGetSamplerParameterIuiv = procedure(sampler: GLuint; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8899
8900   // GL_ARB_timer_query
8901   TglQueryCounter = procedure(id: GLuint; target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8902   TglGetQueryObjecti64v = procedure(id: GLuint; pname: GLenum; params: PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8903   TglGetQueryObjectui64v = procedure(id: GLuint; pname: GLenum; params: PGLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8904
8905   // GL_ARB_vertex_type_2_10_10_10_rev
8906   TglVertexP2ui = procedure(type_: GLenum; value: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8907   TglVertexP2uiv = procedure(type_: GLenum; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8908   TglVertexP3ui = procedure(type_: GLenum; value: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8909   TglVertexP3uiv = procedure(type_: GLenum; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8910   TglVertexP4ui = procedure(type_: GLenum; value: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8911   TglVertexP4uiv = procedure(type_: GLenum; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8912   TglTexCoordP1ui = procedure(type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8913   TglTexCoordP1uiv = procedure(type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8914   TglTexCoordP2ui = procedure(type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8915   TglTexCoordP2uiv = procedure(type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8916   TglTexCoordP3ui = procedure(type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8917   TglTexCoordP3uiv = procedure(type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8918   TglTexCoordP4ui = procedure(type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8919   TglTexCoordP4uiv = procedure(type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8920   TglMultiTexCoordP1ui = procedure(texture: GLenum; type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8921   TglMultiTexCoordP1uiv = procedure(texture: GLenum; type_: GLenum; const coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8922   TglMultiTexCoordP2ui = procedure(texture: GLenum; type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8923   TglMultiTexCoordP2uiv = procedure(texture: GLenum; type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8924   TglMultiTexCoordP3ui = procedure(texture: GLenum; type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8925   TglMultiTexCoordP3uiv = procedure(texture: GLenum; type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8926   TglMultiTexCoordP4ui = procedure(texture: GLenum; type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8927   TglMultiTexCoordP4uiv = procedure(texture: GLenum; type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8928   TglNormalP3ui = procedure(type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8929   TglNormalP3uiv = procedure(type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8930   TglColorP3ui = procedure(type_: GLenum; color: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8931   TglColorP3uiv = procedure(type_: GLenum; const color: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8932   TglColorP4ui = procedure(type_: GLenum; color: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8933   TglColorP4uiv = procedure(type_: GLenum; const color: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8934   TglSecondaryColorP3ui = procedure(type_: GLenum; color: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8935   TglSecondaryColorP3uiv = procedure(type_: GLenum; const color: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8936   TglVertexAttribP1ui = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; value: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8937   TglVertexAttribP1uiv = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8938   TglVertexAttribP2ui = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; value: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8939   TglVertexAttribP2uiv = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8940   TglVertexAttribP3ui = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; value: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8941   TglVertexAttribP3uiv = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8942   TglVertexAttribP4ui = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; value: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8943   TglVertexAttribP4uiv = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8944
8945   // GL_ARB_draw_indirect
8946   TglDrawArraysIndirect = procedure(mode: GLenum; const indirect: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8947   TglDrawElementsIndirect = procedure(mode: GLenum; type_: GLenum; const indirect: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8948
8949   // GL_ARB_gpu_shader_fp64
8950   TglUniform1d = procedure(location: GLint; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8951   TglUniform2d = procedure(location: GLint; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8952   TglUniform3d = procedure(location: GLint; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8953   TglUniform4d = procedure(location: GLint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8954   TglUniform1dv = procedure(location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8955   TglUniform2dv = procedure(location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8956   TglUniform3dv = procedure(location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8957   TglUniform4dv = procedure(location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8958   TglUniformMatrix2dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8959   TglUniformMatrix3dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8960   TglUniformMatrix4dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8961   TglUniformMatrix2x3dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8962   TglUniformMatrix2x4dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8963   TglUniformMatrix3x2dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8964   TglUniformMatrix3x4dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8965   TglUniformMatrix4x2dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8966   TglUniformMatrix4x3dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8967   TglGetUniformdv = procedure(program_: GLuint; location: GLint; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8968
8969   // GL_ARB_shader_subroutine
8970   TglGetSubroutineUniformLocation = function(program_: GLuint; shadertype: GLenum; const name: PGLchar): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8971   TglGetSubroutineIndex = function(program_: GLuint; shadertype: GLenum; const name: PGLchar): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8972   TglGetActiveSubroutineUniformiv = procedure(program_: GLuint; shadertype: GLenum; index: GLuint; pname: GLenum; values: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8973   TglGetActiveSubroutineUniformName = procedure(program_: GLuint; shadertype: GLenum; index: GLuint; bufsize: GLsizei; length: PGLsizei; name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8974   TglGetActiveSubroutineName = procedure(program_: GLuint; shadertype: GLenum; index: GLuint; bufsize: GLsizei; length: PGLsizei; name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8975   TglUniformSubroutinesuiv = procedure(shadertype: GLenum; count: GLsizei; const indices: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8976   TglGetUniformSubroutineuiv = procedure(shadertype: GLenum; location: GLint; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8977   TglGetProgramStageiv = procedure(program_: GLuint; shadertype: GLenum; pname: GLenum; values: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8978
8979   // GL_ARB_tessellation_shader
8980   TglPatchParameteri = procedure(pname: GLenum; value: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8981   TglPatchParameterfv = procedure(pname: GLenum; const values: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8982
8983   // GL_ARB_transform_feedback2
8984   TglBindTransformFeedback = procedure(target: GLenum; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8985   TglDeleteTransformFeedbacks = procedure(n: GLsizei; const ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8986   TglGenTransformFeedbacks = procedure(n: GLsizei; ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8987   TglIsTransformFeedback = function(id: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8988   TglPauseTransformFeedback = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8989   TglResumeTransformFeedback = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8990   TglDrawTransformFeedback = procedure(mode: GLenum; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8991
8992   // GL_ARB_transform_feedback3
8993   TglDrawTransformFeedbackStream = procedure(mode: GLenum; id: GLuint; stream: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8994   TglBeginQueryIndexed = procedure(target: GLenum; index: GLuint; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8995   TglEndQueryIndexed = procedure(target: GLenum; index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8996   TglGetQueryIndexediv = procedure(target: GLenum; index: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8997
8998   // GL_ARB_ES2_compatibility
8999   TglReleaseShaderCompiler = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9000   TglShaderBinary = procedure(count: GLsizei; const shaders: PGLuint; binaryformat: GLenum; const binary: PGLvoid; length: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9001   TglGetShaderPrecisionFormat = procedure(shadertype: GLenum; precisiontype: GLenum; range: PGLint; precision: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9002   TglDepthRangef = procedure(n: GLclampf; f: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9003   TglClearDepthf = procedure(d: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9004
9005   // GL_ARB_get_program_binary
9006   TglGetProgramBinary = procedure(program_: GLuint; bufSize: GLsizei; length: PGLsizei; binaryFormat: PGLenum; binary: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9007   TglProgramBinary = procedure(program_: GLuint; binaryFormat: GLenum; const binary: PGLvoid; length: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9008   TglProgramParameteri = procedure(program_: GLuint; pname: GLenum; value: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9009
9010   // GL_ARB_separate_shader_objects
9011   TglUseProgramStages = procedure(pipeline: GLuint; stages: GLbitfield; program_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9012   TglActiveShaderProgram = procedure(pipeline: GLuint; program_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9013   TglCreateShaderProgramv = function(type_: GLenum; count: GLsizei; const strings: PPGLchar): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9014   TglBindProgramPipeline = procedure(pipeline: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9015   TglDeleteProgramPipelines = procedure(n: GLsizei; const pipelines: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9016   TglGenProgramPipelines = procedure(n: GLsizei; pipelines: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9017   TglIsProgramPipeline = function(pipeline: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9018   TglGetProgramPipelineiv = procedure(pipeline: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9019   TglProgramUniform1i = procedure(program_: GLuint; location: GLint; v0: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9020   TglProgramUniform1iv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9021   TglProgramUniform1f = procedure(program_: GLuint; location: GLint; v0: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9022   TglProgramUniform1fv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9023   TglProgramUniform1d = procedure(program_: GLuint; location: GLint; v0: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9024   TglProgramUniform1dv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9025   TglProgramUniform1ui = procedure(program_: GLuint; location: GLint; v0: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9026   TglProgramUniform1uiv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9027   TglProgramUniform2i = procedure(program_: GLuint; location: GLint; v0: GLint; v1: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9028   TglProgramUniform2iv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9029   TglProgramUniform2f = procedure(program_: GLuint; location: GLint; v0: GLfloat; v1: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9030   TglProgramUniform2fv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9031   TglProgramUniform2d = procedure(program_: GLuint; location: GLint; v0: GLdouble; v1: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9032   TglProgramUniform2dv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9033   TglProgramUniform2ui = procedure(program_: GLuint; location: GLint; v0: GLuint; v1: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9034   TglProgramUniform2uiv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9035   TglProgramUniform3i = procedure(program_: GLuint; location: GLint; v0: GLint; v1: GLint; v2: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9036   TglProgramUniform3iv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9037   TglProgramUniform3f = procedure(program_: GLuint; location: GLint; v0: GLfloat; v1: GLfloat; v2: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9038   TglProgramUniform3fv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9039   TglProgramUniform3d = procedure(program_: GLuint; location: GLint; v0: GLdouble; v1: GLdouble; v2: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9040   TglProgramUniform3dv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9041   TglProgramUniform3ui = procedure(program_: GLuint; location: GLint; v0: GLuint; v1: GLuint; v2: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9042   TglProgramUniform3uiv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9043   TglProgramUniform4i = procedure(program_: GLuint; location: GLint; v0: GLint; v1: GLint; v2: GLint; v3: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9044   TglProgramUniform4iv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9045   TglProgramUniform4f = procedure(program_: GLuint; location: GLint; v0: GLfloat; v1: GLfloat; v2: GLfloat; v3: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9046   TglProgramUniform4fv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9047   TglProgramUniform4d = procedure(program_: GLuint; location: GLint; v0: GLdouble; v1: GLdouble; v2: GLdouble; v3: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9048   TglProgramUniform4dv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9049   TglProgramUniform4ui = procedure(program_: GLuint; location: GLint; v0: GLuint; v1: GLuint; v2: GLuint; v3: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9050   TglProgramUniform4uiv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9051   TglProgramUniformMatrix2fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9052   TglProgramUniformMatrix3fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9053   TglProgramUniformMatrix4fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9054   TglProgramUniformMatrix2dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9055   TglProgramUniformMatrix3dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9056   TglProgramUniformMatrix4dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9057   TglProgramUniformMatrix2x3fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9058   TglProgramUniformMatrix3x2fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9059   TglProgramUniformMatrix2x4fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9060   TglProgramUniformMatrix4x2fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9061   TglProgramUniformMatrix3x4fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9062   TglProgramUniformMatrix4x3fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9063   TglProgramUniformMatrix2x3dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9064   TglProgramUniformMatrix3x2dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9065   TglProgramUniformMatrix2x4dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9066   TglProgramUniformMatrix4x2dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9067   TglProgramUniformMatrix3x4dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9068   TglProgramUniformMatrix4x3dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9069   TglValidateProgramPipeline = procedure(pipeline: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9070   TglGetProgramPipelineInfoLog = procedure(pipeline: GLuint; bufSize: GLsizei; length: PGLsizei; infoLog: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9071
9072   // GL_ARB_vertex_attrib_64bit
9073   TglVertexAttribL1d = procedure(index: GLuint; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9074   TglVertexAttribL2d = procedure(index: GLuint; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9075   TglVertexAttribL3d = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9076   TglVertexAttribL4d = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9077   TglVertexAttribL1dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9078   TglVertexAttribL2dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9079   TglVertexAttribL3dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9080   TglVertexAttribL4dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9081   TglVertexAttribLPointer = procedure(index: GLuint; size: GLint; type_: GLenum; stride: GLsizei; const pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9082   TglGetVertexAttribLdv = procedure(index: GLuint; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9083
9084   // GL_ARB_viewport_array
9085   TglViewportArrayv = procedure(first: GLuint; count: GLsizei; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9086   TglViewportIndexedf = procedure(index: GLuint; x: GLfloat; y: GLfloat; w: GLfloat; h: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9087   TglViewportIndexedfv = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9088   TglScissorArrayv = procedure(first: GLuint; count: GLsizei; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9089   TglScissorIndexed = procedure(index: GLuint; left: GLint; bottom: GLint; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9090   TglScissorIndexedv = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9091   TglDepthRangeArrayv = procedure(first: GLuint; count: GLsizei; const v: PGLclampd); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9092   TglDepthRangeIndexed = procedure(index: GLuint; n: GLclampd; f: GLclampd); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9093   TglGetFloati_v = procedure(target: GLenum; index: GLuint; data: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9094   TglGetDoublei_v = procedure(target: GLenum; index: GLuint; data: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9095
9096   // GL 4.2
9097
9098   // GL_ARB_base_instance
9099   TglDrawArraysInstancedBaseInstance = procedure(mode : GLenum; first : GLint; count :GLsizei; primcount : GLsizei; baseinstance : GLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9100   TglDrawElementsInstancedBaseInstance = procedure(mode : GLEnum; count : GLsizei; _type : GLenum; const indices : PGLVoid; primcount : GLsizei; baseinstance : GLUInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9101   TglDrawElementsInstancedBaseVertexBaseInstance = procedure(mode : GLEnum; count : GLsizei; _type : GLenum; const indices : PGLVoid; primcount :GLsizei; basevertex : GLint; baseinstance : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9102
9103   // GL_ARB_transform_feedback_instanced
9104   TglDrawTransformFeedbackInstanced = procedure(mode : GLenum; id : GLuint; primcount : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9105   TglDrawTransformFeedbackStreamInstanced = procedure(mode : GLenum; id : GLUInt; stream : GLUint; primcount : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9106
9107   // GL_ARB_internalformat_query
9108   TglGetInternalformativ = procedure(target : GLenum; internalformat : GLenum; pname : GLenum; bufSize : GLsizei; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9109
9110   // GL_ARB_shader_atomic_counters
9111   TglGetActiveAtomicCounterBufferiv = procedure(_program : GLuint; bufferIndex : GLuint; pname : GLenum; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9112
9113   /// GL_ARB_shader_image_load_store
9114   TglBindImageTexture = procedure(_unit : GLuint; texture : GLuint; level :GLint; layered : GLboolean; layer : GLint; access : GLenum; format : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9115   TglMemoryBarrier = procedure(barriers : GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9116
9117   // GL_ARB_texture_storage
9118   TglTexStorage1D = procedure(target : GLenum; levels :GLsizei; internalformat : GLenum; width : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9119   TglTexStorage2D = procedure(target : GLenum; levels :GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9120   TglTexStorage3D = procedure(target : GLenum; levels :GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; depth : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9121   TglTextureStorage1DEXT = procedure(texture : GLuint; target : GLenum; levels :GLsizei; internalformat : GLenum; width : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9122   TglTextureStorage2DEXT = procedure(texture : GLuint; target : GLenum; levels :GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9123   TglTextureStorage3DEXT = procedure(texture : GLuint; target : GLenum; levels :GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; depth : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9124
9125
9126   // GL 4.3
9127
9128   // GL_KHR_debug
9129   TglDebugMessageControl = procedure(source : GLenum; type_ : GLenum; severity : TGLenum; count : GLsizei; const ids : PGLUInt; enabled : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9130   TglDebugMessageInsert = procedure(source : GLenum;  type_ : GLenum; id : GLuint; sverity : GLenum; length : GLsizei; const buf : PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9131   TglDebugMessageCallback = procedure(callback : TGLDEBUGPROC; const userParam : Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9132   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}
9133   TglPushDebugGroup = procedure(source : GLenum; id : GLuint; length : GLsizei; const message_ : PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9134   TglPopDebugGroup = procedure; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9135   TglObjectLabel = procedure(identifier : GLenum; name : GLuint; length : GLsizei; const label_ : PGLCHar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9136   TglGetObjectLabel = procedure(identifier : GLenum; name : GLuint; bufsize : GLsizei; length : PGLsizei; label_ : PGLCHar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9137   TglObjectPtrLabel = procedure(const ptr : Pointer; length : GLsizei; const label_ : PGLCHar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9138   TglGetObjectPtrLabel = procedure(const ptr : Pointer; bufSize : GLsizei; length : PGLsizei; label_ : PGLCHar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9139
9140   // GL_ARB_clear_buffer_object
9141   TglClearBufferData = procedure(target : GLenum; internalformat : GLenum; format : GLEnum; type_ : GLEnum; const data : Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9142   TglClearBufferSubData = procedure(target : GLenum; internalformat : GLenum; offset : GLintptr; size : GLsizeiptr; format : GLenum; type_ : GLenum; const data : Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9143   TglClearNamedBufferDataEXT = procedure(buffer : GLuint; internalformat : GLenum; format : GLEnum; type_ : GLEnum; const data : Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9144   TglClearNamedBufferSubDataEXT = procedure(buffer : GLuint; internalformat : GLenum; format : GLenum; type_ : GLenum; offset : GLsizeiptr; size : GLsizeiptr; const data : Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9145
9146   // GL_ARB_compute_shader
9147   TglDispatchCompute = procedure(num_groups_x : GLuint; num_groups_y : GLuint; num_groups_z : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9148   TglDispatchComputeIndirect = procedure(indirect : GLintptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9149
9150   // GL_ARB_copy_image
9151   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}
9152
9153   // GL_ARB_debug_group
9154   // ARB_debug_group reuses entry points from KHR_debug
9155
9156   // GL_ARB_debug_label
9157   // ARB_debug_label reuses entry points from KHR_debug
9158
9159   // GL_ARB_debug_output2
9160
9161   // GL_ARB_ES3_compatibility
9162
9163   // GL_ARB_explicit_uniform_location
9164
9165   // GL_ARB_fragment_layer_viewport
9166
9167   // GL_ARB_framebuffer_no_attachments
9168   TglFramebufferParameteri = procedure(target : GLenum; pname : GLenum; param : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9169   TglGetFramebufferParameteriv = procedure(target : GLenum; pname : GLenum; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9170   TglNamedFramebufferParameteriEXT = procedure(framebuffer : GLUInt; pname : GLenum; param : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9171   TglGetNamedFramebufferParameterivEXT = procedure(framebuffer : GLUInt; pname : GLenum; param : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9172
9173   // GL_ARB_internalformat_query2
9174   TglGetInternalformati64v = procedure(target : GLenum; internalformat : GLenum; pname : GLenum; bufSize : GLsizei; params : PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9175
9176   // GL_ARB_invalidate_subdata
9177   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}
9178   TglInvalidateTexImage = procedure(texture : GLuint; level : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9179   TglInvalidateBufferSubData = procedure(buffer : GLuint; offset : GLintptr; length : GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9180   TglInvalidateBufferData = procedure(buffer : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9181   TglInvalidateFramebuffer = procedure(target : GLenum; numAttachments : GLsizei; const attachments : PGLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9182   TglInvalidateSubFramebuffer = procedure(target : GLenum; numAttachments : GLsizei; const attachments : PGLenum; x : GLint; y : GLint; width : GLsizei; height : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9183
9184   // GL_ARB_multi_draw_indirect
9185   TglMultiDrawArraysIndirect = procedure(mode : GLenum; const indirect : Pointer; drawcount : GLsizei; stride : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9186   TglMultiDrawElementsIndirect = procedure(mode : GLenum; type_ : GLenum; const indirect : Pointer; drawcount : GLsizei; stride : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9187
9188   // GL_ARB_program_interface_query
9189   TglGetProgramInterfaceiv = procedure(program_ : GLUInt;programInterface : GLenum; pname : GLenum; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9190   TglGetProgramResourceIndex = function(program_ : GLUInt;programInterface : GLenum; const name : PGLchar) : GLUInt; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9191   TglGetProgramResourceName = procedure(program_ : GLUInt;programInterface : GLenum; index : GLuint; bufSize : GLsizei; length : PGLsizei; name : PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9192   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}
9193   TglGetProgramResourceLocation = function(program_ : GLUInt;programInterface : GLenum; const name : PGLchar) : GLInt; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9194   TglGetProgramResourceLocationIndex = function(program_ : GLUInt;programInterface : GLenum; const name : PGLchar) : GLInt; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9195
9196   // GL_ARB_robust_buffer_access_behavior
9197
9198   // GL_ARB_shader_image_size
9199
9200   // GL_ARB_shader_storage_buffer_object
9201   TglShaderStorageBlockBinding = procedure(program_ : GLuint; storageBlockIndex : GLuint; storageBlockBinding : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9202
9203   // GL_ARB_stencil_texturing
9204
9205   // GL_ARB_texture_buffer_range
9206   TglTexBufferRange = procedure(target : GLenum; internalformat : GLenum; buffer : GLuint; offset :GLintptr; size : GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9207   TglTextureBufferRangeEXT = procedure(texture : GLuint; target : GLenum; internalformat : GLenum; buffer : GLuint; offset : GLintptr; size : GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9208
9209   // GL_ARB_texture_query_levels
9210
9211   // GL_ARB_texture_storage_multisample
9212   TglTexStorage2DMultisample = procedure(target : GLenum; samples : GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; fixedsamplelocations : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9213   TglTexStorage3DMultisample = procedure(target : GLenum; samples : GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; depth : GLsizei; fixedsamplelocations : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9214   TglTextureStorage2DMultisampleEXT = procedure(texture : GLuint; target : GLenum; samples : GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; fixedsamplelocations : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9215   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}
9216
9217   // GL 4.4
9218
9219   TglBufferStorage = procedure(target : GLenum; size : GLsizeiptr; const data : pointer; flags : GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9220   TglClearTexImage = procedure(texture : GLuint; level : GLint; format : GLenum; _type : GLenum; const data : Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9221   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}
9222   TglBindBuffersBase = procedure(target : GLenum; first : GLuint; count : GLsizei; const buffers : PGLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9223   TglBindBuffersRange = procedure(target : GLenum; first : GLuint; count : GLsizei; const buffers : PGLuint; const offsets : GLintptr; const sizes : GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9224   TglBindTextures = procedure(first : GLuint; count : GLsizei; const textures : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9225   TglBindSamplers = procedure(first : GLuint; count : GLsizei; const samplers : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9226   TglBindImageTextures = procedure(first : GLuint; count : GLsizei; const textures : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9227   TglBindVertexBuffers = procedure(first : GLuint; count : GLsizei; const buffers : GLuint; const offsets : GLintptr; const strides : PGLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9228   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}
9229
9230   // GL 4.5
9231   TglClipControl = procedure(origin : GLenum; depth : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9232   TglCreateTransformFeedbacks = procedure(n : GLsizei; ids : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9233   TglTransformFeedbackBufferBase = procedure (xfb : GLuint; index : GLuint; buffer : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9234   TglTransformFeedbackBufferRange = procedure (xfb : GLuint; index : GLuint; buffer : GLuint; offset : GLintptr; size : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9235   TglGetTransformFeedbackiv = procedure (xfb : GLuint; pname : GLenum; param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9236   TglGetTransformFeedbacki_v = procedure (xfb : GLuint; pname : GLenum; index : GLuint; param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9237   TglGetTransformFeedbacki64_v = procedure (xfb : GLuint; pname : GLenum; index : GLuint; param : PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9238   TglCreateBuffers = procedure (n : GLsizei; buffers : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9239   TglNamedBufferStorage = procedure (buffer : GLuint; size : GLsizei; const data : PGLVoid; flags : GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9240   TglNamedBufferData = procedure (buffer : GLuint; size : GLsizei; const data : PGLVoid; usage : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9241   TglNamedBufferSubData = procedure (buffer : GLuint; offset : GLintptr; size : GLsizei; data : PGLVoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9242   TglCopyNamedBufferSubData = procedure (readBuffer : GLuint; writeBuffer : GLuint; readOffset : GLintptr; writeOffset : GLintptr; size : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9243   TglClearNamedBufferData = procedure (buffer : GLuint; internalformat : GLenum; format : GLenum; _type : GLenum; data : PGLVoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9244   TglClearNamedBufferSubData = procedure (buffer : GLuint; internalformat : GLenum; offset : GLintptr; size : GLsizei; format : GLenum; _type : GLenum; data : PGLVoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9245   TglMapNamedBuffer = function(buffer : GLuint; access : GLenum) : PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9246   TglMapNamedBufferRange = function(buffer : GLuint; offset : GLintptr; length : GLsizei; access : GLbitfield) : PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9247   TglUnmapNamedBuffer = function(buffer : GLuint) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9248   TglFlushMappedNamedBufferRange = procedure (buffer : GLuint; offset : GLintptr; length : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9249   TglGetNamedBufferParameteriv = procedure (buffer : GLuint; pname : GLenum; param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9250   TglGetNamedBufferParameteri64v = procedure (buffer : GLuint; pname : GLenum; param : PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9251   TglGetNamedBufferPointerv = procedure (buffer : GLuint; pname : GLenum; params : PGLVoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9252   TglGetNamedBufferSubData = procedure (buffer : GLuint; offset : GLintptr; size : GLsizei; data : PGLVoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9253   TglCreateFramebuffers = procedure (n : GLsizei; framebuffers : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9254   TglNamedFramebufferRenderbuffer = procedure (framebuffer : GLuint; attachment : GLenum ; renderbuffertarget : GLEnum; renderbuffer : GLUInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9255   TglNamedFramebufferParameteri = procedure (framebuffer : GLuint; pname : GLenum; param : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9256   TglNamedFramebufferTexture = procedure (framebuffer : GLuint; attachment : GLenum; texture : GLuint; level : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9257   TglNamedFramebufferTextureLayer = procedure (framebuffer : GLuint; attachment : GLenum; texture : GLuint; level : GLint; layer : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9258   TglNamedFramebufferDrawBuffer = procedure (framebuffer : GLuint; buf : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9259   TglNamedFramebufferDrawBuffers = procedure (framebuffer : GLuint; n : GLsizei; bufs : PGLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9260   TglNamedFramebufferReadBuffer = procedure (framebuffer : GLuint; src : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9261   TglInvalidateNamedFramebufferData = procedure (framebuffer : GLuint; numAttachments : GLSizei; attachments : PGLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9262   TglInvalidateNamedFramebufferSubData = procedure (framebuffer : GLuint; numAttachments : GLSizei; attachments : PGLEnum; x : GLint; y : GLint; width : GLsizei; height : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9263   TglClearNamedFramebufferiv = procedure (framebuffer : GLuint; buffer : GLenum; drawbuffer : GLint; value : PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9264   TglClearNamedFramebufferuiv = procedure (framebuffer : GLuint; buffer : GLenum; drawbuffer : GLint; value : PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9265   TglClearNamedFramebufferfv = procedure (framebuffer : GLuint; buffer : GLenum; drawbuffer : GLint; value : PGLFloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9266   TglClearNamedFramebufferfi = procedure (framebuffer : GLuint; buffer : GLenum; const depth : GLfloat; stencil : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9267   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}
9268   TglCheckNamedFramebufferStatus = function(framebuffer : GLuint; target : GLenum) : GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9269   TglGetNamedFramebufferParameteriv = procedure (framebuffer : GLuint; pname : GLenum; param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9270   TglGetNamedFramebufferAttachmentParameteriv = procedure (framebuffer : GLuint; attachment : GLenum; pname : GLenum; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9271   TglCreateRenderbuffers = procedure (n : GLsizei; renderbuffers : PGLUInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9272   TglNamedRenderbufferStorage = procedure (renderbuffer : GLUInt; internalformat : GLenum ; width : GLsizei; height : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9273   TglNamedRenderbufferStorageMultisample = procedure (renderbuffer : GLUInt; samples : GLSizei; internalformat : GLenum ; width : GLSizei; height : GLSizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9274   TglGetNamedRenderbufferParameteriv = procedure (renderbuffer : GLUInt; pname : GLenum; param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9275   TglCreateTextures = procedure (target : GLenum ; n : GLsizei; textures : PGLUInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9276   TglTextureBuffer = procedure (texture : GLuint; internalformat : GLenum; buffer : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9277   TglTextureBufferRange = procedure (texture : GLuint; internalformat : GLenum; buffer : GLuint; offset : GLintptr; size : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9278   TglTextureStorage1D = procedure (texture : GLuint; levels : GLsizei; internalformat : GLenum; width : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9279   TglTextureStorage2D = procedure (texture : GLuint; levels : GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9280   TglTextureStorage3D = procedure (texture : GLuint; levels : GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; depth : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9281   TglTextureStorage2DMultisample = procedure (texture : GLuint; samples : GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; fixedsamplelocations : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9282   TglTextureStorage3DMultisample = procedure (texture : GLuint; samples : GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; depth : GLsizei; fixedsamplelocations : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9283   TglTextureSubImage1D = procedure (texture : GLuint; level : GLint; xoffset : GLint; width : GLsizei; format : GLenum; _type : GLenum; pixels : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9284   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}
9285   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}
9286   TglCompressedTextureSubImage1D = procedure (texture : GLuint; level : GLint; xoffset : GLint; width : GLsizei; format : GLenum; imageSize : GLsizei; data : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9287   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}
9288   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}
9289   TglCopyTextureSubImage1D = procedure (texture : GLuint; level : GLint ; xoffset : GLint; x : GLint; y : GLint; width : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9290   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}
9291   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}
9292   TglTextureParameterf = procedure (texture : GLuint; pname : GLenum; param : GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9293   TglTextureParameterfv = procedure (texture : GLuint; pname : GLenum; const param : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9294   TglTextureParameteri = procedure (texture : GLuint; pname : GLenum; param : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9295   TglTextureParameterIiv = procedure (texture : GLuint; pname : GLenum; const params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9296   TglTextureParameterIuiv = procedure (texture : GLuint; pname : GLenum; const params : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9297   TglTextureParameteriv = procedure (texture : GLuint; pname : GLenum; const param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9298   TglGenerateTextureMipmap = procedure(texture : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9299   TglBindTextureUnit = procedure (_unit : GLuint; texture : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9300   TglGetTextureImage = procedure (texture : GLuint; level : GLint ; format : GLenum; _type : GLenum; bufSize : GLsizei; pixels : PGLVoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9301   TglGetCompressedTextureImage = procedure (texture : GLuint; level : GLint; bufSize : GLSizei; pixels : PGLVoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9302   TglGetTextureLevelParameterfv = procedure (texture : GLuint; level : GLint; pname : GLenum; params : PGLFloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9303   TglGetTextureLevelParameteriv = procedure (texture : GLuint; level : GLint; pname : GLenum; param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9304   TglGetTextureParameterfv = procedure (texture : GLuint; pname : GLenum; params : PGLFloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9305   TglGetTextureParameterIiv = procedure (texture : GLuint; pname : GLenum; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9306   TglGetTextureParameterIuiv = procedure (texture : GLuint; pname : GLenum; params : PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9307   TglGetTextureParameteriv = procedure (texture : GLuint; pname : GLenum; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9308   TglCreateVertexArrays = procedure (n : GLsizei; arrays : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9309   TglDisableVertexArrayAttrib = procedure (vaobj : GLuint; index : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9310   TglEnableVertexArrayAttrib = procedure (vaobj : GLuint; index : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9311   TglVertexArrayElementBuffer = procedure (vaobj : GLuint; buffer : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9312   TglVertexArrayVertexBuffer = procedure (vaobj : GLuint; bindingindex : GLuint; buffer : GLuint; offset : GLintptr; stride : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9313   TglVertexArrayVertexBuffers = procedure (vaobj : GLuint; first : GLuint; count : GLsizei; const buffers : PGLuint; const offsets : PGLintptr; const strides : PGLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9314   TglVertexArrayAttribBinding = procedure (vaobj : GLuint; attribindex : GLuint; bindingindex : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9315   TglVertexArrayAttribFormat = procedure(vaobj : GLuint; attribindex : GLuint; size : GLint; _type : GLenum; normalized : GLboolean; relativeoffset : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9316   TglVertexArrayAttribIFormat = procedure (vaobj : GLuint; attribindex : GLuint; size : GLint; _type : GLenum; relativeoffset : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9317   TglVertexArrayAttribLFormat = procedure (vaobj : GLuint; attribindex : GLuint; size : GLint; _type : GLenum; relativeoffset : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9318   TglVertexArrayBindingDivisor = procedure (vaobj : GLuint; bindingindex : GLuint; divisor : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9319   TglGetVertexArrayiv = procedure (vaobj : GLuint; pname : GLenum; param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9320   TglGetVertexArrayIndexediv = procedure (vaobj : GLuint; index : GLuint; pname : GLenum; param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9321   TglGetVertexArrayIndexed64iv = procedure (vaobj : GLuint; index : GLuint; pname : GLenum; param : PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9322   TglCreateSamplers = procedure (n : GLsizei; samplers : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9323   TglCreateProgramPipelines = procedure (n : GLsizei; pipelines : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9324   TglCreateQueries = procedure (target : GLenum; n : GLsizei; ids : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9325   TglMemoryBarrierByRegion = procedure (barriers : GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9326   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}
9327   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}
9328   TglGetGraphicsResetStatus = function : GLEnum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9329   TglGetnCompressedTexImage = procedure (target : GLenum; lod : GLint; bufSize : GLsizei; pixels : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9330   TglGetnTexImage = procedure (target : GLenum; level : GLint; format : GLenum; _type : GLenum; bufSize : GLSizei; pixels : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9331   TglGetnUniformdv = procedure (_program : GLuint; location : GLint; bufSize : GLsizei; params : PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9332   TglGetnUniformfv = procedure (_program : GLuint; location : GLint; bufSize : GLsizei; params : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9333   TglGetnUniformiv = procedure (_program : GLuint; location : GLint; bufSize : GLsizei; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9334   TglGetnUniformuiv = procedure (_program : GLuint; location : GLint; bufSize : GLsizei; params : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9335   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}
9336   TglGetnMapdv = procedure (target : GLenum; query : GLenum; bufSize : GLsizei; v : PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9337   TglGetnMapfv = procedure (target : GLenum; query : GLenum; bufSize : GLsizei; v : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9338   TglGetnMapiv = procedure (target : GLenum; query : GLenum; bufSize : GLsizei; v : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9339   TglGetnPixelMapfv = procedure (map : GLenum; bufSize : GLsizei; values : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9340   TglGetnPixelMapuiv = procedure (map : GLenum; bufSize : GLsizei; values : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9341   TglGetnPixelMapusv = procedure (map : GLenum; bufSize : GLsizei; values : PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9342   TglGetnPolygonStipple = procedure (bufSize : GLsizei; pattern : PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9343   TglGetnColorTable = procedure (target : GLenum; format : GLenum; _type : GLenum; bufSize : GLsizei; table : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9344   TglGetnConvolutionFilter = procedure (target : GLenum; format : GLenum; _type : GLenum; bufSize : GLsizei; image : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9345   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}
9346   TglGetnHistogram = procedure (target : GLenum; reset : GLboolean; format : GLenum; _type : GLenum; bufSize : GLsizei; values : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9347   TglGetnMinmax = procedure (target : GLenum; reset : GLboolean; format : GLenum; _type : GLenum; bufSize : GLsizei; values : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9348   TglTextureBarrier = procedure; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9349
9350   // GL_ARB_sparse_buffer
9351   TglBufferPageCommitmentARB = procedure (target : GLenum; offset : GLintptr; size : GLsizei; commit : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9352   TglNamedBufferPageCommitmentEXT = procedure (buffer : GLuint; offset : GLintptr; size : GLsizei; commit : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9353   TglNamedBufferPageCommitmentARB = procedure (buffer : GLuint; offset : GLintptr; size : GLsizei; commit : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9354
9355   // GL_KHR_blend_equation_advanced
9356   TglBlendBarrierKHR = procedure; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9357
9358   // GL_ARB_texture_view
9359   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}
9360
9361   // GL_ARB_vertex_attrib_binding
9362   TglBindVertexBuffer = procedure(bindingindex : GLuint; buffer : GLuint; offset : GLintptr; stride : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9363   TglVertexAttribFormat = procedure(attribindex : GLuint; size : GLInt; type_ : GLEnum; normalized : GLboolean; relativeoffset : GLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9364   TglVertexAttribIFormat = procedure(attribindex : GLuint; size : GLInt; type_ : GLEnum; relativeoffset : GLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9365   TglVertexAttribLFormat = procedure(attribindex : GLuint; size : GLInt; type_ : GLEnum; relativeoffset : GLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9366   TglVertexAttribBinding = procedure(attribindex : GLuint; bindingindex : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9367   TglVertexBindingDivisor = procedure(bindingindex : GLuint; divisor : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9368   TglVertexArrayBindVertexBufferEXT = procedure(vaobj : GLuint; bindingindex : GLuint; buffer : GLuint; offset : GLintptr; stride : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9369   TglVertexArrayVertexAttribFormatEXT = procedure(vaobj : GLuint; attribindex : GLuint; size : GLInt; type_ : GLEnum; normalized : GLboolean; relativeoffset : GLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9370   TglVertexArrayVertexAttribIFormatEXT = procedure(vaobj : GLuint; attribindex : GLuint; size : GLInt; type_ : GLEnum; relativeoffset : GLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9371   TglVertexArrayVertexAttribLFormatEXT = procedure(vaobj : GLuint; attribindex : GLuint; size : GLInt; type_ : GLEnum; relativeoffset : GLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9372   TglVertexArrayVertexAttribBindingEXT = procedure(vaobj : GLuint; attribindex : GLuint; bindingindex : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9373   TglVertexArrayVertexBindingDivisorEXT = procedure(vaobj : GLuint; bindingindex : GLuint; divisor : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9374
9375   // GL_ARB_robustness_isolation
9376
9377   //
9378
9379   // GL_ARB_cl_event
9380   TglCreateSyncFromCLeventARB = function(context: p_cl_context; event: p_cl_event; flags: GLbitfield): GLsync; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9381
9382   // GL_ARB_debug_output
9383   TglDebugMessageControlARB = procedure(source: GLenum; type_: GLenum; severity: GLenum; count: GLsizei; const ids: PGLuint; enabled: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9384   TglDebugMessageInsertARB = procedure(source: GLenum; type_: GLenum; id: GLuint; severity: GLenum; length: GLsizei; const buf: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9385   TglDebugMessageCallbackARB = procedure(callback: TglDebugProcARB; const userParam: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9386   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}
9387
9388   // GL_ARB_robustness
9389   TglGetGraphicsResetStatusARB = function(): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9390   TglGetnMapdvARB = procedure(target: GLenum; query: GLenum; bufSize: GLsizei; v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9391   TglGetnMapfvARB = procedure(target: GLenum; query: GLenum; bufSize: GLsizei; v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9392   TglGetnMapivARB = procedure(target: GLenum; query: GLenum; bufSize: GLsizei; v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9393   TglGetnPixelMapfvARB = procedure(map: GLenum; bufSize: GLsizei; values: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9394   TglGetnPixelMapuivARB = procedure(map: GLenum; bufSize: GLsizei; values: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9395   TglGetnPixelMapusvARB = procedure(map: GLenum; bufSize: GLsizei; values: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9396   TglGetnPolygonStippleARB = procedure(bufSize: GLsizei; pattern: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9397   TglGetnColorTableARB = procedure(target: GLenum; format: GLenum; type_: GLenum; bufSize: GLsizei; table: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9398   TglGetnConvolutionFilterARB = procedure(target: GLenum; format: GLenum; type_: GLenum; bufSize: GLsizei; image: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9399   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}
9400   TglGetnHistogramARB = procedure(target: GLenum; reset: GLboolean; format: GLenum; type_: GLenum; bufSize: GLsizei; values: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9401   TglGetnMinmaxARB = procedure(target: GLenum; reset: GLboolean; format: GLenum; type_: GLenum; bufSize: GLsizei; values: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9402   TglGetnTexImageARB = procedure(target: GLenum; level: GLint; format: GLenum; type_: GLenum; bufSize: GLsizei; img: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9403   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}
9404   TglGetnCompressedTexImageARB = procedure(target: GLenum; lod: GLint; bufSize: GLsizei; img: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9405   TglGetnUniformfvARB = procedure(program_: GLuint; location: GLint; bufSize: GLsizei; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9406   TglGetnUniformivARB = procedure(program_: GLuint; location: GLint; bufSize: GLsizei; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9407   TglGetnUniformuivARB = procedure(program_: GLuint; location: GLint; bufSize: GLsizei; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9408   TglGetnUniformdvARB = procedure(program_: GLuint; location: GLint; bufSize: GLsizei; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9409
9410   // GL_ATI_draw_buffers
9411   TglDrawBuffersATI = procedure(n: GLsizei; const bufs: PGLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9412
9413   // GL_ATI_element_array
9414   TglElementPointerATI = procedure(_type: GLenum; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9415   TglDrawElementArrayATI = procedure(mode: GLenum; count: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9416   TglDrawRangeElementArrayATI = procedure(mode: GLenum; start: GLuint; _end: GLuint; count: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9417
9418   // GL_ATI_envmap_bumpmap
9419   TglTexBumpParameterivATI = procedure(pname: GLenum; const param: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9420   TglTexBumpParameterfvATI = procedure(pname: GLenum; const param: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9421   TglGetTexBumpParameterivATI = procedure(pname: GLenum; param: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9422   TglGetTexBumpParameterfvATI = procedure(pname: GLenum; param: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9423
9424   // GL_ATI_fragment_shader
9425   TglGenFragmentShadersATI = function(range: GLuint): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9426   TglBindFragmentShaderATI = procedure(id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9427   TglDeleteFragmentShaderATI = procedure(id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9428   TglBeginFragmentShaderATI = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9429   TglEndFragmentShaderATI = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9430   TglPassTexCoordATI = procedure(dst: GLuint; coord: GLuint; swizzle: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9431   TglSampleMapATI = procedure(dst: GLuint; interp: GLuint; swizzle: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9432   TglColorFragmentOp1ATI = procedure(op: GLenum; dst: GLuint; dstMask: GLuint; dstMod: GLuint; arg1: GLuint; arg1Rep: GLuint; arg1Mod: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9433   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}
9434   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}
9435   TglAlphaFragmentOp1ATI = procedure(op: GLenum; dst: GLuint; dstMod: GLuint; arg1: GLuint; arg1Rep: GLuint; arg1Mod: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9436   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}
9437   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}
9438   TglSetFragmentShaderConstantATI = procedure(dst: GLuint; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9439
9440   // GL_ATI_map_object_buffer
9441   TglMapObjectBufferATI = function(buffer: GLuint): PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9442   TglUnmapObjectBufferATI = procedure(buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9443
9444   // GL_ATI_pn_triangles
9445   TglPNTrianglesiATI = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9446   TglPNTrianglesfATI = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9447
9448   // GL_ATI_separate_stencil
9449   TglStencilOpSeparateATI = procedure(face: GLenum; sfail: GLenum; dpfail: GLenum; dppass: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9450   TglStencilFuncSeparateATI = procedure(frontfunc: GLenum; backfunc: GLenum; ref: GLint; mask: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9451
9452   // GL_ATI_vertex_array_object
9453   TglNewObjectBufferATI = function(size: GLsizei; const _pointer: PGLvoid; usage: GLenum): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9454   TglIsObjectBufferATI = function(buffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9455   TglUpdateObjectBufferATI = procedure(buffer: GLuint; offset: GLuint; size: GLsizei; const _pointer: PGLvoid; preserve: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9456   TglGetObjectBufferfvATI = procedure(buffer: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9457   TglGetObjectBufferivATI = procedure(buffer: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9458   TglFreeObjectBufferATI = procedure(buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9459   TglArrayObjectATI = procedure(_array: GLenum; size: GLint; _type: GLenum; stride: GLsizei; buffer: GLuint; offset: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9460   TglGetArrayObjectfvATI = procedure(_array: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9461   TglGetArrayObjectivATI = procedure(_array: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9462   TglVariantArrayObjectATI = procedure(id: GLuint; _type: GLenum; stride: GLsizei; buffer: GLuint; offset: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9463   TglGetVariantArrayObjectfvATI = procedure(id: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9464   TglGetVariantArrayObjectivATI = procedure(id: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9465
9466   // GL_ATI_vertex_attrib_array_object
9467   TglVertexAttribArrayObjectATI = procedure(index: GLuint; size: GLint; _type: GLenum; normalized: GLboolean; stride: GLsizei; buffer: GLuint; offset: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9468   TglGetVertexAttribArrayObjectfvATI = procedure(index: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9469   TglGetVertexAttribArrayObjectivATI = procedure(index: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9470
9471   // GL_ATI_vertex_streams
9472   TglVertexStream1sATI = procedure(stream: GLenum; x: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9473   TglVertexStream1svATI = procedure(stream: GLenum; const coords: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9474   TglVertexStream1iATI = procedure(stream: GLenum; x: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9475   TglVertexStream1ivATI = procedure(stream: GLenum; const coords: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9476   TglVertexStream1fATI = procedure(stream: GLenum; x: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9477   TglVertexStream1fvATI = procedure(stream: GLenum; const coords: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9478   TglVertexStream1dATI = procedure(stream: GLenum; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9479   TglVertexStream1dvATI = procedure(stream: GLenum; const coords: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9480   TglVertexStream2sATI = procedure(stream: GLenum; x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9481   TglVertexStream2svATI = procedure(stream: GLenum; const coords: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9482   TglVertexStream2iATI = procedure(stream: GLenum; x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9483   TglVertexStream2ivATI = procedure(stream: GLenum; const coords: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9484   TglVertexStream2fATI = procedure(stream: GLenum; x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9485   TglVertexStream2fvATI = procedure(stream: GLenum; const coords: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9486   TglVertexStream2dATI = procedure(stream: GLenum; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9487   TglVertexStream2dvATI = procedure(stream: GLenum; const coords: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9488   TglVertexStream3sATI = procedure(stream: GLenum; x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9489   TglVertexStream3svATI = procedure(stream: GLenum; const coords: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9490   TglVertexStream3iATI = procedure(stream: GLenum; x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9491   TglVertexStream3ivATI = procedure(stream: GLenum; const coords: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9492   TglVertexStream3fATI = procedure(stream: GLenum; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9493   TglVertexStream3fvATI = procedure(stream: GLenum; const coords: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9494   TglVertexStream3dATI = procedure(stream: GLenum; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9495   TglVertexStream3dvATI = procedure(stream: GLenum; const coords: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9496   TglVertexStream4sATI = procedure(stream: GLenum; x: GLshort; y: GLshort; z: GLshort; w: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9497   TglVertexStream4svATI = procedure(stream: GLenum; const coords: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9498   TglVertexStream4iATI = procedure(stream: GLenum; x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9499   TglVertexStream4ivATI = procedure(stream: GLenum; const coords: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9500   TglVertexStream4fATI = procedure(stream: GLenum; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9501   TglVertexStream4fvATI = procedure(stream: GLenum; const coords: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9502   TglVertexStream4dATI = procedure(stream: GLenum; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9503   TglVertexStream4dvATI = procedure(stream: GLenum; const coords: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9504   TglNormalStream3bATI = procedure(stream: GLenum; nx: GLbyte; ny: GLbyte; nz: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9505   TglNormalStream3bvATI = procedure(stream: GLenum; const coords: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9506   TglNormalStream3sATI = procedure(stream: GLenum; nx: GLshort; ny: GLshort; nz: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9507   TglNormalStream3svATI = procedure(stream: GLenum; const coords: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9508   TglNormalStream3iATI = procedure(stream: GLenum; nx: GLint; ny: GLint; nz: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9509   TglNormalStream3ivATI = procedure(stream: GLenum; const coords: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9510   TglNormalStream3fATI = procedure(stream: GLenum; nx: GLfloat; ny: GLfloat; nz: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9511   TglNormalStream3fvATI = procedure(stream: GLenum; const coords: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9512   TglNormalStream3dATI = procedure(stream: GLenum; nx: GLdouble; ny: GLdouble; nz: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9513   TglNormalStream3dvATI = procedure(stream: GLenum; const coords: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9514   TglClientActiveVertexStreamATI = procedure(stream: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9515   TglVertexBlendEnviATI = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9516   TglVertexBlendEnvfATI = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9517
9518   // GL_AMD_performance_monitor
9519   TglGetPerfMonitorGroupsAMD = procedure(numGroups: PGLint; groupsSize: GLsizei; groups: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9520   TglGetPerfMonitorCountersAMD = procedure(group: GLuint; numCounters: PGLint; maxActiveCouters: PGLint; counterSize: GLsizei; counters: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9521   TglGetPerfMonitorGroupStringAMD = procedure(group: GLuint; bufSize: GLsizei; length: PGLsizei; groupString: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9522   TglGetPerfMonitorCounterStringAMD = procedure(group: GLuint; counter: GLuint; bufSize: GLsizei; length: PGLsizei; counterString: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9523   TglGetPerfMonitorCounterInfoAMD = procedure(group: GLuint; counter: GLuint; pname: GLenum; data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9524   TglGenPerfMonitorsAMD = procedure(n: GLsizei; monitors: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9525   TglDeletePerfMonitorsAMD = procedure(n: GLsizei; monitors: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9526   TglSelectPerfMonitorCountersAMD = procedure(monitor: GLuint; enable: GLboolean; group: GLuint; numCounters: GLint; counterList: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9527   TglBeginPerfMonitorAMD = procedure(monitor: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9528   TglEndPerfMonitorAMD = procedure(monitor: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9529   TglGetPerfMonitorCounterDataAMD = procedure(monitor: GLuint; pname: GLenum; dataSize: GLsizei; data: PGLuint; bytesWritten: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9530
9531   // GL_AMD_vertex_shader_tesselator
9532   TglTessellationFactorAMD = procedure(factor: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9533   TglTessellationModeAMD = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9534
9535   // GL_AMD_draw_buffers_blend
9536   TglBlendFuncIndexedAMD = procedure(buf: GLuint; src: GLenum; dst: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9537   TglBlendFuncSeparateIndexedAMD = procedure(buf: GLuint; srcRGB: GLenum; dstRGB: GLenum; srcAlpha: GLenum; dstAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9538   TglBlendEquationIndexedAMD = procedure(buf: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9539   TglBlendEquationSeparateIndexedAMD = procedure(buf: GLuint; modeRGB: GLenum; modeAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9540
9541   // GL_AMD_name_gen_delete
9542   TglGenNamesAMD = procedure(identifier: GLenum; num: GLuint; names: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9543   TglDeleteNamesAMD = procedure(identifier: GLenum; num: GLuint; const names: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9544   TglIsNameAMD = function(identifier: GLenum; name: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9545
9546   // GL_AMD_debug_output
9547   TglDebugMessageEnableAMD = procedure(category: GLenum; severity: GLenum; count: GLsizei; const ids: PGLuint; enabled: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9548   TglDebugMessageInsertAMD = procedure(category: GLenum; severity: GLenum; id: GLuint; length: GLsizei; const buf: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9549   TglDebugMessageCallbackAMD = procedure(callback: TGLDebugProcAMD; userParam: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9550   TglGetDebugMessageLogAMD = function(count: GLuint; bufsize: GLsizei; categories: PGLenum; severities: PGLuint; ids: PGLuint; lengths: PGLsizei; message: PGLchar): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9551
9552   // GL_EXT_blend_color
9553   TglBlendColorEXT = procedure(red: GLclampf; green: GLclampf; blue: GLclampf; alpha: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9554
9555   // GL_EXT_blend_func_separate
9556   TglBlendFuncSeparateEXT = procedure(sfactorRGB: GLenum; dfactorRGB: GLenum; sfactorAlpha: GLenum; dfactorAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9557
9558   // GL_EXT_blend_minmax
9559   TglBlendEquationEXT = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9560
9561   // GL_EXT_color_subtable
9562   TglColorSubTableEXT = procedure(target: GLenum; start: GLsizei; count: GLsizei; format: GLenum; _type: GLenum; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9563   TglCopyColorSubTableEXT = procedure(target: GLenum; start: GLsizei; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9564
9565   // GL_EXT_compiled_vertex_array
9566   TglLockArraysEXT = procedure(first: GLint; count: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9567   TglUnlockArraysEXT = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9568
9569   // GL_EXT_convolution
9570   TglConvolutionFilter1DEXT = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; format: GLenum; _type: GLenum; const image: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9571   TglConvolutionFilter2DEXT = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; const image: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9572   TglConvolutionParameterfEXT = procedure(target: GLenum; pname: GLenum; params: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9573   TglConvolutionParameterfvEXT = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9574   TglConvolutionParameteriEXT = procedure(target: GLenum; pname: GLenum; params: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9575   TglConvolutionParameterivEXT = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9576   TglCopyConvolutionFilter1DEXT = procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9577   TglCopyConvolutionFilter2DEXT = procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9578   TglGetConvolutionFilterEXT = procedure(target: GLenum; format: GLenum; _type: GLenum; image: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9579   TglGetConvolutionParameterfvEXT = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9580   TglGetConvolutionParameterivEXT = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9581   TglGetSeparableFilterEXT = procedure(target: GLenum; format: GLenum; _type: GLenum; row: PGLvoid; column: PGLvoid; span: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9582   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}
9583
9584   // GL_EXT_coordinate_frame
9585   TglTangent3bEXT = procedure(tx: GLbyte; ty: GLbyte; tz: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9586   TglTangent3bvEXT = procedure(const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9587   TglTangent3dEXT = procedure(tx: GLdouble; ty: GLdouble; tz: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9588   TglTangent3dvEXT = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9589   TglTangent3fEXT = procedure(tx: GLfloat; ty: GLfloat; tz: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9590   TglTangent3fvEXT = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9591   TglTangent3iEXT = procedure(tx: GLint; ty: GLint; tz: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9592   TglTangent3ivEXT = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9593   TglTangent3sEXT = procedure(tx: GLshort; ty: GLshort; tz: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9594   TglTangent3svEXT = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9595   TglBinormal3bEXT = procedure(bx: GLbyte; by: GLbyte; bz: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9596   TglBinormal3bvEXT = procedure(const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9597   TglBinormal3dEXT = procedure(bx: GLdouble; by: GLdouble; bz: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9598   TglBinormal3dvEXT = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9599   TglBinormal3fEXT = procedure(bx: GLfloat; by: GLfloat; bz: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9600   TglBinormal3fvEXT = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9601   TglBinormal3iEXT = procedure(bx: GLint; by: GLint; bz: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9602   TglBinormal3ivEXT = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9603   TglBinormal3sEXT = procedure(bx: GLshort; by: GLshort; bz: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9604   TglBinormal3svEXT = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9605   TglTangentPointerEXT = procedure(_type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9606   TglBinormalPointerEXT = procedure(_type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9607
9608   // GL_EXT_copy_texture
9609   TglCopyTexImage1DEXT = procedure(target: GLenum; level: GLint; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei; border: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9610   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}
9611   TglCopyTexSubImage1DEXT = procedure(target: GLenum; level: GLint; xoffset: GLint; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9612   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}
9613   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}
9614
9615   // GL_EXT_cull_vertex
9616   TglCullParameterdvEXT = procedure(pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9617   TglCullParameterfvEXT = procedure(pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9618
9619   // GL_EXT_draw_range_elements
9620   TglDrawRangeElementsEXT = procedure(mode: GLenum; start: GLuint; _end: GLuint; count: GLsizei; _type: GLenum; const indices: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9621
9622   // GL_EXT_fog_coord
9623   TglFogCoordfEXT = procedure(coord: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9624   TglFogCoordfvEXT = procedure(const coord: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9625   TglFogCoorddEXT = procedure(coord: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9626   TglFogCoorddvEXT = procedure(const coord: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9627   TglFogCoordPointerEXT = procedure(_type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9628
9629   // GL_EXT_framebuffer_object
9630   TglIsRenderbufferEXT = function(renderbuffer: GLuint): Boolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9631   TglBindRenderbufferEXT = procedure(target: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9632   TglDeleteRenderbuffersEXT = procedure(n: GLsizei; const renderbuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9633   TglGenRenderbuffersEXT = procedure(n: GLsizei; renderbuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9634   TglRenderbufferStorageEXT = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9635   TglGetRenderbufferParameterivEXT = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9636   TglIsFramebufferEXT = function(framebuffer: GLuint): Boolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9637   TglBindFramebufferEXT = procedure(target: GLenum; framebuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9638   TglDeleteFramebuffersEXT = procedure(n: GLsizei; const framebuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9639   TglGenFramebuffersEXT = procedure(n: GLsizei; framebuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9640   TglCheckFramebufferStatusEXT = function(target: GLenum): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9641   TglFramebufferTexture1DEXT = procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9642   TglFramebufferTexture2DEXT = procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9643   TglFramebufferTexture3DEXT = procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint; zoffset: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9644   TglFramebufferRenderbufferEXT = procedure(target: GLenum; attachment: GLenum; renderbuffertarget: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9645   TglGetFramebufferAttachmentParameterivEXT = procedure(target: GLenum; attachment: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9646   TglGenerateMipmapEXT = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9647
9648   // GL_EXT_histogram
9649   TglGetHistogramEXT = procedure(target: GLenum; reset: GLboolean; format: GLenum; _type: GLenum; values: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9650   TglGetHistogramParameterfvEXT = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9651   TglGetHistogramParameterivEXT = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9652   TglGetMinmaxEXT = procedure(target: GLenum; reset: GLboolean; format: GLenum; _type: GLenum; values: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9653   TglGetMinmaxParameterfvEXT = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9654   TglGetMinmaxParameterivEXT = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9655   TglHistogramEXT = procedure(target: GLenum; width: GLsizei; internalformat: GLenum; sink: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9656   TglMinmaxEXT = procedure(target: GLenum; internalformat: GLenum; sink: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9657   TglResetHistogramEXT = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9658   TglResetMinmaxEXT = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9659
9660   // GL_EXT_index_func
9661   TglIndexFuncEXT = procedure(func: GLenum; ref: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9662
9663   // GL_EXT_index_material
9664   TglIndexMaterialEXT = procedure(face: GLenum; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9665
9666   // GL_EXT_light_texture
9667   TglApplyTextureEXT = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9668   TglTextureLightEXT = procedure(pname: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9669   TglTextureMaterialEXT = procedure(face: GLenum; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9670
9671   // GL_EXT_multi_draw_arrays
9672   TglMultiDrawArraysEXT = procedure(mode: GLenum; const first: PGLint; const count: PGLsizei; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9673   TglMultiDrawElementsEXT = procedure(mode: GLenum; const count: PGLsizei; _type: GLenum; const indices: PGLvoid; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9674
9675   // GL_EXT_multisample
9676   TglSampleMaskEXT = procedure(value: GLclampf; invert: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9677   TglSamplePatternEXT = procedure(pattern: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9678
9679   // GL_EXT_paletted_texture
9680   TglColorTableEXT = procedure(target: GLenum; internalFormat: GLenum; width: GLsizei; format: GLenum; _type: GLenum; const table: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9681   TglGetColorTableEXT = procedure(target: GLenum; format: GLenum; _type: GLenum; data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9682   TglGetColorTableParameterivEXT = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9683   TglGetColorTableParameterfvEXT = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9684
9685   // GL_EXT_pixel_transform
9686   TglPixelTransformParameteriEXT = procedure(target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9687   TglPixelTransformParameterfEXT = procedure(target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9688   TglPixelTransformParameterivEXT = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9689   TglPixelTransformParameterfvEXT = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9690
9691   // GL_EXT_point_parameters
9692   TglPointParameterfEXT = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9693   TglPointParameterfvEXT = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9694
9695   // GL_EXT_polygon_offset
9696   TglPolygonOffsetEXT = procedure(factor: GLfloat; bias: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9697
9698   // GL_EXT_secondary_color
9699   TglSecondaryColor3bEXT = procedure(red: GLbyte; green: GLbyte; blue: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9700   TglSecondaryColor3bvEXT = procedure(const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9701   TglSecondaryColor3dEXT = procedure(red: GLdouble; green: GLdouble; blue: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9702   TglSecondaryColor3dvEXT = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9703   TglSecondaryColor3fEXT = procedure(red: GLfloat; green: GLfloat; blue: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9704   TglSecondaryColor3fvEXT = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9705   TglSecondaryColor3iEXT = procedure(red: GLint; green: GLint; blue: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9706   TglSecondaryColor3ivEXT = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9707   TglSecondaryColor3sEXT = procedure(red: GLshort; green: GLshort; blue: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9708   TglSecondaryColor3svEXT = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9709   TglSecondaryColor3ubEXT = procedure(red: GLubyte; green: GLubyte; blue: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9710   TglSecondaryColor3ubvEXT = procedure(const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9711   TglSecondaryColor3uiEXT = procedure(red: GLuint; green: GLuint; blue: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9712   TglSecondaryColor3uivEXT = procedure(const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9713   TglSecondaryColor3usEXT = procedure(red: GLushort; green: GLushort; blue: GLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9714   TglSecondaryColor3usvEXT = procedure(const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9715   TglSecondaryColorPointerEXT = procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9716
9717   // GL_EXT_stencil_two_side
9718   TglActiveStencilFaceEXT = procedure(face: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9719
9720   // GL_EXT_subtexture
9721   TglTexSubImage1DEXT = procedure(target: GLenum; level: GLint; xoffset: GLint; width: GLsizei; format: GLenum; _type: GLenum; const pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9722   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}
9723
9724   // GL_EXT_texture3D
9725   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}
9726   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}
9727
9728   // GL_EXT_texture_object
9729   TglAreTexturesResidentEXT = function(n: GLsizei; const textures: PGLuint; residences: PGLboolean): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9730   TglBindTextureEXT = procedure(target: GLenum; texture: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9731   TglDeleteTexturesEXT = procedure(n: GLsizei; const textures: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9732   TglGenTexturesEXT = procedure(n: GLsizei; textures: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9733   TglIsTextureEXT = function(texture: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9734   TglPrioritizeTexturesEXT = procedure(n: GLsizei; const textures: PGLuint; const priorities: PGLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9735
9736   // GL_EXT_texture_perturb_normal
9737   TglTextureNormalEXT = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9738
9739   // GL_EXT_vertex_array
9740   TglArrayElementEXT = procedure(i: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9741   TglColorPointerEXT = procedure(size: GLint; _type: GLenum; stride: GLsizei; count: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9742   TglDrawArraysEXT = procedure(mode: GLenum; first: GLint; count: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9743   TglEdgeFlagPointerEXT = procedure(stride: GLsizei; count: GLsizei; const _pointer: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9744   TglGetPointervEXT = procedure(pname: GLenum; params: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9745   TglIndexPointerEXT = procedure(_type: GLenum; stride: GLsizei; count: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9746   TglNormalPointerEXT = procedure(_type: GLenum; stride: GLsizei; count: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9747   TglTexCoordPointerEXT = procedure(size: GLint; _type: GLenum; stride: GLsizei; count: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9748   TglVertexPointerEXT = procedure(size: GLint; _type: GLenum; stride: GLsizei; count: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9749
9750   // GL_EXT_vertex_shader
9751   TglBeginVertexShaderEXT = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9752   TglEndVertexShaderEXT = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9753   TglBindVertexShaderEXT = procedure(id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9754   TglGenVertexShadersEXT = function(range: GLuint): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9755   TglDeleteVertexShaderEXT = procedure(id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9756   TglShaderOp1EXT = procedure(op: GLenum; res: GLuint; arg1: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9757   TglShaderOp2EXT = procedure(op: GLenum; res: GLuint; arg1: GLuint; arg2: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9758   TglShaderOp3EXT = procedure(op: GLenum; res: GLuint; arg1: GLuint; arg2: GLuint; arg3: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9759   TglSwizzleEXT = procedure(res: GLuint; _in: GLuint; outX: GLenum; outY: GLenum; outZ: GLenum; outW: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9760   TglWriteMaskEXT = procedure(res: GLuint; _in: GLuint; outX: GLenum; outY: GLenum; outZ: GLenum; outW: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9761   TglInsertComponentEXT = procedure(res: GLuint; src: GLuint; num: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9762   TglExtractComponentEXT = procedure(res: GLuint; src: GLuint; num: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9763   TglGenSymbolsEXT = function(datatype: GLenum; storagetype: GLenum; range: GLenum; components: GLuint): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9764   TglSetInvariantEXT = procedure(id: GLuint; _type: GLenum; const addr: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9765   TglSetLocalConstantEXT = procedure(id: GLuint; _type: GLenum; const addr: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9766   TglVariantbvEXT = procedure(id: GLuint; const addr: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9767   TglVariantsvEXT = procedure(id: GLuint; const addr: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9768   TglVariantivEXT = procedure(id: GLuint; const addr: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9769   TglVariantfvEXT = procedure(id: GLuint; const addr: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9770   TglVariantdvEXT = procedure(id: GLuint; const addr: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9771   TglVariantubvEXT = procedure(id: GLuint; const addr: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9772   TglVariantusvEXT = procedure(id: GLuint; const addr: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9773   TglVariantuivEXT = procedure(id: GLuint; const addr: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9774   TglVariantPointerEXT = procedure(id: GLuint; _type: GLenum; stride: GLuint; const addr: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9775   TglEnableVariantClientStateEXT = procedure(id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9776   TglDisableVariantClientStateEXT = procedure(id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9777   TglBindLightParameterEXT = function(light: GLenum; value: GLenum): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9778   TglBindMaterialParameterEXT = function(face: GLenum; value: GLenum): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9779   TglBindTexGenParameterEXT = function(_unit: GLenum; coord: GLenum; value: GLenum): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9780   TglBindTextureUnitParameterEXT = function(_unit: GLenum; value: GLenum): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9781   TglBindParameterEXT = function(value: GLenum): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9782   TglIsVariantEnabledEXT = function(id: GLuint; cap: GLenum): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9783   TglGetVariantBooleanvEXT = procedure(id: GLuint; value: GLenum; data: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9784   TglGetVariantIntegervEXT = procedure(id: GLuint; value: GLenum; data: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9785   TglGetVariantFloatvEXT = procedure(id: GLuint; value: GLenum; data: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9786   TglGetVariantPointervEXT = procedure(id: GLuint; value: GLenum; data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9787   TglGetInvariantBooleanvEXT = procedure(id: GLuint; value: GLenum; data: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9788   TglGetInvariantIntegervEXT = procedure(id: GLuint; value: GLenum; data: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9789   TglGetInvariantFloatvEXT = procedure(id: GLuint; value: GLenum; data: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9790   TglGetLocalConstantBooleanvEXT = procedure(id: GLuint; value: GLenum; data: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9791   TglGetLocalConstantIntegervEXT = procedure(id: GLuint; value: GLenum; data: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9792   TglGetLocalConstantFloatvEXT = procedure(id: GLuint; value: GLenum; data: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9793
9794   // GL_EXT_vertex_weighting
9795   TglVertexWeightfEXT = procedure(weight: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9796   TglVertexWeightfvEXT = procedure(const weight: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9797   TglVertexWeightPointerEXT = procedure(size: GLsizei; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9798
9799   // GL_EXT_stencil_clear_tag
9800   TglStencilClearTagEXT = procedure(stencilTagBits: GLsizei; stencilClearTag: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9801
9802   // GL_EXT_framebuffer_blit
9803   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}
9804
9805   // GL_EXT_framebuffer_multisample
9806   TglRenderbufferStorageMultisampleEXT = procedure(target: GLenum; samples: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9807
9808   // GL_EXT_timer_query
9809   TglGetQueryObjecti64vEXT = procedure(id: GLuint; pname: GLenum; params: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9810   TglGetQueryObjectui64vEXT = procedure(id: GLuint; pname: GLenum; params: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9811
9812   // GL_EXT_gpu_program_parameters
9813   TglProgramEnvParameters4fvEXT = procedure(target: GLenum; index: GLuint; count: GLsizei; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9814   TglProgramLocalParameters4fvEXT = procedure(target: GLenum; index: GLuint; count: GLsizei; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9815
9816   // GL_EXT_bindable_uniform
9817   TglUniformBufferEXT = procedure(_program: GLuint; location: GLint; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9818   TglGetUniformBufferSizeEXT = function(_program: GLuint; location: GLint): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9819   TglGetUniformOffsetEXT = function(_program: GLuint; location: GLint): GLintptr; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9820
9821   // GL_EXT_draw_buffers2
9822   TglColorMaskIndexedEXT = procedure(buf: GLuint; r: GLboolean; g: GLboolean; b: GLboolean; a: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9823   TglGetBooleanIndexedvEXT = procedure(value: GLenum; index: GLuint; data: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9824   TglGetIntegerIndexedvEXT = procedure(value: GLenum; index: GLuint; data: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9825   TglEnableIndexedEXT = procedure(target: GLenum; index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9826   TglDisableIndexedEXT = procedure(target: GLenum; index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9827   TglIsEnabledIndexedEXT = function(target: GLenum; index: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9828
9829   // GL_EXT_draw_instanced
9830   TglDrawArraysInstancedEXT = procedure(mode: GLenum; first: GLint; count: GLsizei; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9831   TglDrawElementsInstancedEXT = procedure(mode: GLenum; count: GLsizei; _type: GLenum; const indices: Pointer; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9832
9833   // GL_EXT_geometry_shader4
9834   TglProgramParameteriEXT = procedure (_program: GLuint; pname: GLenum; value: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9835   TglFramebufferTextureEXT = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9836
9837   TglFramebufferTextureFaceEXT = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; face: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9838
9839   // GL_EXT_gpu_shader4
9840   TglVertexAttribI1iEXT = procedure(index: GLuint; x: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9841   TglVertexAttribI2iEXT = procedure(index: GLuint; x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9842   TglVertexAttribI3iEXT = procedure(index: GLuint; x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9843   TglVertexAttribI4iEXT = procedure(index: GLuint; x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9844   TglVertexAttribI1uiEXT = procedure(index: GLuint; x: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9845   TglVertexAttribI2uiEXT = procedure(index: GLuint; x: GLuint; y: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9846   TglVertexAttribI3uiEXT = procedure(index: GLuint; x: GLuint; y: GLuint; z: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9847   TglVertexAttribI4uiEXT = procedure(index: GLuint; x: GLuint; y: GLuint; z: GLuint; w: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9848   TglVertexAttribI1ivEXT = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9849   TglVertexAttribI2ivEXT = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9850   TglVertexAttribI3ivEXT = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9851   TglVertexAttribI4ivEXT = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9852   TglVertexAttribI1uivEXT = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9853   TglVertexAttribI2uivEXT = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9854   TglVertexAttribI3uivEXT = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9855   TglVertexAttribI4uivEXT = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9856   TglVertexAttribI4bvEXT = procedure(index: GLuint; const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9857   TglVertexAttribI4svEXT = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9858   TglVertexAttribI4ubvEXT = procedure(index: GLuint; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9859   TglVertexAttribI4usvEXT = procedure(index: GLuint; const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9860   TglVertexAttribIPointerEXT = procedure(index: GLuint; size: GLint; _type: GLenum; stride: GLsizei; const _pointer: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9861   TglGetVertexAttribIivEXT = procedure(index: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9862   TglGetVertexAttribIuivEXT = procedure(index: GLuint; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9863   TglUniform1uiEXT = procedure(location: GLint; v0: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9864   TglUniform2uiEXT = procedure(location: GLint; v0: GLuint; v1: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9865   TglUniform3uiEXT = procedure(location: GLint; v0: GLuint; v1: GLuint; v2: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9866   TglUniform4uiEXT = procedure(location: GLint; v0: GLuint; v1: GLuint; v2: GLuint; v3: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9867   TglUniform1uivEXT = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9868   TglUniform2uivEXT = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9869   TglUniform3uivEXT = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9870   TglUniform4uivEXT = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9871   TglGetUniformuivEXT = procedure(_program: GLuint; location: GLint; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9872   TglBindFragDataLocationEXT = procedure(_program: GLuint; colorNumber: GLuint; const name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9873   TglGetFragDataLocationEXT = function(_program: GLuint; const name: PGLchar): GLint;
9874
9875   // GL_EXT_texture_array
9876   TglFramebufferTextureLayerEXT = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; layer: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9877
9878   // GL_EXT_texture_buffer_object
9879   TglTexBufferEXT = procedure(target: GLenum; internalformat: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9880
9881   // GL_EXT_texture_integer
9882   TglClearColorIiEXT = procedure(r: GLint; g: GLint; b: GLint; a: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9883   TglClearColorIuiEXT = procedure(r: GLuint; g: GLuint; b: GLuint; a: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9884   TglTexParameterIivEXT = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9885   TglTexParameterIuivEXT = procedure(target: GLenum; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9886   TglGetTexParameterIivEXT = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9887   TglGetTexParameterIiuvEXT = procedure(target: GLenum; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9888
9889   // GL_HP_image_transform
9890   TglImageTransformParameteriHP = procedure(target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9891   TglImageTransformParameterfHP = procedure(target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9892   TglImageTransformParameterivHP = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9893   TglImageTransformParameterfvHP = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9894   TglGetImageTransformParameterivHP = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9895   TglGetImageTransformParameterfvHP = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9896
9897   // GL_EXT_depth_bounds_test
9898   TglDepthBoundsEXT = procedure(zmin: GLclampd; zmax: GLclampd); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9899
9900   // GL_EXT_blend_equation_separate
9901   TglBlendEquationSeparateEXT = procedure(modeRGB: GLenum; modeAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9902
9903   // GL_EXT_transform_feedback
9904   TglBeginTransformFeedbackEXT = procedure(primitiveMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9905   TglEndTransformFeedbackEXT = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9906   TglBindBufferRangeEXT = procedure(target: GLenum; index_: GLuint; buffer: GLuint; offset: GLintptr; size: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9907   TglBindBufferOffsetEXT = procedure(target: GLenum; index_: GLuint; buffer: GLuint; offset: GLintptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9908   TglBindBufferBaseEXT = procedure(target: GLenum; index_: GLuint; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9909   TglTransformFeedbackVaryingsEXT = procedure(program_: GLuint; count: GLsizei; const locations: PGLint; bufferMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9910   TglGetTransformFeedbackVaryingEXT = procedure(program_: GLuint; index_: GLuint; location: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9911
9912   // GL_EXT_direct_state_access
9913   TglClientAttribDefaultEXT = procedure(mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9914   TglPushClientAttribDefaultEXT = procedure(mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9915   TglMatrixLoadfEXT = procedure(mode: GLenum; const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9916   TglMatrixLoaddEXT = procedure(mode: GLenum; const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9917   TglMatrixMultfEXT = procedure(mode: GLenum; const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9918   TglMatrixMultdEXT = procedure(mode: GLenum; const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9919   TglMatrixLoadIdentityEXT = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9920   TglMatrixRotatefEXT = procedure(mode: GLenum; angle: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9921   TglMatrixRotatedEXT = procedure(mode: GLenum; angle: GLdouble; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9922   TglMatrixScalefEXT = procedure(mode: GLenum; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9923   TglMatrixScaledEXT = procedure(mode: GLenum; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9924   TglMatrixTranslatefEXT = procedure(mode: GLenum; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9925   TglMatrixTranslatedEXT = procedure(mode: GLenum; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9926   TglMatrixFrustumEXT = procedure(mode: GLenum; left: GLdouble; right: GLdouble; bottom: GLdouble; top: GLdouble; zNear: GLdouble; zFar: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9927   TglMatrixOrthoEXT = procedure(mode: GLenum; left: GLdouble; right: GLdouble; bottom: GLdouble; top: GLdouble; zNear: GLdouble; zFar: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9928   TglMatrixPopEXT = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9929   TglMatrixPushEXT = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9930   TglMatrixLoadTransposefEXT = procedure(mode: GLenum; const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9931   TglMatrixLoadTransposedEXT = procedure(mode: GLenum; const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9932   TglMatrixMultTransposefEXT = procedure(mode: GLenum; const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9933   TglMatrixMultTransposedEXT = procedure(mode: GLenum; const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9934   TglTextureParameterfEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9935   TglTextureParameterfvEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9936   TglTextureParameteriEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9937   TglTextureParameterivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9938   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}
9939   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}
9940   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}
9941   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}
9942   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}
9943   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}
9944   TglCopyTextureSubImage1DEXT = procedure(texture: GLuint; target: GLenum; level: GLint; xoffset: GLint; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9945   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}
9946   TglGetTextureImageEXT = procedure(texture: GLuint; target: GLenum; level: GLint; format: GLenum; type_: GLenum; pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9947   TglGetTextureParameterfvEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9948   TglGetTextureParameterivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9949   TglGetTextureLevelParameterfvEXT = procedure(texture: GLuint; target: GLenum; level: GLint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9950   TglGetTextureLevelParameterivEXT = procedure(texture: GLuint; target: GLenum; level: GLint; pname: GLenum; params: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9951   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}
9952   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}
9953   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}
9954   TglMultiTexParameterfEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9955   TglMultiTexParameterfvEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9956   TglMultiTexParameteriEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9957   TglMultiTexParameterivEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9958   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}
9959   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}
9960   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}
9961   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}
9962   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}
9963   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}
9964   TglCopyMultiTexSubImage1DEXT = procedure(texunit: GLenum; target: GLenum; level: GLint; xoffset: GLint; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9965   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}
9966   TglGetMultiTexImageEXT = procedure(texunit: GLenum; target: GLenum; level: GLint; format: GLenum; type_: GLenum; pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9967   TglGetMultiTexParameterfvEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9968   TglGetMultiTexParameterivEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9969   TglGetMultiTexLevelParameterfvEXT = procedure(texunit: GLenum; target: GLenum; level: GLint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9970   TglGetMultiTexLevelParameterivEXT = procedure(texunit: GLenum; target: GLenum; level: GLint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9971   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}
9972   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}
9973   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}
9974   TglBindMultiTextureEXT = procedure(texunit: GLenum; target: GLenum; texture: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9975   TglEnableClientStateIndexedEXT = procedure(array_: GLenum; index_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9976   TglDisableClientStateIndexedEXT = procedure(array_: GLenum; index_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9977   TglMultiTexCoordPointerEXT = procedure(texunit: GLenum; size: GLint; type_: GLenum; stride: GLsizei; const pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9978   TglMultiTexEnvfEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9979   TglMultiTexEnvfvEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9980   TglMultiTexEnviEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9981   TglMultiTexEnvivEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9982   TglMultiTexGendEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9983   TglMultiTexGendvEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9984   TglMultiTexGenfEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9985   TglMultiTexGenfvEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9986   TglMultiTexGeniEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9987   TglMultiTexGenivEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9988   TglGetMultiTexEnvfvEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9989   TglGetMultiTexEnvivEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9990   TglGetMultiTexGendvEXT = procedure(texunit: GLenum; coord: GLenum; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9991   TglGetMultiTexGenfvEXT = procedure(texunit: GLenum; coord: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9992   TglGetMultiTexGenivEXT = procedure(texunit: GLenum; coord: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9993   TglGetFloatIndexedvEXT = procedure(target: GLenum; index_: GLuint; data: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9994   TglGetDoubleIndexedvEXT = procedure(target: GLenum; index_: GLuint; data: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9995   TglGetPointerIndexedvEXT = procedure(target: GLenum; index_: GLuint; data: PPGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9996   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}
9997   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}
9998   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}
9999   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}
10000   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}
10001   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}
10002   TglGetCompressedTextureImageEXT = procedure(texture: GLuint; target: GLenum; lod: GLint; img: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10003   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}
10004   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}
10005   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}
10006   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}
10007   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}
10008   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}
10009   TglGetCompressedMultiTexImageEXT = procedure(texunit: GLenum; target: GLenum; lod: GLint; img: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10010   TglNamedProgramStringEXT = procedure(program_: GLuint; target: GLenum; format: GLenum; len: GLsizei; const string_: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10011   TglNamedProgramLocalParameter4dEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10012   TglNamedProgramLocalParameter4dvEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; const params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10013   TglNamedProgramLocalParameter4fEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10014   TglNamedProgramLocalParameter4fvEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10015   TglGetNamedProgramLocalParameterdvEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10016   TglGetNamedProgramLocalParameterfvEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10017   TglGetNamedProgramivEXT = procedure(program_: GLuint; target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10018   TglGetNamedProgramStringEXT = procedure(program_: GLuint; target: GLenum; pname: GLenum; string_: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10019   TglNamedProgramLocalParameters4fvEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; count: GLsizei; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10020   TglNamedProgramLocalParameterI4iEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10021   TglNamedProgramLocalParameterI4ivEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10022   TglNamedProgramLocalParametersI4ivEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; count: GLsizei; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10023   TglNamedProgramLocalParameterI4uiEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; x: GLuint; y: GLuint; z: GLuint; w: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10024   TglNamedProgramLocalParameterI4uivEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10025   TglNamedProgramLocalParametersI4uivEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; count: GLsizei; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10026   TglGetNamedProgramLocalParameterIivEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10027   TglGetNamedProgramLocalParameterIuivEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10028   TglTextureParameterIivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10029   TglTextureParameterIuivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10030   TglGetTextureParameterIivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10031   TglGetTextureParameterIuivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10032   TglMultiTexParameterIivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10033   TglMultiTexParameterIuivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10034   TglGetMultiTexParameterIivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10035   TglGetMultiTexParameterIuivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10036   TglProgramUniform1fEXT = procedure(program_: GLuint; location: GLint; v0: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10037   TglProgramUniform2fEXT = procedure(program_: GLuint; location: GLint; v0: GLfloat; v1: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10038   TglProgramUniform3fEXT = procedure(program_: GLuint; location: GLint; v0: GLfloat; v1: GLfloat; v2: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10039   TglProgramUniform4fEXT = procedure(program_: GLuint; location: GLint; v0: GLfloat; v1: GLfloat; v2: GLfloat; v3: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10040   TglProgramUniform1iEXT = procedure(program_: GLuint; location: GLint; v0: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10041   TglProgramUniform2iEXT = procedure(program_: GLuint; location: GLint; v0: GLint; v1: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10042   TglProgramUniform3iEXT = procedure(program_: GLuint; location: GLint; v0: GLint; v1: GLint; v2: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10043   TglProgramUniform4iEXT = procedure(program_: GLuint; location: GLint; v0: GLint; v1: GLint; v2: GLint; v3: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10044   TglProgramUniform1fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10045   TglProgramUniform2fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10046   TglProgramUniform3fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10047   TglProgramUniform4fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10048   TglProgramUniform1ivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10049   TglProgramUniform2ivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10050   TglProgramUniform3ivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10051   TglProgramUniform4ivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10052   TglProgramUniformMatrix2fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10053   TglProgramUniformMatrix3fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10054   TglProgramUniformMatrix4fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10055   TglProgramUniformMatrix2x3fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10056   TglProgramUniformMatrix3x2fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10057   TglProgramUniformMatrix2x4fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10058   TglProgramUniformMatrix4x2fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10059   TglProgramUniformMatrix3x4fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10060   TglProgramUniformMatrix4x3fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10061   TglProgramUniform1uiEXT = procedure(program_: GLuint; location: GLint; v0: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10062   TglProgramUniform2uiEXT = procedure(program_: GLuint; location: GLint; v0: GLuint; v1: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10063   TglProgramUniform3uiEXT = procedure(program_: GLuint; location: GLint; v0: GLuint; v1: GLuint; v2: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10064   TglProgramUniform4uiEXT = procedure(program_: GLuint; location: GLint; v0: GLuint; v1: GLuint; v2: GLuint; v3: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10065   TglProgramUniform1uivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10066   TglProgramUniform2uivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10067   TglProgramUniform3uivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10068   TglProgramUniform4uivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10069   TglNamedBufferDataEXT = procedure(buffer: GLuint; size: GLsizei; const data: PGLvoid; usage: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10070   TglNamedBufferSubDataEXT = procedure(buffer: GLuint; offset: GLintptr; size: GLsizeiptr; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10071   TglMapNamedBufferEXT = function(buffer: GLuint; access: GLenum): PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10072   TglUnmapNamedBufferEXT = function(buffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10073   TglMapNamedBufferRangeEXT = function(buffer: GLuint; offset: GLintptr; length: GLsizeiptr; access: GLbitfield): PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10074   TglFlushMappedNamedBufferRangeEXT = procedure(buffer: GLuint; offset: GLintptr; length: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10075   TglNamedCopyBufferSubDataEXT = procedure(readBuffer: GLuint; writeBuffer: GLuint; readOffset: GLintptr; writeOffset: GLintptr; size: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10076   TglGetNamedBufferParameterivEXT = procedure(buffer: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10077   TglGetNamedBufferPointervEXT = procedure(buffer: GLuint; pname: GLenum; params: PPGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10078   TglGetNamedBufferSubDataEXT = procedure(buffer: GLuint; offset: GLintptr; size: GLsizeiptr; data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10079   TglTextureBufferEXT = procedure(texture: GLuint; target: GLenum; internalformat: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10080   TglMultiTexBufferEXT = procedure(texunit: GLenum; target: GLenum; interformat: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10081   TglNamedRenderbufferStorageEXT = procedure(renderbuffer: GLuint; interformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10082   TglGetNamedRenderbufferParameterivEXT = procedure(renderbuffer: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10083   TglCheckNamedFramebufferStatusEXT = function(framebuffer: GLuint; target: GLenum): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10084   TglNamedFramebufferTexture1DEXT = procedure(framebuffer: GLuint; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10085   TglNamedFramebufferTexture2DEXT = procedure(framebuffer: GLuint; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10086   TglNamedFramebufferTexture3DEXT = procedure(framebuffer: GLuint; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint; zoffset: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10087   TglNamedFramebufferRenderbufferEXT = procedure(framebuffer: GLuint; attachment: GLenum; renderbuffertarget: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10088   TglGetNamedFramebufferAttachmentParameterivEXT = procedure(framebuffer: GLuint; attachment: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10089   TglGenerateTextureMipmapEXT = procedure(texture: GLuint; target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10090   TglGenerateMultiTexMipmapEXT = procedure(texunit: GLenum; target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10091   TglFramebufferDrawBufferEXT = procedure(framebuffer: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10092   TglFramebufferDrawBuffersEXT = procedure(framebuffer: GLuint; n: GLsizei; const bufs: PGLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10093   TglFramebufferReadBufferEXT = procedure(framebuffer: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10094   TglGetFramebufferParameterivEXT = procedure(framebuffer: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10095   TglNamedRenderbufferStorageMultisampleEXT = procedure(renderbuffer: GLuint; samples: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10096   TglNamedRenderbufferStorageMultisampleCoverageEXT = procedure(renderbuffer: GLuint; coverageSamples: GLsizei; colorSamples: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10097   TglNamedFramebufferTextureEXT = procedure(framebuffer: GLuint; attachment: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10098   TglNamedFramebufferTextureLayerEXT = procedure(framebuffer: GLuint; attachment: GLenum; texture: GLuint; level: GLint; layer: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10099   TglNamedFramebufferTextureFaceEXT = procedure(framebuffer: GLuint; attachment: GLenum; texture: GLuint; level: GLint; face: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10100   TglTextureRenderbufferEXT = procedure(texture: GLuint; target: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10101   TglMultiTexRenderbufferEXT = procedure(texunit: GLenum; target: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10102   TglProgramUniform1dEXT = procedure(program_: GLuint; location: GLint; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10103   TglProgramUniform2dEXT = procedure(program_: GLuint; location: GLint; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10104   TglProgramUniform3dEXT = procedure(program_: GLuint; location: GLint; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10105   TglProgramUniform4dEXT = procedure(program_: GLuint; location: GLint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10106   TglProgramUniform1dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10107   TglProgramUniform2dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10108   TglProgramUniform3dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10109   TglProgramUniform4dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10110   TglProgramUniformMatrix2dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10111   TglProgramUniformMatrix3dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10112   TglProgramUniformMatrix4dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10113   TglProgramUniformMatrix2x3dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10114   TglProgramUniformMatrix2x4dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10115   TglProgramUniformMatrix3x2dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10116   TglProgramUniformMatrix3x4dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10117   TglProgramUniformMatrix4x2dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10118   TglProgramUniformMatrix4x3dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10119
10120   // GL_EXT_separate_shader_objects
10121   TglUseShaderProgramEXT = procedure(_type: GLenum; _program: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10122   TglActiveProgramEXT = procedure(_program: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10123   TglCreateShaderProgramEXT = function(_type: GLenum; const _string: PGLchar): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10124
10125   // GL_EXT_shader_image_load_store
10126   TglBindImageTextureEXT = procedure(index: GLuint; texture: GLuint; level: GLint; layered: GLboolean; layer: GLint; access: GLenum; format: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10127   TglMemoryBarrierEXT = procedure(barriers: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10128
10129   // GL_EXT_vertex_attrib_64bit
10130   TglVertexAttribL1dEXT = procedure(index: GLuint; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10131   TglVertexAttribL2dEXT = procedure(index: GLuint; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10132   TglVertexAttribL3dEXT = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10133   TglVertexAttribL4dEXT = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10134   TglVertexAttribL1dvEXT = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10135   TglVertexAttribL2dvEXT = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10136   TglVertexAttribL3dvEXT = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10137   TglVertexAttribL4dvEXT = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10138   TglVertexAttribLPointerEXT = procedure(index: GLuint; size: GLint; type_: GLenum; stride: GLsizei; const pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10139   TglGetVertexAttribLdvEXT = procedure(index: GLuint; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10140   TglVertexArrayVertexAttribLOffsetEXT = procedure(vaobj: GLuint; buffer: GLuint; index: GLuint; size: GLint; type_: GLenum; stride: GLsizei; offset: GLintptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10141
10142   // GL_IBM_multimode_draw_arrays
10143   TglMultiModeDrawArraysIBM = procedure(mode: GLenum; const first: PGLint; const count: PGLsizei; primcount: GLsizei; modestride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10144   TglMultiModeDrawElementsIBM = procedure(const mode: PGLenum; const count: PGLsizei; _type: GLenum; const indices: PGLvoid; primcount: GLsizei; modestride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10145
10146   // GL_IBM_vertex_array_lists
10147   TglColorPointerListIBM = procedure(size: GLint; _type: GLenum; stride: GLint; const _pointer: PGLvoid; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10148   TglSecondaryColorPointerListIBM = procedure(size: GLint; _type: GLenum; stride: GLint; const _pointer: PGLvoid; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10149   TglEdgeFlagPointerListIBM = procedure(stride: GLint; const _pointer: PGLboolean; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10150   TglFogCoordPointerListIBM = procedure(_type: GLenum; stride: GLint; const _pointer: PGLvoid; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10151   TglIndexPointerListIBM = procedure(_type: GLenum; stride: GLint; const _pointer: PGLvoid; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10152   TglNormalPointerListIBM = procedure(_type: GLenum; stride: GLint; const _pointer: PGLvoid; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10153   TglTexCoordPointerListIBM = procedure(size: GLint; _type: GLenum; stride: GLint; const _pointer: PGLvoid; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10154   TglVertexPointerListIBM = procedure(size: GLint; _type: GLenum; stride: GLint; const _pointer: PGLvoid; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10155
10156   // GL_INGR_blend_func_separate
10157   TglBlendFuncSeparateINGR = procedure(sfactorRGB: GLenum; dfactorRGB: GLenum; sfactorAlpha: GLenum; dfactorAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10158
10159   // GL_INTEL_parallel_arrays
10160   TglVertexPointervINTEL = procedure(size: GLint; _type: GLenum; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10161   TglNormalPointervINTEL = procedure(_type: GLenum; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10162   TglColorPointervINTEL = procedure(size: GLint; _type: GLenum; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10163   TglTexCoordPointervINTEL = procedure(size: GLint; _type: GLenum; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10164
10165   // GL_MESA_resize_buffers
10166   TglResizeBuffersMESA = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10167
10168   // GL_MESA_window_pos
10169   TglWindowPos2dMESA = procedure(x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10170   TglWindowPos2dvMESA = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10171   TglWindowPos2fMESA = procedure(x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10172   TglWindowPos2fvMESA = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10173   TglWindowPos2iMESA = procedure(x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10174   TglWindowPos2ivMESA = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10175   TglWindowPos2sMESA = procedure(x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10176   TglWindowPos2svMESA = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10177   TglWindowPos3dMESA = procedure(x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10178   TglWindowPos3dvMESA = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10179   TglWindowPos3fMESA = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10180   TglWindowPos3fvMESA = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10181   TglWindowPos3iMESA = procedure(x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10182   TglWindowPos3ivMESA = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10183   TglWindowPos3sMESA = procedure(x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10184   TglWindowPos3svMESA = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10185   TglWindowPos4dMESA = procedure(x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10186   TglWindowPos4dvMESA = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10187   TglWindowPos4fMESA = procedure(x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10188   TglWindowPos4fvMESA = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10189   TglWindowPos4iMESA = procedure(x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10190   TglWindowPos4ivMESA = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10191   TglWindowPos4sMESA = procedure(x: GLshort; y: GLshort; z: GLshort; w: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10192   TglWindowPos4svMESA = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10193
10194   // GL_NV_evaluators
10195   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}
10196   TglMapParameterivNV = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10197   TglMapParameterfvNV = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10198   TglGetMapControlPointsNV = procedure(target: GLenum; index: GLuint; _type: GLenum; ustride: GLsizei; vstride: GLsizei; _packed: GLboolean; points: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10199   TglGetMapParameterivNV = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10200   TglGetMapParameterfvNV = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10201   TglGetMapAttribParameterivNV = procedure(target: GLenum; index: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10202   TglGetMapAttribParameterfvNV = procedure(target: GLenum; index: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10203   TglEvalMapsNV = procedure(target: GLenum; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10204
10205   // GL_NV_fence
10206   TglDeleteFencesNV = procedure(n: GLsizei; const fences: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10207   TglGenFencesNV = procedure(n: GLsizei; fences: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10208   TglIsFenceNV = function(fence: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10209   TglTestFenceNV = function(fence: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10210   TglGetFenceivNV = procedure(fence: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10211   TglFinishFenceNV = procedure(fence: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10212   TglSetFenceNV = procedure(fence: GLuint; condition: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10213
10214   // GL_NV_fragment_program
10215   TglProgramNamedParameter4fNV = procedure(id: GLuint; len: GLsizei; const name: PGLubyte; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10216   TglProgramNamedParameter4dNV = procedure(id: GLuint; len: GLsizei; const name: PGLubyte; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10217   TglProgramNamedParameter4fvNV = procedure(id: GLuint; len: GLsizei; const name: PGLubyte; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10218   TglProgramNamedParameter4dvNV = procedure(id: GLuint; len: GLsizei; const name: PGLubyte; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10219   TglGetProgramNamedParameterfvNV = procedure(id: GLuint; len: GLsizei; const name: PGLubyte; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10220   TglGetProgramNamedParameterdvNV = procedure(id: GLuint; len: GLsizei; const name: PGLubyte; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10221
10222   // GL_NV_half_float
10223   TglVertex2hNV = procedure(x: GLhalfNV; y: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10224   TglVertex2hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10225   TglVertex3hNV = procedure(x: GLhalfNV; y: GLhalfNV; z: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10226   TglVertex3hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10227   TglVertex4hNV = procedure(x: GLhalfNV; y: GLhalfNV; z: GLhalfNV; w: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10228   TglVertex4hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10229   TglNormal3hNV = procedure(nx: GLhalfNV; ny: GLhalfNV; nz: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10230   TglNormal3hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10231   TglColor3hNV = procedure(red: GLhalfNV; green: GLhalfNV; blue: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10232   TglColor3hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10233   TglColor4hNV = procedure(red: GLhalfNV; green: GLhalfNV; blue: GLhalfNV; alpha: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10234   TglColor4hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10235   TglTexCoord1hNV = procedure(s: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10236   TglTexCoord1hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10237   TglTexCoord2hNV = procedure(s: GLhalfNV; t: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10238   TglTexCoord2hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10239   TglTexCoord3hNV = procedure(s: GLhalfNV; t: GLhalfNV; r: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10240   TglTexCoord3hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10241   TglTexCoord4hNV = procedure(s: GLhalfNV; t: GLhalfNV; r: GLhalfNV; q: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10242   TglTexCoord4hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10243   TglMultiTexCoord1hNV = procedure(target: GLenum; s: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10244   TglMultiTexCoord1hvNV = procedure(target: GLenum; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10245   TglMultiTexCoord2hNV = procedure(target: GLenum; s: GLhalfNV; t: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10246   TglMultiTexCoord2hvNV = procedure(target: GLenum; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10247   TglMultiTexCoord3hNV = procedure(target: GLenum; s: GLhalfNV; t: GLhalfNV; r: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10248   TglMultiTexCoord3hvNV = procedure(target: GLenum; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10249   TglMultiTexCoord4hNV = procedure(target: GLenum; s: GLhalfNV; t: GLhalfNV; r: GLhalfNV; q: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10250   TglMultiTexCoord4hvNV = procedure(target: GLenum; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10251   TglFogCoordhNV = procedure(fog: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10252   TglFogCoordhvNV = procedure(const fog: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10253   TglSecondaryColor3hNV = procedure(red: GLhalfNV; green: GLhalfNV; blue: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10254   TglSecondaryColor3hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10255   TglVertexWeighthNV = procedure(weight: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10256   TglVertexWeighthvNV = procedure(const weight: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10257   TglVertexAttrib1hNV = procedure(index: GLuint; x: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10258   TglVertexAttrib1hvNV = procedure(index: GLuint; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10259   TglVertexAttrib2hNV = procedure(index: GLuint; x: GLhalfNV; y: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10260   TglVertexAttrib2hvNV = procedure(index: GLuint; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10261   TglVertexAttrib3hNV = procedure(index: GLuint; x: GLhalfNV; y: GLhalfNV; z: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10262   TglVertexAttrib3hvNV = procedure(index: GLuint; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10263   TglVertexAttrib4hNV = procedure(index: GLuint; x: GLhalfNV; y: GLhalfNV; z: GLhalfNV; w: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10264   TglVertexAttrib4hvNV = procedure(index: GLuint; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10265   TglVertexAttribs1hvNV = procedure(index: GLuint; n: GLsizei; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10266   TglVertexAttribs2hvNV = procedure(index: GLuint; n: GLsizei; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10267   TglVertexAttribs3hvNV = procedure(index: GLuint; n: GLsizei; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10268   TglVertexAttribs4hvNV = procedure(index: GLuint; n: GLsizei; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10269
10270   // GL_NV_occlusion_query
10271   TglGenOcclusionQueriesNV = procedure(n: GLsizei; ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10272   TglDeleteOcclusionQueriesNV = procedure(n: GLsizei; const ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10273   TglIsOcclusionQueryNV = function(id: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10274   TglBeginOcclusionQueryNV = procedure(id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10275   TglEndOcclusionQueryNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10276   TglGetOcclusionQueryivNV = procedure(id: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10277   TglGetOcclusionQueryuivNV = procedure(id: GLuint; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10278
10279   // GL_NV_pixel_data_range
10280   TglPixelDataRangeNV = procedure(target: GLenum; length: GLsizei; _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10281   TglFlushPixelDataRangeNV = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10282
10283   // GL_NV_point_sprite
10284   TglPointParameteriNV = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10285   TglPointParameterivNV = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10286
10287   // GL_NV_primitive_restart
10288   TglPrimitiveRestartNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10289   TglPrimitiveRestartIndexNV = procedure(index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10290
10291   // GL_NV_register_combiners
10292   TglCombinerParameterfvNV = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10293   TglCombinerParameterfNV = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10294   TglCombinerParameterivNV = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10295   TglCombinerParameteriNV = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10296   TglCombinerInputNV = procedure(stage: GLenum; portion: GLenum; variable: GLenum; input: GLenum; mapping: GLenum; componentUsage: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10297   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}
10298   TglFinalCombinerInputNV = procedure(variable: GLenum; input: GLenum; mapping: GLenum; componentUsage: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10299   TglGetCombinerInputParameterfvNV = procedure(stage: GLenum; portion: GLenum; variable: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10300   TglGetCombinerInputParameterivNV = procedure(stage: GLenum; portion: GLenum; variable: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10301   TglGetCombinerOutputParameterfvNV = procedure(stage: GLenum; portion: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10302   TglGetCombinerOutputParameterivNV = procedure(stage: GLenum; portion: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10303   TglGetFinalCombinerInputParameterfvNV = procedure(variable: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10304   TglGetFinalCombinerInputParameterivNV = procedure(variable: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10305
10306   // GL_NV_register_combiners2
10307   TglCombinerStageParameterfvNV = procedure(stage: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10308   TglGetCombinerStageParameterfvNV = procedure(stage: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10309
10310   // GL_NV_vertex_array_range
10311   TglFlushVertexArrayRangeNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10312   TglVertexArrayRangeNV = procedure(length: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10313
10314   // GL_NV_vertex_program
10315   TglAreProgramsResidentNV = function(n: GLsizei; const programs: PGLuint; residences: PGLboolean): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10316   TglBindProgramNV = procedure(target: GLenum; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10317   TglDeleteProgramsNV = procedure(n: GLsizei; const programs: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10318   TglExecuteProgramNV = procedure(target: GLenum; id: GLuint; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10319   TglGenProgramsNV = procedure(n: GLsizei; programs: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10320   TglGetProgramParameterdvNV = procedure(target: GLenum; index: GLuint; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10321   TglGetProgramParameterfvNV = procedure(target: GLenum; index: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10322   TglGetProgramivNV = procedure(id: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10323   TglGetProgramStringNV = procedure(id: GLuint; pname: GLenum; _program: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10324   TglGetTrackMatrixivNV = procedure(target: GLenum; address: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10325   TglGetVertexAttribdvNV = procedure(index: GLuint; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10326   TglGetVertexAttribfvNV = procedure(index: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10327   TglGetVertexAttribivNV = procedure(index: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10328   TglGetVertexAttribPointervNV = procedure(index: GLuint; pname: GLenum; _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10329   TglIsProgramNV = function(id: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10330   TglLoadProgramNV = procedure(target: GLenum; id: GLuint; len: GLsizei; const _program: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10331   TglProgramParameter4dNV = procedure(target: GLenum; index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10332   TglProgramParameter4dvNV = procedure(target: GLenum; index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10333   TglProgramParameter4fNV = procedure(target: GLenum; index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10334   TglProgramParameter4fvNV = procedure(target: GLenum; index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10335   TglProgramParameters4dvNV = procedure(target: GLenum; index: GLuint; count: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10336   TglProgramParameters4fvNV = procedure(target: GLenum; index: GLuint; count: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10337   TglRequestResidentProgramsNV = procedure(n: GLsizei; const programs: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10338   TglTrackMatrixNV = procedure(target: GLenum; address: GLuint; matrix: GLenum; transform: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10339   TglVertexAttribPointerNV = procedure(index: GLuint; fsize: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10340   TglVertexAttrib1dNV = procedure(index: GLuint; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10341   TglVertexAttrib1dvNV = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10342   TglVertexAttrib1fNV = procedure(index: GLuint; x: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10343   TglVertexAttrib1fvNV = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10344   TglVertexAttrib1sNV = procedure(index: GLuint; x: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10345   TglVertexAttrib1svNV = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10346   TglVertexAttrib2dNV = procedure(index: GLuint; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10347   TglVertexAttrib2dvNV = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10348   TglVertexAttrib2fNV = procedure(index: GLuint; x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10349   TglVertexAttrib2fvNV = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10350   TglVertexAttrib2sNV = procedure(index: GLuint; x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10351   TglVertexAttrib2svNV = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10352   TglVertexAttrib3dNV = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10353   TglVertexAttrib3dvNV = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10354   TglVertexAttrib3fNV = procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10355   TglVertexAttrib3fvNV = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10356   TglVertexAttrib3sNV = procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10357   TglVertexAttrib3svNV = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10358   TglVertexAttrib4dNV = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10359   TglVertexAttrib4dvNV = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10360   TglVertexAttrib4fNV = procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10361   TglVertexAttrib4fvNV = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10362   TglVertexAttrib4sNV = procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort; w: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10363   TglVertexAttrib4svNV = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10364   TglVertexAttrib4ubNV = procedure(index: GLuint; x: GLubyte; y: GLubyte; z: GLubyte; w: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10365   TglVertexAttrib4ubvNV = procedure(index: GLuint; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10366   TglVertexAttribs1dvNV = procedure(index: GLuint; count: GLsizei; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10367   TglVertexAttribs1fvNV = procedure(index: GLuint; count: GLsizei; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10368   TglVertexAttribs1svNV = procedure(index: GLuint; count: GLsizei; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10369   TglVertexAttribs2dvNV = procedure(index: GLuint; count: GLsizei; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10370   TglVertexAttribs2fvNV = procedure(index: GLuint; count: GLsizei; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10371   TglVertexAttribs2svNV = procedure(index: GLuint; count: GLsizei; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10372   TglVertexAttribs3dvNV = procedure(index: GLuint; count: GLsizei; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10373   TglVertexAttribs3fvNV = procedure(index: GLuint; count: GLsizei; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10374   TglVertexAttribs3svNV = procedure(index: GLuint; count: GLsizei; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10375   TglVertexAttribs4dvNV = procedure(index: GLuint; count: GLsizei; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10376   TglVertexAttribs4fvNV = procedure(index: GLuint; count: GLsizei; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10377   TglVertexAttribs4svNV = procedure(index: GLuint; count: GLsizei; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10378   TglVertexAttribs4ubvNV = procedure(index: GLuint; count: GLsizei; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10379
10380   // GL_NV_depth_buffer_float
10381   TglDepthRangedNV = procedure(n: GLdouble; f: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10382   TglClearDepthdNV = procedure(d: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10383   TglDepthBoundsdNV = procedure(zmin: GLdouble; zmax: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10384
10385   // GL_NV_framebuffer_multisample_coverage
10386   TglRenderbufferStorageMultsampleCoverageNV = procedure(target: GLenum; coverageSamples: GLsizei; colorSamples: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10387
10388   // GL_NV_geometry_program4
10389   TglProgramVertexLimitNV = procedure(target: GLenum; limit: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10390
10391   // GL_NV_gpu_program4
10392   TglProgramLocalParameterI4iNV = procedure(target: GLenum; index: GLuint; x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10393   TglProgramLocalParameterI4ivNV = procedure(target: GLenum; index: GLuint; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10394   TglProgramLocalParametersI4ivNV = procedure(target: GLenum; index: GLuint; count: GLsizei; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10395   TglProgramLocalParameterI4uiNV = procedure(target: GLenum; index: GLuint; x: GLuint; y: GLuint; z: GLuint; w: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10396   TglProgramLocalParameterI4uivNV = procedure(target: GLenum; index: GLuint; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10397   TglProgramLocalParametersI4uivNV = procedure(target: GLenum; index: GLuint; count: GLsizei; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10398   TglProgramEnvParameterI4iNV = procedure(target: GLenum; index: GLuint; x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10399   TglProgramEnvParameterI4ivNV = procedure(target: GLenum; index: GLuint; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10400   TglProgramEnvParametersI4ivNV = procedure(target: GLenum; index: GLuint; count: GLsizei; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10401   TglProgramEnvParameterI4uiNV = procedure(target: GLenum; index: GLuint; x: GLuint; y: GLuint; z: GLuint; w: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10402   TglProgramEnvParameterI4uivNV = procedure(target: GLenum; index: GLuint; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10403   TglProgramEnvParametersI4uivNV = procedure(target: GLenum; index: GLuint; count: GLsizei; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10404   TglGetProgramLocalParameterIivNV = procedure(target: GLenum; index: GLuint; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10405   TglGetProgramLocalParameterIuivNV = procedure(target: GLenum; index: GLuint; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10406   TglGetProgramEnvParameterIivNV = procedure(target: GLenum; index: GLuint; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10407   TglGetProgramEnvParameterIuivNV = procedure(target: GLenum; index: GLuint; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10408
10409   // GL_NV_parameter_buffer_object
10410   TglProgramBufferParametersfvNV = procedure(target: GLenum; buffer: GLuint; index: GLuint; count: GLsizei; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10411   TglProgramBufferParametersIivNV = procedure(target: GLenum; buffer: GLuint; index: GLuint; count: GLsizei; const params: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10412   TglProgramBufferParametersIuivNV = procedure(target: GLenum; buffer: GLuint; index: GLuint; count: GLuint; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10413
10414   // GL_NV_transform_feedback
10415   TglBeginTransformFeedbackNV = procedure(primitiveMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10416   TglEndTransformFeedbackNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10417   TglTransformFeedbackAttribsNV = procedure(count: GLsizei; const attribs: GLint; bufferMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10418   TglBindBufferRangeNV = procedure(target: GLenum; index: GLuint; buffer: GLuint; offset: GLintptr; size: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10419   TglBindBufferOffsetNV = procedure(target: GLenum; index: GLuint; buffer: GLuint; offset: GLintptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10420   TglBindBufferBaseNV = procedure(target: GLenum; index: GLuint; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10421   TglTransformFeedbackVaryingsNV = procedure(program_: GLuint; count: GLsizei; const locations: PGLint; bufferMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10422   TglActiveVaryingNV = procedure(program_: GLuint; const name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10423   TglGetVaryingLocationNV = function(program_: GLuint; const name: PGLchar): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10424   TglGetActiveVaryingNV = procedure(program_: GLuint; index: GLuint; bufSize: GLsizei; length: PGLsizei; size: PGLsizei; _type: PGLenum; name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10425   TglGetTransformFeedbackVaryingNV = procedure(program_: GLuint; index: GLuint; location: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10426   TglTransformFeedbackStreamAttribsNV = procedure(count: GLsizei; const attribs: PGLint; nbuffers: GLsizei; const bufstreams: PGLint; bufferMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10427
10428   // GL_NV_conditional_render
10429   TglBeginConditionalRenderNV = procedure(id: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10430   TglEndConditionalRenderNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10431
10432   // GL_NV_present_video
10433   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}
10434   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}
10435   TglGetVideoivNV = procedure(video_slot: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10436   TglGetVideouivNV = procedure(video_slot: GLuint; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10437   TglGetVideoi64vNV = procedure(video_slot: GLuint; pname: GLenum; params: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10438   TglGetVideoui64vNV = procedure(video_slot: GLuint; pname: GLenum; params: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10439 //  TglVideoParameterivNV = procedure(video_slot: GLuint; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10440
10441   // GL_NV_explicit_multisample
10442   TglGetMultisamplefvNV = procedure (pname: GLenum; index: GLuint; val: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10443   TglSampleMaskIndexedNV = procedure (index: GLuint; mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10444   TglTexRenderbufferNV = procedure (target: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10445
10446   // GL_NV_transform_feedback2
10447   TglBindTransformFeedbackNV = procedure(target: GLenum; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10448   TglDeleteTransformFeedbacksNV = procedure(n: GLsizei; ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10449   TglGenTransformFeedbacksNV = procedure(n: GLsizei; ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10450   TglIsTransformFeedbackNV = function (id: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10451   TglPauseTransformFeedbackNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10452   TglResumeTransformFeedbackNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10453   TglDrawTransformFeedbackNV = procedure(mode: GLenum; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10454
10455   // GL_NV_video_capture
10456   TglBeginVideoCaptureNV = procedure(video_capture_slot: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10457   TglBindVideoCaptureStreamBufferNV = procedure(video_capture_slot: GLuint; stream: GLuint; frame_region: GLenum; offset: GLintptrARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10458   TglBindVideoCaptureStreamTextureNV = procedure(video_capture_slot: GLuint; stream: GLuint; frame_region: GLenum; target: GLenum; texture: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10459   TglEndVideoCaptureNV = procedure(video_capture_slot: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10460   TglGetVideoCaptureivNV = procedure(video_capture_slot: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10461   TglGetVideoCaptureStreamivNV = procedure(video_capture_slot: GLuint; stream: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10462   TglGetVideoCaptureStreamfvNV = procedure(video_capture_slot: GLuint; stream: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10463   TglGetVideoCaptureStreamdvNV = procedure(video_capture_slot: GLuint; stream: GLuint; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10464   TglVideoCaptureNV = function(video_capture_slot: GLuint; sequence_num: PGLuint; capture_time: PGLuint64EXT): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10465   TglVideoCaptureStreamParameterivNV = procedure(video_capture_slot: GLuint; stream: GLuint; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10466   TglVideoCaptureStreamParameterfvNV = procedure(video_capture_slot: GLuint; stream: GLuint; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10467   TglVideoCaptureStreamParameterdvNV = procedure(video_capture_slot: GLuint; stream: GLuint; pname: GLenum; const params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10468
10469   // GL_NV_copy_image
10470   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}
10471
10472   // GL_NV_shader_buffer_load
10473   TglMakeBufferResidentNV = procedure(target: GLenum; access: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10474   TglMakeBufferNonResidentNV = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10475   TglIsBufferResidentNV = function(target: GLenum): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10476   TglMakeNamedBufferResidentNV = procedure(buffer: GLuint; access: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10477   TglMakeNamedBufferNonResidentNV = procedure(buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10478   TglIsNamedBufferResidentNV = function(buffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10479   TglGetBufferParameterui64vNV = procedure(target: GLenum; pname: GLenum; params: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10480   TglGetNamedBufferParameterui64vNV = procedure(buffer: GLuint; pname: GLenum; params: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10481   TglGetIntegerui64vNV = procedure(value: GLenum; result: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10482   TglUniformui64NV = procedure(location: GLint; value: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10483   TglUniformui64vNV = procedure(location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10484   TglGetUniformui64vNV = procedure(_program: GLuint; location: GLint; params: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10485   TglProgramUniformui64NV = procedure(_program: GLuint; location: GLint; value: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10486   TglProgramUniformui64vNV = procedure(_program: GLuint; location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10487
10488   // GL_NV_vertex_buffer_unified_memory
10489   TglBufferAddressRangeNV = procedure(pname: GLenum; index: GLuint; adress: GLuint64EXT; length: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10490   TglVertexFormatNV = procedure(size: GLint; _type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10491   TglNormalFormatNV = procedure(_type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10492   TglColorFormatNV = procedure(size: GLint; _type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10493   TglIndexFormatNV = procedure(_type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10494   TglTexCoordFormatNV = procedure(size: GLint; _type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10495   TglEdgeFlagFormatNV = procedure(stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10496   TglSecondaryColorFormatNV = procedure(size: GLint; _type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10497   TglFogCoordFormatNV = procedure(_type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10498   TglVertexAttribFormatNV = procedure(index: GLuint; size: GLint; _type: GLenum; normalized: GLboolean; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10499   TglVertexAttribIFormatNV = procedure(index: GLuint; size: GLint; _type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10500   TglGetIntegerui64i_vNV = procedure(value: GLenum; index: GLuint; Result: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10501
10502   // GL_NV_gpu_program5
10503   TglProgramSubroutineParametersuivNV = procedure(target: GLenum; count: GLsizei; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10504   TglGetProgramSubroutineParameteruivNV = procedure(target: GLenum; index: GLuint; param: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10505
10506   // GL_NV_gpu_shader5
10507   TglUniform1i64NV = procedure(location: GLint; x: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10508   TglUniform2i64NV = procedure(location: GLint; x: GLint64EXT; y: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10509   TglUniform3i64NV = procedure(location: GLint; x: GLint64EXT; y: GLint64EXT; z: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10510   TglUniform4i64NV = procedure(location: GLint; x: GLint64EXT; y: GLint64EXT; z: GLint64EXT; w: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10511   TglUniform1i64vNV = procedure(location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10512   TglUniform2i64vNV = procedure(location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10513   TglUniform3i64vNV = procedure(location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10514   TglUniform4i64vNV = procedure(location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10515   TglUniform1ui64NV = procedure(location: GLint; x: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10516   TglUniform2ui64NV = procedure(location: GLint; x: GLuint64EXT; y: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10517   TglUniform3ui64NV = procedure(location: GLint; x: GLuint64EXT; y: GLuint64EXT; z: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10518   TglUniform4ui64NV = procedure(location: GLint; x: GLuint64EXT; y: GLuint64EXT; z: GLuint64EXT; w: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10519   TglUniform1ui64vNV = procedure(location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10520   TglUniform2ui64vNV = procedure(location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10521   TglUniform3ui64vNV = procedure(location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10522   TglUniform4ui64vNV = procedure(location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10523   TglGetUniformi64vNV = procedure(program_: GLuint; location: GLint; params: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10524   TglProgramUniform1i64NV = procedure(program_: GLuint; location: GLint; x: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10525   TglProgramUniform2i64NV = procedure(program_: GLuint; location: GLint; x: GLint64EXT; y: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10526   TglProgramUniform3i64NV = procedure(program_: GLuint; location: GLint; x: GLint64EXT; y: GLint64EXT; z: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10527   TglProgramUniform4i64NV = procedure(program_: GLuint; location: GLint; x: GLint64EXT; y: GLint64EXT; z: GLint64EXT; w: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10528   TglProgramUniform1i64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10529   TglProgramUniform2i64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10530   TglProgramUniform3i64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10531   TglProgramUniform4i64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10532   TglProgramUniform1ui64NV = procedure(program_: GLuint; location: GLint; x: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10533   TglProgramUniform2ui64NV = procedure(program_: GLuint; location: GLint; x: GLuint64EXT; y: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10534   TglProgramUniform3ui64NV = procedure(program_: GLuint; location: GLint; x: GLuint64EXT; y: GLuint64EXT; z: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10535   TglProgramUniform4ui64NV = procedure(program_: GLuint; location: GLint; x: GLuint64EXT; y: GLuint64EXT; z: GLuint64EXT; w: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10536   TglProgramUniform1ui64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10537   TglProgramUniform2ui64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10538   TglProgramUniform3ui64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10539   TglProgramUniform4ui64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10540
10541   // GL_NV_vertex_attrib_integer_64bit
10542   TglVertexAttribL1i64NV = procedure(index: GLuint; x: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10543   TglVertexAttribL2i64NV = procedure(index: GLuint; x: GLint64EXT; y: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10544   TglVertexAttribL3i64NV = procedure(index: GLuint; x: GLint64EXT; y: GLint64EXT; z: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10545   TglVertexAttribL4i64NV = procedure(index: GLuint; x: GLint64EXT; y: GLint64EXT; z: GLint64EXT; w: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10546   TglVertexAttribL1i64vNV = procedure(index: GLuint; const v: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10547   TglVertexAttribL2i64vNV = procedure(index: GLuint; const v: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10548   TglVertexAttribL3i64vNV = procedure(index: GLuint; const v: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10549   TglVertexAttribL4i64vNV = procedure(index: GLuint; const v: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10550   TglVertexAttribL1ui64NV = procedure(index: GLuint; x: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10551   TglVertexAttribL2ui64NV = procedure(index: GLuint; x: GLuint64EXT; y: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10552   TglVertexAttribL3ui64NV = procedure(index: GLuint; x: GLuint64EXT; y: GLuint64EXT; z: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10553   TglVertexAttribL4ui64NV = procedure(index: GLuint; x: GLuint64EXT; y: GLuint64EXT; z: GLuint64EXT; w: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10554   TglVertexAttribL1ui64vNV = procedure(index: GLuint; const v: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10555   TglVertexAttribL2ui64vNV = procedure(index: GLuint; const v: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10556   TglVertexAttribL3ui64vNV = procedure(index: GLuint; const v: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10557   TglVertexAttribL4ui64vNV = procedure(index: GLuint; const v: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10558   TglGetVertexAttribLi64vNV = procedure(index: GLuint; pname: GLenum; params: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10559   TglGetVertexAttribLui64vNV = procedure(index: GLuint; pname: GLenum; params: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10560   TglVertexAttribLFormatNV = procedure(index: GLuint; size: GLint; type_: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10561
10562   // GL_NV_vdpau_interop
10563   TglVDPAUInitNV = procedure(const vdpDevice: PGLvoid; const getProcAddress: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10564   TglVDPAUFiniNV = procedure; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10565   TglVDPAURegisterVideoSurfaceNV = function(vdpSurface: PGLvoid; target: GLenum; numTextureNames: GLsizei; const textureNames: PGLuint): GLvdpauSurfaceNV; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10566   TglVDPAURegisterOutputSurfaceNV = function(vdpSurface: PGLvoid; target: GLenum; numTextureNames: GLsizei; const textureNames: PGLuint): GLvdpauSurfaceNV; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10567   TglVDPAUIsSurfaceNV = procedure(surface: GLvdpauSurfaceNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10568   TglVDPAUUnregisterSurfaceNV = procedure(surface: GLvdpauSurfaceNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10569   TglVDPAUGetSurfaceivNV = procedure(surface: GLvdpauSurfaceNV; pname: GLenum; bufSize: GLsizei; length: PGLsizei; values: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10570   TglVDPAUSurfaceAccessNV = procedure(surface: GLvdpauSurfaceNV; access: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10571   TglVDPAUMapSurfacesNV = procedure(numSurfaces: GLsizei; const surfaces: PGLvdpauSurfaceNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10572   TglVDPAUUnmapSurfacesNV = procedure(numSurface: GLsizei; const surfaces: PGLvdpauSurfaceNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10573
10574   // GL_NV_texture_barrier
10575   TglTextureBarrierNV = procedure; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10576
10577   // (4.3)
10578         // GL_NV_path_rendering
10579   TglGenPathsNV = function(range : GLsizei) : GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10580   TglDeletePathsNV = procedure(path : GLUInt; range : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10581   TglIsPathNV = function(path : GLUInt) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10582   TglPathCommandsNV = procedure(path : GLUInt; numCommands : GLsizei; const commands : PGLubyte; numCoords : GLsizei; coordType : GLenum; const coords : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10583   TglPathCoordsNV = procedure(path : GLUInt; numCoords : GLSizei; coordType : GLenum; const coords : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10584   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}
10585   TglPathSubCoordsNV = procedure(path : GLUInt; coordStart : GLsizei; numCoords : GLSizei; coordType : GLenum; const coords : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10586   TglPathStringNV = procedure(path : GLUInt; format : GLenum; length : GLsizei; const pathString : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10587   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}
10588   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}
10589   TglWeightPathsNV = procedure(resultPath : GLUInt; numPaths : GLSizei; const paths : PGLuint; const weights : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10590   TglCopyPathNV = procedure(resultPath : GLUInt; srcPath : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10591   TglInterpolatePathsNV = procedure(resultPath : GLUInt; pathA : GLUInt; pathB : GLUInt; weight : GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10592   TglTransformPathNV = procedure(resultPath : GLUInt; srcPath : GLuint; transformType : GLenum; const transformValues : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10593   TglPathParameterivNV = procedure(path : GLUInt; pname : GLEnum; const value : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10594   TglPathParameteriNV = procedure(path : GLUInt; pname : GLEnum; value : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10595   TglPathParameterfvNV = procedure(path : GLUInt; pname : GLEnum; const value : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10596   TglPathParameterfNV = procedure(path : GLUInt; pname : GLEnum; value : GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10597   TglPathDashArrayNV = procedure(path : GLUInt; dashCount : GLsizei; const dashArray : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10598   TglPathStencilFuncNV = procedure(func : GLenum; ref : GLint; mask : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10599   TglPathStencilDepthOffsetNV = procedure(factor : GLfloat; units : GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10600   TglStencilFillPathNV = procedure(path : GLUInt; fillMode : GLenum; mask : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10601   TglStencilStrokePathNV = procedure(path : GLUInt; reference : GLint; mask : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10602   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}
10603   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}
10604   TglPathCoverDepthFuncNV = procedure(func : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10605   TglPathColorGenNV = procedure(color : GLenum; genMode : GLenum; colorFormat : GLenum; const coeffs : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10606   TglPathTexGenNV = procedure(texCoordSet : GLenum; genMode : GLenum; components : GLint; const coeffs : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10607   TglPathFogGenNV = procedure(genMode : GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10608   TglCoverFillPathNV = procedure(path : GLUInt; coverMode : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10609   TglCoverStrokePathNV = procedure(path : GLUInt; coverMode : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10610   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}
10611   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}
10612   TglGetPathParameterivNV = procedure(path : GLUInt; pname : GLEnum; value : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10613   TglGetPathParameterfvNV = procedure(path : GLUInt; pname : GLEnum; value : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10614   TglGetPathCommandsNV = procedure(path : GLUInt; commands : PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10615   TglGetPathCoordsNV = procedure(path : GLUInt; coords : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10616   TglGetPathDashArrayNV = procedure(path : GLUInt; dashArray : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10617   TglGetPathMetricsNV = procedure(metricQueryMask : GLbitfield; numPaths : GLSizei; pathNameType : GLenum; const paths : PGLvoid; pathBase : GLUInt; stride : GLsizei; metrics : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10618   TglGetPathMetricRangeNV = procedure(metricQueryMask : GLbitfield; firstPathName : GLuint; numPaths : GLSizei; stride : GLsizei; metrics : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10619   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}
10620   TglGetPathColorGenivNV = procedure(color : GLenum; pname : GLEnum; value : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10621   TglGetPathColorGenfvNV = procedure(color : GLenum; pname : GLEnum; value : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10622   TglGetPathTexGenivNV = procedure(texCoordSet : GLenum; pname : GLEnum; value : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10623   TglGetPathTexGenfvNV = procedure(texCoordSet : GLenum; pname : GLEnum; value : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10624   TglIsPointInFillPathNV = function(path : GLUInt; mask : GLuint; x : GLfloat; y : GLfloat) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10625   TglIsPointInStrokePathNV = function (path : GLUInt; x : GLfloat; y : GLfloat) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10626   TglGetPathLengthNV = function(path : GLUInt; startSegment : GLsizei; numSegments : GLsizei) : GLfloat; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10627   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}
10628
10629   // GL_AMD_pinned_memory
10630
10631   // GL_AMD_stencil_operation_extended
10632   TglStencilOpValueAMD = procedure(face : GLEnum; value : GLUInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10633
10634   // GL_AMD_vertex_shader_viewport_index
10635
10636   // GL_AMD_vertex_shader_layer
10637
10638   // GL_NV_bindless_texture
10639   TglGetTextureHandleNV = function(texture : GLuint ) : GLuint64; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10640   TglGetTextureSamplerHandleNV = function(texture : GLuint; sampler : GLuint) : GLuint64; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10641   TglMakeTextureHandleResidentNV = procedure(handle : GLUint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10642   TglMakeTextureHandleNonResidentNV = procedure(handle : GLUint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10643   TglGetImageHandleNV = function(texture : GLuint; level : GLint; layered : GLboolean; layer : GLint; format : GLenum) : GLUInt64; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10644   TglMakeImageHandleResidentNV = procedure(handle : GLUint64; access : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10645   TglMakeImageHandleNonResidentNV = procedure(handle : GLUint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10646   TglUniformHandleui64NV = procedure(location : GLint; value : GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10647   TglUniformHandleui64vNV = procedure(location : GLint; cowunt : GLsizei; const value : PGLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10648   TglProgramUniformHandleui64NV = procedure(program_ : GLuint; location : GLint; value : GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10649   TglProgramUniformHandleui64vNV = procedure(program_ : GLuint; location : GLint; count : GLsizei; const values : PGLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10650   TglIsTextureHandleResidentNV = function(handle : GLUint64) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10651   TglIsImageHandleResidentNV = function(handle : GLUint64) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10652
10653   // GL_ARB_bindless_texture
10654
10655   TglGetTextureHandleARB = function (texture : GLuint) : GLUInt64; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10656   TglGetTextureSamplerHandleARB = function (texture : GLuint; sampler : GLuint) : GLUInt64; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10657   TglMakeTextureHandleResidentARB = procedure (handle : GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10658   TglMakeTextureHandleNonResidentARB = procedure (handle : GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10659   TglGetImageHandleARB = function (texture : GLuint; level : GLint; layered : GLboolean; layer : GLint; format : GLenum) : GLuint64; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10660   TglMakeImageHandleResidentARB = procedure (handle : GLuint64; access : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10661   TglMakeImageHandleNonResidentARB = procedure (handle : GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10662   TglUniformHandleui64ARB = procedure (location : GLint; value : GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10663   TglUniformHandleui64vARB = procedure (location : GLint; count : GLsizei; const value : PGLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10664   TglProgramUniformHandleui64ARB = procedure (program_ : GLuint; location : GLint; value : GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10665   TglProgramUniformHandleui64vARB = procedure (program_ : GLuint; location : GLint; count : GLsizei; const values : PGLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10666   TglIsTextureHandleResidentARB = function (handle : GLuint64) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10667   TglIsImageHandleResidentARB = function (handle : GLuint64) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10668   TglVertexAttribL1ui64ARB = procedure (index : GLuint; x : GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10669   TglVertexAttribL1ui64vARB = procedure (index : GLuint; const v : PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10670   TglGetVertexAttribLui64vARB = procedure (index : GLuint; pname : GLenum; params : PGLuint64EXT ); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10671
10672         // GL_NV_shader_atomic_float
10673
10674         // GL_AMD_query_buffer_object
10675
10676   //
10677
10678   // GL_PGI_misc_hints
10679   TglHintPGI = procedure(target: GLenum; mode: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10680
10681   // GL_SGIS_detail_texture
10682   TglDetailTexFuncSGIS = procedure(target: GLenum; n: GLsizei; const points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10683   TglGetDetailTexFuncSGIS = procedure(target: GLenum; points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10684
10685   // GL_SGIS_fog_function
10686   TglFogFuncSGIS = procedure(n: GLsizei; const points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10687   TglGetFogFuncSGIS = procedure(points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10688
10689   // GL_SGIS_multisample
10690   TglSampleMaskSGIS = procedure(value: GLclampf; invert: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10691   TglSamplePatternSGIS = procedure(pattern: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10692
10693   // GL_SGIS_pixel_texture
10694   TglPixelTexGenParameteriSGIS = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10695   TglPixelTexGenParameterivSGIS = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10696   TglPixelTexGenParameterfSGIS = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10697   TglPixelTexGenParameterfvSGIS = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10698   TglGetPixelTexGenParameterivSGIS = procedure(pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10699   TglGetPixelTexGenParameterfvSGIS = procedure(pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10700
10701   // GL_SGIS_point_parameters
10702   TglPointParameterfSGIS = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10703   TglPointParameterfvSGIS = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10704
10705   // GL_SGIS_sharpen_texture
10706   TglSharpenTexFuncSGIS = procedure(target: GLenum; n: GLsizei; const points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10707   TglGetSharpenTexFuncSGIS = procedure(target: GLenum; points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10708
10709   // GL_SGIS_texture4D
10710   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}
10711   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}
10712
10713   // GL_SGIS_texture_color_mask
10714   TglTextureColorMaskSGIS = procedure(red: GLboolean; green: GLboolean; blue: GLboolean; alpha: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10715
10716   // GL_SGIS_texture_filter4
10717   TglGetTexFilterFuncSGIS = procedure(target: GLenum; filter: GLenum; weights: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10718   TglTexFilterFuncSGIS = procedure(target: GLenum; filter: GLenum; n: GLsizei; const weights: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10719
10720   // GL_SGIX_async
10721   TglAsyncMarkerSGIX = procedure(marker: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10722   TglFinishAsyncSGIX = function(markerp: PGLuint): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10723   TglPollAsyncSGIX = function(markerp: PGLuint): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10724   TglGenAsyncMarkersSGIX = function(range: GLsizei): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10725   TglDeleteAsyncMarkersSGIX = procedure(marker: GLuint; range: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10726   TglIsAsyncMarkerSGIX = function(marker: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10727
10728   // GL_SGIX_flush_raster
10729   TglFlushRasterSGIX = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10730
10731   // GL_SGIX_fragment_lighting
10732   TglFragmentColorMaterialSGIX = procedure(face: GLenum; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10733   TglFragmentLightfSGIX = procedure(light: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10734   TglFragmentLightfvSGIX = procedure(light: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10735   TglFragmentLightiSGIX = procedure(light: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10736   TglFragmentLightivSGIX = procedure(light: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10737   TglFragmentLightModelfSGIX = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10738   TglFragmentLightModelfvSGIX = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10739   TglFragmentLightModeliSGIX = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10740   TglFragmentLightModelivSGIX = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10741   TglFragmentMaterialfSGIX = procedure(face: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10742   TglFragmentMaterialfvSGIX = procedure(face: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10743   TglFragmentMaterialiSGIX = procedure(face: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10744   TglFragmentMaterialivSGIX = procedure(face: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10745   TglGetFragmentLightfvSGIX = procedure(light: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10746   TglGetFragmentLightivSGIX = procedure(light: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10747   TglGetFragmentMaterialfvSGIX = procedure(face: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10748   TglGetFragmentMaterialivSGIX = procedure(face: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10749   TglLightEnviSGIX = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10750
10751   // GL_SGIX_framezoom
10752   TglFrameZoomSGIX = procedure(factor: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10753
10754   // GL_SGIX_igloo_interface
10755   TglIglooInterfaceSGIX = procedure(pname: GLenum; const params: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10756
10757   // GL_SGIX_instruments
10758   TglGetInstrumentsSGIX = function(): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10759   TglInstrumentsBufferSGIX = procedure(size: GLsizei; buffer: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10760   TglPollInstrumentsSGIX = function(marker_p: PGLint): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10761   TglReadInstrumentsSGIX = procedure(marker: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10762   TglStartInstrumentsSGIX = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10763   TglStopInstrumentsSGIX = procedure(marker: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10764
10765   // GL_SGIX_list_priority
10766   TglGetListParameterfvSGIX = procedure(list: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10767   TglGetListParameterivSGIX = procedure(list: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10768   TglListParameterfSGIX = procedure(list: GLuint; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10769   TglListParameterfvSGIX = procedure(list: GLuint; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10770   TglListParameteriSGIX = procedure(list: GLuint; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10771   TglListParameterivSGIX = procedure(list: GLuint; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10772
10773   // GL_SGIX_pixel_texture
10774   TglPixelTexGenSGIX = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10775
10776   // GL_SGIX_polynomial_ffd
10777   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}
10778   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}
10779   TglDeformSGIX = procedure(mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10780   TglLoadIdentityDeformationMapSGIX = procedure(mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10781
10782   // GL_SGIX_reference_plane
10783   TglReferencePlaneSGIX = procedure(const equation: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10784
10785   // GL_SGIX_sprite
10786   TglSpriteParameterfSGIX = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10787   TglSpriteParameterfvSGIX = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10788   TglSpriteParameteriSGIX = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10789   TglSpriteParameterivSGIX = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10790
10791   // GL_SGIX_tag_sample_buffer
10792   TglTagSampleBufferSGIX = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10793
10794   // GL_SGI_color_table
10795   TglColorTableSGI = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; format: GLenum; _type: GLenum; const table: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10796   TglColorTableParameterfvSGI = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10797   TglColorTableParameterivSGI = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10798   TglCopyColorTableSGI = procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10799   TglGetColorTableSGI = procedure(target: GLenum; format: GLenum; _type: GLenum; table: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10800   TglGetColorTableParameterfvSGI = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10801   TglGetColorTableParameterivSGI = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10802
10803   // GL_SUNX_constant_data
10804   TglFinishTextureSUNX = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10805
10806   // GL_SUN_global_alpha
10807   TglGlobalAlphaFactorbSUN = procedure(factor: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10808   TglGlobalAlphaFactorsSUN = procedure(factor: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10809   TglGlobalAlphaFactoriSUN = procedure(factor: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10810   TglGlobalAlphaFactorfSUN = procedure(factor: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10811   TglGlobalAlphaFactordSUN = procedure(factor: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10812   TglGlobalAlphaFactorubSUN = procedure(factor: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10813   TglGlobalAlphaFactorusSUN = procedure(factor: GLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10814   TglGlobalAlphaFactoruiSUN = procedure(factor: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10815
10816   // GL_SUN_mesh_array
10817   TglDrawMeshArraysSUN = procedure(mode: GLenum; first: GLint; count: GLsizei; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10818
10819   // GL_SUN_triangle_list
10820   TglReplacementCodeuiSUN = procedure(code: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10821   TglReplacementCodeusSUN = procedure(code: GLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10822   TglReplacementCodeubSUN = procedure(code: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10823   TglReplacementCodeuivSUN = procedure(const code: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10824   TglReplacementCodeusvSUN = procedure(const code: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10825   TglReplacementCodeubvSUN = procedure(const code: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10826   TglReplacementCodePointerSUN = procedure(_type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10827
10828   // GL_SUN_vertex
10829   TglColor4ubVertex2fSUN = procedure(r: GLubyte; g: GLubyte; b: GLubyte; a: GLubyte; x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10830   TglColor4ubVertex2fvSUN = procedure(const c: PGLubyte; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10831   TglColor4ubVertex3fSUN = procedure(r: GLubyte; g: GLubyte; b: GLubyte; a: GLubyte; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10832   TglColor4ubVertex3fvSUN = procedure(const c: PGLubyte; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10833   TglColor3fVertex3fSUN = procedure(r: GLfloat; g: GLfloat; b: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10834   TglColor3fVertex3fvSUN = procedure(const c: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10835   TglNormal3fVertex3fSUN = procedure(nx: GLfloat; ny: GLfloat; nz: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10836   TglNormal3fVertex3fvSUN = procedure(const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10837   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}
10838   TglColor4fNormal3fVertex3fvSUN = procedure(const c: PGLfloat; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10839   TglTexCoord2fVertex3fSUN = procedure(s: GLfloat; t: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10840   TglTexCoord2fVertex3fvSUN = procedure(const tc: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10841   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}
10842   TglTexCoord4fVertex4fvSUN = procedure(const tc: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10843   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}
10844   TglTexCoord2fColor4ubVertex3fvSUN = procedure(const tc: PGLfloat; const c: PGLubyte; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10845   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}
10846   TglTexCoord2fColor3fVertex3fvSUN = procedure(const tc: PGLfloat; const c: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10847   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}
10848   TglTexCoord2fNormal3fVertex3fvSUN = procedure(const tc: PGLfloat; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10849   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}
10850   TglTexCoord2fColor4fNormal3fVertex3fvSUN = procedure(const tc: PGLfloat; const c: PGLfloat; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10851   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}
10852   TglTexCoord4fColor4fNormal3fVertex4fvSUN = procedure(const tc: PGLfloat; const c: PGLfloat; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10853   TglReplacementCodeuiVertex3fSUN = procedure(rc: GLuint; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10854   TglReplacementCodeuiVertex3fvSUN = procedure(const rc: PGLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10855   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}
10856   TglReplacementCodeuiColor4ubVertex3fvSUN = procedure(const rc: PGLuint; const c: PGLubyte; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10857   TglReplacementCodeuiColor3fVertex3fSUN = procedure(rc: GLuint; r: GLfloat; g: GLfloat; b: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10858   TglReplacementCodeuiColor3fVertex3fvSUN = procedure(const rc: PGLuint; const c: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10859   TglReplacementCodeuiNormal3fVertex3fSUN = procedure(rc: GLuint; nx: GLfloat; ny: GLfloat; nz: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10860   TglReplacementCodeuiNormal3fVertex3fvSUN = procedure(const rc: PGLuint; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10861   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}
10862   TglReplacementCodeuiColor4fNormal3fVertex3fvSUN = procedure(const rc: PGLuint; const c: PGLfloat; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10863   TglReplacementCodeuiTexCoord2fVertex3fSUN = procedure(rc: GLuint; s: GLfloat; t: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10864   TglReplacementCodeuiTexCoord2fVertex3fvSUN = procedure(const rc: PGLuint; const tc: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10865   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}
10866   TglReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN = procedure(const rc: PGLuint; const tc: PGLfloat; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10867   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}
10868   TglReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN = procedure(const rc: PGLuint; const tc: PGLfloat; const c: PGLfloat; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10869
10870   // window support functions
10871 {$IFDEF DGL_WIN}
10872   TwglGetProcAddress = function(ProcName: PAnsiChar): Pointer; stdcall;
10873   TwglCopyContext = function(p1: HGLRC; p2: HGLRC; p3: Cardinal): BOOL; stdcall;
10874   TwglCreateContext = function(DC: HDC): HGLRC; stdcall;
10875   TwglCreateLayerContext = function(p1: HDC; p2: Integer): HGLRC; stdcall;
10876   TwglDeleteContext = function(p1: HGLRC): BOOL; stdcall;
10877   TwglDescribeLayerPlane = function(p1: HDC; p2, p3: Integer; p4: Cardinal; p5: PLayerPlaneDescriptor): BOOL; stdcall;
10878   TwglGetCurrentContext = function: HGLRC; stdcall;
10879   TwglGetCurrentDC = function: HDC; stdcall;
10880   TwglGetLayerPaletteEntries = function(p1: HDC; p2, p3, p4: Integer; var pcr): Integer; stdcall;
10881   TwglMakeCurrent = function(DC: HDC; p2: HGLRC): BOOL; stdcall;
10882   TwglRealizeLayerPalette = function(p1: HDC; p2: Integer; p3: BOOL): BOOL; stdcall;
10883   TwglSetLayerPaletteEntries = function(p1: HDC; p2, p3, p4: Integer; var pcr): Integer; stdcall;
10884   TwglShareLists = function(p1, p2: HGLRC): BOOL; stdcall;
10885   TwglSwapLayerBuffers = function(p1: HDC; p2: Cardinal): BOOL; stdcall;
10886   TwglSwapMultipleBuffers = function(p1: UINT; const p2: PWGLSWAP): DWORD; stdcall;
10887   TwglUseFontBitmapsA = function(DC: HDC; p2, p3, p4: DWORD): BOOL; stdcall;
10888   TwglUseFontBitmapsW = function(DC: HDC; p2, p3, p4: DWORD): BOOL; stdcall;
10889   TwglUseFontBitmaps = function(DC: HDC; p2, p3, p4: DWORD): BOOL; stdcall;
10890
10891   TwglUseFontOutlinesA = function(p1: HDC; p2, p3, p4: DWORD; p5, p6: Single; p7: Integer; p8: PGlyphMetricsFloat): BOOL; stdcall;
10892   TwglUseFontOutlinesW = function(p1: HDC; p2, p3, p4: DWORD; p5, p6: Single; p7: Integer; p8: PGlyphMetricsFloat): BOOL; stdcall;
10893   TwglUseFontOutlines = function(p1: HDC; p2, p3, p4: DWORD; p5, p6: Single; p7: Integer; p8: PGlyphMetricsFloat): BOOL; stdcall;
10894
10895
10896   // WGL_ARB_buffer_region
10897   TwglCreateBufferRegionARB = function(hDC: HDC; iLayerPlane: GLint; uType: GLuint): THandle; stdcall;
10898   TwglDeleteBufferRegionARB = procedure(hRegion: THandle); stdcall;
10899   TwglSaveBufferRegionARB = function(hRegion: THandle; x: GLint; y: GLint; width: GLint; height: GLint): Boolean; stdcall;
10900   TwglRestoreBufferRegionARB = function(hRegion: THandle; x: GLint; y: GLint; width: GLint; height: GLint; xSrc: GLint; ySrc: GLint): Boolean; stdcall;
10901
10902   // WGL_ARB_extensions_string
10903   TwglGetExtensionsStringARB = function(hdc: HDC): PAnsiChar; stdcall;
10904
10905   // WGL_ARB_make_current_read
10906   TwglMakeContextCurrentARB = function(hDrawDC: HDC; hReadDC: HDC; hglrc: HGLRC): Boolean; stdcall;
10907   TwglGetCurrentReadDCARB = function(): HDC; stdcall;
10908
10909   // WGL_ARB_pbuffer
10910   TwglCreatePbufferARB = function(hDC: HDC; iPixelFormat: GLint; iWidth: GLint; iHeight: GLint; const piAttribList: PGLint): HPBUFFERARB; stdcall;
10911   TwglGetPbufferDCARB = function(hPbuffer: HPBUFFERARB): HDC; stdcall;
10912   TwglReleasePbufferDCARB = function(hPbuffer: HPBUFFERARB; hDC: HDC): GLint; stdcall;
10913   TwglDestroyPbufferARB = function(hPbuffer: HPBUFFERARB): Boolean; stdcall;
10914   TwglQueryPbufferARB = function(hPbuffer: HPBUFFERARB; iAttribute: GLint; piValue: PGLint): Boolean; stdcall;
10915
10916   // WGL_ARB_pixel_format
10917   TwglGetPixelFormatAttribivARB = function(hdc: HDC; iPixelFormat: GLint; iLayerPlane: GLint; nAttributes: GLuint; const piAttributes: PGLint; piValues: PGLint): Boolean; stdcall;
10918   TwglGetPixelFormatAttribfvARB = function(hdc: HDC; iPixelFormat: GLint; iLayerPlane: GLint; nAttributes: GLuint; const piAttributes: PGLint; pfValues: PGLfloat): Boolean; stdcall;
10919   TwglChoosePixelFormatARB = function(hdc: HDC; const piAttribIList: PGLint; const pfAttribFList: PGLfloat; nMaxFormats: GLuint; piFormats: PGLint; nNumFormats: PGLuint): BOOL; stdcall;
10920
10921   // WGL_ARB_color_buffer_float
10922   TwglClampColorARB = procedure(target: GLenum; clamp: GLenum); stdcall;
10923
10924   // WGL_ARB_render_texture
10925   TwglBindTexImageARB = function(hPbuffer: HPBUFFERARB; iBuffer: GLint): Boolean; stdcall;
10926   TwglReleaseTexImageARB = function(hPbuffer: HPBUFFERARB; iBuffer: GLint): Boolean; stdcall;
10927   TwglSetPbufferAttribARB = function(hPbuffer: HPBUFFERARB; const piAttribList: PGLint): Boolean; stdcall;
10928
10929   // WGL_ARB_create_context
10930   TwglCreateContextAttribsARB = function(hDC: HDC; hShareContext: HGLRC; const attribList: PGLint): HGLRC; stdcall;
10931
10932   // WGL_AMD_gpu_association
10933   TwglGetGPUIDsAMD = function(maxCount: Cardinal; ids: PCardinal): Cardinal; stdcall;
10934   TwglGetGPUInfoAMD = function(id: Cardinal; property_: Integer; dataType: GLenum; size: Cardinal; data: Pointer): Integer; stdcall;
10935   TwglGetContextGPUIDAMD = function(hglrc: HGLRC): Cardinal; stdcall;
10936   TwglCreateAssociatedContextAMD = function(id: Cardinal): HGLRC; stdcall;
10937   TwglCreateAssociatedContextAttribsAMD = function(id: Cardinal; hShareContext: HGLRC; const attribList: PInteger): HGLRC; stdcall;
10938   TwglDeleteAssociatedContextAMD = function(hglrc: HGLRC): Boolean; stdcall;
10939   TwglMakeAssociatedContextCurrentAMD = function(hglrc: HGLRC): Boolean; stdcall;
10940   TwglGetCurrentAssociatedContextAMD = function(): HGLRC; stdcall;
10941   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;
10942
10943   // WGL_EXT_display_color_table
10944   TwglCreateDisplayColorTableEXT = function(id: GLushort): GLboolean; stdcall;
10945   TwglLoadDisplayColorTableEXT = function(const table: PGLushort; length: GLuint): GLboolean; stdcall;
10946   TwglBindDisplayColorTableEXT = function(id: GLushort): GLboolean; stdcall;
10947   TwglDestroyDisplayColorTableEXT = procedure(id: GLushort); stdcall;
10948
10949   // WGL_EXT_extensions_string
10950   TwglGetExtensionsStringEXT = function(): PAnsiChar; stdcall;
10951
10952   // WGL_EXT_make_current_read
10953   TwglMakeContextCurrentEXT = function(hDrawDC: HDC; hReadDC: HDC; hglrc: HGLRC): Boolean; stdcall;
10954   TwglGetCurrentReadDCEXT = function(): HDC; stdcall;
10955
10956   // WGL_EXT_pbuffer
10957   TwglCreatePbufferEXT = function(hDC: HDC; iPixelFormat: GLint; iWidth: GLint; iHeight: GLint; const piAttribList: PGLint): HPBUFFEREXT; stdcall;
10958   TwglGetPbufferDCEXT = function(hPbuffer: HPBUFFEREXT): HDC; stdcall;
10959   TwglReleasePbufferDCEXT = function(hPbuffer: HPBUFFEREXT; hDC: HDC): GLint; stdcall;
10960   TwglDestroyPbufferEXT = function(hPbuffer: HPBUFFEREXT): Boolean; stdcall;
10961   TwglQueryPbufferEXT = function(hPbuffer: HPBUFFEREXT; iAttribute: GLint; piValue: PGLint): Boolean; stdcall;
10962
10963   // WGL_EXT_pixel_format
10964   TwglGetPixelFormatAttribivEXT = function(hdc: HDC; iPixelFormat: GLint; iLayerPlane: GLint; nAttributes: GLuint; piAttributes: PGLint; piValues: PGLint): Boolean; stdcall;
10965   TwglGetPixelFormatAttribfvEXT = function(hdc: HDC; iPixelFormat: GLint; iLayerPlane: GLint; nAttributes: GLuint; piAttributes: PGLint; pfValues: PGLfloat): Boolean; stdcall;
10966   TwglChoosePixelFormatEXT = function(hdc: HDC; const piAttribIList: PGLint; const pfAttribFList: PGLfloat; nMaxFormats: GLuint; piFormats: PGLint; nNumFormats: PGLuint): Boolean; stdcall;
10967
10968   // WGL_EXT_swap_control
10969   TwglSwapIntervalEXT = function(interval: GLint): Boolean; stdcall;
10970   TwglGetSwapIntervalEXT = function(): GLint; stdcall;
10971
10972   // WGL_I3D_digital_video_control
10973   TwglGetDigitalVideoParametersI3D = function(hDC: HDC; iAttribute: GLint; piValue: PGLint): Boolean; stdcall;
10974   TwglSetDigitalVideoParametersI3D = function(hDC: HDC; iAttribute: GLint; const piValue: PGLint): Boolean; stdcall;
10975
10976   // WGL_I3D_gamma
10977   TwglGetGammaTableParametersI3D = function(hDC: HDC; iAttribute: GLint; piValue: PGLint): Boolean; stdcall;
10978   TwglSetGammaTableParametersI3D = function(hDC: HDC; iAttribute: GLint; const piValue: PGLint): Boolean; stdcall;
10979   TwglGetGammaTableI3D = function(hDC: HDC; iEntries: GLint; puRed: PGLushort; puGreen: PGLushort; puBlue: PGLushort): Boolean; stdcall;
10980   TwglSetGammaTableI3D = function(hDC: HDC; iEntries: GLint; const puRed: PGLushort; const puGreen: PGLushort; const puBlue: PGLushort): Boolean; stdcall;
10981
10982   // WGL_I3D_genlock
10983   TwglEnableGenlockI3D = function(hDC: HDC): Boolean; stdcall;
10984   TwglDisableGenlockI3D = function(hDC: HDC): Boolean; stdcall;
10985   TwglIsEnabledGenlockI3D = function(hDC: HDC; pFlag: Boolean): Boolean; stdcall;
10986   TwglGenlockSourceI3D = function(hDC: HDC; uSource: GLuint): Boolean; stdcall;
10987   TwglGetGenlockSourceI3D = function(hDC: HDC; uSource: PGLuint): Boolean; stdcall;
10988   TwglGenlockSourceEdgeI3D = function(hDC: HDC; uEdge: GLuint): Boolean; stdcall;
10989   TwglGetGenlockSourceEdgeI3D = function(hDC: HDC; uEdge: PGLuint): Boolean; stdcall;
10990   TwglGenlockSampleRateI3D = function(hDC: HDC; uRate: GLuint): Boolean; stdcall;
10991   TwglGetGenlockSampleRateI3D = function(hDC: HDC; uRate: PGLuint): Boolean; stdcall;
10992   TwglGenlockSourceDelayI3D = function(hDC: HDC; uDelay: GLuint): Boolean; stdcall;
10993   TwglGetGenlockSourceDelayI3D = function(hDC: HDC; uDelay: PGLuint): Boolean; stdcall;
10994   TwglQueryGenlockMaxSourceDelayI3D = function(hDC: HDC; uMaxLineDelay: PGLuint; uMaxPixelDelay: PGLuint): Boolean; stdcall;
10995
10996   // WGL_I3D_image_buffer
10997   TwglCreateImageBufferI3D = function(hDC: HDC; dwSize: GLuint; uFlags: GLuint): GLvoid; stdcall;
10998   TwglDestroyImageBufferI3D = function(hDC: HDC; pAddress: GLvoid): Boolean; stdcall;
10999   TwglAssociateImageBufferEventsI3D = function(hDC: HDC; const pEvent: THandle; const pAddress: PGLvoid; const pSize: PGLuint; count: GLuint): Boolean; stdcall;
11000   TwglReleaseImageBufferEventsI3D = function(hDC: HDC; const pAddress: PGLvoid; count: GLuint): Boolean; stdcall;
11001
11002   // WGL_I3D_swap_frame_lock
11003   TwglEnableFrameLockI3D = function(): Boolean; stdcall;
11004   TwglDisableFrameLockI3D = function(): Boolean; stdcall;
11005   TwglIsEnabledFrameLockI3D = function(pFlag: Boolean): Boolean; stdcall;
11006   TwglQueryFrameLockMasterI3D = function(pFlag: Boolean): Boolean; stdcall;
11007
11008   // WGL_I3D_swap_frame_usage
11009   TwglGetFrameUsageI3D = function(pUsage: PGLfloat): Boolean; stdcall;
11010   TwglBeginFrameTrackingI3D = function(): Boolean; stdcall;
11011   TwglEndFrameTrackingI3D = function(): Boolean; stdcall;
11012   TwglQueryFrameTrackingI3D = function(pFrameCount: PGLuint; pMissedFrames: PGLuint; pLastMissedUsage: PGLfloat): Boolean; stdcall;
11013
11014   // WGL_NV_vertex_array_range
11015   TwglAllocateMemoryNV = procedure(size: GLsizei; readfreq: GLfloat; writefreq: GLfloat; priority: GLfloat); stdcall;
11016   TwglFreeMemoryNV = procedure(_pointer: Pointer); stdcall;
11017
11018   // WGL_NV_present_video
11019   TwglEnumerateVideoDevicesNV = function(hdc: HDC; phDeviceList: PHVIDEOOUTPUTDEVICENV): Integer; stdcall;
11020   TwglBindVideoDeviceNV = function(hd: HDC; uVideoSlot: Cardinal; hVideoDevice: HVIDEOOUTPUTDEVICENV; piAttribList: PInteger): Boolean; stdcall;
11021   TwglQueryCurrentContextNV = function(iAttribute: Integer; piValue: PInteger): Boolean; stdcall;
11022
11023   // WGL_NV_video_output
11024   TwglGetVideoDeviceNV = function(hDC: HDC; numDevices: Integer; hVideoDevice: PHPVIDEODEV): Boolean; stdcall;
11025   TwglReleaseVideoDeviceNV = function(hVideoDevice: HPVIDEODEV): Boolean; stdcall;
11026   TwglBindVideoImageNV = function(hVideoDevice: HPVIDEODEV; hPbuffer: HPBUFFERARB; iVideoBuffer: Integer): Boolean; stdcall;
11027   TwglReleaseVideoImageNV = function(hPbuffer: HPBUFFERARB; iVideoBuffer: Integer): Boolean; stdcall;
11028   TwglSendPbufferToVideoNV = function(hPbuffer: HPBUFFERARB; iBufferType: Integer; pulCounterPbuffer: PCardinal; bBlock: Boolean): Boolean; stdcall;
11029   TwglGetVideoInfoNV = function(hpVideoDevice: HPVIDEODEV; pulCounterOutputPbuffer: PCardinal; pulCounterOutputVideo: PCardinal): Boolean; stdcall;
11030
11031   // WGL_NV_swap_group
11032   TwglJoinSwapGroupNV = function(hDC: HDC; group: GLuint): Boolean; stdcall;
11033   TwglBindSwapBarrierNV = function(group: GLuint; barrier: GLuint): Boolean; stdcall;
11034   TwglQuerySwapGroupNV = function(hDC: HDC; group: PGLuint; barrier: PGLuint): Boolean; stdcall;
11035   TwglQueryMaxSwapGroupsNV = function(hDC: HDC; mxGroups: PGLuint; maxBarriers: PGLuint): Boolean; stdcall;
11036   TwglQueryFrameCountNV = function(hDC: HDC; count: PGLuint): Boolean; stdcall;
11037   TwglResetFrameCountNV = function(hDC: HDC): Boolean; stdcall;
11038
11039   // WGL_NV_gpu_affinity
11040   TwglEnumGpusNV = function(iGpuIndex: Cardinal; phGpu: PHGPUNV): Boolean; stdcall;
11041   TwglEnumGpuDevicesNV = function(hGpu: HGPUNV; iDeviceIndex: Cardinal; lpGpuDevice: PGPU_DEVICE): Boolean; stdcall;
11042   TwglCreateAffinityDCNV = function(const phGpuList: PHGPUNV): HDC; stdcall;
11043   TwglEnumGpusFromAffinityDCNV = function(hAffinityDC: HDC; iGpuIndex: Cardinal; hGpu: PHGPUNV): Boolean; stdcall;
11044   TwglDeleteDCNV = function(hDC: HDC): Boolean; stdcall;
11045
11046   // WGL_NV_video_capture
11047   TwglBindVideoCaptureDeviceNV = function(uVideoSlot: Cardinal; hDevice: HVIDEOINPUTDEVICENV): Boolean; stdcall;
11048   TwglEnumerateVideoCaptureDevicesNV = function(hDc: HDC; phDeviceList: PHVIDEOINPUTDEVICENV): Cardinal; stdcall;
11049   TwglLockVideoCaptureDeviceNV = function(hDc: HDC; hDevice: HVIDEOINPUTDEVICENV): Boolean; stdcall;
11050   TwglQueryVideoCaptureDeviceNV = function(hDc: HDC; hDevice: HVIDEOINPUTDEVICENV; iAttribute: Integer; piValue: PInteger): Boolean; stdcall;
11051   TwglReleaseVideoCaptureDeviceNV = function(hDc: HDC; hDevice: HVIDEOINPUTDEVICENV): Boolean; stdcall;
11052
11053   // WGL_NV_copy_image
11054   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;
11055
11056   // WGL_NV_DX_interop
11057   TwglDXSetResourceShareHandleNV = function(dxObject : PGLVoid; hareHandle : Cardinal) : Boolean; stdcall;
11058   TwglDXOpenDeviceNV = function(dxDevice : PGLVoid) : Cardinal; stdcall;
11059   TwglDXCloseDeviceNV = function(hDevice : Cardinal) : Boolean; stdcall;
11060   TwglDXRegisterObjectNV = function(hDevice : Cardinal; dxObject : PGLVoid; name : GLUInt; _type : TGLEnum; access : TGLenum) : Cardinal; stdcall;
11061   TwglDXUnregisterObjectNV = function(hDevice : Cardinal; hObject : Cardinal) : Boolean; stdcall;
11062   TwglDXObjectAccessNV = function(hObject : Cardinal; access : GLenum) : Boolean; stdcall;
11063   TwglDXLockObjectsNV = function(hDevice : Cardinal; count : GLint; hObjects : PCardinal) : Boolean; stdcall;
11064   TwglDXUnlockObjectsNV = function (hDevice : Cardinal; count : GLint; hObjects : PCardinal) : Boolean; stdcall;
11065
11066   // WGL_OML_sync_control
11067   TwglGetSyncValuesOML = function(hdc: HDC; ust: PGLint64; msc: PGLint64; sbc: PGLint64): Boolean; stdcall;
11068   TwglGetMscRateOML = function(hdc: HDC; numerator: PGLint; denominator: PGLint): Boolean; stdcall;
11069   TwglSwapBuffersMscOML = function(hdc: HDC; target_msc: GLint64; divisor: GLint64; remainder: GLint64): GLint64; stdcall;
11070   TwglSwapLayerBuffersMscOML = function(hdc: HDC; fuPlanes: GLint; target_msc: GLint64; divisor: GLint64; remainder: GLint64): GLint64; stdcall;
11071   TwglWaitForMscOML = function(hdc: HDC; target_msc: GLint64; divisor: GLint64; remainder: GLint64; ust: PGLint64; msc: PGLint64; sbc: PGLint64): Boolean; stdcall;
11072   TwglWaitForSbcOML = function(hdc: HDC; target_sbc: GLint64; ust: PGLint64; msc: PGLint64; sbc: PGLint64): Boolean; stdcall;
11073
11074   // WGL_3DL_stereo_control
11075   TwglSetStereoEmitterState3DL = function(hDC: HDC; uState: UINT): Boolean; stdcall;
11076
11077   // WIN_draw_range_elements
11078   TglDrawRangeElementsWIN = procedure(mode: GLenum; start: GLuint; _end: GLuint; count: GLsizei; _type: GLenum; const indices: PGLvoid); stdcall;
11079
11080   // WIN_swap_hint
11081   TglAddSwapHintRectWIN = procedure(x: GLint; y: GLint; width: GLsizei; height: GLsizei); stdcall;
11082 {$ENDIF}
11083
11084 {$IFDEF DGL_LINUX}
11085   TglXChooseVisual = function(dpy: PDisplay; screen: GLint; attribList: PGLint): PXVisualInfo; cdecl;
11086   TglXCopyContext = procedure(dpy: PDisplay; src: GLXContext; dst: GLXContext; mask: GLuint); cdecl;
11087   TglXCreateContext = function(dpy: PDisplay; vis: PXVisualInfo; shareList: GLXContext; direct: GLboolean): GLXContext; cdecl;
11088   TglXCreateGLXPixmap = function(dpy: PDisplay; vis: PXVisualInfo; pixmap: Pixmap): GLXPixmap cdecl;
11089   TglXDestroyContext = procedure(dpy: PDisplay; ctx: GLXContext); cdecl;
11090   TglXDestroyGLXPixmap = procedure(dpy : PDisplay; pix: GLXPixmap); cdecl;
11091   TglXGetConfig = function(dpy : PDisplay; vis: PXVisualInfo; attrib: GLint; value: PGLint): GLint; cdecl;
11092   TglXGetCurrentContext = function: GLXContext cdecl;
11093   TglXGetCurrentDrawable = function: GLXDrawable cdecl;
11094   TglXIsDirect = function(dpy: PDisplay; ctx: GLXContext): glboolean; cdecl;
11095   TglXMakeCurrent = function(dpy: PDisplay; drawable: GLXDrawable; ctx: GLXContext): GLboolean cdecl;
11096   TglXQueryExtension = function(dpy: PDisplay; errorBase: PGLint; eventBase: PGLint): GLboolean; cdecl;
11097   TglXQueryVersion = function(dpy: PDisplay; major: PGLint; minor: PGLint): GLboolean cdecl;
11098   TglXSwapBuffers = procedure(dpy: PDisplay; drawable: GLXDrawable); cdecl;
11099   TglXUseXFont = procedure(font: Font; first: GLint; count: GLint; listBase: GLint); cdecl;
11100   TglXWaitGL = procedure; cdecl;
11101   TglXWaitX = procedure; cdecl;
11102
11103   TglXGetClientString = function(dpy: PDisplay; name: GLint): PGLchar; cdecl;
11104   TglXQueryServerString = function(dpy: PDisplay; screen: GLint; name: GLint): PGLchar; cdecl;
11105   TglXQueryExtensionsString = function(dpy: PDisplay; screen: GLint): PGLchar; cdecl;
11106
11107   // GLX_VERSION_1_3
11108   TglXGetFBConfigs = function(dpy: PDisplay; screen: GLint; nelements: PGLint): GLXFBConfig; cdecl;
11109   TglXChooseFBConfig = function(dpy: PDisplay; screen: GLint; attrib_list: PGLint; nelements: PGLint): GLXFBConfig; cdecl;
11110   TglXGetFBConfigAttrib = function(dpy: PDisplay; config: GLXFBConfig; attribute: GLint; value: PGLint): glint; cdecl;
11111   TglXGetVisualFromFBConfig = function(dpy: PDisplay; config: GLXFBConfig) : PXVisualInfo; cdecl;
11112   TglXCreateWindow = function(dpy: PDisplay; config: GLXFBConfig; win: Window; attrib_list: PGLint): GLXWindow; cdecl;
11113   TglXDestroyWindow = procedure(dpy: PDisplay; win: GLXWindow); cdecl;
11114   TglXCreatePixmap = function(dpy: PDisplay; config: GLXFBConfig; pixmap: Pixmap; attrib_list: PGLint): GLXPixmap; cdecl;
11115
11116   TglXDestroyPixmap = procedure(dpy: PDisplay; pixmap: GLXPixmap); cdecl;
11117   TglXCreatePbuffer = function(dpy: PDisplay; config: GLXFBConfig; attrib_list: PGLint): GLXPbuffer; cdecl;
11118   TglXDestroyPbuffer = procedure(dpy: PDisplay; pbuf: GLXPbuffer); cdecl;
11119   TglXQueryDrawable = procedure(dpy: PDisplay; draw: GLXDrawable; attribute: GLint; value: PGLuint); cdecl;
11120   TglXCreateNewContext = function(dpy: PDisplay; config: GLXFBConfig; render_type: GLint; share_list: GLXContext; direct: GLboolean): GLXContext cdecl;
11121   TglXMakeContextCurrent = function(display: PDisplay; draw: GLXDrawable; read_: GLXDrawable; ctx: GLXContext): GLboolean; cdecl;
11122   TglXGetCurrentReadDrawable = function: GLXDrawable; cdecl;
11123   TglXGetCurreentDisplay = function: PDisplay;
11124
11125   TglXQueryContext = function(dpy: PDisplay; ctx: GLXContext; attribute: GLint; value: PGLint): GLint; cdecl;
11126   TglXSelectEvent = procedure(dpy: PDisplay; draw: GLXDrawable; event_mask: GLuint); cdecl;
11127   TglXGetSelectedEvent = procedure(dpy: PDisplay; draw: GLXDrawable; event_mask: PGLuint); cdecl;
11128
11129   // GLX_VERSION_1_4
11130   TglXGetProcAddress = function(const name: PAnsiChar): pointer; cdecl;
11131
11132   // GLX_ARB_get_proc_address
11133   TglXGetProcAddressARB = function(const name: PAnsiChar): pointer; cdecl;
11134
11135   // GLX_ARB_create_context
11136   TglXCreateContextAttribsARB = function(dpy: PDisplay; config: GLXFBConfig; share_context: GLXContext; direct: GLboolean; const attrib_list: PGLint): GLXContext; cdecl;
11137
11138   // GLX_EXT_import_context
11139   TglXGetCurrentDisplayEXT = function: PDisplay; cdecl;
11140   TglXQueryContextInfoEXT = function(dpy: PDisplay; context: GLXContext; attribute: GLint; value: PGLint): GLint; cdecl;
11141   TglXGetContextIDEXT = function(const context: GLXContext): GLXContextID; cdecl;
11142   TglXImportContextEXT = function(dpy: PDisplay; contextID: GLXContextID): GLXContext; cdecl;
11143   TglXFreeContextEXT = procedure(dpy: PDisplay; context: GLXContext); cdecl;
11144
11145   // GLX_EXT_texture_from_pixmap
11146   TglXBindTexImageEXT = procedure(dpy: PDisplay; drawable: GLXDrawable; buffer: GLint; const attrib_list: PGLint); cdecl;
11147   TglXReleaseTexImageEXT = procedure(dpy: PDisplay; drawable: GLXDrawable; buffer: GLint); cdecl;
11148
11149   TglXSwapIntervalEXT = procedure (dpy : PDisplay; drawable : GLXDrawable; interval : GLint); cdecl;
11150 {$ENDIF}
11151
11152   // GL utility functions and procedures
11153   TgluErrorString = function(errCode: GLEnum): PAnsiChar; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11154   TgluGetString = function(name: GLEnum): PAnsiChar; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11155   TgluOrtho2D = procedure(left, right, bottom, top: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11156   TgluPerspective = procedure(fovy, aspect, zNear, zFar: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11157   TgluPickMatrix = procedure(x, y, width, height: GLdouble; const viewport: TVector4i); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11158   TgluLookAt = procedure(eyex, eyey, eyez, centerx, centery, centerz, upx, upy, upz: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11159   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}
11160   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}
11161   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}
11162   TgluBuild1DMipmaps = function(target: GLEnum; components, width: GLint; format, atype: GLEnum; const data: Pointer): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11163   TgluBuild2DMipmaps = function(target: GLEnum; components, width, height: GLint; format, atype: GLEnum; const Data: Pointer): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11164   TgluNewQuadric = function: PGLUquadric; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11165   TgluDeleteQuadric = procedure(state: PGLUquadric); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11166   TgluQuadricNormals = procedure(quadObject: PGLUquadric; normals: GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11167   TgluQuadricTexture = procedure(quadObject: PGLUquadric; textureCoords: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11168   TgluQuadricOrientation = procedure(quadObject: PGLUquadric; orientation: GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11169   TgluQuadricDrawStyle = procedure(quadObject: PGLUquadric; drawStyle: GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11170   TgluCylinder = procedure(quadObject: PGLUquadric; baseRadius, topRadius, height: GLdouble; slices, stacks: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11171   TgluDisk = procedure(quadObject: PGLUquadric; innerRadius, outerRadius: GLdouble; slices, loops: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11172   TgluPartialDisk = procedure(quadObject: PGLUquadric; innerRadius, outerRadius: GLdouble; slices, loops: GLint; startAngle, sweepAngle: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11173   TgluSphere = procedure(quadObject: PGLUquadric; radius: GLdouble; slices, stacks: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11174   TgluQuadricCallback = procedure(quadObject: PGLUquadric; which: GLEnum; fn: TGLUQuadricErrorProc); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11175   TgluNewTess = function: PGLUtesselator; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11176   TgluDeleteTess = procedure(tess: PGLUtesselator); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11177   TgluTessBeginPolygon = procedure(tess: PGLUtesselator; polygon_data: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11178   TgluTessBeginContour = procedure(tess: PGLUtesselator); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11179   TgluTessVertex = procedure(tess: PGLUtesselator; const coords: TGLArrayd3; data: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11180   TgluTessEndContour = procedure(tess: PGLUtesselator); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11181   TgluTessEndPolygon = procedure(tess: PGLUtesselator); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11182   TgluTessProperty = procedure(tess: PGLUtesselator; which: GLEnum; value: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11183   TgluTessNormal = procedure(tess: PGLUtesselator; x, y, z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11184   TgluTessCallback = procedure(tess: PGLUtesselator; which: GLEnum; fn: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11185   TgluGetTessProperty = procedure(tess: PGLUtesselator; which: GLEnum; value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11186   TgluNewNurbsRenderer = function: PGLUnurbs; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11187   TgluDeleteNurbsRenderer = procedure(nobj: PGLUnurbs); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11188   TgluBeginSurface = procedure(nobj: PGLUnurbs); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11189   TgluBeginCurve = procedure(nobj: PGLUnurbs); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11190   TgluEndCurve = procedure(nobj: PGLUnurbs); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11191   TgluEndSurface = procedure(nobj: PGLUnurbs); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11192   TgluBeginTrim = procedure(nobj: PGLUnurbs); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11193   TgluEndTrim = procedure(nobj: PGLUnurbs); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11194   TgluPwlCurve = procedure(nobj: PGLUnurbs; count: GLint; points: PGLfloat; stride: GLint; atype: GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11195   TgluNurbsCurve = procedure(nobj: PGLUnurbs; nknots: GLint; knot: PGLfloat; stride: GLint; ctlarray: PGLfloat; order: GLint; atype: GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11196   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}
11197   TgluLoadSamplingMatrices = procedure(nobj: PGLUnurbs; const modelMatrix, projMatrix: TGLMatrixf4; const viewport: TVector4i); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11198   TgluNurbsProperty = procedure(nobj: PGLUnurbs; aproperty: GLEnum; value: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11199   TgluGetNurbsProperty = procedure(nobj: PGLUnurbs; aproperty: GLEnum; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11200   TgluNurbsCallback = procedure(nobj: PGLUnurbs; which: GLEnum; fn: TGLUNurbsErrorProc); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11201   TgluBeginPolygon = procedure(tess: PGLUtesselator); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11202   TgluNextContour = procedure(tess: PGLUtesselator; atype: GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11203   TgluEndPolygon = procedure(tess: PGLUtesselator); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11204
11205 var
11206   // GL_VERSION_1_0
11207   glCullFace: TglCullFace;
11208   glFrontFace: TglFrontFace;
11209   glHint: TglHint;
11210   glLineWidth: TglLineWidth;
11211   glPointSize: TglPointSize;
11212   glPolygonMode: TglPolygonMode;
11213   glScissor: TglScissor;
11214   glTexParameterf: TglTexParameterf;
11215   glTexParameterfv: TglTexParameterfv;
11216   glTexParameteri: TglTexParameteri;
11217   glTexParameteriv: TglTexParameteriv;
11218   glTexImage1D: TglTexImage1D;
11219   glTexImage2D: TglTexImage2D;
11220   glDrawBuffer: TglDrawBuffer;
11221   glClear: TglClear;
11222   glClearColor: TglClearColor;
11223   glClearStencil: TglClearStencil;
11224   glClearDepth: TglClearDepth;
11225   glStencilMask: TglStencilMask;
11226   glColorMask: TglColorMask;
11227   glDepthMask: TglDepthMask;
11228   glDisable: TglDisable;
11229   glEnable: TglEnable;
11230   glFinish: TglFinish;
11231   glFlush: TglFlush;
11232   glBlendFunc: TglBlendFunc;
11233   glLogicOp: TglLogicOp;
11234   glStencilFunc: TglStencilFunc;
11235   glStencilOp: TglStencilOp;
11236   glDepthFunc: TglDepthFunc;
11237   glPixelStoref: TglPixelStoref;
11238   glPixelStorei: TglPixelStorei;
11239   glReadBuffer: TglReadBuffer;
11240   glReadPixels: TglReadPixels;
11241   glGetBooleanv: TglGetBooleanv;
11242   glGetDoublev: TglGetDoublev;
11243   glGetError: TglGetError;
11244   glGetFloatv: TglGetFloatv;
11245   glGetIntegerv: TglGetIntegerv;
11246   glGetString: TglGetString;
11247   glGetTexImage: TglGetTexImage;
11248   glGetTexParameteriv: TglGetTexParameteriv;
11249   glGetTexParameterfv: TglGetTexParameterfv;
11250   glGetTexLevelParameterfv: TglGetTexLevelParameterfv;
11251   glGetTexLevelParameteriv: TglGetTexLevelParameteriv;
11252   glIsEnabled: TglIsEnabled;
11253   glDepthRange: TglDepthRange;
11254   glViewport: TglViewport;
11255
11256   // GL_VERSION_1_1
11257   glDrawArrays: TglDrawArrays;
11258   glDrawElements: TglDrawElements;
11259   glGetPointerv: TglGetPointerv;
11260   glPolygonOffset: TglPolygonOffset;
11261   glCopyTexImage1D: TglCopyTexImage1D;
11262   glCopyTexImage2D: TglCopyTexImage2D;
11263   glCopyTexSubImage1D: TglCopyTexSubImage1D;
11264   glCopyTexSubImage2D: TglCopyTexSubImage2D;
11265   glTexSubImage1D: TglTexSubImage1D;
11266   glTexSubImage2D: TglTexSubImage2D;
11267   glBindTexture: TglBindTexture;
11268   glDeleteTextures: TglDeleteTextures;
11269   glGenTextures: TglGenTextures;
11270 {$ifdef DGL_DEPRECATED}
11271   glAccum: TglAccum;
11272   glAlphaFunc: TglAlphaFunc;
11273   glAreTexturesResident: TglAreTexturesResident;
11274   glArrayElement: TglArrayElement;
11275   glBegin: TglBegin;
11276   glBitmap: TglBitmap;
11277   glCallList: TglCallList;
11278   glCallLists: TglCallLists;
11279   glClearAccum: TglClearAccum;
11280   glClearIndex: TglClearIndex;
11281   glClipPlane: TglClipPlane;
11282   glColor3b: TglColor3b;
11283   glColor3bv: TglColor3bv;
11284   glColor3d: TglColor3d;
11285   glColor3dv: TglColor3dv;
11286   glColor3f: TglColor3f;
11287   glColor3fv: TglColor3fv;
11288   glColor3i: TglColor3i;
11289   glColor3iv: TglColor3iv;
11290   glColor3s: TglColor3s;
11291   glColor3sv: TglColor3sv;
11292   glColor3ub: TglColor3ub;
11293   glColor3ubv: TglColor3ubv;
11294   glColor3ui: TglColor3ui;
11295   glColor3uiv: TglColor3uiv;
11296   glColor3us: TglColor3us;
11297   glColor3usv: TglColor3usv;
11298   glColor4b: TglColor4b;
11299   glColor4bv: TglColor4bv;
11300   glColor4d: TglColor4d;
11301   glColor4dv: TglColor4dv;
11302   glColor4f: TglColor4f;
11303   glColor4fv: TglColor4fv;
11304   glColor4i: TglColor4i;
11305   glColor4iv: TglColor4iv;
11306   glColor4s: TglColor4s;
11307   glColor4sv: TglColor4sv;
11308   glColor4ub: TglColor4ub;
11309   glColor4ubv: TglColor4ubv;
11310   glColor4ui: TglColor4ui;
11311   glColor4uiv: TglColor4uiv;
11312   glColor4us: TglColor4us;
11313   glColor4usv: TglColor4usv;
11314   glColorMaterial: TglColorMaterial;
11315   glColorPointer: TglColorPointer;
11316   glCopyPixels: TglCopyPixels;
11317   glDeleteLists: TglDeleteLists;
11318   glDisableClientState: TglDisableClientState;
11319   glDrawPixels: TglDrawPixels;
11320   glEdgeFlag: TglEdgeFlag;
11321   glEdgeFlagPointer: TglEdgeFlagPointer;
11322   glEdgeFlagv: TglEdgeFlagv;
11323   glEnableClientState: TglEnableClientState;
11324   glEnd: TglEnd;
11325   glEndList: TglEndList;
11326   glEvalCoord1d: TglEvalCoord1d;
11327   glEvalCoord1dv: TglEvalCoord1dv;
11328   glEvalCoord1f: TglEvalCoord1f;
11329   glEvalCoord1fv: TglEvalCoord1fv;
11330   glEvalCoord2d: TglEvalCoord2d;
11331   glEvalCoord2dv: TglEvalCoord2dv;
11332   glEvalCoord2f: TglEvalCoord2f;
11333   glEvalCoord2fv: TglEvalCoord2fv;
11334   glEvalMesh1: TglEvalMesh1;
11335   glEvalMesh2: TglEvalMesh2;
11336   glEvalPoint1: TglEvalPoint1;
11337   glEvalPoint2: TglEvalPoint2;
11338   glFeedbackBuffer: TglFeedbackBuffer;
11339   glFogf: TglFogf;
11340   glFogfv: TglFogfv;
11341   glFogi: TglFogi;
11342   glFogiv: TglFogiv;
11343   glFrustum: TglFrustum;
11344   glGenLists: TglGenLists;
11345   glGetClipPlane: TglGetClipPlane;
11346   glGetLightfv: TglGetLightfv;
11347   glGetLightiv: TglGetLightiv;
11348   glGetMapdv: TglGetMapdv;
11349   glGetMapfv: TglGetMapfv;
11350   glGetMapiv: TglGetMapiv;
11351   glGetMaterialfv: TglGetMaterialfv;
11352   glGetMaterialiv: TglGetMaterialiv;
11353   glGetPixelMapfv: TglGetPixelMapfv;
11354   glGetPixelMapuiv: TglGetPixelMapuiv;
11355   glGetPixelMapusv: TglGetPixelMapusv;
11356   glGetPolygonStipple: TglGetPolygonStipple;
11357   glGetTexEnvfv: TglGetTexEnvfv;
11358   glGetTexEnviv: TglGetTexEnviv;
11359   glGetTexGendv: TglGetTexGendv;
11360   glGetTexGenfv: TglGetTexGenfv;
11361   glGetTexGeniv: TglGetTexGeniv;
11362   glIndexMask: TglIndexMask;
11363   glIndexPointer: TglIndexPointer;
11364   glIndexd: TglIndexd;
11365   glIndexdv: TglIndexdv;
11366   glIndexf: TglIndexf;
11367   glIndexfv: TglIndexfv;
11368   glIndexi: TglIndexi;
11369   glIndexiv: TglIndexiv;
11370   glIndexs: TglIndexs;
11371   glIndexsv: TglIndexsv;
11372   glIndexub: TglIndexub;
11373   glIndexubv: TglIndexubv;
11374   glInitNames: TglInitNames;
11375   glInterleavedArrays: TglInterleavedArrays;
11376   glIsList: TglIsList;
11377   glIsTexture: TglIsTexture;
11378   glLightModelf: TglLightModelf;
11379   glLightModelfv: TglLightModelfv;
11380   glLightModeli: TglLightModeli;
11381   glLightModeliv: TglLightModeliv;
11382   glLightf: TglLightf;
11383   glLightfv: TglLightfv;
11384   glLighti: TglLighti;
11385   glLightiv: TglLightiv;
11386   glLineStipple: TglLineStipple;
11387   glListBase: TglListBase;
11388   glLoadIdentity: TglLoadIdentity;
11389   glLoadMatrixd: TglLoadMatrixd;
11390   glLoadMatrixf: TglLoadMatrixf;
11391   glLoadName: TglLoadName;
11392   glMap1d: TglMap1d;
11393   glMap1f: TglMap1f;
11394   glMap2d: TglMap2d;
11395   glMap2f: TglMap2f;
11396   glMapGrid1d: TglMapGrid1d;
11397   glMapGrid1f: TglMapGrid1f;
11398   glMapGrid2d: TglMapGrid2d;
11399   glMapGrid2f: TglMapGrid2f;
11400   glMaterialf: TglMaterialf;
11401   glMaterialfv: TglMaterialfv;
11402   glMateriali: TglMateriali;
11403   glMaterialiv: TglMaterialiv;
11404   glMatrixMode: TglMatrixMode;
11405   glMultMatrixd: TglMultMatrixd;
11406   glMultMatrixf: TglMultMatrixf;
11407   glNewList: TglNewList;
11408   glNormal3b: TglNormal3b;
11409   glNormal3bv: TglNormal3bv;
11410   glNormal3d: TglNormal3d;
11411   glNormal3dv: TglNormal3dv;
11412   glNormal3f: TglNormal3f;
11413   glNormal3fv: TglNormal3fv;
11414   glNormal3i: TglNormal3i;
11415   glNormal3iv: TglNormal3iv;
11416   glNormal3s: TglNormal3s;
11417   glNormal3sv: TglNormal3sv;
11418   glNormalPointer: TglNormalPointer;
11419   glOrtho: TglOrtho;
11420   glPassThrough: TglPassThrough;
11421   glPixelMapfv: TglPixelMapfv;
11422   glPixelMapuiv: TglPixelMapuiv;
11423   glPixelMapusv: TglPixelMapusv;
11424   glPixelTransferf: TglPixelTransferf;
11425   glPixelTransferi: TglPixelTransferi;
11426   glPixelZoom: TglPixelZoom;
11427   glPolygonStipple: TglPolygonStipple;
11428   glPopAttrib: TglPopAttrib;
11429   glPopClientAttrib: TglPopClientAttrib;
11430   glPopMatrix: TglPopMatrix;
11431   glPopName: TglPopName;
11432   glPrioritizeTextures: TglPrioritizeTextures;
11433   glPushAttrib: TglPushAttrib;
11434   glPushClientAttrib: TglPushClientAttrib;
11435   glPushMatrix: TglPushMatrix;
11436   glPushName: TglPushName;
11437   glRasterPos2d: TglRasterPos2d;
11438   glRasterPos2dv: TglRasterPos2dv;
11439   glRasterPos2f: TglRasterPos2f;
11440   glRasterPos2fv: TglRasterPos2fv;
11441   glRasterPos2i: TglRasterPos2i;
11442   glRasterPos2iv: TglRasterPos2iv;
11443   glRasterPos2s: TglRasterPos2s;
11444   glRasterPos2sv: TglRasterPos2sv;
11445   glRasterPos3d: TglRasterPos3d;
11446   glRasterPos3dv: TglRasterPos3dv;
11447   glRasterPos3f: TglRasterPos3f;
11448   glRasterPos3fv: TglRasterPos3fv;
11449   glRasterPos3i: TglRasterPos3i;
11450   glRasterPos3iv: TglRasterPos3iv;
11451   glRasterPos3s: TglRasterPos3s;
11452   glRasterPos3sv: TglRasterPos3sv;
11453   glRasterPos4d: TglRasterPos4d;
11454   glRasterPos4dv: TglRasterPos4dv;
11455   glRasterPos4f: TglRasterPos4f;
11456   glRasterPos4fv: TglRasterPos4fv;
11457   glRasterPos4i: TglRasterPos4i;
11458   glRasterPos4iv: TglRasterPos4iv;
11459   glRasterPos4s: TglRasterPos4s;
11460   glRasterPos4sv: TglRasterPos4sv;
11461   glRectd: TglRectd;
11462   glRectdv: TglRectdv;
11463   glRectf: TglRectf;
11464   glRectfv: TglRectfv;
11465   glRecti: TglRecti;
11466   glRectiv: TglRectiv;
11467   glRects: TglRects;
11468   glRectsv: TglRectsv;
11469   glRenderMode: TglRenderMode;
11470   glRotated: TglRotated;
11471   glRotatef: TglRotatef;
11472   glScaled: TglScaled;
11473   glScalef: TglScalef;
11474   glSelectBuffer: TglSelectBuffer;
11475   glShadeModel: TglShadeModel;
11476   glTexCoord1d: TglTexCoord1d;
11477   glTexCoord1dv: TglTexCoord1dv;
11478   glTexCoord1f: TglTexCoord1f;
11479   glTexCoord1fv: TglTexCoord1fv;
11480   glTexCoord1i: TglTexCoord1i;
11481   glTexCoord1iv: TglTexCoord1iv;
11482   glTexCoord1s: TglTexCoord1s;
11483   glTexCoord1sv: TglTexCoord1sv;
11484   glTexCoord2d: TglTexCoord2d;
11485   glTexCoord2dv: TglTexCoord2dv;
11486   glTexCoord2f: TglTexCoord2f;
11487   glTexCoord2fv: TglTexCoord2fv;
11488   glTexCoord2i: TglTexCoord2i;
11489   glTexCoord2iv: TglTexCoord2iv;
11490   glTexCoord2s: TglTexCoord2s;
11491   glTexCoord2sv: TglTexCoord2sv;
11492   glTexCoord3d: TglTexCoord3d;
11493   glTexCoord3dv: TglTexCoord3dv;
11494   glTexCoord3f: TglTexCoord3f;
11495   glTexCoord3fv: TglTexCoord3fv;
11496   glTexCoord3i: TglTexCoord3i;
11497   glTexCoord3iv: TglTexCoord3iv;
11498   glTexCoord3s: TglTexCoord3s;
11499   glTexCoord3sv: TglTexCoord3sv;
11500   glTexCoord4d: TglTexCoord4d;
11501   glTexCoord4dv: TglTexCoord4dv;
11502   glTexCoord4f: TglTexCoord4f;
11503   glTexCoord4fv: TglTexCoord4fv;
11504   glTexCoord4i: TglTexCoord4i;
11505   glTexCoord4iv: TglTexCoord4iv;
11506   glTexCoord4s: TglTexCoord4s;
11507   glTexCoord4sv: TglTexCoord4sv;
11508   glTexCoordPointer: TglTexCoordPointer;
11509   glTexEnvf: TglTexEnvf;
11510   glTexEnvfv: TglTexEnvfv;
11511   glTexEnvi: TglTexEnvi;
11512   glTexEnviv: TglTexEnviv;
11513   glTexGend: TglTexGend;
11514   glTexGendv: TglTexGendv;
11515   glTexGenf: TglTexGenf;
11516   glTexGenfv: TglTexGenfv;
11517   glTexGeni: TglTexGeni;
11518   glTexGeniv: TglTexGeniv;
11519   glTranslated: TglTranslated;
11520   glTranslatef: TglTranslatef;
11521   glVertex2d: TglVertex2d;
11522   glVertex2dv: TglVertex2dv;
11523   glVertex2f: TglVertex2f;
11524   glVertex2fv: TglVertex2fv;
11525   glVertex2i: TglVertex2i;
11526   glVertex2iv: TglVertex2iv;
11527   glVertex2s: TglVertex2s;
11528   glVertex2sv: TglVertex2sv;
11529   glVertex3d: TglVertex3d;
11530   glVertex3dv: TglVertex3dv;
11531   glVertex3f: TglVertex3f;
11532   glVertex3fv: TglVertex3fv;
11533   glVertex3i: TglVertex3i;
11534   glVertex3iv: TglVertex3iv;
11535   glVertex3s: TglVertex3s;
11536   glVertex3sv: TglVertex3sv;
11537   glVertex4d: TglVertex4d;
11538   glVertex4dv: TglVertex4dv;
11539   glVertex4f: TglVertex4f;
11540   glVertex4fv: TglVertex4fv;
11541   glVertex4i: TglVertex4i;
11542   glVertex4iv: TglVertex4iv;
11543   glVertex4s: TglVertex4s;
11544   glVertex4sv: TglVertex4sv;
11545   glVertexPointer: TglVertexPointer;
11546 {$endif}
11547
11548   // GL_VERSION_1_2
11549   glBlendColor: TglBlendColor;
11550   glBlendEquation: TglBlendEquation;
11551   glDrawRangeElements: TglDrawRangeElements;
11552   glTexImage3D: TglTexImage3D;
11553   glTexSubImage3D: TglTexSubImage3D;
11554   glCopyTexSubImage3D: TglCopyTexSubImage3D;
11555 {$ifdef DGL_DEPRECATED}
11556   glColorTable: TglColorTable;
11557   glColorTableParameterfv: TglColorTableParameterfv;
11558   glColorTableParameteriv: TglColorTableParameteriv;
11559   glCopyColorTable: TglCopyColorTable;
11560   glGetColorTable: TglGetColorTable;
11561   glGetColorTableParameterfv: TglGetColorTableParameterfv;
11562   glGetColorTableParameteriv: TglGetColorTableParameteriv;
11563   glColorSubTable: TglColorSubTable;
11564   glCopyColorSubTable: TglCopyColorSubTable;
11565   glConvolutionFilter1D: TglConvolutionFilter1D;
11566   glConvolutionFilter2D: TglConvolutionFilter2D;
11567   glConvolutionParameterf: TglConvolutionParameterf;
11568   glConvolutionParameterfv: TglConvolutionParameterfv;
11569   glConvolutionParameteri: TglConvolutionParameteri;
11570   glConvolutionParameteriv: TglConvolutionParameteriv;
11571   glCopyConvolutionFilter1D: TglCopyConvolutionFilter1D;
11572   glCopyConvolutionFilter2D: TglCopyConvolutionFilter2D;
11573   glGetConvolutionFilter: TglGetConvolutionFilter;
11574   glGetConvolutionParameterfv: TglGetConvolutionParameterfv;
11575   glGetConvolutionParameteriv: TglGetConvolutionParameteriv;
11576   glGetSeparableFilter: TglGetSeparableFilter;
11577   glSeparableFilter2D: TglSeparableFilter2D;
11578   glGetHistogram: TglGetHistogram;
11579   glGetHistogramParameterfv: TglGetHistogramParameterfv;
11580   glGetHistogramParameteriv: TglGetHistogramParameteriv;
11581   glGetMinmax: TglGetMinmax;
11582   glGetMinmaxParameterfv: TglGetMinmaxParameterfv;
11583   glGetMinmaxParameteriv: TglGetMinmaxParameteriv;
11584   glHistogram: TglHistogram;
11585   glMinmax: TglMinmax;
11586   glResetHistogram: TglResetHistogram;
11587   glResetMinmax: TglResetMinmax;
11588 {$endif}
11589
11590   // GL_VERSION_1_3
11591   glActiveTexture: TglActiveTexture;
11592   glSampleCoverage: TglSampleCoverage;
11593   glCompressedTexImage3D: TglCompressedTexImage3D;
11594   glCompressedTexImage2D: TglCompressedTexImage2D;
11595   glCompressedTexImage1D: TglCompressedTexImage1D;
11596   glCompressedTexSubImage3D: TglCompressedTexSubImage3D;
11597   glCompressedTexSubImage2D: TglCompressedTexSubImage2D;
11598   glCompressedTexSubImage1D: TglCompressedTexSubImage1D;
11599   glGetCompressedTexImage: TglGetCompressedTexImage;
11600 {$ifdef DGL_DEPRECATED}
11601   glClientActiveTexture: TglClientActiveTexture;
11602   glMultiTexCoord1d: TglMultiTexCoord1d;
11603   glMultiTexCoord1dv: TglMultiTexCoord1dv;
11604   glMultiTexCoord1f: TglMultiTexCoord1f;
11605   glMultiTexCoord1fv: TglMultiTexCoord1fv;
11606   glMultiTexCoord1i: TglMultiTexCoord1i;
11607   glMultiTexCoord1iv: TglMultiTexCoord1iv;
11608   glMultiTexCoord1s: TglMultiTexCoord1s;
11609   glMultiTexCoord1sv: TglMultiTexCoord1sv;
11610   glMultiTexCoord2d: TglMultiTexCoord2d;
11611   glMultiTexCoord2dv: TglMultiTexCoord2dv;
11612   glMultiTexCoord2f: TglMultiTexCoord2f;
11613   glMultiTexCoord2fv: TglMultiTexCoord2fv;
11614   glMultiTexCoord2i: TglMultiTexCoord2i;
11615   glMultiTexCoord2iv: TglMultiTexCoord2iv;
11616   glMultiTexCoord2s: TglMultiTexCoord2s;
11617   glMultiTexCoord2sv: TglMultiTexCoord2sv;
11618   glMultiTexCoord3d: TglMultiTexCoord3d;
11619   glMultiTexCoord3dv: TglMultiTexCoord3dv;
11620   glMultiTexCoord3f: TglMultiTexCoord3f;
11621   glMultiTexCoord3fv: TglMultiTexCoord3fv;
11622   glMultiTexCoord3i: TglMultiTexCoord3i;
11623   glMultiTexCoord3iv: TglMultiTexCoord3iv;
11624   glMultiTexCoord3s: TglMultiTexCoord3s;
11625   glMultiTexCoord3sv: TglMultiTexCoord3sv;
11626   glMultiTexCoord4d: TglMultiTexCoord4d;
11627   glMultiTexCoord4dv: TglMultiTexCoord4dv;
11628   glMultiTexCoord4f: TglMultiTexCoord4f;
11629   glMultiTexCoord4fv: TglMultiTexCoord4fv;
11630   glMultiTexCoord4i: TglMultiTexCoord4i;
11631   glMultiTexCoord4iv: TglMultiTexCoord4iv;
11632   glMultiTexCoord4s: TglMultiTexCoord4s;
11633   glMultiTexCoord4sv: TglMultiTexCoord4sv;
11634   glLoadTransposeMatrixf: TglLoadTransposeMatrixf;
11635   glLoadTransposeMatrixd: TglLoadTransposeMatrixd;
11636   glMultTransposeMatrixf: TglMultTransposeMatrixf;
11637   glMultTransposeMatrixd: TglMultTransposeMatrixd;
11638 {$endif}
11639
11640   // GL_VERSION_1_4
11641   glBlendFuncSeparate: TglBlendFuncSeparate;
11642   glMultiDrawArrays: TglMultiDrawArrays;
11643   glMultiDrawElements: TglMultiDrawElements;
11644   glPointParameterf: TglPointParameterf;
11645   glPointParameterfv: TglPointParameterfv;
11646   glPointParameteri: TglPointParameteri;
11647   glPointParameteriv: TglPointParameteriv;
11648 {$ifdef DGL_DEPRECATED}
11649   glFogCoordf: TglFogCoordf;
11650   glFogCoordfv: TglFogCoordfv;
11651   glFogCoordd: TglFogCoordd;
11652   glFogCoorddv: TglFogCoorddv;
11653   glFogCoordPointer: TglFogCoordPointer;
11654   glSecondaryColor3b: TglSecondaryColor3b;
11655   glSecondaryColor3bv: TglSecondaryColor3bv;
11656   glSecondaryColor3d: TglSecondaryColor3d;
11657   glSecondaryColor3dv: TglSecondaryColor3dv;
11658   glSecondaryColor3f: TglSecondaryColor3f;
11659   glSecondaryColor3fv: TglSecondaryColor3fv;
11660   glSecondaryColor3i: TglSecondaryColor3i;
11661   glSecondaryColor3iv: TglSecondaryColor3iv;
11662   glSecondaryColor3s: TglSecondaryColor3s;
11663   glSecondaryColor3sv: TglSecondaryColor3sv;
11664   glSecondaryColor3ub: TglSecondaryColor3ub;
11665   glSecondaryColor3ubv: TglSecondaryColor3ubv;
11666   glSecondaryColor3ui: TglSecondaryColor3ui;
11667   glSecondaryColor3uiv: TglSecondaryColor3uiv;
11668   glSecondaryColor3us: TglSecondaryColor3us;
11669   glSecondaryColor3usv: TglSecondaryColor3usv;
11670   glSecondaryColorPointer: TglSecondaryColorPointer;
11671   glWindowPos2d: TglWindowPos2d;
11672   glWindowPos2dv: TglWindowPos2dv;
11673   glWindowPos2f: TglWindowPos2f;
11674   glWindowPos2fv: TglWindowPos2fv;
11675   glWindowPos2i: TglWindowPos2i;
11676   glWindowPos2iv: TglWindowPos2iv;
11677   glWindowPos2s: TglWindowPos2s;
11678   glWindowPos2sv: TglWindowPos2sv;
11679   glWindowPos3d: TglWindowPos3d;
11680   glWindowPos3dv: TglWindowPos3dv;
11681   glWindowPos3f: TglWindowPos3f;
11682   glWindowPos3fv: TglWindowPos3fv;
11683   glWindowPos3i: TglWindowPos3i;
11684   glWindowPos3iv: TglWindowPos3iv;
11685   glWindowPos3s: TglWindowPos3s;
11686   glWindowPos3sv: TglWindowPos3sv;
11687 {$endif}
11688
11689   // GL_VERSION_1_5
11690   glGenQueries: TglGenQueries;
11691   glDeleteQueries: TglDeleteQueries;
11692   glIsQuery: TglIsQuery;
11693   glBeginQuery: TglBeginQuery;
11694   glEndQuery: TglEndQuery;
11695   glGetQueryiv: TglGetQueryiv;
11696   glGetQueryObjectiv: TglGetQueryObjectiv;
11697   glGetQueryObjectuiv: TglGetQueryObjectuiv;
11698   glBindBuffer: TglBindBuffer;
11699   glDeleteBuffers: TglDeleteBuffers;
11700   glGenBuffers: TglGenBuffers;
11701   glIsBuffer: TglIsBuffer;
11702   glBufferData: TglBufferData;
11703   glBufferSubData: TglBufferSubData;
11704   glGetBufferSubData: TglGetBufferSubData;
11705   glMapBuffer: TglMapBuffer;
11706   glUnmapBuffer: TglUnmapBuffer;
11707   glGetBufferParameteriv: TglGetBufferParameteriv;
11708   glGetBufferPointerv: TglGetBufferPointerv;
11709
11710   // GL_VERSION_2_0
11711   glBlendEquationSeparate: TglBlendEquationSeparate;
11712   glDrawBuffers: TglDrawBuffers;
11713   glStencilOpSeparate: TglStencilOpSeparate;
11714   glStencilFuncSeparate: TglStencilFuncSeparate;
11715   glStencilMaskSeparate: TglStencilMaskSeparate;
11716   glAttachShader: TglAttachShader;
11717   glBindAttribLocation: TglBindAttribLocation;
11718   glCompileShader: TglCompileShader;
11719   glCreateProgram: TglCreateProgram;
11720   glCreateShader: TglCreateShader;
11721   glDeleteProgram: TglDeleteProgram;
11722   glDeleteShader: TglDeleteShader;
11723   glDetachShader: TglDetachShader;
11724   glDisableVertexAttribArray: TglDisableVertexAttribArray;
11725   glEnableVertexAttribArray: TglEnableVertexAttribArray;
11726   glGetActiveAttrib: TglGetActiveAttrib;
11727   glGetActiveUniform: TglGetActiveUniform;
11728   glGetAttachedShaders: TglGetAttachedShaders;
11729   glGetAttribLocation: TglGetAttribLocation;
11730   glGetProgramiv: TglGetProgramiv;
11731   glGetProgramInfoLog: TglGetProgramInfoLog;
11732   glGetShaderiv: TglGetShaderiv;
11733   glGetShaderInfoLog: TglGetShaderInfoLog;
11734   glGetShaderSource: TglGetShaderSource;
11735   glGetUniformLocation: TglGetUniformLocation;
11736   glGetUniformfv: TglGetUniformfv;
11737   glGetUniformiv: TglGetUniformiv;
11738   glGetVertexAttribfv: TglGetVertexAttribfv;
11739   glGetVertexAttribiv: TglGetVertexAttribiv;
11740   glGetVertexAttribPointerv: TglGetVertexAttribPointerv;
11741   glIsProgram: TglIsProgram;
11742   glIsShader: TglIsShader;
11743   glLinkProgram: TglLinkProgram;
11744   glShaderSource: TglShaderSource;
11745   glUseProgram: TglUseProgram;
11746   glUniform1f: TglUniform1f;
11747   glUniform2f: TglUniform2f;
11748   glUniform3f: TglUniform3f;
11749   glUniform4f: TglUniform4f;
11750   glUniform1i: TglUniform1i;
11751   glUniform2i: TglUniform2i;
11752   glUniform3i: TglUniform3i;
11753   glUniform4i: TglUniform4i;
11754   glUniform1fv: TglUniform1fv;
11755   glUniform2fv: TglUniform2fv;
11756   glUniform3fv: TglUniform3fv;
11757   glUniform4fv: TglUniform4fv;
11758   glUniform1iv: TglUniform1iv;
11759   glUniform2iv: TglUniform2iv;
11760   glUniform3iv: TglUniform3iv;
11761   glUniform4iv: TglUniform4iv;
11762   glUniformMatrix2fv: TglUniformMatrix2fv;
11763   glUniformMatrix3fv: TglUniformMatrix3fv;
11764   glUniformMatrix4fv: TglUniformMatrix4fv;
11765   glValidateProgram: TglValidateProgram;
11766   glVertexAttrib1d: TglVertexAttrib1d;
11767   glVertexAttrib1dv: TglVertexAttrib1dv;
11768   glVertexAttrib1f: TglVertexAttrib1f;
11769   glVertexAttrib1fv: TglVertexAttrib1fv;
11770   glVertexAttrib1s: TglVertexAttrib1s;
11771   glVertexAttrib1sv: TglVertexAttrib1sv;
11772   glVertexAttrib2d: TglVertexAttrib2d;
11773   glVertexAttrib2dv: TglVertexAttrib2dv;
11774   glVertexAttrib2f: TglVertexAttrib2f;
11775   glVertexAttrib2fv: TglVertexAttrib2fv;
11776   glVertexAttrib2s: TglVertexAttrib2s;
11777   glVertexAttrib2sv: TglVertexAttrib2sv;
11778   glVertexAttrib3d: TglVertexAttrib3d;
11779   glVertexAttrib3dv: TglVertexAttrib3dv;
11780   glVertexAttrib3f: TglVertexAttrib3f;
11781   glVertexAttrib3fv: TglVertexAttrib3fv;
11782   glVertexAttrib3s: TglVertexAttrib3s;
11783   glVertexAttrib3sv: TglVertexAttrib3sv;
11784   glVertexAttrib4Nbv: TglVertexAttrib4Nbv;
11785   glVertexAttrib4Niv: TglVertexAttrib4Niv;
11786   glVertexAttrib4Nsv: TglVertexAttrib4Nsv;
11787   glVertexAttrib4Nub: TglVertexAttrib4Nub;
11788   glVertexAttrib4Nubv: TglVertexAttrib4Nubv;
11789   glVertexAttrib4Nuiv: TglVertexAttrib4Nuiv;
11790   glVertexAttrib4Nusv: TglVertexAttrib4Nusv;
11791   glVertexAttrib4bv: TglVertexAttrib4bv;
11792   glVertexAttrib4d: TglVertexAttrib4d;
11793   glVertexAttrib4dv: TglVertexAttrib4dv;
11794   glVertexAttrib4f: TglVertexAttrib4f;
11795   glVertexAttrib4fv: TglVertexAttrib4fv;
11796   glVertexAttrib4iv: TglVertexAttrib4iv;
11797   glVertexAttrib4s: TglVertexAttrib4s;
11798   glVertexAttrib4sv: TglVertexAttrib4sv;
11799   glVertexAttrib4ubv: TglVertexAttrib4ubv;
11800   glVertexAttrib4uiv: TglVertexAttrib4uiv;
11801   glVertexAttrib4usv: TglVertexAttrib4usv;
11802   glVertexAttribPointer: TglVertexAttribPointer;
11803
11804   // GL_VERSION_2_1
11805   glUniformMatrix2x3fv: TglUniformMatrix2x3fv;
11806   glUniformMatrix3x2fv: TglUniformMatrix3x2fv;
11807   glUniformMatrix2x4fv: TglUniformMatrix2x4fv;
11808   glUniformMatrix4x2fv: TglUniformMatrix4x2fv;
11809   glUniformMatrix3x4fv: TglUniformMatrix3x4fv;
11810   glUniformMatrix4x3fv: TglUniformMatrix4x3fv;
11811
11812   // GL_VERSION_3_0
11813   glColorMaski: TglColorMaski;
11814   glGetBooleani_v: TglGetBooleani_v;
11815   glGetIntegeri_v: TglGetIntegeri_v;
11816   glEnablei: TglEnablei;
11817   glDisablei: TglDisablei;
11818   glIsEnabledi: TglIsEnabledi;
11819   glBeginTransformFeedback: TglBeginTransformFeedback;
11820   glEndTransformFeedback: TglEndTransformFeedback;
11821   glBindBufferRange: TglBindBufferRange;
11822   glBindBufferBase: TglBindBufferBase;
11823   glTransformFeedbackVaryings: TglTransformFeedbackVaryings;
11824   glGetTransformFeedbackVarying: TglGetTransformFeedbackVarying;
11825   glClampColor: TglClampColor;
11826   glBeginConditionalRender: TglBeginConditionalRender;
11827   glEndConditionalRender: TglEndConditionalRender;
11828   glVertexAttribI1i: TglVertexAttribI1i;
11829   glVertexAttribI2i: TglVertexAttribI2i;
11830   glVertexAttribI3i: TglVertexAttribI3i;
11831   glVertexAttribI4i: TglVertexAttribI4i;
11832   glVertexAttribI1ui: TglVertexAttribI1ui;
11833   glVertexAttribI2ui: TglVertexAttribI2ui;
11834   glVertexAttribI3ui: TglVertexAttribI3ui;
11835   glVertexAttribI4ui: TglVertexAttribI4ui;
11836   glVertexAttribI1iv: TglVertexAttribI1iv;
11837   glVertexAttribI2iv: TglVertexAttribI2iv;
11838   glVertexAttribI3iv: TglVertexAttribI3iv;
11839   glVertexAttribI4iv: TglVertexAttribI4iv;
11840   glVertexAttribI1uiv: TglVertexAttribI1uiv;
11841   glVertexAttribI2uiv: TglVertexAttribI2uiv;
11842   glVertexAttribI3uiv: TglVertexAttribI3uiv;
11843   glVertexAttribI4uiv: TglVertexAttribI4uiv;
11844   glVertexAttribI4bv: TglVertexAttribI4bv;
11845   glVertexAttribI4sv: TglVertexAttribI4sv;
11846   glVertexAttribI4ubv: TglVertexAttribI4ubv;
11847   glVertexAttribI4usv: TglVertexAttribI4usv;
11848   glVertexAttribIPointer: TglVertexAttribIPointer;
11849   glGetVertexAttribIiv: TglGetVertexAttribIiv;
11850   glGetVertexAttribIuiv: TglGetVertexAttribIuiv;
11851   glGetUniformuiv: TglGetUniformuiv;
11852   glBindFragDataLocation: TglBindFragDataLocation;
11853   glGetFragDataLocation: TglGetFragDataLocation;
11854   glUniform1ui: TglUniform1ui;
11855   glUniform2ui: TglUniform2ui;
11856   glUniform3ui: TglUniform3ui;
11857   glUniform4ui: TglUniform4ui;
11858   glUniform1uiv: TglUniform1uiv;
11859   glUniform2uiv: TglUniform2uiv;
11860   glUniform3uiv: TglUniform3uiv;
11861   glUniform4uiv: TglUniform4uiv;
11862   glTexParameterIiv: TglTexParameterIiv;
11863   glTexParameterIuiv: TglTexParameterIuiv;
11864   glGetTexParameterIiv: TglGetTexParameterIiv;
11865   glGetTexParameterIuiv: TglGetTexParameterIuiv;
11866   glClearBufferiv: TglClearBufferiv;
11867   glClearBufferuiv: TglClearBufferuiv;
11868   glClearBufferfv: TglClearBufferfv;
11869   glClearBufferfi: TglClearBufferfi;
11870   glGetStringi: TglGetStringi;
11871
11872   // GL_VERSION_2_1
11873   glEnableVertexArrayEXT : TglEnableVertexArrayEXT;
11874   glEnableVertexArrayAttribEXT : TglEnableVertexArrayAttribEXT;
11875   glVertexArrayVertexAttribOffsetEXT : TglVertexArrayVertexAttribOffsetEXT;
11876
11877   // GL_VERSION_3_1
11878   glDrawArraysInstanced: TglDrawArraysInstanced;
11879   glDrawElementsInstanced: TglDrawElementsInstanced;
11880   glTexBuffer: TglTexBuffer;
11881   glPrimitiveRestartIndex: TglPrimitiveRestartIndex;
11882
11883   // GL_VERSION_3_2
11884   glGetInteger64i_v: TglGetInteger64i_v;
11885   glGetBufferParameteri64v: TglGetBufferParameteri64v;
11886   glFramebufferTexture: TglFramebufferTexture;
11887
11888   // GL_VERSION_3_3
11889   glVertexAttribDivisor: TglVertexAttribDivisor;
11890
11891   // GL_VERSION_4_0
11892   { OpenGL 4.0 also reuses entry points from these extensions: }
11893   { ARB_texture_query_lod (no entry points) }
11894   { ARB_draw_indirect }
11895   { ARB_gpu_shader5 (no entry points) }
11896   { ARB_gpu_shader_fp64 }
11897   { ARB_shader_subroutine }
11898   { ARB_tessellation_shader }
11899   { ARB_texture_buffer_object_rgb32 (no entry points) }
11900   { ARB_texture_cube_map_array (no entry points) }
11901   { ARB_texture_gather (no entry points) }
11902   { ARB_transform_feedback2 }
11903   { ARB_transform_feedback3 }
11904   glMinSampleShading: TglMinSampleShading;
11905   glBlendEquationi: TglBlendEquationi;
11906   glBlendEquationSeparatei: TglBlendEquationSeparatei;
11907   glBlendFunci: TglBlendFunci;
11908   glBlendFuncSeparatei: TglBlendFuncSeparatei;
11909
11910   // GL_3DFX_tbuffer
11911   glTbufferMask3DFX: TglTbufferMask3DFX;
11912
11913   // GL_APPLE_element_array
11914   glElementPointerAPPLE: TglElementPointerAPPLE;
11915   glDrawElementArrayAPPLE: TglDrawElementArrayAPPLE;
11916   glDrawRangeElementArrayAPPLE: TglDrawRangeElementArrayAPPLE;
11917   glMultiDrawElementArrayAPPLE: TglMultiDrawElementArrayAPPLE;
11918   glMultiDrawRangeElementArrayAPPLE: TglMultiDrawRangeElementArrayAPPLE;
11919
11920   // GL_APPLE_fence
11921   glGenFencesAPPLE: TglGenFencesAPPLE;
11922   glDeleteFencesAPPLE: TglDeleteFencesAPPLE;
11923   glSetFenceAPPLE: TglSetFenceAPPLE;
11924   glIsFenceAPPLE: TglIsFenceAPPLE;
11925   glTestFenceAPPLE: TglTestFenceAPPLE;
11926   glFinishFenceAPPLE: TglFinishFenceAPPLE;
11927   glTestObjectAPPLE: TglTestObjectAPPLE;
11928   glFinishObjectAPPLE: TglFinishObjectAPPLE;
11929
11930   // GL_APPLE_vertex_array_object
11931   glBindVertexArrayAPPLE: TglBindVertexArrayAPPLE;
11932   glDeleteVertexArraysAPPLE: TglDeleteVertexArraysAPPLE;
11933   glGenVertexArraysAPPLE: TglGenVertexArraysAPPLE;
11934   glIsVertexArrayAPPLE: TglIsVertexArrayAPPLE;
11935
11936   // GL_APPLE_vertex_array_range
11937   glVertexArrayRangeAPPLE: TglVertexArrayRangeAPPLE;
11938   glFlushVertexArrayRangeAPPLE: TglFlushVertexArrayRangeAPPLE;
11939   glVertexArrayParameteriAPPLE: TglVertexArrayParameteriAPPLE;
11940
11941   // GL_APPLE_texture_range
11942   glTextureRangeAPPLE: TglTextureRangeAPPLE;
11943   glGetTexParameterPointervAPPLE: TglGetTexParameterPointervAPPLE;
11944
11945   // GL_APPLE_vertex_program_evaluators
11946   glEnableVertexAttribAPPLE: TglEnableVertexAttribAPPLE;
11947   glDisableVertexAttribAPPLE: TglDisableVertexAttribAPPLE;
11948   glIsVertexAttribEnabledAPPLE: TglIsVertexAttribEnabledAPPLE;
11949   glMapVertexAttrib1dAPPLE: TglMapVertexAttrib1dAPPLE;
11950   glMapVertexAttrib1fAPPLE: TglMapVertexAttrib1fAPPLE;
11951   glMapVertexAttrib2dAPPLE: TglMapVertexAttrib2dAPPLE;
11952   glMapVertexAttrib2fAPPLE: TglMapVertexAttrib2fAPPLE;
11953
11954   // GL_APPLE_object_purgeable
11955   glObjectPurgeableAPPLE: TglObjectPurgeableAPPLE;
11956   glObjectUnpurgeableAPPLE: TglObjectUnpurgeableAPPLE;
11957   glGetObjectParameterivAPPLE: TglGetObjectParameterivAPPLE;
11958
11959   // GL_ARB_matrix_palette
11960   glCurrentPaletteMatrixARB: TglCurrentPaletteMatrixARB;
11961   glMatrixIndexubvARB: TglMatrixIndexubvARB;
11962   glMatrixIndexusvARB: TglMatrixIndexusvARB;
11963   glMatrixIndexuivARB: TglMatrixIndexuivARB;
11964   glMatrixIndexPointerARB: TglMatrixIndexPointerARB;
11965
11966   // GL_ARB_multisample
11967   glSampleCoverageARB: TglSampleCoverageARB;
11968
11969   // GL_ARB_multitexture
11970   glActiveTextureARB: TglActiveTextureARB;
11971   glClientActiveTextureARB: TglClientActiveTextureARB;
11972   glMultiTexCoord1dARB: TglMultiTexCoord1dARB;
11973   glMultiTexCoord1dvARB: TglMultiTexCoord1dvARB;
11974   glMultiTexCoord1fARB: TglMultiTexCoord1fARB;
11975   glMultiTexCoord1fvARB: TglMultiTexCoord1fvARB;
11976   glMultiTexCoord1iARB: TglMultiTexCoord1iARB;
11977   glMultiTexCoord1ivARB: TglMultiTexCoord1ivARB;
11978   glMultiTexCoord1sARB: TglMultiTexCoord1sARB;
11979   glMultiTexCoord1svARB: TglMultiTexCoord1svARB;
11980   glMultiTexCoord2dARB: TglMultiTexCoord2dARB;
11981   glMultiTexCoord2dvARB: TglMultiTexCoord2dvARB;
11982   glMultiTexCoord2fARB: TglMultiTexCoord2fARB;
11983   glMultiTexCoord2fvARB: TglMultiTexCoord2fvARB;
11984   glMultiTexCoord2iARB: TglMultiTexCoord2iARB;
11985   glMultiTexCoord2ivARB: TglMultiTexCoord2ivARB;
11986   glMultiTexCoord2sARB: TglMultiTexCoord2sARB;
11987   glMultiTexCoord2svARB: TglMultiTexCoord2svARB;
11988   glMultiTexCoord3dARB: TglMultiTexCoord3dARB;
11989   glMultiTexCoord3dvARB: TglMultiTexCoord3dvARB;
11990   glMultiTexCoord3fARB: TglMultiTexCoord3fARB;
11991   glMultiTexCoord3fvARB: TglMultiTexCoord3fvARB;
11992   glMultiTexCoord3iARB: TglMultiTexCoord3iARB;
11993   glMultiTexCoord3ivARB: TglMultiTexCoord3ivARB;
11994   glMultiTexCoord3sARB: TglMultiTexCoord3sARB;
11995   glMultiTexCoord3svARB: TglMultiTexCoord3svARB;
11996   glMultiTexCoord4dARB: TglMultiTexCoord4dARB;
11997   glMultiTexCoord4dvARB: TglMultiTexCoord4dvARB;
11998   glMultiTexCoord4fARB: TglMultiTexCoord4fARB;
11999   glMultiTexCoord4fvARB: TglMultiTexCoord4fvARB;
12000   glMultiTexCoord4iARB: TglMultiTexCoord4iARB;
12001   glMultiTexCoord4ivARB: TglMultiTexCoord4ivARB;
12002   glMultiTexCoord4sARB: TglMultiTexCoord4sARB;
12003   glMultiTexCoord4svARB: TglMultiTexCoord4svARB;
12004
12005   // GL_ARB_point_parameters
12006   glPointParameterfARB: TglPointParameterfARB;
12007   glPointParameterfvARB: TglPointParameterfvARB;
12008
12009   // GL_ARB_texture_compression
12010   glCompressedTexImage3DARB: TglCompressedTexImage3DARB;
12011   glCompressedTexImage2DARB: TglCompressedTexImage2DARB;
12012   glCompressedTexImage1DARB: TglCompressedTexImage1DARB;
12013   glCompressedTexSubImage3DARB: TglCompressedTexSubImage3DARB;
12014   glCompressedTexSubImage2DARB: TglCompressedTexSubImage2DARB;
12015   glCompressedTexSubImage1DARB: TglCompressedTexSubImage1DARB;
12016   glGetCompressedTexImageARB: TglGetCompressedTexImageARB;
12017
12018   // GL_ARB_transpose_matrix
12019   glLoadTransposeMatrixfARB: TglLoadTransposeMatrixfARB;
12020   glLoadTransposeMatrixdARB: TglLoadTransposeMatrixdARB;
12021   glMultTransposeMatrixfARB: TglMultTransposeMatrixfARB;
12022   glMultTransposeMatrixdARB: TglMultTransposeMatrixdARB;
12023
12024   // GL_ARB_vertex_blend
12025   glWeightbvARB: TglWeightbvARB;
12026   glWeightsvARB: TglWeightsvARB;
12027   glWeightivARB: TglWeightivARB;
12028   glWeightfvARB: TglWeightfvARB;
12029   glWeightdvARB: TglWeightdvARB;
12030   glWeightubvARB: TglWeightubvARB;
12031   glWeightusvARB: TglWeightusvARB;
12032   glWeightuivARB: TglWeightuivARB;
12033   glWeightPointerARB: TglWeightPointerARB;
12034   glVertexBlendARB: TglVertexBlendARB;
12035
12036   // GL_ARB_vertex_buffer_object
12037   glBindBufferARB: TglBindBufferARB;
12038   glDeleteBuffersARB: TglDeleteBuffersARB;
12039   glGenBuffersARB: TglGenBuffersARB;
12040   glIsBufferARB: TglIsBufferARB;
12041   glBufferDataARB: TglBufferDataARB;
12042   glBufferSubDataARB: TglBufferSubData;
12043   glGetBufferSubDataARB: TglGetBufferSubDataARB;
12044   glMapBufferARB: TglMapBufferARB;
12045   glUnmapBufferARB: TglUnmapBufferARB;
12046   glGetBufferParameterivARB: TglGetBufferParameterivARB;
12047   glGetBufferPointervARB: TglGetBufferPointervARB;
12048
12049   // GL_ARB_vertex_program
12050   glVertexAttrib1dARB: TglVertexAttrib1dARB;
12051   glVertexAttrib1dvARB: TglVertexAttrib1dvARB;
12052   glVertexAttrib1fARB: TglVertexAttrib1fARB;
12053   glVertexAttrib1fvARB: TglVertexAttrib1fvARB;
12054   glVertexAttrib1sARB: TglVertexAttrib1sARB;
12055   glVertexAttrib1svARB: TglVertexAttrib1svARB;
12056   glVertexAttrib2dARB: TglVertexAttrib2dARB;
12057   glVertexAttrib2dvARB: TglVertexAttrib2dvARB;
12058   glVertexAttrib2fARB: TglVertexAttrib2fARB;
12059   glVertexAttrib2fvARB: TglVertexAttrib2fvARB;
12060   glVertexAttrib2sARB: TglVertexAttrib2sARB;
12061   glVertexAttrib2svARB: TglVertexAttrib2svARB;
12062   glVertexAttrib3dARB: TglVertexAttrib3dARB;
12063   glVertexAttrib3dvARB: TglVertexAttrib3dvARB;
12064   glVertexAttrib3fARB: TglVertexAttrib3fARB;
12065   glVertexAttrib3fvARB: TglVertexAttrib3fvARB;
12066   glVertexAttrib3sARB: TglVertexAttrib3sARB;
12067   glVertexAttrib3svARB: TglVertexAttrib3svARB;
12068   glVertexAttrib4NbvARB: TglVertexAttrib4NbvARB;
12069   glVertexAttrib4NivARB: TglVertexAttrib4NivARB;
12070   glVertexAttrib4NsvARB: TglVertexAttrib4NsvARB;
12071   glVertexAttrib4NubARB: TglVertexAttrib4NubARB;
12072   glVertexAttrib4NubvARB: TglVertexAttrib4NubvARB;
12073   glVertexAttrib4NuivARB: TglVertexAttrib4NuivARB;
12074   glVertexAttrib4NusvARB: TglVertexAttrib4NusvARB;
12075   glVertexAttrib4bvARB: TglVertexAttrib4bvARB;
12076   glVertexAttrib4dARB: TglVertexAttrib4dARB;
12077   glVertexAttrib4dvARB: TglVertexAttrib4dvARB;
12078   glVertexAttrib4fARB: TglVertexAttrib4fARB;
12079   glVertexAttrib4fvARB: TglVertexAttrib4fvARB;
12080   glVertexAttrib4ivARB: TglVertexAttrib4ivARB;
12081   glVertexAttrib4sARB: TglVertexAttrib4sARB;
12082   glVertexAttrib4svARB: TglVertexAttrib4svARB;
12083   glVertexAttrib4ubvARB: TglVertexAttrib4ubvARB;
12084   glVertexAttrib4uivARB: TglVertexAttrib4uivARB;
12085   glVertexAttrib4usvARB: TglVertexAttrib4usvARB;
12086   glVertexAttribPointerARB: TglVertexAttribPointerARB;
12087   glEnableVertexAttribArrayARB: TglEnableVertexAttribArrayARB;
12088   glDisableVertexAttribArrayARB: TglDisableVertexAttribArrayARB;
12089   glProgramStringARB: TglProgramStringARB;
12090   glBindProgramARB: TglBindProgramARB;
12091   glDeleteProgramsARB: TglDeleteProgramsARB;
12092   glGenProgramsARB: TglGenProgramsARB;
12093
12094   glProgramEnvParameter4dARB: TglProgramEnvParameter4dARB;
12095   glProgramEnvParameter4dvARB: TglProgramEnvParameter4dvARB;
12096   glProgramEnvParameter4fARB: TglProgramEnvParameter4fARB;
12097   glProgramEnvParameter4fvARB: TglProgramEnvParameter4fvARB;
12098   glProgramLocalParameter4dARB: TglProgramLocalParameter4dARB;
12099   glProgramLocalParameter4dvARB: TglProgramLocalParameter4dvARB;
12100   glProgramLocalParameter4fARB: TglProgramLocalParameter4fARB;
12101   glProgramLocalParameter4fvARB: TglProgramLocalParameter4fvARB;
12102   glGetProgramEnvParameterdvARB: TglGetProgramEnvParameterdvARB;
12103   glGetProgramEnvParameterfvARB: TglGetProgramEnvParameterfvARB;
12104   glGetProgramLocalParameterdvARB: TglGetProgramLocalParameterdvARB;
12105   glGetProgramLocalParameterfvARB: TglGetProgramLocalParameterfvARB;
12106   glGetProgramivARB: TglGetProgramivARB;
12107   glGetProgramStringARB: TglGetProgramStringARB;
12108   glGetVertexAttribdvARB: TglGetVertexAttribdvARB;
12109   glGetVertexAttribfvARB: TglGetVertexAttribfvARB;
12110   glGetVertexAttribivARB: TglGetVertexAttribivARB;
12111   glGetVertexAttribPointervARB: TglGetVertexAttribPointervARB;
12112   glIsProgramARB: TglIsProgramARB;
12113
12114   // GL_ARB_window_pos
12115   glWindowPos2dARB: TglWindowPos2dARB;
12116   glWindowPos2dvARB: TglWindowPos2dvARB;
12117   glWindowPos2fARB: TglWindowPos2fARB;
12118   glWindowPos2fvARB: TglWindowPos2fvARB;
12119   glWindowPos2iARB: TglWindowPos2iARB;
12120   glWindowPos2ivARB: TglWindowPos2ivARB;
12121   glWindowPos2sARB: TglWindowPos2sARB;
12122   glWindowPos2svARB: TglWindowPos2svARB;
12123   glWindowPos3dARB: TglWindowPos3dARB;
12124   glWindowPos3dvARB: TglWindowPos3dvARB;
12125   glWindowPos3fARB: TglWindowPos3fARB;
12126   glWindowPos3fvARB: TglWindowPos3fvARB;
12127   glWindowPos3iARB: TglWindowPos3iARB;
12128   glWindowPos3ivARB: TglWindowPos3ivARB;
12129   glWindowPos3sARB: TglWindowPos3sARB;
12130   glWindowPos3svARB: TglWindowPos3svARB;
12131
12132   // GL_ARB_draw_buffers
12133   glDrawBuffersARB: TglDrawBuffersARB;
12134
12135   // GL_ARB_color_buffer_float
12136   glClampColorARB: TglClampColorARB;
12137
12138   // GL_ARB_vertex_shader
12139   glGetActiveAttribARB: TglGetActiveAttribARB;
12140   glGetAttribLocationARB: TglGetAttribLocationARB;
12141   glBindAttribLocationARB: TglBindAttribLocationARB;
12142
12143   // GL_ARB_shader_objects
12144   glDeleteObjectARB: TglDeleteObjectARB;
12145   glGetHandleARB: TglGetHandleARB;
12146   glDetachObjectARB: TglDetachObjectARB;
12147   glCreateShaderObjectARB: TglCreateShaderObjectARB;
12148   glShaderSourceARB: TglShaderSourceARB;
12149   glCompileShaderARB: TglCompileShaderARB;
12150   glCreateProgramObjectARB: TglCreateProgramObjectARB;
12151   glAttachObjectARB: TglAttachObjectARB;
12152   glLinkProgramARB: TglLinkProgramARB;
12153   glUseProgramObjectARB: TglUseProgramObjectARB;
12154   glValidateProgramARB: TglValidateProgramARB;
12155   glUniform1fARB: TglUniform1fARB;
12156   glUniform2fARB: TglUniform2fARB;
12157   glUniform3fARB: TglUniform3fARB;
12158   glUniform4fARB: TglUniform4fARB;
12159   glUniform1iARB: TglUniform1iARB;
12160   glUniform2iARB: TglUniform2iARB;
12161   glUniform3iARB: TglUniform3iARB;
12162   glUniform4iARB: TglUniform4iARB;
12163   glUniform1fvARB: TglUniform1fvARB;
12164   glUniform2fvARB: TglUniform2fvARB;
12165   glUniform3fvARB: TglUniform3fvARB;
12166   glUniform4fvARB: TglUniform4fvARB;
12167   glUniform1ivARB: TglUniform1ivARB;
12168   glUniform2ivARB: TglUniform2ivARB;
12169   glUniform3ivARB: TglUniform3ivARB;
12170   glUniform4ivARB: TglUniform4ivARB;
12171   glUniformMatrix2fvARB: TglUniformMatrix2fvARB;
12172   glUniformMatrix3fvARB: TglUniformMatrix3fvARB;
12173   glUniformMatrix4fvARB: TglUniformMatrix4fvARB;
12174   glGetObjectParameterfvARB: TglGetObjectParameterfvARB;
12175   glGetObjectParameterivARB: TglGetObjectParameterivARB;
12176   glGetInfoLogARB: TglGetInfoLogARB;
12177   glGetAttachedObjectsARB: TglGetAttachedObjectsARB;
12178   glGetUniformLocationARB: TglGetUniformLocationARB;
12179   glGetActiveUniformARB: TglGetActiveUniformARB;
12180   glGetUniformfvARB: TglGetUniformfvARB;
12181   glGetUniformivARB: TglGetUniformivARB;
12182   glGetShaderSourceARB: TglGetShaderSourceARB;
12183
12184   // GL_ARB_Occlusion_Query
12185   glGenQueriesARB: TglGenQueriesARB;
12186   glDeleteQueriesARB: TglDeleteQueriesARB;
12187   glIsQueryARB: TglIsQueryARB;
12188   glBeginQueryARB: TglBeginQueryARB;
12189   glEndQueryARB: TglEndQueryARB;
12190   glGetQueryivARB: TglGetQueryivARB;
12191   glGetQueryObjectivARB: TglGetQueryObjectivARB;
12192   glGetQueryObjectuivARB: TglGetQueryObjectuivARB;
12193
12194   // GL_ARB_draw_instanced
12195   glDrawArraysInstancedARB: TglDrawArraysInstancedARB;
12196   glDrawElementsInstancedARB: TglDrawElementsInstancedARB;
12197
12198   // GL_ARB_framebuffer_object
12199   glIsRenderbuffer: TglIsRenderbuffer;
12200   glBindRenderbuffer: TglBindRenderbuffer;
12201   glDeleteRenderbuffers: TglDeleteRenderbuffers;
12202   glGenRenderbuffers: TglGenRenderbuffers;
12203   glRenderbufferStorage: TglRenderbufferStorage;
12204   glGetRenderbufferParameteriv: TglGetRenderbufferParameteriv;
12205   glIsFramebuffer: TglIsFramebuffer;
12206   glBindFramebuffer: TglBindFramebuffer;
12207   glDeleteFramebuffers: TglDeleteFramebuffers;
12208   glGenFramebuffers: TglGenFramebuffers;
12209   glCheckFramebufferStatus: TglCheckFramebufferStatus;
12210   glFramebufferTexture1D: TglFramebufferTexture1D;
12211   glFramebufferTexture2D: TglFramebufferTexture2D;
12212   glFramebufferTexture3D: TglFramebufferTexture3D;
12213   glFramebufferRenderbuffer: TglFramebufferRenderbuffer;
12214   glGetFramebufferAttachmentParameteriv: TglGetFramebufferAttachmentParameteriv;
12215   glGenerateMipmap: TglGenerateMipmap;
12216   glBlitFramebuffer: TglBlitFramebuffer;
12217   glRenderbufferStorageMultisample: TglRenderbufferStorageMultisample;
12218   glFramebufferTextureLayer: TglFramebufferTextureLayer;
12219
12220   // GL_ARB_geometry_shader4
12221   glProgramParameteriARB: TglProgramParameteriARB;
12222   glFramebufferTextureARB: TglFramebufferTextureARB;
12223   glFramebufferTextureLayerARB: TglFramebufferTextureLayerARB;
12224   glFramebufferTextureFaceARB: TglFramebufferTextureFaceARB;
12225
12226   // GL_ARB_instanced_arrays
12227   glVertexAttribDivisorARB: TglVertexAttribDivisorARB;
12228
12229   // GL_ARB_map_buffer_range
12230   glMapBufferRange: TglMapBufferRange;
12231   glFlushMappedBufferRange: TglFlushMappedBufferRange;
12232
12233   // GL_ARB_texture_buffer_object
12234   glTexBufferARB: TglTexBufferARB;
12235
12236   // GL_ARB_vertex_array_object
12237   glBindVertexArray: TglBindVertexArray;
12238   glDeleteVertexArrays: TglDeleteVertexArrays;
12239   glGenVertexArrays: TglGenVertexArrays;
12240   glIsVertexArray: TglIsVertexArray;
12241
12242   // GL_ARB_uniform_buffer_object
12243   glGetUniformIndices: TglGetUniformIndices;
12244   glGetActiveUniformsiv: TglGetActiveUniformsiv;
12245   glGetActiveUniformName: TglGetActiveUniformName;
12246   glGetUniformBlockIndex: TglGetUniformBlockIndex;
12247   glGetActiveUniformBlockiv: TglGetActiveUniformBlockiv;
12248   glGetActiveUniformBlockName: TglGetActiveUniformBlockName;
12249   glUniformBlockBinding: TglUniformBlockBinding;
12250
12251   // GL_ARB_copy_buffer
12252   glCopyBufferSubData: TglCopyBufferSubData;
12253
12254   // GL_ARB_draw_elements_base_vertex
12255   glDrawElementsBaseVertex: TglDrawElementsBaseVertex;
12256   glDrawRangeElementsBaseVertex: TglDrawRangeElementsBaseVertex;
12257   glDrawElementsInstancedBaseVertex: TglDrawElementsInstancedBaseVertex;
12258   glMultiDrawElementsBaseVertex: TglMultiDrawElementsBaseVertex;
12259
12260   // GL_ARB_provoking_vertex
12261   glProvokingVertex: TglProvokingVertex;
12262
12263   // GL_ARB_sync
12264   glFenceSync: TglFenceSync;
12265   glIsSync: TglIsSync;
12266   glDeleteSync: TglDeleteSync;
12267   glClientWaitSync: TglClientWaitSync;
12268   glWaitSync: TglWaitSync;
12269   glGetInteger64v: TglGetInteger64v;
12270   glGetSynciv: TglGetSynciv;
12271
12272   // GL_ARB_texture_multisample
12273   glTexImage2DMultisample: TglTexImage2DMultisample;
12274   glTexImage3DMultisample: TglTexImage3DMultisample;
12275   glGetMultisamplefv: TglGetMultisamplefv;
12276   glSampleMaski: TglSampleMaski;
12277
12278   // GL_ARB_draw_buffers_blend
12279   glBlendEquationiARB: TglBlendEquationiARB;
12280   glBlendEquationSeparateiARB: TglBlendEquationSeparateiARB;
12281   glBlendFunciARB: TglBlendFunciARB;
12282   glBlendFuncSeparateiARB: TglBlendFuncSeparateiARB;
12283
12284   // GL_ARB_sample_shading
12285   glMinSampleShadingARB: TglMinSampleShadingARB;
12286
12287   // GL_ARB_shading_language_include
12288   glNamedStringARB: TglNamedStringARB;
12289   glDeleteNamedStringARB: TglDeleteNamedStringARB;
12290   glCompileShaderIncludeARB: TglCompileShaderIncludeARB;
12291   glIsNamedStringARB: TglIsNamedStringARB;
12292   glGetNamedStringARB: TglGetNamedStringARB;
12293   glGetNamedStringivARB: TglGetNamedStringivARB;
12294
12295   // GL_ARB_blend_func_extended
12296   glBindFragDataLocationIndexed: TglBindFragDataLocationIndexed;
12297   glGetFragDataIndex: TglGetFragDataIndex;
12298
12299   // GL_ARB_sampler_objects
12300   glGenSamplers: TglGenSamplers;
12301   glDeleteSamplers: TglDeleteSamplers;
12302   glIsSampler: TglIsSampler;
12303   glBindSampler: TglBindSampler;
12304   glSamplerParameteri: TglSamplerParameteri;
12305   glSamplerParameteriv: TglSamplerParameteriv;
12306   glSamplerParameterf: TglSamplerParameterf;
12307   glSamplerParameterfv: TglSamplerParameterfv;
12308   glSamplerParameterIiv: TglSamplerParameterIiv;
12309   glSamplerParameterIuiv: TglSamplerParameterIuiv;
12310   glGetSamplerParameteriv: TglGetSamplerParameteriv;
12311   glGetSamplerParameterIiv: TglGetSamplerParameterIiv;
12312   glGetSamplerParameterfv: TglGetSamplerParameterfv;
12313   glGetSamplerParameterIuiv: TglGetSamplerParameterIuiv;
12314
12315   // GL_ARB_timer_query
12316   glQueryCounter: TglQueryCounter;
12317   glGetQueryObjecti64v: TglGetQueryObjecti64v;
12318   glGetQueryObjectui64v: TglGetQueryObjectui64v;
12319
12320   // GL_ARB_vertex_type_2_10_10_10_rev
12321   glVertexP2ui: TglVertexP2ui;
12322   glVertexP2uiv: TglVertexP2uiv;
12323   glVertexP3ui: TglVertexP3ui;
12324   glVertexP3uiv: TglVertexP3uiv;
12325   glVertexP4ui: TglVertexP4ui;
12326   glVertexP4uiv: TglVertexP4uiv;
12327   glTexCoordP1ui: TglTexCoordP1ui;
12328   glTexCoordP1uiv: TglTexCoordP1uiv;
12329   glTexCoordP2ui: TglTexCoordP2ui;
12330   glTexCoordP2uiv: TglTexCoordP2uiv;
12331   glTexCoordP3ui: TglTexCoordP3ui;
12332   glTexCoordP3uiv: TglTexCoordP3uiv;
12333   glTexCoordP4ui: TglTexCoordP4ui;
12334   glTexCoordP4uiv: TglTexCoordP4uiv;
12335   glMultiTexCoordP1ui: TglMultiTexCoordP1ui;
12336   glMultiTexCoordP1uiv: TglMultiTexCoordP1uiv;
12337   glMultiTexCoordP2ui: TglMultiTexCoordP2ui;
12338   glMultiTexCoordP2uiv: TglMultiTexCoordP2uiv;
12339   glMultiTexCoordP3ui: TglMultiTexCoordP3ui;
12340   glMultiTexCoordP3uiv: TglMultiTexCoordP3uiv;
12341   glMultiTexCoordP4ui: TglMultiTexCoordP4ui;
12342   glMultiTexCoordP4uiv: TglMultiTexCoordP4uiv;
12343   glNormalP3ui: TglNormalP3ui;
12344   glNormalP3uiv: TglNormalP3uiv;
12345   glColorP3ui: TglColorP3ui;
12346   glColorP3uiv: TglColorP3uiv;
12347   glColorP4ui: TglColorP4ui;
12348   glColorP4uiv: TglColorP4uiv;
12349   glSecondaryColorP3ui: TglSecondaryColorP3ui;
12350   glSecondaryColorP3uiv: TglSecondaryColorP3uiv;
12351   glVertexAttribP1ui: TglVertexAttribP1ui;
12352   glVertexAttribP1uiv: TglVertexAttribP1uiv;
12353   glVertexAttribP2ui: TglVertexAttribP2ui;
12354   glVertexAttribP2uiv: TglVertexAttribP2uiv;
12355   glVertexAttribP3ui: TglVertexAttribP3ui;
12356   glVertexAttribP3uiv: TglVertexAttribP3uiv;
12357   glVertexAttribP4ui: TglVertexAttribP4ui;
12358   glVertexAttribP4uiv: TglVertexAttribP4uiv;
12359
12360   // GL_ARB_draw_indirect
12361   glDrawArraysIndirect: TglDrawArraysIndirect;
12362   glDrawElementsIndirect: TglDrawElementsIndirect;
12363
12364   // GL_ARB_gpu_shader_fp64
12365   glUniform1d: TglUniform1d;
12366   glUniform2d: TglUniform2d;
12367   glUniform3d: TglUniform3d;
12368   glUniform4d: TglUniform4d;
12369   glUniform1dv: TglUniform1dv;
12370   glUniform2dv: TglUniform2dv;
12371   glUniform3dv: TglUniform3dv;
12372   glUniform4dv: TglUniform4dv;
12373   glUniformMatrix2dv: TglUniformMatrix2dv;
12374   glUniformMatrix3dv: TglUniformMatrix3dv;
12375   glUniformMatrix4dv: TglUniformMatrix4dv;
12376   glUniformMatrix2x3dv: TglUniformMatrix2x3dv;
12377   glUniformMatrix2x4dv: TglUniformMatrix2x4dv;
12378   glUniformMatrix3x2dv: TglUniformMatrix3x2dv;
12379   glUniformMatrix3x4dv: TglUniformMatrix3x4dv;
12380   glUniformMatrix4x2dv: TglUniformMatrix4x2dv;
12381   glUniformMatrix4x3dv: TglUniformMatrix4x3dv;
12382   glGetUniformdv: TglGetUniformdv;
12383
12384   // GL_ARB_shader_subroutine
12385   glGetSubroutineUniformLocation: TglGetSubroutineUniformLocation;
12386   glGetSubroutineIndex: TglGetSubroutineIndex;
12387   glGetActiveSubroutineUniformiv: TglGetActiveSubroutineUniformiv;
12388   glGetActiveSubroutineUniformName: TglGetActiveSubroutineUniformName;
12389   glGetActiveSubroutineName: TglGetActiveSubroutineName;
12390   glUniformSubroutinesuiv: TglUniformSubroutinesuiv;
12391   glGetUniformSubroutineuiv: TglGetUniformSubroutineuiv;
12392   glGetProgramStageiv: TglGetProgramStageiv;
12393
12394   // GL_ARB_tessellation_shader
12395   glPatchParameteri: TglPatchParameteri;
12396   glPatchParameterfv: TglPatchParameterfv;
12397
12398   // GL_ARB_transform_feedback2
12399   glBindTransformFeedback: TglBindTransformFeedback;
12400   glDeleteTransformFeedbacks: TglDeleteTransformFeedbacks;
12401   glGenTransformFeedbacks: TglGenTransformFeedbacks;
12402   glIsTransformFeedback: TglIsTransformFeedback;
12403   glPauseTransformFeedback: TglPauseTransformFeedback;
12404   glResumeTransformFeedback: TglResumeTransformFeedback;
12405   glDrawTransformFeedback: TglDrawTransformFeedback;
12406
12407   // GL_ARB_transform_feedback3
12408   glDrawTransformFeedbackStream: TglDrawTransformFeedbackStream;
12409   glBeginQueryIndexed: TglBeginQueryIndexed;
12410   glEndQueryIndexed: TglEndQueryIndexed;
12411   glGetQueryIndexediv: TglGetQueryIndexediv;
12412
12413   // GL_ARB_ES2_compatibility
12414   glReleaseShaderCompiler: TglReleaseShaderCompiler;
12415   glShaderBinary: TglShaderBinary;
12416   glGetShaderPrecisionFormat: TglGetShaderPrecisionFormat;
12417   glDepthRangef: TglDepthRangef;
12418   glClearDepthf: TglClearDepthf;
12419
12420   // GL_ARB_get_program_binary
12421   glGetProgramBinary: TglGetProgramBinary;
12422   glProgramBinary: TglProgramBinary;
12423   glProgramParameteri: TglProgramParameteri;
12424
12425   // GL_ARB_separate_shader_objects
12426   glUseProgramStages: TglUseProgramStages;
12427   glActiveShaderProgram: TglActiveShaderProgram;
12428   glCreateShaderProgramv: TglCreateShaderProgramv;
12429   glBindProgramPipeline: TglBindProgramPipeline;
12430   glDeleteProgramPipelines: TglDeleteProgramPipelines;
12431   glGenProgramPipelines: TglGenProgramPipelines;
12432   glIsProgramPipeline: TglIsProgramPipeline;
12433   glGetProgramPipelineiv: TglGetProgramPipelineiv;
12434   glProgramUniform1i: TglProgramUniform1i;
12435   glProgramUniform1iv: TglProgramUniform1iv;
12436   glProgramUniform1f: TglProgramUniform1f;
12437   glProgramUniform1fv: TglProgramUniform1fv;
12438   glProgramUniform1d: TglProgramUniform1d;
12439   glProgramUniform1dv: TglProgramUniform1dv;
12440   glProgramUniform1ui: TglProgramUniform1ui;
12441   glProgramUniform1uiv: TglProgramUniform1uiv;
12442   glProgramUniform2i: TglProgramUniform2i;
12443   glProgramUniform2iv: TglProgramUniform2iv;
12444   glProgramUniform2f: TglProgramUniform2f;
12445   glProgramUniform2fv: TglProgramUniform2fv;
12446   glProgramUniform2d: TglProgramUniform2d;
12447   glProgramUniform2dv: TglProgramUniform2dv;
12448   glProgramUniform2ui: TglProgramUniform2ui;
12449   glProgramUniform2uiv: TglProgramUniform2uiv;
12450   glProgramUniform3i: TglProgramUniform3i;
12451   glProgramUniform3iv: TglProgramUniform3iv;
12452   glProgramUniform3f: TglProgramUniform3f;
12453   glProgramUniform3fv: TglProgramUniform3fv;
12454   glProgramUniform3d: TglProgramUniform3d;
12455   glProgramUniform3dv: TglProgramUniform3dv;
12456   glProgramUniform3ui: TglProgramUniform3ui;
12457   glProgramUniform3uiv: TglProgramUniform3uiv;
12458   glProgramUniform4i: TglProgramUniform4i;
12459   glProgramUniform4iv: TglProgramUniform4iv;
12460   glProgramUniform4f: TglProgramUniform4f;
12461   glProgramUniform4fv: TglProgramUniform4fv;
12462   glProgramUniform4d: TglProgramUniform4d;
12463   glProgramUniform4dv: TglProgramUniform4dv;
12464   glProgramUniform4ui: TglProgramUniform4ui;
12465   glProgramUniform4uiv: TglProgramUniform4uiv;
12466   glProgramUniformMatrix2fv: TglProgramUniformMatrix2fv;
12467   glProgramUniformMatrix3fv: TglProgramUniformMatrix3fv;
12468   glProgramUniformMatrix4fv: TglProgramUniformMatrix4fv;
12469   glProgramUniformMatrix2dv: TglProgramUniformMatrix2dv;
12470   glProgramUniformMatrix3dv: TglProgramUniformMatrix3dv;
12471   glProgramUniformMatrix4dv: TglProgramUniformMatrix4dv;
12472   glProgramUniformMatrix2x3fv: TglProgramUniformMatrix2x3fv;
12473   glProgramUniformMatrix3x2fv: TglProgramUniformMatrix3x2fv;
12474   glProgramUniformMatrix2x4fv: TglProgramUniformMatrix2x4fv;
12475   glProgramUniformMatrix4x2fv: TglProgramUniformMatrix4x2fv;
12476   glProgramUniformMatrix3x4fv: TglProgramUniformMatrix3x4fv;
12477   glProgramUniformMatrix4x3fv: TglProgramUniformMatrix4x3fv;
12478   glProgramUniformMatrix2x3dv: TglProgramUniformMatrix2x3dv;
12479   glProgramUniformMatrix3x2dv: TglProgramUniformMatrix3x2dv;
12480   glProgramUniformMatrix2x4dv: TglProgramUniformMatrix2x4dv;
12481   glProgramUniformMatrix4x2dv: TglProgramUniformMatrix4x2dv;
12482   glProgramUniformMatrix3x4dv: TglProgramUniformMatrix3x4dv;
12483   glProgramUniformMatrix4x3dv: TglProgramUniformMatrix4x3dv;
12484   glValidateProgramPipeline: TglValidateProgramPipeline;
12485   glGetProgramPipelineInfoLog: TglGetProgramPipelineInfoLog;
12486
12487   // GL_ARB_vertex_attrib_64bit
12488   glVertexAttribL1d: TglVertexAttribL1d;
12489   glVertexAttribL2d: TglVertexAttribL2d;
12490   glVertexAttribL3d: TglVertexAttribL3d;
12491   glVertexAttribL4d: TglVertexAttribL4d;
12492   glVertexAttribL1dv: TglVertexAttribL1dv;
12493   glVertexAttribL2dv: TglVertexAttribL2dv;
12494   glVertexAttribL3dv: TglVertexAttribL3dv;
12495   glVertexAttribL4dv: TglVertexAttribL4dv;
12496   glVertexAttribLPointer: TglVertexAttribLPointer;
12497   glGetVertexAttribLdv: TglGetVertexAttribLdv;
12498
12499   // GL_ARB_viewport_array
12500   glViewportArrayv: TglViewportArrayv;
12501   glViewportIndexedf: TglViewportIndexedf;
12502   glViewportIndexedfv: TglViewportIndexedfv;
12503   glScissorArrayv: TglScissorArrayv;
12504   glScissorIndexed: TglScissorIndexed;
12505   glScissorIndexedv: TglScissorIndexedv;
12506   glDepthRangeArrayv: TglDepthRangeArrayv;
12507   glDepthRangeIndexed: TglDepthRangeIndexed;
12508   glGetFloati_v: TglGetFloati_v;
12509   glGetDoublei_v: TglGetDoublei_v;
12510
12511   // GL 4.2
12512
12513   // GL_ARB_base_instance
12514   glDrawArraysInstancedBaseInstance : TglDrawArraysInstancedBaseInstance;
12515   glDrawElementsInstancedBaseInstance : TglDrawElementsInstancedBaseInstance;
12516   glDrawElementsInstancedBaseVertexBaseInstance : TglDrawElementsInstancedBaseVertexBaseInstance;
12517
12518   // GL_ARB_transform_feedback_instanced
12519   glDrawTransformFeedbackInstanced : TglDrawTransformFeedbackInstanced;
12520   glDrawTransformFeedbackStreamInstanced : TglDrawTransformFeedbackStreamInstanced;
12521
12522   // GL_ARB_internalformat_query
12523   glGetInternalformativ : TglGetInternalformativ;
12524
12525   // GL_ARB_shader_atomic_counters
12526   glGetActiveAtomicCounterBufferiv : TglGetActiveAtomicCounterBufferiv;
12527
12528   /// GL_ARB_shader_image_load_store
12529   glBindImageTexture : TglBindImageTexture;
12530   glMemoryBarrier : TglMemoryBarrier;
12531
12532   // GL_ARB_texture_storage
12533   glTexStorage1D : TglTexStorage1D;
12534   glTexStorage2D : TglTexStorage2D;
12535   glTexStorage3D : TglTexStorage3D;
12536   glTextureStorage1DEXT : TglTextureStorage1DEXT;
12537   glTextureStorage2DEXT : TglTextureStorage2DEXT;
12538   glTextureStorage3DEXT : TglTextureStorage3DEXT;
12539
12540
12541   // GL 4.3
12542     // GL_KHR_debug
12543     glDebugMessageControl : TglDebugMessageControl;
12544     glDebugMessageInsert : TglDebugMessageInsert;
12545     glDebugMessageCallback : TglDebugMessageCallback;
12546     glGetDebugMessageLog : TglGetDebugMessageLog;
12547     glPushDebugGroup : TglPushDebugGroup;
12548     glPopDebugGroup : TglPopDebugGroup;
12549     glObjectLabel : TglObjectLabel;
12550     glGetObjectLabel : TglGetObjectLabel;
12551     glObjectPtrLabel : TglObjectPtrLabel;
12552     glGetObjectPtrLabel : TglGetObjectPtrLabel;
12553     // GL_ARB_clear_buffer_object
12554     glClearBufferData : TglClearBufferData;
12555     glClearBufferSubData : TglClearBufferSubData;
12556     glClearNamedBufferDataEXT : TglClearNamedBufferDataEXT;
12557     glClearNamedBufferSubDataEXT : TglClearNamedBufferSubDataEXT;
12558     // GL_ARB_compute_shader
12559     glDispatchCompute : TglDispatchCompute;
12560     glDispatchComputeIndirect : TglDispatchComputeIndirect;
12561     // GL_ARB_copy_image
12562     glCopyImageSubData : TglCopyImageSubData;
12563     // GL_ARB_framebuffer_no_attachments
12564     glFramebufferParameteri : TglFramebufferParameteri;
12565     glGetFramebufferParameteriv : TglGetFramebufferParameteriv;
12566     glNamedFramebufferParameteriEXT : TglNamedFramebufferParameteriEXT;
12567     glGetNamedFramebufferParameterivEXT : TglGetNamedFramebufferParameterivEXT;
12568     // GL_ARB_internalformat_query2
12569     glGetInternalformati64v : TglGetInternalformati64v;
12570     // GL_ARB_invalidate_subdata
12571     glInvalidateTexSubImage : TglInvalidateTexSubImage;
12572     glInvalidateTexImage : TglInvalidateTexImage;
12573     glInvalidateBufferSubData : TglInvalidateBufferSubData;
12574     glInvalidateBufferData : TglInvalidateBufferData;
12575     glInvalidateFramebuffer : TglInvalidateFramebuffer;
12576     glInvalidateSubFramebuffer : TglInvalidateSubFramebuffer;
12577     // GL_ARB_multi_draw_indirect
12578     glMultiDrawArraysIndirect : TglMultiDrawArraysIndirect;
12579     glMultiDrawElementsIndirect : TglMultiDrawElementsIndirect;
12580     // GL_ARB_program_interface_query
12581     glGetProgramInterfaceiv : TglGetProgramInterfaceiv;
12582     glGetProgramResourceIndex : TglGetProgramResourceIndex;
12583     glGetProgramResourceName : TglGetProgramResourceName;
12584     glGetProgramResourceiv : TglGetProgramResourceiv;
12585     glGetProgramResourceLocation : TglGetProgramResourceLocation;
12586     glGetProgramResourceLocationIndex : TglGetProgramResourceLocationIndex;
12587     // GL_ARB_shader_storage_buffer_object
12588     glShaderStorageBlockBinding : TglShaderStorageBlockBinding;
12589     // GL_ARB_texture_buffer_range
12590     glTexBufferRange : TglTexBufferRange;
12591     glTextureBufferRangeEXT : TglTextureBufferRangeEXT;
12592     // GL_ARB_texture_storage_multisample
12593     glTexStorage2DMultisample : TglTexStorage2DMultisample;
12594     glTexStorage3DMultisample : TglTexStorage3DMultisample;
12595     glTextureStorage2DMultisampleEXT : TglTextureStorage2DMultisampleEXT;
12596     glTextureStorage3DMultisampleEXT : TglTextureStorage3DMultisampleEXT;
12597     // GL_ARB_texture_view
12598     glTextureView : TglTextureView;
12599     // GL_ARB_vertex_attrib_binding
12600     glBindVertexBuffer : TglBindVertexBuffer;
12601     glVertexAttribFormat : TglVertexAttribFormat;
12602     glVertexAttribIFormat : TglVertexAttribIFormat;
12603     glVertexAttribLFormat : TglVertexAttribLFormat;
12604     glVertexAttribBinding : TglVertexAttribBinding;
12605     glVertexBindingDivisor : TglVertexBindingDivisor;
12606     glVertexArrayBindVertexBufferEXT : TglVertexArrayBindVertexBufferEXT;
12607     glVertexArrayVertexAttribFormatEXT : TglVertexArrayVertexAttribFormatEXT;
12608     glVertexArrayVertexAttribIFormatEXT : TglVertexArrayVertexAttribIFormatEXT;
12609     glVertexArrayVertexAttribLFormatEXT : TglVertexArrayVertexAttribLFormatEXT;
12610     glVertexArrayVertexAttribBindingEXT : TglVertexArrayVertexAttribBindingEXT;
12611     glVertexArrayVertexBindingDivisorEXT : TglVertexArrayVertexBindingDivisorEXT;
12612   // END GL 4.3
12613
12614
12615   // GL 4.4
12616     glBufferStorage : TglBufferStorage;
12617     glClearTexImage : TglClearTexImage;
12618     glClearTexSubImage : TglClearTexSubImage;
12619     glBindBuffersBase : TglBindBuffersBase;
12620     glBindBuffersRange : TglBindBuffersRange;
12621     glBindTextures : TglBindTextures;
12622     glBindSamplers : TglBindSamplers;
12623     glBindImageTextures : TglBindImageTextures;
12624     glBindVertexBuffers : TglBindVertexBuffers;
12625     glTexPageCommitmentARB : TglTexPageCommitmentARB;
12626
12627   // GL 4.5
12628   glClipControl : TglClipControl;
12629   glCreateTransformFeedbacks : TglCreateTransformFeedbacks;
12630   glTransformFeedbackBufferBase : TglTransformFeedbackBufferBase;
12631   glTransformFeedbackBufferRange : TglTransformFeedbackBufferRange;
12632   glGetTransformFeedbackiv : TglGetTransformFeedbackiv;
12633   glGetTransformFeedbacki_v : TglGetTransformFeedbacki_v;
12634   glGetTransformFeedbacki64_v : TglGetTransformFeedbacki64_v;
12635   glCreateBuffers : TglCreateBuffers;
12636   glNamedBufferStorage : TglNamedBufferStorage;
12637   glNamedBufferData : TglNamedBufferData;
12638   glNamedBufferSubData : TglNamedBufferSubData;
12639   glCopyNamedBufferSubData : TglCopyNamedBufferSubData;
12640   glClearNamedBufferData : TglClearNamedBufferData;
12641   glClearNamedBufferSubData : TglClearNamedBufferSubData;
12642   glMapNamedBuffer : TglMapNamedBuffer;
12643   glMapNamedBufferRange : TglMapNamedBufferRange;
12644   glUnmapNamedBuffer : TglUnmapNamedBuffer;
12645   glFlushMappedNamedBufferRange : TglFlushMappedNamedBufferRange;
12646   glGetNamedBufferParameteriv : TglGetNamedBufferParameteriv;
12647   glGetNamedBufferParameteri64v : TglGetNamedBufferParameteri64v;
12648   glGetNamedBufferPointerv : TglGetNamedBufferPointerv;
12649   glGetNamedBufferSubData : TglGetNamedBufferSubData;
12650   glCreateFramebuffers : TglCreateFramebuffers;
12651   glNamedFramebufferRenderbuffer : TglNamedFramebufferRenderbuffer;
12652   glNamedFramebufferParameteri : TglNamedFramebufferParameteri;
12653   glNamedFramebufferTexture : TglNamedFramebufferTexture;
12654   glNamedFramebufferTextureLayer : TglNamedFramebufferTextureLayer;
12655   glNamedFramebufferDrawBuffer : TglNamedFramebufferDrawBuffer;
12656   glNamedFramebufferDrawBuffers : TglNamedFramebufferDrawBuffers;
12657   glNamedFramebufferReadBuffer : TglNamedFramebufferReadBuffer;
12658   glInvalidateNamedFramebufferData : TglInvalidateNamedFramebufferData;
12659   glInvalidateNamedFramebufferSubData : TglInvalidateNamedFramebufferSubData;
12660   glClearNamedFramebufferiv : TglClearNamedFramebufferiv;
12661   glClearNamedFramebufferuiv : TglClearNamedFramebufferuiv;
12662   glClearNamedFramebufferfv : TglClearNamedFramebufferfv;
12663   glClearNamedFramebufferfi : TglClearNamedFramebufferfi;
12664   glBlitNamedFramebuffer : TglBlitNamedFramebuffer;
12665   glCheckNamedFramebufferStatus : TglCheckNamedFramebufferStatus;
12666   glGetNamedFramebufferParameteriv : TglGetNamedFramebufferParameteriv;
12667   glGetNamedFramebufferAttachmentParameteriv : TglGetNamedFramebufferAttachmentParameteriv;
12668   glCreateRenderbuffers : TglCreateRenderbuffers;
12669   glNamedRenderbufferStorage : TglNamedRenderbufferStorage;
12670   glNamedRenderbufferStorageMultisample : TglNamedRenderbufferStorageMultisample;
12671   glGetNamedRenderbufferParameteriv : TglGetNamedRenderbufferParameteriv;
12672   glCreateTextures : TglCreateTextures;
12673   glTextureBuffer : TglTextureBuffer;
12674   glTextureBufferRange : TglTextureBufferRange;
12675   glTextureStorage1D : TglTextureStorage1D;
12676   glTextureStorage2D : TglTextureStorage2D;
12677   glTextureStorage3D : TglTextureStorage3D;
12678   glTextureStorage2DMultisample : TglTextureStorage2DMultisample;
12679   glTextureStorage3DMultisample : TglTextureStorage3DMultisample;
12680   glTextureSubImage1D : TglTextureSubImage1D;
12681   glTextureSubImage2D : TglTextureSubImage2D;
12682   glTextureSubImage3D : TglTextureSubImage3D;
12683   glCompressedTextureSubImage1D : TglCompressedTextureSubImage1D;
12684   glCompressedTextureSubImage2D : TglCompressedTextureSubImage2D;
12685   glCompressedTextureSubImage3D : TglCompressedTextureSubImage3D;
12686   glCopyTextureSubImage1D : TglCopyTextureSubImage1D;
12687   glCopyTextureSubImage2D : TglCopyTextureSubImage2D;
12688   glCopyTextureSubImage3D : TglCopyTextureSubImage3D;
12689   glTextureParameterf : TglTextureParameterf;
12690   glTextureParameterfv : TglTextureParameterfv;
12691   glTextureParameteri : TglTextureParameteri;
12692   glTextureParameterIiv : TglTextureParameterIiv;
12693   glTextureParameterIuiv : TglTextureParameterIuiv;
12694   glTextureParameteriv : TglTextureParameteriv;
12695   glGenerateTextureMipmap : TglGenerateTextureMipmap;
12696   glBindTextureUnit : TglBindTextureUnit;
12697   glGetTextureImage : TglGetTextureImage;
12698   glGetCompressedTextureImage : TglGetCompressedTextureImage;
12699   glGetTextureLevelParameterfv : TglGetTextureLevelParameterfv;
12700   glGetTextureLevelParameteriv : TglGetTextureLevelParameteriv;
12701   glGetTextureParameterfv : TglGetTextureParameterfv;
12702   glGetTextureParameterIiv : TglGetTextureParameterIiv;
12703   glGetTextureParameterIuiv : TglGetTextureParameterIuiv;
12704   glGetTextureParameteriv : TglGetTextureParameteriv;
12705   glCreateVertexArrays : TglCreateVertexArrays;
12706   glDisableVertexArrayAttrib : TglDisableVertexArrayAttrib;
12707   glEnableVertexArrayAttrib : TglEnableVertexArrayAttrib;
12708   glVertexArrayElementBuffer : TglVertexArrayElementBuffer;
12709   glVertexArrayVertexBuffer : TglVertexArrayVertexBuffer;
12710   glVertexArrayVertexBuffers : TglVertexArrayVertexBuffers;
12711   glVertexArrayAttribBinding : TglVertexArrayAttribBinding;
12712   glVertexArrayAttribFormat : TglVertexArrayAttribFormat;
12713   glVertexArrayAttribIFormat : TglVertexArrayAttribIFormat;
12714   glVertexArrayAttribLFormat : TglVertexArrayAttribLFormat;
12715   glVertexArrayBindingDivisor : TglVertexArrayBindingDivisor;
12716   glGetVertexArrayiv : TglGetVertexArrayiv;
12717   glGetVertexArrayIndexediv : TglGetVertexArrayIndexediv;
12718   glGetVertexArrayIndexed64iv : TglGetVertexArrayIndexed64iv;
12719   glCreateSamplers : TglCreateSamplers;
12720   glCreateProgramPipelines : TglCreateProgramPipelines;
12721   glCreateQueries : TglCreateQueries;
12722   glMemoryBarrierByRegion : TglMemoryBarrierByRegion;
12723   glGetTextureSubImage : TglGetTextureSubImage;
12724   glGetCompressedTextureSubImage : TglGetCompressedTextureSubImage;
12725   glGetGraphicsResetStatus : TglGetGraphicsResetStatus;
12726   glGetnCompressedTexImage : TglGetnCompressedTexImage;
12727   glGetnTexImage : TglGetnTexImage;
12728   glGetnUniformdv : TglGetnUniformdv;
12729   glGetnUniformfv : TglGetnUniformfv;
12730   glGetnUniformiv : TglGetnUniformiv;
12731   glGetnUniformuiv : TglGetnUniformuiv;
12732   glReadnPixels : TglReadnPixels;
12733   glGetnMapdv : TglGetnMapdv;
12734   glGetnMapfv : TglGetnMapfv;
12735   glGetnMapiv : TglGetnMapiv;
12736   glGetnPixelMapfv : TglGetnPixelMapfv;
12737   glGetnPixelMapuiv : TglGetnPixelMapuiv;
12738   glGetnPixelMapusv : TglGetnPixelMapusv;
12739   glGetnPolygonStipple : TglGetnPolygonStipple;
12740   glGetnColorTable : TglGetnColorTable;
12741   glGetnConvolutionFilter : TglGetnConvolutionFilter;
12742   glGetnSeparableFilter : TglGetnSeparableFilter;
12743   glGetnHistogram : TglGetnHistogram;
12744   glGetnMinmax : TglGetnMinmax;
12745   glTextureBarrier : TglTextureBarrier;
12746
12747   // GL_ARB_sparse_buffer
12748   glBufferPageCommitmentARB : TglBufferPageCommitmentARB;
12749   glNamedBufferPageCommitmentEXT : TglNamedBufferPageCommitmentEXT;
12750   glNamedBufferPageCommitmentARB : TglNamedBufferPageCommitmentARB;
12751
12752   // GL_KHR_blend_equation_advanced
12753   glBlendBarrierKHR : TglBlendBarrierKHR;
12754
12755   // GL_ARB_cl_event
12756   glCreateSyncFromCLeventARB: TglCreateSyncFromCLeventARB;
12757
12758   // GL_ARB_debug_output
12759   glDebugMessageControlARB: TglDebugMessageControlARB;
12760   glDebugMessageInsertARB: TglDebugMessageInsertARB;
12761   glDebugMessageCallbackARB: TglDebugMessageCallbackARB;
12762   glGetDebugMessageLogARB: TglGetDebugMessageLogARB;
12763
12764   // GL_ARB_compute_variable_group_size
12765   glDispatchComputeGroupSizeARB : TglDispatchComputeGroupSizeARB;
12766
12767   // GL_ARB_robustness
12768   glGetGraphicsResetStatusARB: TglGetGraphicsResetStatusARB;
12769   glGetnMapdvARB: TglGetnMapdvARB;
12770   glGetnMapfvARB: TglGetnMapfvARB;
12771   glGetnMapivARB: TglGetnMapivARB;
12772   glGetnPixelMapfvARB: TglGetnPixelMapfvARB;
12773   glGetnPixelMapuivARB: TglGetnPixelMapuivARB;
12774   glGetnPixelMapusvARB: TglGetnPixelMapusvARB;
12775   glGetnPolygonStippleARB: TglGetnPolygonStippleARB;
12776   glGetnColorTableARB: TglGetnColorTableARB;
12777   glGetnConvolutionFilterARB: TglGetnConvolutionFilterARB;
12778   glGetnSeparableFilterARB: TglGetnSeparableFilterARB;
12779   glGetnHistogramARB: TglGetnHistogramARB;
12780   glGetnMinmaxARB: TglGetnMinmaxARB;
12781   glGetnTexImageARB: TglGetnTexImageARB;
12782   glReadnPixelsARB: TglReadnPixelsARB;
12783   glGetnCompressedTexImageARB: TglGetnCompressedTexImageARB;
12784   glGetnUniformfvARB: TglGetnUniformfvARB;
12785   glGetnUniformivARB: TglGetnUniformivARB;
12786   glGetnUniformuivARB: TglGetnUniformuivARB;
12787   glGetnUniformdvARB: TglGetnUniformdvARB;
12788
12789   // GL_ATI_draw_buffers
12790   glDrawBuffersATI: TglDrawBuffersATI;
12791
12792   // GL_ATI_element_array
12793   glElementPointerATI: TglElementPointerATI;
12794   glDrawElementArrayATI: TglDrawElementArrayATI;
12795   glDrawRangeElementArrayATI: TglDrawRangeElementArrayATI;
12796
12797   // GL_ATI_envmap_bumpmap
12798   glTexBumpParameterivATI: TglTexBumpParameterivATI;
12799   glTexBumpParameterfvATI: TglTexBumpParameterfvATI;
12800   glGetTexBumpParameterivATI: TglGetTexBumpParameterivATI;
12801   glGetTexBumpParameterfvATI: TglGetTexBumpParameterfvATI;
12802
12803   // GL_ATI_fragment_shader
12804   glGenFragmentShadersATI: TglGenFragmentShadersATI;
12805   glBindFragmentShaderATI: TglBindFragmentShaderATI;
12806   glDeleteFragmentShaderATI: TglDeleteFragmentShaderATI;
12807   glBeginFragmentShaderATI: TglBeginFragmentShaderATI;
12808   glEndFragmentShaderATI: TglEndFragmentShaderATI;
12809   glPassTexCoordATI: TglPassTexCoordATI;
12810   glSampleMapATI: TglSampleMapATI;
12811   glColorFragmentOp1ATI: TglColorFragmentOp1ATI;
12812   glColorFragmentOp2ATI: TglColorFragmentOp2ATI;
12813   glColorFragmentOp3ATI: TglColorFragmentOp3ATI;
12814   glAlphaFragmentOp1ATI: TglAlphaFragmentOp1ATI;
12815   glAlphaFragmentOp2ATI: TglAlphaFragmentOp2ATI;
12816   glAlphaFragmentOp3ATI: TglAlphaFragmentOp3ATI;
12817   glSetFragmentShaderConstantATI: TglSetFragmentShaderConstantATI;
12818
12819   // GL_ATI_map_object_buffer
12820   glMapObjectBufferATI: TglMapObjectBufferATI;
12821   glUnmapObjectBufferATI: TglUnmapObjectBufferATI;
12822
12823   // GL_ATI_pn_triangles
12824   glPNTrianglesiATI: TglPNTrianglesiATI;
12825   glPNTrianglesfATI: TglPNTrianglesfATI;
12826
12827   // GL_ATI_separate_stencil
12828   glStencilOpSeparateATI: TglStencilOpSeparateATI;
12829   glStencilFuncSeparateATI: TglStencilFuncSeparateATI;
12830
12831   // GL_ATI_vertex_array_object
12832   glNewObjectBufferATI: TglNewObjectBufferATI;
12833   glIsObjectBufferATI: TglIsObjectBufferATI;
12834   glUpdateObjectBufferATI: TglUpdateObjectBufferATI;
12835   glGetObjectBufferfvATI: TglGetObjectBufferfvATI;
12836   glGetObjectBufferivATI: TglGetObjectBufferivATI;
12837   glFreeObjectBufferATI: TglFreeObjectBufferATI;
12838   glArrayObjectATI: TglArrayObjectATI;
12839   glGetArrayObjectfvATI: TglGetArrayObjectfvATI;
12840   glGetArrayObjectivATI: TglGetArrayObjectivATI;
12841   glVariantArrayObjectATI: TglVariantArrayObjectATI;
12842   glGetVariantArrayObjectfvATI: TglGetVariantArrayObjectfvATI;
12843   glGetVariantArrayObjectivATI: TglGetVariantArrayObjectivATI;
12844   glVertexAttribArrayObjectATI: TglVertexAttribArrayObjectATI;
12845   glGetVertexAttribArrayObjectfvATI: TglGetVertexAttribArrayObjectfvATI;
12846   glGetVertexAttribArrayObjectivATI: TglGetVertexAttribArrayObjectivATI;
12847
12848   // GL_ATI_vertex_streams
12849   glVertexStream1sATI: TglVertexStream1sATI;
12850   glVertexStream1svATI: TglVertexStream1svATI;
12851   glVertexStream1iATI: TglVertexStream1iATI;
12852   glVertexStream1ivATI: TglVertexStream1ivATI;
12853   glVertexStream1fATI: TglVertexStream1fATI;
12854   glVertexStream1fvATI: TglVertexStream1fvATI;
12855   glVertexStream1dATI: TglVertexStream1dATI;
12856   glVertexStream1dvATI: TglVertexStream1dvATI;
12857   glVertexStream2sATI: TglVertexStream2sATI;
12858   glVertexStream2svATI: TglVertexStream2svATI;
12859   glVertexStream2iATI: TglVertexStream2iATI;
12860   glVertexStream2ivATI: TglVertexStream2ivATI;
12861   glVertexStream2fATI: TglVertexStream2fATI;
12862   glVertexStream2fvATI: TglVertexStream2fvATI;
12863   glVertexStream2dATI: TglVertexStream2dATI;
12864   glVertexStream2dvATI: TglVertexStream2dvATI;
12865   glVertexStream3sATI: TglVertexStream3sATI;
12866   glVertexStream3svATI: TglVertexStream3svATI;
12867   glVertexStream3iATI: TglVertexStream3iATI;
12868   glVertexStream3ivATI: TglVertexStream3ivATI;
12869   glVertexStream3fATI: TglVertexStream3fATI;
12870   glVertexStream3fvATI: TglVertexStream3fvATI;
12871   glVertexStream3dATI: TglVertexStream3dATI;
12872   glVertexStream3dvATI: TglVertexStream3dvATI;
12873   glVertexStream4sATI: TglVertexStream4sATI;
12874   glVertexStream4svATI: TglVertexStream4svATI;
12875   glVertexStream4iATI: TglVertexStream4iATI;
12876   glVertexStream4ivATI: TglVertexStream4ivATI;
12877   glVertexStream4fATI: TglVertexStream4fATI;
12878   glVertexStream4fvATI: TglVertexStream4fvATI;
12879   glVertexStream4dATI: TglVertexStream4dATI;
12880   glVertexStream4dvATI: TglVertexStream4dvATI;
12881   glNormalStream3bATI: TglNormalStream3bATI;
12882   glNormalStream3bvATI: TglNormalStream3bvATI;
12883   glNormalStream3sATI: TglNormalStream3sATI;
12884   glNormalStream3svATI: TglNormalStream3svATI;
12885   glNormalStream3iATI: TglNormalStream3iATI;
12886   glNormalStream3ivATI: TglNormalStream3ivATI;
12887   glNormalStream3fATI: TglNormalStream3fATI;
12888   glNormalStream3fvATI: TglNormalStream3fvATI;
12889   glNormalStream3dATI: TglNormalStream3dATI;
12890   glNormalStream3dvATI: TglNormalStream3dvATI;
12891   glClientActiveVertexStreamATI: TglClientActiveVertexStreamATI;
12892   glVertexBlendEnviATI: TglVertexBlendEnviATI;
12893   glVertexBlendEnvfATI: TglVertexBlendEnvfATI;
12894
12895   // GL_AMD_performance_monitor
12896   glGetPerfMonitorGroupsAMD: TglGetPerfMonitorGroupsAMD;
12897   glGetPerfMonitorCountersAMD: TglGetPerfMonitorCountersAMD;
12898   glGetPerfMonitorGroupStringAMD: TglGetPerfMonitorGroupStringAMD;
12899   glGetPerfMonitorCounterStringAMD: TglGetPerfMonitorCounterStringAMD;
12900   glGetPerfMonitorCounterInfoAMD: TglGetPerfMonitorCounterInfoAMD;
12901   glGenPerfMonitorsAMD: TglGenPerfMonitorsAMD;
12902   glDeletePerfMonitorsAMD: TglDeletePerfMonitorsAMD;
12903   glSelectPerfMonitorCountersAMD: TglSelectPerfMonitorCountersAMD;
12904   glBeginPerfMonitorAMD: TglBeginPerfMonitorAMD;
12905   glEndPerfMonitorAMD: TglEndPerfMonitorAMD;
12906   glGetPerfMonitorCounterDataAMD: TglGetPerfMonitorCounterDataAMD;
12907
12908   // GL_AMD_vertex_shader_tesselator
12909   glTessellationFactorAMD: TglTessellationFactorAMD;
12910   glTessellationModeAMD: TglTessellationModeAMD;
12911
12912   // GL_AMD_draw_buffers_blend
12913   glBlendFuncIndexedAMD: TglBlendFuncIndexedAMD;
12914   glBlendFuncSeparateIndexedAMD: TglBlendFuncSeparateIndexedAMD;
12915   glBlendEquationIndexedAMD: TglBlendEquationIndexedAMD;
12916   glBlendEquationSeparateIndexedAMD: TglBlendEquationSeparateIndexedAMD;
12917
12918   // GL_AMD_name_gen_delete
12919   glGenNamesAMD: TglGenNamesAMD;
12920   glDeleteNamesAMD: TglDeleteNamesAMD;
12921   glIsNameAMD: TglIsNameAMD;
12922
12923   // GL_AMD_debug_output
12924   glDebugMessageEnableAMD: TglDebugMessageEnableAMD;
12925   glDebugMessageInsertAMD: TglDebugMessageInsertAMD;
12926   glDebugMessageCallbackAMD: TglDebugMessageCallbackAMD;
12927   glGetDebugMessageLogAMD: TglGetDebugMessageLogAMD;
12928
12929   // GL_EXT_blend_color
12930   glBlendColorEXT: TglBlendColorEXT;
12931
12932   // GL_EXT_blend_func_separate
12933   glBlendFuncSeparateEXT: TglBlendFuncSeparateEXT;
12934
12935   // GL_EXT_blend_minmax
12936   glBlendEquationEXT: TglBlendEquationEXT;
12937
12938   // GL_EXT_color_subtable
12939   glColorSubTableEXT: TglColorSubTableEXT;
12940   glCopyColorSubTableEXT: TglCopyColorSubTableEXT;
12941
12942   // GL_EXT_compiled_vertex_array
12943   glLockArraysEXT: TglLockArraysEXT;
12944   glUnlockArraysEXT: TglUnlockArraysEXT;
12945
12946   // GL_EXT_convolution
12947   glConvolutionFilter1DEXT: TglConvolutionFilter1DEXT;
12948   glConvolutionFilter2DEXT: TglConvolutionFilter2DEXT;
12949   glConvolutionParameterfEXT: TglConvolutionParameterfEXT;
12950   glConvolutionParameterfvEXT: TglConvolutionParameterfvEXT;
12951   glConvolutionParameteriEXT: TglConvolutionParameteriEXT;
12952   glConvolutionParameterivEXT: TglConvolutionParameterivEXT;
12953   glCopyConvolutionFilter1DEXT: TglCopyConvolutionFilter1DEXT;
12954   glCopyConvolutionFilter2DEXT: TglCopyConvolutionFilter2DEXT;
12955   glGetConvolutionFilterEXT: TglGetConvolutionFilterEXT;
12956   glGetConvolutionParameterfvEXT: TglGetConvolutionParameterfvEXT;
12957   glGetConvolutionParameterivEXT: TglGetConvolutionParameterivEXT;
12958   glGetSeparableFilterEXT: TglGetSeparableFilterEXT;
12959   glSeparableFilter2DEXT: TglSeparableFilter2DEXT;
12960
12961   // GL_EXT_coordinate_frame
12962   glTangent3bEXT: TglTangent3bEXT;
12963   glTangent3bvEXT: TglTangent3bvEXT;
12964   glTangent3dEXT: TglTangent3dEXT;
12965   glTangent3dvEXT: TglTangent3dvEXT;
12966   glTangent3fEXT: TglTangent3fEXT;
12967   glTangent3fvEXT: TglTangent3fvEXT;
12968   glTangent3iEXT: TglTangent3iEXT;
12969   glTangent3ivEXT: TglTangent3ivEXT;
12970   glTangent3sEXT: TglTangent3sEXT;
12971   glTangent3svEXT: TglTangent3svEXT;
12972   glBinormal3bEXT: TglBinormal3bEXT;
12973   glBinormal3bvEXT: TglBinormal3bvEXT;
12974   glBinormal3dEXT: TglBinormal3dEXT;
12975   glBinormal3dvEXT: TglBinormal3dvEXT;
12976   glBinormal3fEXT: TglBinormal3fEXT;
12977   glBinormal3fvEXT: TglBinormal3fvEXT;
12978   glBinormal3iEXT: TglBinormal3iEXT;
12979   glBinormal3ivEXT: TglBinormal3ivEXT;
12980   glBinormal3sEXT: TglBinormal3sEXT;
12981   glBinormal3svEXT: TglBinormal3svEXT;
12982   glTangentPointerEXT: TglTangentPointerEXT;
12983   glBinormalPointerEXT: TglBinormalPointerEXT;
12984
12985   // GL_EXT_copy_texture
12986   glCopyTexImage1DEXT: TglCopyTexImage1DEXT;
12987   glCopyTexImage2DEXT: TglCopyTexImage2DEXT;
12988   glCopyTexSubImage1DEXT: TglCopyTexSubImage1DEXT;
12989   glCopyTexSubImage2DEXT: TglCopyTexSubImage2DEXT;
12990   glCopyTexSubImage3DEXT: TglCopyTexSubImage3DEXT;
12991
12992   // GL_EXT_cull_vertex
12993   glCullParameterdvEXT: TglCullParameterdvEXT;
12994   glCullParameterfvEXT: TglCullParameterfvEXT;
12995
12996   // GL_EXT_draw_range_elements
12997   glDrawRangeElementsEXT: TglDrawRangeElementsEXT;
12998
12999   // GL_EXT_fog_coord
13000   glFogCoordfEXT: TglFogCoordfEXT;
13001   glFogCoordfvEXT: TglFogCoordfvEXT;
13002   glFogCoorddEXT: TglFogCoorddEXT;
13003   glFogCoorddvEXT: TglFogCoorddvEXT;
13004   glFogCoordPointerEXT: TglFogCoordPointerEXT;
13005
13006   // GL_EXT_framebuffer_object
13007   glIsRenderbufferEXT: TglIsRenderbufferEXT;
13008   glBindRenderbufferEXT: TglBindRenderbufferEXT;
13009   glDeleteRenderbuffersEXT: TglDeleteRenderbuffersEXT;
13010   glGenRenderbuffersEXT: TglGenRenderbuffersEXT;
13011   glRenderbufferStorageEXT: TglRenderbufferStorageEXT;
13012   glGetRenderbufferParameterivEXT: TglGetRenderbufferParameterivEXT;
13013   glIsFramebufferEXT: TglIsFramebufferEXT;
13014   glBindFramebufferEXT: TglBindFramebufferEXT;
13015   glDeleteFramebuffersEXT: TglDeleteFramebuffersEXT;
13016   glGenFramebuffersEXT: TglGenFramebuffersEXT;
13017   glCheckFramebufferStatusEXT: TglCheckFramebufferStatusEXT;
13018   glFramebufferTexture1DEXT: TglFramebufferTexture1DEXT;
13019   glFramebufferTexture2DEXT: TglFramebufferTexture2DEXT;
13020   glFramebufferTexture3DEXT: TglFramebufferTexture3DEXT;
13021   glFramebufferRenderbufferEXT: TglFramebufferRenderbufferEXT;
13022   glGetFramebufferAttachmentParameterivEXT: TglGetFramebufferAttachmentParameterivEXT;
13023   glGenerateMipmapEXT: TglGenerateMipmapEXT;
13024
13025   // GL_EXT_histogram
13026   glGetHistogramEXT: TglGetHistogramEXT;
13027   glGetHistogramParameterfvEXT: TglGetHistogramParameterfvEXT;
13028   glGetHistogramParameterivEXT: TglGetHistogramParameterivEXT;
13029   glGetMinmaxEXT: TglGetMinmaxEXT;
13030   glGetMinmaxParameterfvEXT: TglGetMinmaxParameterfvEXT;
13031   glGetMinmaxParameterivEXT: TglGetMinmaxParameterivEXT;
13032   glHistogramEXT: TglHistogramEXT;
13033   glMinmaxEXT: TglMinmaxEXT;
13034   glResetHistogramEXT: TglResetHistogramEXT;
13035   glResetMinmaxEXT: TglResetMinmaxEXT;
13036
13037   // GL_EXT_index_func
13038   glIndexFuncEXT: TglIndexFuncEXT;
13039
13040   // GL_EXT_index_material
13041   glIndexMaterialEXT: TglIndexMaterialEXT;
13042
13043   // GL_EXT_light_texture
13044   glApplyTextureEXT: TglApplyTextureEXT;
13045   glTextureLightEXT: TglTextureLightEXT;
13046   glTextureMaterialEXT: TglTextureMaterialEXT;
13047
13048   // GL_EXT_multi_draw_arrays
13049   glMultiDrawArraysEXT: TglMultiDrawArraysEXT;
13050   glMultiDrawElementsEXT: TglMultiDrawElementsEXT;
13051
13052   // GL_EXT_multisample
13053   glSampleMaskEXT: TglSampleMaskEXT;
13054   glSamplePatternEXT: TglSamplePatternEXT;
13055
13056   // GL_EXT_paletted_texture
13057   glColorTableEXT: TglColorTableEXT;
13058   glGetColorTableEXT: TglGetColorTableEXT;
13059   glGetColorTableParameterivEXT: TglGetColorTableParameterivEXT;
13060   glGetColorTableParameterfvEXT: TglGetColorTableParameterfvEXT;
13061
13062   // GL_EXT_pixel_transform
13063   glPixelTransformParameteriEXT: TglPixelTransformParameteriEXT;
13064   glPixelTransformParameterfEXT: TglPixelTransformParameterfEXT;
13065   glPixelTransformParameterivEXT: TglPixelTransformParameterivEXT;
13066   glPixelTransformParameterfvEXT: TglPixelTransformParameterfvEXT;
13067
13068   // GL_EXT_point_parameters
13069   glPointParameterfEXT: TglPointParameterfEXT;
13070   glPointParameterfvEXT: TglPointParameterfvEXT;
13071
13072   // GL_EXT_polygon_offset
13073   glPolygonOffsetEXT: TglPolygonOffsetEXT;
13074
13075   // GL_EXT_secondary_color
13076   glSecondaryColor3bEXT: TglSecondaryColor3bEXT;
13077   glSecondaryColor3bvEXT: TglSecondaryColor3bvEXT;
13078   glSecondaryColor3dEXT: TglSecondaryColor3dEXT;
13079   glSecondaryColor3dvEXT: TglSecondaryColor3dvEXT;
13080   glSecondaryColor3fEXT: TglSecondaryColor3fEXT;
13081   glSecondaryColor3fvEXT: TglSecondaryColor3fvEXT;
13082   glSecondaryColor3iEXT: TglSecondaryColor3iEXT;
13083   glSecondaryColor3ivEXT: TglSecondaryColor3ivEXT;
13084   glSecondaryColor3sEXT: TglSecondaryColor3sEXT;
13085   glSecondaryColor3svEXT: TglSecondaryColor3svEXT;
13086   glSecondaryColor3ubEXT: TglSecondaryColor3ubEXT;
13087   glSecondaryColor3ubvEXT: TglSecondaryColor3ubvEXT;
13088   glSecondaryColor3uiEXT: TglSecondaryColor3uiEXT;
13089   glSecondaryColor3uivEXT: TglSecondaryColor3uivEXT;
13090   glSecondaryColor3usEXT: TglSecondaryColor3usEXT;
13091   glSecondaryColor3usvEXT: TglSecondaryColor3usvEXT;
13092   glSecondaryColorPointerEXT: TglSecondaryColorPointerEXT;
13093
13094   // GL_EXT_stencil_two_side
13095   glActiveStencilFaceEXT: TglActiveStencilFaceEXT;
13096
13097   // GL_EXT_subtexture
13098   glTexSubImage1DEXT: TglTexSubImage1DEXT;
13099   glTexSubImage2DEXT: TglTexSubImage2DEXT;
13100
13101   // GL_EXT_texture3D
13102   glTexImage3DEXT: TglTexImage3DEXT;
13103   glTexSubImage3DEXT: TglTexSubImage3DEXT;
13104
13105   // GL_EXT_texture_object
13106   glAreTexturesResidentEXT: TglAreTexturesResidentEXT;
13107   glBindTextureEXT: TglBindTextureEXT;
13108   glDeleteTexturesEXT: TglDeleteTexturesEXT;
13109   glGenTexturesEXT: TglGenTexturesEXT;
13110   glIsTextureEXT: TglIsTextureEXT;
13111   glPrioritizeTexturesEXT: TglPrioritizeTexturesEXT;
13112
13113   // GL_EXT_texture_perturb_normal
13114   glTextureNormalEXT: TglTextureNormalEXT;
13115
13116   // GL_EXT_vertex_array
13117   glArrayElementEXT: TglArrayElementEXT;
13118   glColorPointerEXT: TglColorPointerEXT;
13119   glDrawArraysEXT: TglDrawArraysEXT;
13120   glEdgeFlagPointerEXT: TglEdgeFlagPointerEXT;
13121   glGetPointervEXT: TglGetPointervEXT;
13122   glIndexPointerEXT: TglIndexPointerEXT;
13123   glNormalPointerEXT: TglNormalPointerEXT;
13124   glTexCoordPointerEXT: TglTexCoordPointerEXT;
13125   glVertexPointerEXT: TglVertexPointerEXT;
13126
13127   // GL_EXT_vertex_shader
13128   glBeginVertexShaderEXT: TglBeginVertexShaderEXT;
13129   glEndVertexShaderEXT: TglEndVertexShaderEXT;
13130   glBindVertexShaderEXT: TglBindVertexShaderEXT;
13131   glGenVertexShadersEXT: TglGenVertexShadersEXT;
13132   glDeleteVertexShaderEXT: TglDeleteVertexShaderEXT;
13133   glShaderOp1EXT: TglShaderOp1EXT;
13134   glShaderOp2EXT: TglShaderOp2EXT;
13135   glShaderOp3EXT: TglShaderOp3EXT;
13136   glSwizzleEXT: TglSwizzleEXT;
13137   glWriteMaskEXT: TglWriteMaskEXT;
13138   glInsertComponentEXT: TglInsertComponentEXT;
13139   glExtractComponentEXT: TglExtractComponentEXT;
13140   glGenSymbolsEXT: TglGenSymbolsEXT;
13141   glSetInvariantEXT: TglSetInvariantEXT;
13142   glSetLocalConstantEXT: TglSetLocalConstantEXT;
13143   glVariantbvEXT: TglVariantbvEXT;
13144   glVariantsvEXT: TglVariantsvEXT;
13145   glVariantivEXT: TglVariantivEXT;
13146   glVariantfvEXT: TglVariantfvEXT;
13147   glVariantdvEXT: TglVariantdvEXT;
13148   glVariantubvEXT: TglVariantubvEXT;
13149   glVariantusvEXT: TglVariantusvEXT;
13150   glVariantuivEXT: TglVariantuivEXT;
13151   glVariantPointerEXT: TglVariantPointerEXT;
13152   glEnableVariantClientStateEXT: TglEnableVariantClientStateEXT;
13153   glDisableVariantClientStateEXT: TglDisableVariantClientStateEXT;
13154   glBindLightParameterEXT: TglBindLightParameterEXT;
13155   glBindMaterialParameterEXT: TglBindMaterialParameterEXT;
13156   glBindTexGenParameterEXT: TglBindTexGenParameterEXT;
13157   glBindTextureUnitParameterEXT: TglBindTextureUnitParameterEXT;
13158   glBindParameterEXT: TglBindParameterEXT;
13159   glIsVariantEnabledEXT: TglIsVariantEnabledEXT;
13160   glGetVariantBooleanvEXT: TglGetVariantBooleanvEXT;
13161   glGetVariantIntegervEXT: TglGetVariantIntegervEXT;
13162   glGetVariantFloatvEXT: TglGetVariantFloatvEXT;
13163   glGetVariantPointervEXT: TglGetVariantPointervEXT;
13164   glGetInvariantBooleanvEXT: TglGetInvariantBooleanvEXT;
13165   glGetInvariantIntegervEXT: TglGetInvariantIntegervEXT;
13166   glGetInvariantFloatvEXT: TglGetInvariantFloatvEXT;
13167   glGetLocalConstantBooleanvEXT: TglGetLocalConstantBooleanvEXT;
13168   glGetLocalConstantIntegervEXT: TglGetLocalConstantIntegervEXT;
13169   glGetLocalConstantFloatvEXT: TglGetLocalConstantFloatvEXT;
13170
13171   // GL_EXT_vertex_weighting
13172   glVertexWeightfEXT: TglVertexWeightfEXT;
13173   glVertexWeightfvEXT: TglVertexWeightfvEXT;
13174   glVertexWeightPointerEXT: TglVertexWeightPointerEXT;
13175
13176   // GL_EXT_stencil_clear_tag
13177   glStencilClearTagEXT: TglStencilClearTagEXT;
13178
13179   // GL_EXT_framebuffer_blit
13180   glBlitFramebufferEXT: TglBlitFramebufferEXT;
13181
13182   // GL_EXT_framebuffer_multisample
13183   glRenderbufferStorageMultisampleEXT: TglRenderbufferStorageMultisampleEXT;
13184
13185   // GL_EXT_timer_query
13186   glGetQueryObjecti64vEXT: TglGetQueryObjecti64vEXT;
13187   glGetQueryObjectui64vEXT: TglGetQueryObjectui64vEXT;
13188
13189   // GL_EXT_gpu_program_parameters
13190   glProgramEnvParameters4fvEXT: TglProgramEnvParameters4fvEXT;
13191   glProgramLocalParameters4fvEXT: TglProgramLocalParameters4fvEXT;
13192
13193   // GL_EXT_bindable_uniform
13194   glUniformBufferEXT: TglUniformBufferEXT;
13195   glGetUniformBufferSizeEXT: TglGetUniformBufferSizeEXT;
13196   glGetUniformOffsetEXT: TglGetUniformOffsetEXT;
13197
13198   // GL_EXT_draw_buffers2
13199   glColorMaskIndexedEXT: TglColorMaskIndexedEXT;
13200   glGetBooleanIndexedvEXT: TglGetBooleanIndexedvEXT;
13201   glGetIntegerIndexedvEXT: TglGetIntegerIndexedvEXT;
13202   glEnableIndexedEXT: TglEnableIndexedEXT;
13203   glDisableIndexedEXT: TglDisableIndexedEXT;
13204   glIsEnabledIndexedEXT: TglIsEnabledIndexedEXT;
13205
13206   // GL_EXT_draw_instanced
13207   glDrawArraysInstancedEXT: TglDrawArraysInstancedEXT;
13208   glDrawElementsInstancedEXT: TglDrawElementsInstancedEXT;
13209
13210   // GL_EXT_geometry_shader4
13211   glProgramParameteriEXT: TglProgramParameteriEXT;
13212   glFramebufferTextureEXT: TglFramebufferTextureEXT;
13213 //  glFramebufferTextureLayerEXT: TglFramebufferTextureLayerEXT;
13214   glFramebufferTextureFaceEXT: TglFramebufferTextureFaceEXT;
13215
13216   // GL_EXT_gpu_shader4
13217   glVertexAttribI1iEXT: TglVertexAttribI1iEXT;
13218   glVertexAttribI2iEXT: TglVertexAttribI2iEXT;
13219   glVertexAttribI3iEXT: TglVertexAttribI3iEXT;
13220   glVertexAttribI4iEXT: TglVertexAttribI4iEXT;
13221   glVertexAttribI1uiEXT: TglVertexAttribI1uiEXT;
13222   glVertexAttribI2uiEXT: TglVertexAttribI2uiEXT;
13223   glVertexAttribI3uiEXT: TglVertexAttribI3uiEXT;
13224   glVertexAttribI4uiEXT: TglVertexAttribI4uiEXT;
13225   glVertexAttribI1ivEXT: TglVertexAttribI1ivEXT;
13226   glVertexAttribI2ivEXT: TglVertexAttribI2ivEXT;
13227   glVertexAttribI3ivEXT: TglVertexAttribI3ivEXT;
13228   glVertexAttribI4ivEXT: TglVertexAttribI4ivEXT;
13229   glVertexAttribI1uivEXT: TglVertexAttribI1uivEXT;
13230   glVertexAttribI2uivEXT: TglVertexAttribI2uivEXT;
13231   glVertexAttribI3uivEXT: TglVertexAttribI3uivEXT;
13232   glVertexAttribI4uivEXT: TglVertexAttribI4uivEXT;
13233   glVertexAttribI4bvEXT: TglVertexAttribI4bvEXT;
13234   glVertexAttribI4svEXT: TglVertexAttribI4svEXT;
13235   glVertexAttribI4ubvEXT: TglVertexAttribI4ubvEXT;
13236   glVertexAttribI4usvEXT: TglVertexAttribI4usvEXT;
13237   glVertexAttribIPointerEXT: TglVertexAttribIPointerEXT;
13238   glGetVertexAttribIivEXT: TglGetVertexAttribIivEXT;
13239   glGetVertexAttribIuivEXT: TglGetVertexAttribIuivEXT;
13240   glUniform1uiEXT: TglUniform1uiEXT;
13241   glUniform2uiEXT: TglUniform2uiEXT;
13242   glUniform3uiEXT: TglUniform3uiEXT;
13243   glUniform4uiEXT: TglUniform4uiEXT;
13244   glUniform1uivEXT: TglUniform1uivEXT;
13245   glUniform2uivEXT: TglUniform2uivEXT;
13246   glUniform3uivEXT: TglUniform3uivEXT;
13247   glUniform4uivEXT: TglUniform4uivEXT;
13248   glGetUniformuivEXT: TglGetUniformuivEXT;
13249   glBindFragDataLocationEXT: TglBindFragDataLocationEXT;
13250   glGetFragDataLocationEXT: TglGetFragDataLocationEXT;
13251
13252   // GL_EXT_texture_array
13253   glFramebufferTextureLayerEXT: TglFramebufferTextureLayerEXT;
13254
13255   // GL_EXT_texture_buffer_object
13256   glTexBufferEXT: TglTexBufferEXT;
13257
13258   // GL_EXT_texture_integer
13259   glClearColorIiEXT: TglClearColorIiEXT;
13260   glClearColorIuiEXT: TglClearColorIuiEXT;
13261   glTexParameterIivEXT: TglTexParameterIivEXT;
13262   glTexParameterIuivEXT: TglTexParameterIuivEXT;
13263   glGetTexParameterIivEXT: TglGetTexParameterIivEXT;
13264   glGetTexParameterIiuvEXT: TglGetTexParameterIiuvEXT;
13265
13266   // GL_EXT_transform_feedback
13267   glBeginTransformFeedbackEXT: TglBeginTransformFeedbackEXT;
13268   glEndTransformFeedbackEXT: TglEndTransformFeedbackEXT;
13269   glBindBufferRangeEXT: TglBindBufferRangeEXT;
13270   glBindBufferOffsetEXT: TglBindBufferOffsetEXT;
13271   glBindBufferBaseEXT: TglBindBufferBaseEXT;
13272   glTransformFeedbackVaryingsEXT: TglTransformFeedbackVaryingsEXT;
13273   glGetTransformFeedbackVaryingEXT: TglGetTransformFeedbackVaryingEXT;
13274
13275   // GL_EXT_direct_state_access
13276   glClientAttribDefaultEXT: TglClientAttribDefaultEXT;
13277   glPushClientAttribDefaultEXT: TglPushClientAttribDefaultEXT;
13278   glMatrixLoadfEXT: TglMatrixLoadfEXT;
13279   glMatrixLoaddEXT: TglMatrixLoaddEXT;
13280   glMatrixMultfEXT: TglMatrixMultfEXT;
13281   glMatrixMultdEXT: TglMatrixMultdEXT;
13282   glMatrixLoadIdentityEXT: TglMatrixLoadIdentityEXT;
13283   glMatrixRotatefEXT: TglMatrixRotatefEXT;
13284   glMatrixRotatedEXT: TglMatrixRotatedEXT;
13285   glMatrixScalefEXT: TglMatrixScalefEXT;
13286   glMatrixScaledEXT: TglMatrixScaledEXT;
13287   glMatrixTranslatefEXT: TglMatrixTranslatefEXT;
13288   glMatrixTranslatedEXT: TglMatrixTranslatedEXT;
13289   glMatrixFrustumEXT: TglMatrixFrustumEXT;
13290   glMatrixOrthoEXT: TglMatrixOrthoEXT;
13291   glMatrixPopEXT: TglMatrixPopEXT;
13292   glMatrixPushEXT: TglMatrixPushEXT;
13293   glMatrixLoadTransposefEXT: TglMatrixLoadTransposefEXT;
13294   glMatrixLoadTransposedEXT: TglMatrixLoadTransposedEXT;
13295   glMatrixMultTransposefEXT: TglMatrixMultTransposefEXT;
13296   glMatrixMultTransposedEXT: TglMatrixMultTransposedEXT;
13297   glTextureParameterfEXT: TglTextureParameterfEXT;
13298   glTextureParameterfvEXT: TglTextureParameterfvEXT;
13299   glTextureParameteriEXT: TglTextureParameteriEXT;
13300   glTextureParameterivEXT: TglTextureParameterivEXT;
13301   glTextureImage1DEXT: TglTextureImage1DEXT;
13302   glTextureImage2DEXT: TglTextureImage2DEXT;
13303   glTextureSubImage1DEXT: TglTextureSubImage1DEXT;
13304   glTextureSubImage2DEXT: TglTextureSubImage2DEXT;
13305   glCopyTextureImage1DEXT: TglCopyTextureImage1DEXT;
13306   glCopyTextureImage2DEXT: TglCopyTextureImage2DEXT;
13307   glCopyTextureSubImage1DEXT: TglCopyTextureSubImage1DEXT;
13308   glCopyTextureSubImage2DEXT: TglCopyTextureSubImage2DEXT;
13309   glGetTextureImageEXT: TglGetTextureImageEXT;
13310   glGetTextureParameterfvEXT: TglGetTextureParameterfvEXT;
13311   glGetTextureParameterivEXT: TglGetTextureParameterivEXT;
13312   glGetTextureLevelParameterfvEXT: TglGetTextureLevelParameterfvEXT;
13313   glGetTextureLevelParameterivEXT: TglGetTextureLevelParameterivEXT;
13314   glTextureImage3DEXT: TglTextureImage3DEXT;
13315   glTextureSubImage3DEXT: TglTextureSubImage3DEXT;
13316   glCopyTextureSubImage3DEXT: TglCopyTextureSubImage3DEXT;
13317   glMultiTexParameterfEXT: TglMultiTexParameterfEXT;
13318   glMultiTexParameterfvEXT: TglMultiTexParameterfvEXT;
13319   glMultiTexParameteriEXT: TglMultiTexParameteriEXT;
13320   glMultiTexParameterivEXT: TglMultiTexParameterivEXT;
13321   glMultiTexImage1DEXT: TglMultiTexImage1DEXT;
13322   glMultiTexImage2DEXT: TglMultiTexImage2DEXT;
13323   glMultiTexSubImage1DEXT: TglMultiTexSubImage1DEXT;
13324   glMultiTexSubImage2DEXT: TglMultiTexSubImage2DEXT;
13325   glCopyMultiTexImage1DEXT: TglCopyMultiTexImage1DEXT;
13326   glCopyMultiTexImage2DEXT: TglCopyMultiTexImage2DEXT;
13327   glCopyMultiTexSubImage1DEXT: TglCopyMultiTexSubImage1DEXT;
13328   glCopyMultiTexSubImage2DEXT: TglCopyMultiTexSubImage2DEXT;
13329   glGetMultiTexImageEXT: TglGetMultiTexImageEXT;
13330   glGetMultiTexParameterfvEXT: TglGetMultiTexParameterfvEXT;
13331   glGetMultiTexParameterivEXT: TglGetMultiTexParameterivEXT;
13332   glGetMultiTexLevelParameterfvEXT: TglGetMultiTexLevelParameterfvEXT;
13333   glGetMultiTexLevelParameterivEXT: TglGetMultiTexLevelParameterivEXT;
13334   glMultiTexImage3DEXT: TglMultiTexImage3DEXT;
13335   glMultiTexSubImage3DEXT: TglMultiTexSubImage3DEXT;
13336   glCopyMultiTexSubImage3DEXT: TglCopyMultiTexSubImage3DEXT;
13337   glBindMultiTextureEXT: TglBindMultiTextureEXT;
13338   glEnableClientStateIndexedEXT: TglEnableClientStateIndexedEXT;
13339   glDisableClientStateIndexedEXT: TglDisableClientStateIndexedEXT;
13340   glMultiTexCoordPointerEXT: TglMultiTexCoordPointerEXT;
13341   glMultiTexEnvfEXT: TglMultiTexEnvfEXT;
13342   glMultiTexEnvfvEXT: TglMultiTexEnvfvEXT;
13343   glMultiTexEnviEXT: TglMultiTexEnviEXT;
13344   glMultiTexEnvivEXT: TglMultiTexEnvivEXT;
13345   glMultiTexGendEXT: TglMultiTexGendEXT;
13346   glMultiTexGendvEXT: TglMultiTexGendvEXT;
13347   glMultiTexGenfEXT: TglMultiTexGenfEXT;
13348   glMultiTexGenfvEXT: TglMultiTexGenfvEXT;
13349   glMultiTexGeniEXT: TglMultiTexGeniEXT;
13350   glMultiTexGenivEXT: TglMultiTexGenivEXT;
13351   glGetMultiTexEnvfvEXT: TglGetMultiTexEnvfvEXT;
13352   glGetMultiTexEnvivEXT: TglGetMultiTexEnvivEXT;
13353   glGetMultiTexGendvEXT: TglGetMultiTexGendvEXT;
13354   glGetMultiTexGenfvEXT: TglGetMultiTexGenfvEXT;
13355   glGetMultiTexGenivEXT: TglGetMultiTexGenivEXT;
13356   glGetFloatIndexedvEXT: TglGetFloatIndexedvEXT;
13357   glGetDoubleIndexedvEXT: TglGetDoubleIndexedvEXT;
13358   glGetPointerIndexedvEXT: TglGetPointerIndexedvEXT;
13359   glCompressedTextureImage3DEXT: TglCompressedTextureImage3DEXT;
13360   glCompressedTextureImage2DEXT: TglCompressedTextureImage2DEXT;
13361   glCompressedTextureImage1DEXT: TglCompressedTextureImage1DEXT;
13362   glCompressedTextureSubImage3DEXT: TglCompressedTextureSubImage3DEXT;
13363   glCompressedTextureSubImage2DEXT: TglCompressedTextureSubImage2DEXT;
13364   glCompressedTextureSubImage1DEXT: TglCompressedTextureSubImage1DEXT;
13365   glGetCompressedTextureImageEXT: TglGetCompressedTextureImageEXT;
13366   glCompressedMultiTexImage3DEXT: TglCompressedMultiTexImage3DEXT;
13367   glCompressedMultiTexImage2DEXT: TglCompressedMultiTexImage2DEXT;
13368   glCompressedMultiTexImage1DEXT: TglCompressedMultiTexImage1DEXT;
13369   glCompressedMultiTexSubImage3DEXT: TglCompressedMultiTexSubImage3DEXT;
13370   glCompressedMultiTexSubImage2DEXT: TglCompressedMultiTexSubImage2DEXT;
13371   glCompressedMultiTexSubImage1DEXT: TglCompressedMultiTexSubImage1DEXT;
13372   glGetCompressedMultiTexImageEXT: TglGetCompressedMultiTexImageEXT;
13373   glNamedProgramStringEXT: TglNamedProgramStringEXT;
13374   glNamedProgramLocalParameter4dEXT: TglNamedProgramLocalParameter4dEXT;
13375   glNamedProgramLocalParameter4dvEXT: TglNamedProgramLocalParameter4dvEXT;
13376   glNamedProgramLocalParameter4fEXT: TglNamedProgramLocalParameter4fEXT;
13377   glNamedProgramLocalParameter4fvEXT: TglNamedProgramLocalParameter4fvEXT;
13378   glGetNamedProgramLocalParameterdvEXT: TglGetNamedProgramLocalParameterdvEXT;
13379   glGetNamedProgramLocalParameterfvEXT: TglGetNamedProgramLocalParameterfvEXT;
13380   glGetNamedProgramivEXT: TglGetNamedProgramivEXT;
13381   glGetNamedProgramStringEXT: TglGetNamedProgramStringEXT;
13382   glNamedProgramLocalParameters4fvEXT: TglNamedProgramLocalParameters4fvEXT;
13383   glNamedProgramLocalParameterI4iEXT: TglNamedProgramLocalParameterI4iEXT;
13384   glNamedProgramLocalParameterI4ivEXT: TglNamedProgramLocalParameterI4ivEXT;
13385   glNamedProgramLocalParametersI4ivEXT: TglNamedProgramLocalParametersI4ivEXT;
13386   glNamedProgramLocalParameterI4uiEXT: TglNamedProgramLocalParameterI4uiEXT;
13387   glNamedProgramLocalParameterI4uivEXT: TglNamedProgramLocalParameterI4uivEXT;
13388   glNamedProgramLocalParametersI4uivEXT: TglNamedProgramLocalParametersI4uivEXT;
13389   glGetNamedProgramLocalParameterIivEXT: TglGetNamedProgramLocalParameterIivEXT;
13390   glGetNamedProgramLocalParameterIuivEXT: TglGetNamedProgramLocalParameterIuivEXT;
13391   glTextureParameterIivEXT: TglTextureParameterIivEXT;
13392   glTextureParameterIuivEXT: TglTextureParameterIuivEXT;
13393   glGetTextureParameterIivEXT: TglGetTextureParameterIivEXT;
13394   glGetTextureParameterIuivEXT: TglGetTextureParameterIuivEXT;
13395   glMultiTexParameterIivEXT: TglMultiTexParameterIivEXT;
13396   glMultiTexParameterIuivEXT: TglMultiTexParameterIuivEXT;
13397   glGetMultiTexParameterIivEXT: TglGetMultiTexParameterIivEXT;
13398   glGetMultiTexParameterIuivEXT: TglGetMultiTexParameterIuivEXT;
13399   glProgramUniform1fEXT: TglProgramUniform1fEXT;
13400   glProgramUniform2fEXT: TglProgramUniform2fEXT;
13401   glProgramUniform3fEXT: TglProgramUniform3fEXT;
13402   glProgramUniform4fEXT: TglProgramUniform4fEXT;
13403   glProgramUniform1iEXT: TglProgramUniform1iEXT;
13404   glProgramUniform2iEXT: TglProgramUniform2iEXT;
13405   glProgramUniform3iEXT: TglProgramUniform3iEXT;
13406   glProgramUniform4iEXT: TglProgramUniform4iEXT;
13407   glProgramUniform1fvEXT: TglProgramUniform1fvEXT;
13408   glProgramUniform2fvEXT: TglProgramUniform2fvEXT;
13409   glProgramUniform3fvEXT: TglProgramUniform3fvEXT;
13410   glProgramUniform4fvEXT: TglProgramUniform4fvEXT;
13411   glProgramUniform1ivEXT: TglProgramUniform1ivEXT;
13412   glProgramUniform2ivEXT: TglProgramUniform2ivEXT;
13413   glProgramUniform3ivEXT: TglProgramUniform3ivEXT;
13414   glProgramUniform4ivEXT: TglProgramUniform4ivEXT;
13415   glProgramUniformMatrix2fvEXT: TglProgramUniformMatrix2fvEXT;
13416   glProgramUniformMatrix3fvEXT: TglProgramUniformMatrix3fvEXT;
13417   glProgramUniformMatrix4fvEXT: TglProgramUniformMatrix4fvEXT;
13418   glProgramUniformMatrix2x3fvEXT: TglProgramUniformMatrix2x3fvEXT;
13419   glProgramUniformMatrix3x2fvEXT: TglProgramUniformMatrix3x2fvEXT;
13420   glProgramUniformMatrix2x4fvEXT: TglProgramUniformMatrix2x4fvEXT;
13421   glProgramUniformMatrix4x2fvEXT: TglProgramUniformMatrix4x2fvEXT;
13422   glProgramUniformMatrix3x4fvEXT: TglProgramUniformMatrix3x4fvEXT;
13423   glProgramUniformMatrix4x3fvEXT: TglProgramUniformMatrix4x3fvEXT;
13424   glProgramUniform1uiEXT: TglProgramUniform1uiEXT;
13425   glProgramUniform2uiEXT: TglProgramUniform2uiEXT;
13426   glProgramUniform3uiEXT: TglProgramUniform3uiEXT;
13427   glProgramUniform4uiEXT: TglProgramUniform4uiEXT;
13428   glProgramUniform1uivEXT: TglProgramUniform1uivEXT;
13429   glProgramUniform2uivEXT: TglProgramUniform2uivEXT;
13430   glProgramUniform3uivEXT: TglProgramUniform3uivEXT;
13431   glProgramUniform4uivEXT: TglProgramUniform4uivEXT;
13432   glNamedBufferDataEXT: TglNamedBufferDataEXT;
13433   glNamedBufferSubDataEXT: TglNamedBufferSubDataEXT;
13434   glMapNamedBufferEXT: TglMapNamedBufferEXT;
13435   glUnmapNamedBufferEXT: TglUnmapNamedBufferEXT;
13436   glMapNamedBufferRangeEXT: TglMapNamedBufferRangeEXT;
13437   glFlushMappedNamedBufferRangeEXT: TglFlushMappedNamedBufferRangeEXT;
13438   glNamedCopyBufferSubDataEXT: TglNamedCopyBufferSubDataEXT;
13439   glGetNamedBufferParameterivEXT: TglGetNamedBufferParameterivEXT;
13440   glGetNamedBufferPointervEXT: TglGetNamedBufferPointervEXT;
13441   glGetNamedBufferSubDataEXT: TglGetNamedBufferSubDataEXT;
13442   glTextureBufferEXT: TglTextureBufferEXT;
13443   glMultiTexBufferEXT: TglMultiTexBufferEXT;
13444   glNamedRenderbufferStorageEXT: TglNamedRenderbufferStorageEXT;
13445   glGetNamedRenderbufferParameterivEXT: TglGetNamedRenderbufferParameterivEXT;
13446   glCheckNamedFramebufferStatusEXT: TglCheckNamedFramebufferStatusEXT;
13447   glNamedFramebufferTexture1DEXT: TglNamedFramebufferTexture1DEXT;
13448   glNamedFramebufferTexture2DEXT: TglNamedFramebufferTexture2DEXT;
13449   glNamedFramebufferTexture3DEXT: TglNamedFramebufferTexture3DEXT;
13450   glNamedFramebufferRenderbufferEXT: TglNamedFramebufferRenderbufferEXT;
13451   glGetNamedFramebufferAttachmentParameterivEXT: TglGetNamedFramebufferAttachmentParameterivEXT;
13452   glGenerateTextureMipmapEXT: TglGenerateTextureMipmapEXT;
13453   glGenerateMultiTexMipmapEXT: TglGenerateMultiTexMipmapEXT;
13454   glFramebufferDrawBufferEXT: TglFramebufferDrawBufferEXT;
13455   glFramebufferDrawBuffersEXT: TglFramebufferDrawBuffersEXT;
13456   glFramebufferReadBufferEXT: TglFramebufferReadBufferEXT;
13457   glGetFramebufferParameterivEXT: TglGetFramebufferParameterivEXT;
13458   glNamedRenderbufferStorageMultisampleEXT: TglNamedRenderbufferStorageMultisampleEXT;
13459   glNamedRenderbufferStorageMultisampleCoverageEXT: TglNamedRenderbufferStorageMultisampleCoverageEXT;
13460   glNamedFramebufferTextureEXT: TglNamedFramebufferTextureEXT;
13461   glNamedFramebufferTextureLayerEXT: TglNamedFramebufferTextureLayerEXT;
13462   glNamedFramebufferTextureFaceEXT: TglNamedFramebufferTextureFaceEXT;
13463   glTextureRenderbufferEXT: TglTextureRenderbufferEXT;
13464   glMultiTexRenderbufferEXT: TglMultiTexRenderbufferEXT;
13465   glProgramUniform1dEXT: TglProgramUniform1dEXT;
13466   glProgramUniform2dEXT: TglProgramUniform2dEXT;
13467   glProgramUniform3dEXT: TglProgramUniform3dEXT;
13468   glProgramUniform4dEXT: TglProgramUniform4dEXT;
13469   glProgramUniform1dvEXT: TglProgramUniform1dvEXT;
13470   glProgramUniform2dvEXT: TglProgramUniform2dvEXT;
13471   glProgramUniform3dvEXT: TglProgramUniform3dvEXT;
13472   glProgramUniform4dvEXT: TglProgramUniform4dvEXT;
13473   glProgramUniformMatrix2dvEXT: TglProgramUniformMatrix2dvEXT;
13474   glProgramUniformMatrix3dvEXT: TglProgramUniformMatrix3dvEXT;
13475   glProgramUniformMatrix4dvEXT: TglProgramUniformMatrix4dvEXT;
13476   glProgramUniformMatrix2x3dvEXT: TglProgramUniformMatrix2x3dvEXT;
13477   glProgramUniformMatrix2x4dvEXT: TglProgramUniformMatrix2x4dvEXT;
13478   glProgramUniformMatrix3x2dvEXT: TglProgramUniformMatrix3x2dvEXT;
13479   glProgramUniformMatrix3x4dvEXT: TglProgramUniformMatrix3x4dvEXT;
13480   glProgramUniformMatrix4x2dvEXT: TglProgramUniformMatrix4x2dvEXT;
13481   glProgramUniformMatrix4x3dvEXT: TglProgramUniformMatrix4x3dvEXT;
13482
13483   // GL_EXT_separate_shader_objects
13484   glUseShaderProgramEXT: TglUseShaderProgramEXT;
13485   glActiveProgramEXT: TglActiveProgramEXT;
13486   glCreateShaderProgramEXT: TglCreateShaderProgramEXT;
13487
13488   // GL_EXT_shader_image_load_store
13489   glBindImageTextureEXT: TglBindImageTextureEXT;
13490   glMemoryBarrierEXT: TglMemoryBarrierEXT;
13491
13492   // GL_EXT_vertex_attrib_64bit
13493   glVertexAttribL1dEXT: TglVertexAttribL1dEXT;
13494   glVertexAttribL2dEXT: TglVertexAttribL2dEXT;
13495   glVertexAttribL3dEXT: TglVertexAttribL3dEXT;
13496   glVertexAttribL4dEXT: TglVertexAttribL4dEXT;
13497   glVertexAttribL1dvEXT: TglVertexAttribL1dvEXT;
13498   glVertexAttribL2dvEXT: TglVertexAttribL2dvEXT;
13499   glVertexAttribL3dvEXT: TglVertexAttribL3dvEXT;
13500   glVertexAttribL4dvEXT: TglVertexAttribL4dvEXT;
13501   glVertexAttribLPointerEXT: TglVertexAttribLPointerEXT;
13502   glGetVertexAttribLdvEXT: TglGetVertexAttribLdvEXT;
13503   glVertexArrayVertexAttribLOffsetEXT: TglVertexArrayVertexAttribLOffsetEXT;
13504
13505   // GL_HP_image_transform
13506   glImageTransformParameteriHP: TglImageTransformParameteriHP;
13507   glImageTransformParameterfHP: TglImageTransformParameterfHP;
13508   glImageTransformParameterivHP: TglImageTransformParameterivHP;
13509   glImageTransformParameterfvHP: TglImageTransformParameterfvHP;
13510   glGetImageTransformParameterivHP: TglGetImageTransformParameterivHP;
13511   glGetImageTransformParameterfvHP: TglGetImageTransformParameterfvHP;
13512
13513   // GL_EXT_depth_bounds_test
13514   glDepthBoundsEXT: TglDepthBoundsEXT;
13515
13516   // GL_EXT_blend_equation_separate
13517   glBlendEquationSeparateEXT: TglBlendEquationSeparateEXT;
13518
13519   // GL_IBM_multimode_draw_arrays
13520   glMultiModeDrawArraysIBM: TglMultiModeDrawArraysIBM;
13521   glMultiModeDrawElementsIBM: TglMultiModeDrawElementsIBM;
13522
13523   // GL_IBM_vertex_array_lists
13524   glColorPointerListIBM: TglColorPointerListIBM;
13525   glSecondaryColorPointerListIBM: TglSecondaryColorPointerListIBM;
13526   glEdgeFlagPointerListIBM: TglEdgeFlagPointerListIBM;
13527   glFogCoordPointerListIBM: TglFogCoordPointerListIBM;
13528   glIndexPointerListIBM: TglIndexPointerListIBM;
13529   glNormalPointerListIBM: TglNormalPointerListIBM;
13530   glTexCoordPointerListIBM: TglTexCoordPointerListIBM;
13531   glVertexPointerListIBM: TglVertexPointerListIBM;
13532
13533   // GL_INGR_blend_func_separate
13534   glBlendFuncSeparateINGR: TglBlendFuncSeparateINGR;
13535
13536   // GL_INTEL_parallel_arrays
13537   glVertexPointervINTEL: TglVertexPointervINTEL;
13538   glNormalPointervINTEL: TglNormalPointervINTEL;
13539   glColorPointervINTEL: TglColorPointervINTEL;
13540   glTexCoordPointervINTEL: TglTexCoordPointervINTEL;
13541
13542   // GL_MESA_resize_buffers
13543   glResizeBuffersMESA: TglResizeBuffersMESA;
13544
13545   // GL_MESA_window_pos
13546   glWindowPos2dMESA: TglWindowPos2dMESA;
13547   glWindowPos2dvMESA: TglWindowPos2dvMESA;
13548   glWindowPos2fMESA: TglWindowPos2fMESA;
13549   glWindowPos2fvMESA: TglWindowPos2fvMESA;
13550   glWindowPos2iMESA: TglWindowPos2iMESA;
13551   glWindowPos2ivMESA: TglWindowPos2ivMESA;
13552   glWindowPos2sMESA: TglWindowPos2sMESA;
13553   glWindowPos2svMESA: TglWindowPos2svMESA;
13554   glWindowPos3dMESA: TglWindowPos3dMESA;
13555   glWindowPos3dvMESA: TglWindowPos3dvMESA;
13556   glWindowPos3fMESA: TglWindowPos3fMESA;
13557   glWindowPos3fvMESA: TglWindowPos3fvMESA;
13558   glWindowPos3iMESA: TglWindowPos3iMESA;
13559   glWindowPos3ivMESA: TglWindowPos3ivMESA;
13560   glWindowPos3sMESA: TglWindowPos3sMESA;
13561   glWindowPos3svMESA: TglWindowPos3svMESA;
13562   glWindowPos4dMESA: TglWindowPos4dMESA;
13563   glWindowPos4dvMESA: TglWindowPos4dvMESA;
13564   glWindowPos4fMESA: TglWindowPos4fMESA;
13565   glWindowPos4fvMESA: TglWindowPos4fvMESA;
13566   glWindowPos4iMESA: TglWindowPos4iMESA;
13567   glWindowPos4ivMESA: TglWindowPos4ivMESA;
13568   glWindowPos4sMESA: TglWindowPos4sMESA;
13569   glWindowPos4svMESA: TglWindowPos4svMESA;
13570
13571   // GL_NV_evaluators
13572   glMapControlPointsNV: TglMapControlPointsNV;
13573   glMapParameterivNV: TglMapParameterivNV;
13574   glMapParameterfvNV: TglMapParameterfvNV;
13575   glGetMapControlPointsNV: TglGetMapControlPointsNV;
13576   glGetMapParameterivNV: TglGetMapParameterivNV;
13577   glGetMapParameterfvNV: TglGetMapParameterfvNV;
13578   glGetMapAttribParameterivNV: TglGetMapAttribParameterivNV;
13579   glGetMapAttribParameterfvNV: TglGetMapAttribParameterfvNV;
13580   glEvalMapsNV: TglEvalMapsNV;
13581
13582   // GL_NV_fence
13583   glDeleteFencesNV: TglDeleteFencesNV;
13584   glGenFencesNV: TglGenFencesNV;
13585   glIsFenceNV: TglIsFenceNV;
13586   glTestFenceNV: TglTestFenceNV;
13587   glGetFenceivNV: TglGetFenceivNV;
13588   glFinishFenceNV: TglFinishFenceNV;
13589   glSetFenceNV: TglSetFenceNV;
13590
13591   // GL_NV_fragment_program
13592   glProgramNamedParameter4fNV: TglProgramNamedParameter4fNV;
13593   glProgramNamedParameter4dNV: TglProgramNamedParameter4dNV;
13594   glProgramNamedParameter4fvNV: TglProgramNamedParameter4fvNV;
13595   glProgramNamedParameter4dvNV: TglProgramNamedParameter4dvNV;
13596   glGetProgramNamedParameterfvNV: TglGetProgramNamedParameterfvNV;
13597   glGetProgramNamedParameterdvNV: TglGetProgramNamedParameterdvNV;
13598
13599   // GL_NV_half_float
13600   glVertex2hNV: TglVertex2hNV;
13601   glVertex2hvNV: TglVertex2hvNV;
13602   glVertex3hNV: TglVertex3hNV;
13603   glVertex3hvNV: TglVertex3hvNV;
13604   glVertex4hNV: TglVertex4hNV;
13605   glVertex4hvNV: TglVertex4hvNV;
13606   glNormal3hNV: TglNormal3hNV;
13607   glNormal3hvNV: TglNormal3hvNV;
13608   glColor3hNV: TglColor3hNV;
13609   glColor3hvNV: TglColor3hvNV;
13610   glColor4hNV: TglColor4hNV;
13611   glColor4hvNV: TglColor4hvNV;
13612   glTexCoord1hNV: TglTexCoord1hNV;
13613   glTexCoord1hvNV: TglTexCoord1hvNV;
13614   glTexCoord2hNV: TglTexCoord2hNV;
13615   glTexCoord2hvNV: TglTexCoord2hvNV;
13616   glTexCoord3hNV: TglTexCoord3hNV;
13617   glTexCoord3hvNV: TglTexCoord3hvNV;
13618   glTexCoord4hNV: TglTexCoord4hNV;
13619   glTexCoord4hvNV: TglTexCoord4hvNV;
13620   glMultiTexCoord1hNV: TglMultiTexCoord1hNV;
13621   glMultiTexCoord1hvNV: TglMultiTexCoord1hvNV;
13622   glMultiTexCoord2hNV: TglMultiTexCoord2hNV;
13623   glMultiTexCoord2hvNV: TglMultiTexCoord2hvNV;
13624   glMultiTexCoord3hNV: TglMultiTexCoord3hNV;
13625   glMultiTexCoord3hvNV: TglMultiTexCoord3hvNV;
13626   glMultiTexCoord4hNV: TglMultiTexCoord4hNV;
13627   glMultiTexCoord4hvNV: TglMultiTexCoord4hvNV;
13628   glFogCoordhNV: TglFogCoordhNV;
13629   glFogCoordhvNV: TglFogCoordhvNV;
13630   glSecondaryColor3hNV: TglSecondaryColor3hNV;
13631   glSecondaryColor3hvNV: TglSecondaryColor3hvNV;
13632   glVertexWeighthNV: TglVertexWeighthNV;
13633   glVertexWeighthvNV: TglVertexWeighthvNV;
13634   glVertexAttrib1hNV: TglVertexAttrib1hNV;
13635   glVertexAttrib1hvNV: TglVertexAttrib1hvNV;
13636   glVertexAttrib2hNV: TglVertexAttrib2hNV;
13637   glVertexAttrib2hvNV: TglVertexAttrib2hvNV;
13638   glVertexAttrib3hNV: TglVertexAttrib3hNV;
13639   glVertexAttrib3hvNV: TglVertexAttrib3hvNV;
13640   glVertexAttrib4hNV: TglVertexAttrib4hNV;
13641   glVertexAttrib4hvNV: TglVertexAttrib4hvNV;
13642   glVertexAttribs1hvNV: TglVertexAttribs1hvNV;
13643   glVertexAttribs2hvNV: TglVertexAttribs2hvNV;
13644   glVertexAttribs3hvNV: TglVertexAttribs3hvNV;
13645   glVertexAttribs4hvNV: TglVertexAttribs4hvNV;
13646
13647   // GL_NV_occlusion_query
13648   glGenOcclusionQueriesNV: TglGenOcclusionQueriesNV;
13649   glDeleteOcclusionQueriesNV: TglDeleteOcclusionQueriesNV;
13650   glIsOcclusionQueryNV: TglIsOcclusionQueryNV;
13651   glBeginOcclusionQueryNV: TglBeginOcclusionQueryNV;
13652   glEndOcclusionQueryNV: TglEndOcclusionQueryNV;
13653   glGetOcclusionQueryivNV: TglGetOcclusionQueryivNV;
13654   glGetOcclusionQueryuivNV: TglGetOcclusionQueryuivNV;
13655
13656   // GL_NV_pixel_data_range
13657   glPixelDataRangeNV: TglPixelDataRangeNV;
13658   glFlushPixelDataRangeNV: TglFlushPixelDataRangeNV;
13659
13660   // GL_NV_point_sprite
13661   glPointParameteriNV: TglPointParameteriNV;
13662   glPointParameterivNV: TglPointParameterivNV;
13663
13664   // GL_NV_primitive_restart
13665   glPrimitiveRestartNV: TglPrimitiveRestartNV;
13666   glPrimitiveRestartIndexNV: TglPrimitiveRestartIndexNV;
13667
13668   // GL_NV_register_combiners
13669   glCombinerParameterfvNV: TglCombinerParameterfvNV;
13670   glCombinerParameterfNV: TglCombinerParameterfNV;
13671   glCombinerParameterivNV: TglCombinerParameterivNV;
13672   glCombinerParameteriNV: TglCombinerParameteriNV;
13673   glCombinerInputNV: TglCombinerInputNV;
13674   glCombinerOutputNV: TglCombinerOutputNV;
13675   glFinalCombinerInputNV: TglFinalCombinerInputNV;
13676   glGetCombinerInputParameterfvNV: TglGetCombinerInputParameterfvNV;
13677   glGetCombinerInputParameterivNV: TglGetCombinerInputParameterivNV;
13678   glGetCombinerOutputParameterfvNV: TglGetCombinerOutputParameterfvNV;
13679   glGetCombinerOutputParameterivNV: TglGetCombinerOutputParameterivNV;
13680   glGetFinalCombinerInputParameterfvNV: TglGetFinalCombinerInputParameterfvNV;
13681   glGetFinalCombinerInputParameterivNV: TglGetFinalCombinerInputParameterivNV;
13682
13683   // GL_NV_register_combiners2
13684   glCombinerStageParameterfvNV: TglCombinerStageParameterfvNV;
13685   glGetCombinerStageParameterfvNV: TglGetCombinerStageParameterfvNV;
13686
13687   // GL_NV_vertex_array_range
13688   glFlushVertexArrayRangeNV: TglFlushVertexArrayRangeNV;
13689   glVertexArrayRangeNV: TglVertexArrayRangeNV;
13690
13691   // GL_NV_vertex_program
13692   glAreProgramsResidentNV: TglAreProgramsResidentNV;
13693   glBindProgramNV: TglBindProgramNV;
13694   glDeleteProgramsNV: TglDeleteProgramsNV;
13695   glExecuteProgramNV: TglExecuteProgramNV;
13696   glGenProgramsNV: TglGenProgramsNV;
13697   glGetProgramParameterdvNV: TglGetProgramParameterdvNV;
13698   glGetProgramParameterfvNV: TglGetProgramParameterfvNV;
13699   glGetProgramivNV: TglGetProgramivNV;
13700   glGetProgramStringNV: TglGetProgramStringNV;
13701   glGetTrackMatrixivNV: TglGetTrackMatrixivNV;
13702   glGetVertexAttribdvNV: TglGetVertexAttribdvNV;
13703   glGetVertexAttribfvNV: TglGetVertexAttribfvNV;
13704   glGetVertexAttribivNV: TglGetVertexAttribivNV;
13705   glGetVertexAttribPointervNV: TglGetVertexAttribPointervNV;
13706   glIsProgramNV: TglIsProgramNV;
13707   glLoadProgramNV: TglLoadProgramNV;
13708   glProgramParameter4dNV: TglProgramParameter4dNV;
13709   glProgramParameter4dvNV: TglProgramParameter4dvNV;
13710   glProgramParameter4fNV: TglProgramParameter4fNV;
13711   glProgramParameter4fvNV: TglProgramParameter4fvNV;
13712   glProgramParameters4dvNV: TglProgramParameters4dvNV;
13713   glProgramParameters4fvNV: TglProgramParameters4fvNV;
13714   glRequestResidentProgramsNV: TglRequestResidentProgramsNV;
13715   glTrackMatrixNV: TglTrackMatrixNV;
13716   glVertexAttribPointerNV: TglVertexAttribPointerNV;
13717   glVertexAttrib1dNV: TglVertexAttrib1dNV;
13718   glVertexAttrib1dvNV: TglVertexAttrib1dvNV;
13719   glVertexAttrib1fNV: TglVertexAttrib1fNV;
13720   glVertexAttrib1fvNV: TglVertexAttrib1fvNV;
13721   glVertexAttrib1sNV: TglVertexAttrib1sNV;
13722   glVertexAttrib1svNV: TglVertexAttrib1svNV;
13723   glVertexAttrib2dNV: TglVertexAttrib2dNV;
13724   glVertexAttrib2dvNV: TglVertexAttrib2dvNV;
13725   glVertexAttrib2fNV: TglVertexAttrib2fNV;
13726   glVertexAttrib2fvNV: TglVertexAttrib2fvNV;
13727   glVertexAttrib2sNV: TglVertexAttrib2sNV;
13728   glVertexAttrib2svNV: TglVertexAttrib2svNV;
13729   glVertexAttrib3dNV: TglVertexAttrib3dNV;
13730   glVertexAttrib3dvNV: TglVertexAttrib3dvNV;
13731   glVertexAttrib3fNV: TglVertexAttrib3fNV;
13732   glVertexAttrib3fvNV: TglVertexAttrib3fvNV;
13733   glVertexAttrib3sNV: TglVertexAttrib3sNV;
13734   glVertexAttrib3svNV: TglVertexAttrib3svNV;
13735   glVertexAttrib4dNV: TglVertexAttrib4dNV;
13736   glVertexAttrib4dvNV: TglVertexAttrib4dvNV;
13737   glVertexAttrib4fNV: TglVertexAttrib4fNV;
13738   glVertexAttrib4fvNV: TglVertexAttrib4fvNV;
13739   glVertexAttrib4sNV: TglVertexAttrib4sNV;
13740   glVertexAttrib4svNV: TglVertexAttrib4svNV;
13741   glVertexAttrib4ubNV: TglVertexAttrib4ubNV;
13742   glVertexAttrib4ubvNV: TglVertexAttrib4ubvNV;
13743   glVertexAttribs1dvNV: TglVertexAttribs1dvNV;
13744   glVertexAttribs1fvNV: TglVertexAttribs1fvNV;
13745   glVertexAttribs1svNV: TglVertexAttribs1svNV;
13746   glVertexAttribs2dvNV: TglVertexAttribs2dvNV;
13747   glVertexAttribs2fvNV: TglVertexAttribs2fvNV;
13748   glVertexAttribs2svNV: TglVertexAttribs2svNV;
13749   glVertexAttribs3dvNV: TglVertexAttribs3dvNV;
13750   glVertexAttribs3fvNV: TglVertexAttribs3fvNV;
13751   glVertexAttribs3svNV: TglVertexAttribs3svNV;
13752   glVertexAttribs4dvNV: TglVertexAttribs4dvNV;
13753   glVertexAttribs4fvNV: TglVertexAttribs4fvNV;
13754   glVertexAttribs4svNV: TglVertexAttribs4svNV;
13755   glVertexAttribs4ubvNV: TglVertexAttribs4ubvNV;
13756
13757   // GL_NV_depth_buffer_float
13758   glDepthRangedNV: TglDepthRangedNV;
13759   glClearDepthdNV: TglClearDepthdNV;
13760   glDepthBoundsdNV: TglDepthBoundsdNV;
13761
13762   // GL_NV_framebuffer_multisample_coverage
13763   glRenderbufferStorageMultsampleCoverageNV: TglRenderbufferStorageMultsampleCoverageNV;
13764
13765   // GL_NV_geometry_program4
13766   glProgramVertexLimitNV: TglProgramVertexLimitNV;
13767
13768   // GL_NV_gpu_program4
13769   glProgramLocalParameterI4iNV: TglProgramLocalParameterI4iNV;
13770   glProgramLocalParameterI4ivNV: TglProgramLocalParameterI4ivNV;
13771   glProgramLocalParametersI4ivNV: TglProgramLocalParametersI4ivNV;
13772   glProgramLocalParameterI4uiNV: TglProgramLocalParameterI4uiNV;
13773   glProgramLocalParameterI4uivNV: TglProgramLocalParameterI4uivNV;
13774   glProgramLocalParametersI4uivNV: TglProgramLocalParametersI4uivNV;
13775   glProgramEnvParameterI4iNV: TglProgramEnvParameterI4iNV;
13776   glProgramEnvParameterI4ivNV: TglProgramEnvParameterI4ivNV;
13777   glProgramEnvParametersI4ivNV: TglProgramEnvParametersI4ivNV;
13778   glProgramEnvParameterI4uiNV: TglProgramEnvParameterI4uiNV;
13779   glProgramEnvParameterI4uivNV: TglProgramEnvParameterI4uivNV;
13780   glProgramEnvParametersI4uivNV: TglProgramEnvParametersI4uivNV;
13781   glGetProgramLocalParameterIivNV: TglGetProgramLocalParameterIivNV;
13782   glGetProgramLocalParameterIuivNV: TglGetProgramLocalParameterIuivNV;
13783   glGetProgramEnvParameterIivNV: TglGetProgramEnvParameterIivNV;
13784   glGetProgramEnvParameterIuivNV: TglGetProgramEnvParameterIuivNV;
13785
13786   // GL_NV_parameter_buffer_object
13787   glProgramBufferParametersfvNV: TglProgramBufferParametersfvNV;
13788   glProgramBufferParametersIivNV: TglProgramBufferParametersIivNV;
13789   glProgramBufferParametersIuivNV: TglProgramBufferParametersIuivNV;
13790
13791   // GL_NV_transform_feedback
13792   glBeginTransformFeedbackNV: TglBeginTransformFeedbackNV;
13793   glEndTransformFeedbackNV: TglEndTransformFeedbackNV;
13794   glTransformFeedbackAttribsNV: TglTransformFeedbackAttribsNV;
13795   glBindBufferRangeNV: TglBindBufferRangeNV;
13796   glBindBufferOffsetNV: TglBindBufferOffsetNV;
13797   glBindBufferBaseNV: TglBindBufferBaseNV;
13798   glTransformFeedbackVaryingsNV: TglTransformFeedbackVaryingsNV;
13799   glActiveVaryingNV: TglActiveVaryingNV;
13800   glGetVaryingLocationNV: TglGetVaryingLocationNV;
13801   glGetActiveVaryingNV: TglGetActiveVaryingNV;
13802   glGetTransformFeedbackVaryingNV: TglGetTransformFeedbackVaryingNV;
13803   glTransformFeedbackStreamAttribsNV: TglTransformFeedbackStreamAttribsNV;
13804
13805   // GL_NV_conditional_render
13806   glBeginConditionalRenderNV: TglBeginConditionalRenderNV;
13807   glEndConditionalRenderNV: TglEndConditionalRenderNV;
13808
13809   // GL_NV_present_video
13810   glPresentFrameKeyedNV: TglPresentFrameKeyedNV;
13811   glPresentFrameDualFillNV: TglPresentFrameDualFillNV;
13812   glGetVideoivNV: TglGetVideoivNV;
13813   glGetVideouivNV: TglGetVideouivNV;
13814   glGetVideoi64vNV: TglGetVideoi64vNV;
13815   glGetVideoui64vNV: TglGetVideoui64vNV;
13816 //  glVideoParameterivNV: TglVideoParameterivNV;
13817
13818   // GL_NV_explicit_multisample
13819   glGetMultisamplefvNV: TglGetMultisamplefvNV;
13820   glSampleMaskIndexedNV: TglSampleMaskIndexedNV;
13821   glTexRenderbufferNV: TglTexRenderbufferNV;
13822
13823   // GL_NV_transform_feedback2
13824   glBindTransformFeedbackNV: TglBindTransformFeedbackNV;
13825   glDeleteTransformFeedbacksNV: TglDeleteTransformFeedbacksNV;
13826   glGenTransformFeedbacksNV: TglGenTransformFeedbacksNV;
13827   glIsTransformFeedbackNV: TglIsTransformFeedbackNV;
13828   glPauseTransformFeedbackNV: TglPauseTransformFeedbackNV;
13829   glResumeTransformFeedbackNV: TglResumeTransformFeedbackNV;
13830   glDrawTransformFeedbackNV: TglDrawTransformFeedbackNV;
13831
13832   // GL_NV_video_capture
13833   glBeginVideoCaptureNV: TglBeginVideoCaptureNV;
13834   glBindVideoCaptureStreamBufferNV: TglBindVideoCaptureStreamBufferNV;
13835   glBindVideoCaptureStreamTextureNV: TglBindVideoCaptureStreamTextureNV;
13836   glEndVideoCaptureNV: TglEndVideoCaptureNV;
13837   glGetVideoCaptureivNV: TglGetVideoCaptureivNV;
13838   glGetVideoCaptureStreamivNV: TglGetVideoCaptureStreamivNV;
13839   glGetVideoCaptureStreamfvNV: TglGetVideoCaptureStreamfvNV;
13840   glGetVideoCaptureStreamdvNV: TglGetVideoCaptureStreamdvNV;
13841   glVideoCaptureNV: TglVideoCaptureNV;
13842   glVideoCaptureStreamParameterivNV: TglVideoCaptureStreamParameterivNV;
13843   glVideoCaptureStreamParameterfvNV: TglVideoCaptureStreamParameterfvNV;
13844   glVideoCaptureStreamParameterdvNV: TglVideoCaptureStreamParameterdvNV;
13845
13846   // GL_NV_copy_image
13847   glCopyImageSubDataNV: TglCopyImageSubDataNV;
13848
13849   // GL_NV_shader_buffer_load
13850   glMakeBufferResidentNV: TglMakeBufferResidentNV;
13851   glMakeBufferNonResidentNV: TglMakeBufferNonResidentNV;
13852   glIsBufferResidentNV: TglIsBufferResidentNV;
13853   glMakeNamedBufferResidentNV: TglMakeNamedBufferResidentNV;
13854   glMakeNamedBufferNonResidentNV: TglMakeNamedBufferNonResidentNV;
13855   glIsNamedBufferResidentNV: TglIsNamedBufferResidentNV;
13856   glGetBufferParameterui64vNV: TglGetBufferParameterui64vNV;
13857   glGetNamedBufferParameterui64vNV: TglGetNamedBufferParameterui64vNV;
13858   glGetIntegerui64vNV: TglGetIntegerui64vNV;
13859   glUniformui64NV: TglUniformui64NV;
13860   glUniformui64vNV: TglUniformui64vNV;
13861   glGetUniformui64vNV: TglGetUniformui64vNV;
13862   glProgramUniformui64NV: TglProgramUniformui64NV;
13863   glProgramUniformui64vNV: TglProgramUniformui64vNV;
13864
13865   // GL_NV_vertex_buffer_unified_memory
13866   glBufferAddressRangeNV: TglBufferAddressRangeNV;
13867   glVertexFormatNV: TglVertexFormatNV;
13868   glNormalFormatNV: TglNormalFormatNV;
13869   glColorFormatNV: TglColorFormatNV;
13870   glIndexFormatNV: TglIndexFormatNV;
13871   glTexCoordFormatNV: TglTexCoordFormatNV;
13872   glEdgeFlagFormatNV: TglEdgeFlagFormatNV;
13873   glSecondaryColorFormatNV: TglSecondaryColorFormatNV;
13874   glFogCoordFormatNV: TglFogCoordFormatNV;
13875   glVertexAttribFormatNV: TglVertexAttribFormatNV;
13876   glVertexAttribIFormatNV: TglVertexAttribIFormatNV;
13877   glGetIntegerui64i_vNV: TglGetIntegerui64i_vNV;
13878
13879   // GL_NV_gpu_program5
13880   glProgramSubroutineParametersuivNV: TglProgramSubroutineParametersuivNV;
13881   glGetProgramSubroutineParameteruivNV: TglGetProgramSubroutineParameteruivNV;
13882
13883   // GL_NV_gpu_shader5
13884   glUniform1i64NV: TglUniform1i64NV;
13885   glUniform2i64NV: TglUniform2i64NV;
13886   glUniform3i64NV: TglUniform3i64NV;
13887   glUniform4i64NV: TglUniform4i64NV;
13888   glUniform1i64vNV: TglUniform1i64vNV;
13889   glUniform2i64vNV: TglUniform2i64vNV;
13890   glUniform3i64vNV: TglUniform3i64vNV;
13891   glUniform4i64vNV: TglUniform4i64vNV;
13892   glUniform1ui64NV: TglUniform1ui64NV;
13893   glUniform2ui64NV: TglUniform2ui64NV;
13894   glUniform3ui64NV: TglUniform3ui64NV;
13895   glUniform4ui64NV: TglUniform4ui64NV;
13896   glUniform1ui64vNV: TglUniform1ui64vNV;
13897   glUniform2ui64vNV: TglUniform2ui64vNV;
13898   glUniform3ui64vNV: TglUniform3ui64vNV;
13899   glUniform4ui64vNV: TglUniform4ui64vNV;
13900   glGetUniformi64vNV: TglGetUniformi64vNV;
13901   glProgramUniform1i64NV: TglProgramUniform1i64NV;
13902   glProgramUniform2i64NV: TglProgramUniform2i64NV;
13903   glProgramUniform3i64NV: TglProgramUniform3i64NV;
13904   glProgramUniform4i64NV: TglProgramUniform4i64NV;
13905   glProgramUniform1i64vNV: TglProgramUniform1i64vNV;
13906   glProgramUniform2i64vNV: TglProgramUniform2i64vNV;
13907   glProgramUniform3i64vNV: TglProgramUniform3i64vNV;
13908   glProgramUniform4i64vNV: TglProgramUniform4i64vNV;
13909   glProgramUniform1ui64NV: TglProgramUniform1ui64NV;
13910   glProgramUniform2ui64NV: TglProgramUniform2ui64NV;
13911   glProgramUniform3ui64NV: TglProgramUniform3ui64NV;
13912   glProgramUniform4ui64NV: TglProgramUniform4ui64NV;
13913   glProgramUniform1ui64vNV: TglProgramUniform1ui64vNV;
13914   glProgramUniform2ui64vNV: TglProgramUniform2ui64vNV;
13915   glProgramUniform3ui64vNV: TglProgramUniform3ui64vNV;
13916   glProgramUniform4ui64vNV: TglProgramUniform4ui64vNV;
13917
13918   // GL_NV_vertex_attrib_integer_64bit
13919   glVertexAttribL1i64NV: TglVertexAttribL1i64NV;
13920   glVertexAttribL2i64NV: TglVertexAttribL2i64NV;
13921   glVertexAttribL3i64NV: TglVertexAttribL3i64NV;
13922   glVertexAttribL4i64NV: TglVertexAttribL4i64NV;
13923   glVertexAttribL1i64vNV: TglVertexAttribL1i64vNV;
13924   glVertexAttribL2i64vNV: TglVertexAttribL2i64vNV;
13925   glVertexAttribL3i64vNV: TglVertexAttribL3i64vNV;
13926   glVertexAttribL4i64vNV: TglVertexAttribL4i64vNV;
13927   glVertexAttribL1ui64NV: TglVertexAttribL1ui64NV;
13928   glVertexAttribL2ui64NV: TglVertexAttribL2ui64NV;
13929   glVertexAttribL3ui64NV: TglVertexAttribL3ui64NV;
13930   glVertexAttribL4ui64NV: TglVertexAttribL4ui64NV;
13931   glVertexAttribL1ui64vNV: TglVertexAttribL1ui64vNV;
13932   glVertexAttribL2ui64vNV: TglVertexAttribL2ui64vNV;
13933   glVertexAttribL3ui64vNV: TglVertexAttribL3ui64vNV;
13934   glVertexAttribL4ui64vNV: TglVertexAttribL4ui64vNV;
13935   glGetVertexAttribLi64vNV: TglGetVertexAttribLi64vNV;
13936   glGetVertexAttribLui64vNV: TglGetVertexAttribLui64vNV;
13937   glVertexAttribLFormatNV: TglVertexAttribLFormatNV;
13938
13939   // GL_NV_vdpau_interop
13940   glVDPAUInitNV: TglVDPAUInitNV;
13941   glVDPAUFiniNV: TglVDPAUFiniNV;
13942   glVDPAURegisterVideoSurfaceNV: TglVDPAURegisterVideoSurfaceNV;
13943   glVDPAURegisterOutputSurfaceNV: TglVDPAURegisterOutputSurfaceNV;
13944   glVDPAUIsSurfaceNV: TglVDPAUIsSurfaceNV;
13945   glVDPAUUnregisterSurfaceNV: TglVDPAUUnregisterSurfaceNV;
13946   glVDPAUGetSurfaceivNV: TglVDPAUGetSurfaceivNV;
13947   glVDPAUSurfaceAccessNV: TglVDPAUSurfaceAccessNV;
13948   glVDPAUMapSurfacesNV: TglVDPAUMapSurfacesNV;
13949   glVDPAUUnmapSurfacesNV: TglVDPAUUnmapSurfacesNV;
13950
13951   // GL_NV_texture_barrier
13952   glTextureBarrierNV: TglTextureBarrierNV;
13953
13954   // (4.3) GL_NV_path_rendering
13955   glGenPathsNV : TglGenPathsNV;
13956   glDeletePathsNV : TglDeletePathsNV;
13957   glIsPathNV : TglIsPathNV;
13958   glPathCommandsNV : TglPathCommandsNV;
13959   glPathCoordsNV : TglPathCoordsNV;
13960   glPathSubCommandsNV : TglPathSubCommandsNV;
13961   glPathSubCoordsNV : TglPathSubCoordsNV;
13962   glPathStringNV : TglPathStringNV;
13963   glPathGlyphsNV : TglPathGlyphsNV;
13964   glPathGlyphRangeNV : TglPathGlyphRangeNV;
13965   glWeightPathsNV : TglWeightPathsNV;
13966   glCopyPathNV : TglCopyPathNV;
13967   glInterpolatePathsNV : TglInterpolatePathsNV;
13968   glTransformPathNV : TglTransformPathNV;
13969   glPathParameterivNV : TglPathParameterivNV;
13970   glPathParameteriNV : TglPathParameteriNV;
13971   glPathParameterfvNV : TglPathParameterfvNV;
13972   glPathParameterfNV : TglPathParameterfNV;
13973   glPathDashArrayNV : TglPathDashArrayNV;
13974   glPathStencilFuncNV : TglPathStencilFuncNV;
13975   glPathStencilDepthOffsetNV : TglPathStencilDepthOffsetNV;
13976   glStencilFillPathNV : TglStencilFillPathNV;
13977   glStencilStrokePathNV : TglStencilStrokePathNV;
13978   glStencilFillPathInstancedNV : TglStencilFillPathInstancedNV;
13979   glStencilStrokePathInstancedNV : TglStencilStrokePathInstancedNV;
13980   glPathCoverDepthFuncNV : TglPathCoverDepthFuncNV;
13981   glPathColorGenNV : TglPathColorGenNV;
13982   glPathTexGenNV : TglPathTexGenNV;
13983   glPathFogGenNV : TglPathFogGenNV;
13984   glCoverFillPathNV : TglCoverFillPathNV;
13985   glCoverStrokePathNV : TglCoverStrokePathNV;
13986   glCoverFillPathInstancedNV : TglCoverFillPathInstancedNV;
13987   glCoverStrokePathInstancedNV : TglCoverStrokePathInstancedNV;
13988   glGetPathParameterivNV : TglGetPathParameterivNV;
13989   glGetPathParameterfvNV : TglGetPathParameterfvNV;
13990   glGetPathCommandsNV : TglGetPathCommandsNV;
13991   glGetPathCoordsNV : TglGetPathCoordsNV;
13992   glGetPathDashArrayNV : TglGetPathDashArrayNV;
13993   glGetPathMetricsNV : TglGetPathMetricsNV;
13994   glGetPathMetricRangeNV : TglGetPathMetricRangeNV;
13995   glGetPathSpacingNV : TglGetPathSpacingNV;
13996   glGetPathColorGenivNV : TglGetPathColorGenivNV;
13997   glGetPathColorGenfvNV : TglGetPathColorGenfvNV;
13998   glGetPathTexGenivNV : TglGetPathTexGenivNV;
13999   glGetPathTexGenfvNV : TglGetPathTexGenfvNV;
14000   glIsPointInFillPathNV : TglIsPointInFillPathNV;
14001   glIsPointInStrokePathNV : TglIsPointInStrokePathNV;
14002   glGetPathLengthNV : TglGetPathLengthNV;
14003   glPointAlongPathNV : TglPointAlongPathNV;
14004
14005   // GL_AMD_pinned_memory
14006
14007   // GL_AMD_stencil_operation_extended
14008   glStencilOpValueAMD : TglStencilOpValueAMD;
14009
14010   // GL_AMD_vertex_shader_viewport_index
14011
14012   // GL_AMD_vertex_shader_layer
14013
14014   // GL_NV_bindless_texture
14015   glGetTextureHandleNV : TglGetTextureHandleNV;
14016   glGetTextureSamplerHandleNV : TglGetTextureSamplerHandleNV;
14017   glMakeTextureHandleResidentNV : TglMakeTextureHandleResidentNV;
14018   glMakeTextureHandleNonResidentNV : TglMakeTextureHandleNonResidentNV;
14019   glGetImageHandleNV : TglGetImageHandleNV;
14020   glMakeImageHandleResidentNV : TglMakeImageHandleResidentNV;
14021   glMakeImageHandleNonResidentNV : TglMakeImageHandleNonResidentNV;
14022   glUniformHandleui64NV : TglUniformHandleui64NV;
14023   glUniformHandleui64vNV : TglUniformHandleui64vNV;
14024   glProgramUniformHandleui64NV : TglProgramUniformHandleui64NV;
14025   glProgramUniformHandleui64vNV : TglProgramUniformHandleui64vNV;
14026   glIsTextureHandleResidentNV : TglIsTextureHandleResidentNV;
14027   glIsImageHandleResidentNV : TglIsImageHandleResidentNV;
14028
14029   // GL_ARB_bindless_texture
14030   glGetTextureHandleARB : TglGetTextureHandleARB;
14031   glGetTextureSamplerHandleARB : TglGetTextureSamplerHandleARB;
14032   glMakeTextureHandleResidentARB : TglMakeTextureHandleResidentARB;
14033   glMakeTextureHandleNonResidentARB : TglMakeTextureHandleNonResidentARB;
14034   glGetImageHandleARB : TglGetImageHandleARB;
14035   glMakeImageHandleResidentARB : TglMakeImageHandleResidentARB;
14036   glMakeImageHandleNonResidentARB : TglMakeImageHandleNonResidentARB;
14037   glUniformHandleui64ARB : TglUniformHandleui64ARB;
14038   glUniformHandleui64vARB : TglUniformHandleui64vARB;
14039   glProgramUniformHandleui64ARB : TglProgramUniformHandleui64ARB;
14040   glProgramUniformHandleui64vARB : TglProgramUniformHandleui64vARB;
14041   glIsTextureHandleResidentARB : TglIsTextureHandleResidentARB;
14042   glIsImageHandleResidentARB : TglIsImageHandleResidentARB;
14043   glVertexAttribL1ui64ARB : TglVertexAttribL1ui64ARB;
14044   glVertexAttribL1ui64vARB : TglVertexAttribL1ui64vARB;
14045   glGetVertexAttribLui64vARB : TglGetVertexAttribLui64vARB;
14046
14047   // GL_PGI_misc_hints
14048   glHintPGI: TglHintPGI;
14049
14050   // GL_SGIS_detail_texture
14051   glDetailTexFuncSGIS: TglDetailTexFuncSGIS;
14052   glGetDetailTexFuncSGIS: TglGetDetailTexFuncSGIS;
14053
14054   // GL_SGIS_fog_function
14055   glFogFuncSGIS: TglFogFuncSGIS;
14056   glGetFogFuncSGIS: TglGetFogFuncSGIS;
14057
14058   // GL_SGIS_multisample
14059   glSampleMaskSGIS: TglSampleMaskSGIS;
14060   glSamplePatternSGIS: TglSamplePatternSGIS;
14061
14062   // GL_SGIS_pixel_texture
14063   glPixelTexGenParameteriSGIS: TglPixelTexGenParameteriSGIS;
14064   glPixelTexGenParameterivSGIS: TglPixelTexGenParameterivSGIS;
14065   glPixelTexGenParameterfSGIS: TglPixelTexGenParameterfSGIS;
14066   glPixelTexGenParameterfvSGIS: TglPixelTexGenParameterfvSGIS;
14067   glGetPixelTexGenParameterivSGIS: TglGetPixelTexGenParameterivSGIS;
14068   glGetPixelTexGenParameterfvSGIS: TglGetPixelTexGenParameterfvSGIS;
14069
14070   // GL_SGIS_point_parameters
14071   glPointParameterfSGIS: TglPointParameterfSGIS;
14072   glPointParameterfvSGIS: TglPointParameterfvSGIS;
14073
14074   // GL_SGIS_sharpen_texture
14075   glSharpenTexFuncSGIS: TglSharpenTexFuncSGIS;
14076   glGetSharpenTexFuncSGIS: TglGetSharpenTexFuncSGIS;
14077
14078   // GL_SGIS_texture4D
14079   glTexImage4DSGIS: TglTexImage4DSGIS;
14080   glTexSubImage4DSGIS: TglTexSubImage4DSGIS;
14081
14082   // GL_SGIS_texture_color_mask
14083   glTextureColorMaskSGIS: TglTextureColorMaskSGIS;
14084
14085   // GL_SGIS_texture_filter4
14086   glGetTexFilterFuncSGIS: TglGetTexFilterFuncSGIS;
14087   glTexFilterFuncSGIS: TglTexFilterFuncSGIS;
14088
14089   // GL_SGIX_async
14090   glAsyncMarkerSGIX: TglAsyncMarkerSGIX;
14091   glFinishAsyncSGIX: TglFinishAsyncSGIX;
14092   glPollAsyncSGIX: TglPollAsyncSGIX;
14093   glGenAsyncMarkersSGIX: TglGenAsyncMarkersSGIX;
14094   glDeleteAsyncMarkersSGIX: TglDeleteAsyncMarkersSGIX;
14095   glIsAsyncMarkerSGIX: TglIsAsyncMarkerSGIX;
14096
14097   // GL_SGIX_flush_raster
14098   glFlushRasterSGIX: TglFlushRasterSGIX;
14099
14100   // GL_SGIX_fragment_lighting
14101   glFragmentColorMaterialSGIX: TglFragmentColorMaterialSGIX;
14102   glFragmentLightfSGIX: TglFragmentLightfSGIX;
14103   glFragmentLightfvSGIX: TglFragmentLightfvSGIX;
14104   glFragmentLightiSGIX: TglFragmentLightiSGIX;
14105   glFragmentLightivSGIX: TglFragmentLightivSGIX;
14106   glFragmentLightModelfSGIX: TglFragmentLightModelfSGIX;
14107   glFragmentLightModelfvSGIX: TglFragmentLightModelfvSGIX;
14108   glFragmentLightModeliSGIX: TglFragmentLightModeliSGIX;
14109   glFragmentLightModelivSGIX: TglFragmentLightModelivSGIX;
14110   glFragmentMaterialfSGIX: TglFragmentMaterialfSGIX;
14111   glFragmentMaterialfvSGIX: TglFragmentMaterialfvSGIX;
14112   glFragmentMaterialiSGIX: TglFragmentMaterialiSGIX;
14113   glFragmentMaterialivSGIX: TglFragmentMaterialivSGIX;
14114   glGetFragmentLightfvSGIX: TglGetFragmentLightfvSGIX;
14115   glGetFragmentLightivSGIX: TglGetFragmentLightivSGIX;
14116   glGetFragmentMaterialfvSGIX: TglGetFragmentMaterialfvSGIX;
14117   glGetFragmentMaterialivSGIX: TglGetFragmentMaterialivSGIX;
14118   glLightEnviSGIX: TglLightEnviSGIX;
14119
14120   // GL_SGIX_framezoom
14121   glFrameZoomSGIX: TglFrameZoomSGIX;
14122
14123   // GL_SGIX_igloo_interface
14124   glIglooInterfaceSGIX: TglIglooInterfaceSGIX;
14125
14126   // GL_SGIX_instruments
14127   glGetInstrumentsSGIX: TglGetInstrumentsSGIX;
14128   glInstrumentsBufferSGIX: TglInstrumentsBufferSGIX;
14129   glPollInstrumentsSGIX: TglPollInstrumentsSGIX;
14130   glReadInstrumentsSGIX: TglReadInstrumentsSGIX;
14131   glStartInstrumentsSGIX: TglStartInstrumentsSGIX;
14132   glStopInstrumentsSGIX: TglStopInstrumentsSGIX;
14133
14134   // GL_SGIX_list_priority
14135   glGetListParameterfvSGIX: TglGetListParameterfvSGIX;
14136   glGetListParameterivSGIX: TglGetListParameterivSGIX;
14137   glListParameterfSGIX: TglListParameterfSGIX;
14138   glListParameterfvSGIX: TglListParameterfvSGIX;
14139   glListParameteriSGIX: TglListParameteriSGIX;
14140   glListParameterivSGIX: TglListParameterivSGIX;
14141
14142   // GL_SGIX_pixel_texture
14143   glPixelTexGenSGIX: TglPixelTexGenSGIX;
14144
14145   // GL_SGIX_polynomial_ffd
14146   glDeformationMap3dSGIX: TglDeformationMap3dSGIX;
14147   glDeformationMap3fSGIX: TglDeformationMap3fSGIX;
14148   glDeformSGIX: TglDeformSGIX;
14149   glLoadIdentityDeformationMapSGIX: TglLoadIdentityDeformationMapSGIX;
14150
14151   // GL_SGIX_reference_plane
14152   glReferencePlaneSGIX: TglReferencePlaneSGIX;
14153
14154   // GL_SGIX_sprite
14155   glSpriteParameterfSGIX: TglSpriteParameterfSGIX;
14156   glSpriteParameterfvSGIX: TglSpriteParameterfvSGIX;
14157   glSpriteParameteriSGIX: TglSpriteParameteriSGIX;
14158   glSpriteParameterivSGIX: TglSpriteParameterivSGIX;
14159
14160   // GL_SGIX_tag_sample_buffer
14161   glTagSampleBufferSGIX: TglTagSampleBufferSGIX;
14162
14163   // GL_SGI_color_table
14164   glColorTableSGI: TglColorTableSGI;
14165   glColorTableParameterfvSGI: TglColorTableParameterfvSGI;
14166   glColorTableParameterivSGI: TglColorTableParameterivSGI;
14167   glCopyColorTableSGI: TglCopyColorTableSGI;
14168   glGetColorTableSGI: TglGetColorTableSGI;
14169   glGetColorTableParameterfvSGI: TglGetColorTableParameterfvSGI;
14170   glGetColorTableParameterivSGI: TglGetColorTableParameterivSGI;
14171
14172   // GL_SUNX_constant_data
14173   glFinishTextureSUNX: TglFinishTextureSUNX;
14174
14175   // GL_SUN_global_alpha
14176   glGlobalAlphaFactorbSUN: TglGlobalAlphaFactorbSUN;
14177   glGlobalAlphaFactorsSUN: TglGlobalAlphaFactorsSUN;
14178   glGlobalAlphaFactoriSUN: TglGlobalAlphaFactoriSUN;
14179   glGlobalAlphaFactorfSUN: TglGlobalAlphaFactorfSUN;
14180   glGlobalAlphaFactordSUN: TglGlobalAlphaFactordSUN;
14181   glGlobalAlphaFactorubSUN: TglGlobalAlphaFactorubSUN;
14182   glGlobalAlphaFactorusSUN: TglGlobalAlphaFactorusSUN;
14183   glGlobalAlphaFactoruiSUN: TglGlobalAlphaFactoruiSUN;
14184
14185   // GL_SUN_mesh_array
14186   glDrawMeshArraysSUN: TglDrawMeshArraysSUN;
14187
14188   // GL_SUN_triangle_list
14189   glReplacementCodeuiSUN: TglReplacementCodeuiSUN;
14190   glReplacementCodeusSUN: TglReplacementCodeusSUN;
14191   glReplacementCodeubSUN: TglReplacementCodeubSUN;
14192   glReplacementCodeuivSUN: TglReplacementCodeuivSUN;
14193   glReplacementCodeusvSUN: TglReplacementCodeusvSUN;
14194   glReplacementCodeubvSUN: TglReplacementCodeubvSUN;
14195   glReplacementCodePointerSUN: TglReplacementCodePointerSUN;
14196
14197   // GL_SUN_vertex
14198   glColor4ubVertex2fSUN: TglColor4ubVertex2fSUN;
14199   glColor4ubVertex2fvSUN: TglColor4ubVertex2fvSUN;
14200   glColor4ubVertex3fSUN: TglColor4ubVertex3fSUN;
14201   glColor4ubVertex3fvSUN: TglColor4ubVertex3fvSUN;
14202   glColor3fVertex3fSUN: TglColor3fVertex3fSUN;
14203   glColor3fVertex3fvSUN: TglColor3fVertex3fvSUN;
14204   glNormal3fVertex3fSUN: TglNormal3fVertex3fSUN;
14205   glNormal3fVertex3fvSUN: TglNormal3fVertex3fvSUN;
14206   glColor4fNormal3fVertex3fSUN: TglColor4fNormal3fVertex3fSUN;
14207   glColor4fNormal3fVertex3fvSUN: TglColor4fNormal3fVertex3fvSUN;
14208   glTexCoord2fVertex3fSUN: TglTexCoord2fVertex3fSUN;
14209   glTexCoord2fVertex3fvSUN: TglTexCoord2fVertex3fvSUN;
14210   glTexCoord4fVertex4fSUN: TglTexCoord4fVertex4fSUN;
14211   glTexCoord4fVertex4fvSUN: TglTexCoord4fVertex4fvSUN;
14212   glTexCoord2fColor4ubVertex3fSUN: TglTexCoord2fColor4ubVertex3fSUN;
14213   glTexCoord2fColor4ubVertex3fvSUN: TglTexCoord2fColor4ubVertex3fvSUN;
14214   glTexCoord2fColor3fVertex3fSUN: TglTexCoord2fColor3fVertex3fSUN;
14215   glTexCoord2fColor3fVertex3fvSUN: TglTexCoord2fColor3fVertex3fvSUN;
14216   glTexCoord2fNormal3fVertex3fSUN: TglTexCoord2fNormal3fVertex3fSUN;
14217   glTexCoord2fNormal3fVertex3fvSUN: TglTexCoord2fNormal3fVertex3fvSUN;
14218   glTexCoord2fColor4fNormal3fVertex3fSUN: TglTexCoord2fColor4fNormal3fVertex3fSUN;
14219   glTexCoord2fColor4fNormal3fVertex3fvSUN: TglTexCoord2fColor4fNormal3fVertex3fvSUN;
14220   glTexCoord4fColor4fNormal3fVertex4fSUN: TglTexCoord4fColor4fNormal3fVertex4fSUN;
14221   glTexCoord4fColor4fNormal3fVertex4fvSUN: TglTexCoord4fColor4fNormal3fVertex4fvSUN;
14222   glReplacementCodeuiVertex3fSUN: TglReplacementCodeuiVertex3fSUN;
14223   glReplacementCodeuiVertex3fvSUN: TglReplacementCodeuiVertex3fvSUN;
14224   glReplacementCodeuiColor4ubVertex3fSUN: TglReplacementCodeuiColor4ubVertex3fSUN;
14225   glReplacementCodeuiColor4ubVertex3fvSUN: TglReplacementCodeuiColor4ubVertex3fvSUN;
14226   glReplacementCodeuiColor3fVertex3fSUN: TglReplacementCodeuiColor3fVertex3fSUN;
14227   glReplacementCodeuiColor3fVertex3fvSUN: TglReplacementCodeuiColor3fVertex3fvSUN;
14228   glReplacementCodeuiNormal3fVertex3fSUN: TglReplacementCodeuiNormal3fVertex3fSUN;
14229   glReplacementCodeuiNormal3fVertex3fvSUN: TglReplacementCodeuiNormal3fVertex3fvSUN;
14230   glReplacementCodeuiColor4fNormal3fVertex3fSUN: TglReplacementCodeuiColor4fNormal3fVertex3fSUN;
14231   glReplacementCodeuiColor4fNormal3fVertex3fvSUN: TglReplacementCodeuiColor4fNormal3fVertex3fvSUN;
14232   glReplacementCodeuiTexCoord2fVertex3fSUN: TglReplacementCodeuiTexCoord2fVertex3fSUN;
14233   glReplacementCodeuiTexCoord2fVertex3fvSUN: TglReplacementCodeuiTexCoord2fVertex3fvSUN;
14234   glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN: TglReplacementCodeuiTexCoord2fNormal3fVertex3fSUN;
14235   glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN: TglReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN;
14236   glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN: TglReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN;
14237   glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN: TglReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN;
14238
14239 {$IFDEF DGL_WIN}
14240   wglGetProcAddress: TwglGetProcAddress;
14241   wglCopyContext: TwglCopyContext;
14242   wglCreateContext: TwglCreateContext;
14243   wglCreateLayerContext: TwglCreateLayerContext;
14244   wglDeleteContext: TwglDeleteContext;
14245   wglDescribeLayerPlane: TwglDescribeLayerPlane;
14246   wglGetCurrentContext: TwglGetCurrentContext;
14247   wglGetCurrentDC: TwglGetCurrentDC;
14248   wglGetLayerPaletteEntries: TwglGetLayerPaletteEntries;
14249   wglMakeCurrent: TwglMakeCurrent;
14250   wglRealizeLayerPalette: TwglRealizeLayerPalette;
14251   wglSetLayerPaletteEntries: TwglSetLayerPaletteEntries;
14252   wglShareLists: TwglShareLists;
14253   wglSwapLayerBuffers: TwglSwapLayerBuffers;
14254   wglSwapMultipleBuffers: TwglSwapMultipleBuffers;
14255   wglUseFontBitmapsA: TwglUseFontBitmapsA;
14256   wglUseFontOutlinesA: TwglUseFontOutlinesA;
14257   wglUseFontBitmapsW: TwglUseFontBitmapsW;
14258   wglUseFontOutlinesW: TwglUseFontOutlinesW;
14259   wglUseFontBitmaps: TwglUseFontBitmaps;
14260   wglUseFontOutlines: TwglUseFontOutlines;
14261
14262    // WGL_ARB_buffer_region
14263   wglCreateBufferRegionARB: TwglCreateBufferRegionARB;
14264   wglDeleteBufferRegionARB: TwglDeleteBufferRegionARB;
14265   wglSaveBufferRegionARB: TwglSaveBufferRegionARB;
14266   wglRestoreBufferRegionARB: TwglRestoreBufferRegionARB;
14267
14268   // WGL_ARB_extensions_string
14269   wglGetExtensionsStringARB: TwglGetExtensionsStringARB;
14270
14271   // WGL_ARB_make_current_read
14272   wglMakeContextCurrentARB: TwglMakeContextCurrentARB;
14273   wglGetCurrentReadDCARB: TwglGetCurrentReadDCARB;
14274
14275   // WGL_ARB_pbuffer
14276   wglCreatePbufferARB: TwglCreatePbufferARB;
14277   wglGetPbufferDCARB: TwglGetPbufferDCARB;
14278   wglReleasePbufferDCARB: TwglReleasePbufferDCARB;
14279   wglDestroyPbufferARB: TwglDestroyPbufferARB;
14280   wglQueryPbufferARB: TwglQueryPbufferARB;
14281
14282   // WGL_ARB_pixel_format
14283   wglGetPixelFormatAttribivARB: TwglGetPixelFormatAttribivARB;
14284   wglGetPixelFormatAttribfvARB: TwglGetPixelFormatAttribfvARB;
14285   wglChoosePixelFormatARB: TwglChoosePixelFormatARB;
14286   // WGL_ARB_color_buffer_float
14287   wglClampColorARB: TwglClampColorARB;
14288
14289   // WGL_ARB_render_texture
14290   wglBindTexImageARB: TwglBindTexImageARB;
14291   wglReleaseTexImageARB: TwglReleaseTexImageARB;
14292   wglSetPbufferAttribARB: TwglSetPbufferAttribARB;
14293
14294   // WGL_ARB_create_context
14295   wglCreateContextAttribsARB: TwglCreateContextAttribsARB;
14296
14297   // WGL_AMD_gpu_association
14298   wglGetGPUIDsAMD: TwglGetGPUIDsAMD;
14299   wglGetGPUInfoAMD: TwglGetGPUInfoAMD;
14300   wglGetContextGPUIDAMD: TwglGetContextGPUIDAMD;
14301   wglCreateAssociatedContextAMD: TwglCreateAssociatedContextAMD;
14302   wglCreateAssociatedContextAttribsAMD: TwglCreateAssociatedContextAttribsAMD;
14303   wglDeleteAssociatedContextAMD: TwglDeleteAssociatedContextAMD;
14304   wglMakeAssociatedContextCurrentAMD: TwglMakeAssociatedContextCurrentAMD;
14305   wglGetCurrentAssociatedContextAMD: TwglGetCurrentAssociatedContextAMD;
14306   wglBlitContextFramebufferAMD: TwglBlitContextFramebufferAMD;
14307
14308   // WGL_EXT_display_color_table
14309   wglCreateDisplayColorTableEXT: TwglCreateDisplayColorTableEXT;
14310   wglLoadDisplayColorTableEXT: TwglLoadDisplayColorTableEXT;
14311   wglBindDisplayColorTableEXT: TwglBindDisplayColorTableEXT;
14312   wglDestroyDisplayColorTableEXT: TwglDestroyDisplayColorTableEXT;
14313
14314   // WGL_EXT_extensions_string
14315   wglGetExtensionsStringEXT: TwglGetExtensionsStringEXT;
14316
14317   // WGL_EXT_make_current_read
14318   wglMakeContextCurrentEXT: TwglMakeContextCurrentEXT;
14319   wglGetCurrentReadDCEXT: TwglGetCurrentReadDCEXT;
14320
14321   // WGL_EXT_pbuffer
14322   wglCreatePbufferEXT: TwglCreatePbufferEXT;
14323   wglGetPbufferDCEXT: TwglGetPbufferDCEXT;
14324   wglReleasePbufferDCEXT: TwglReleasePbufferDCEXT;
14325   wglDestroyPbufferEXT: TwglDestroyPbufferEXT;
14326   wglQueryPbufferEXT: TwglQueryPbufferEXT;
14327
14328   // WGL_EXT_pixel_format
14329   wglGetPixelFormatAttribivEXT: TwglGetPixelFormatAttribivEXT;
14330   wglGetPixelFormatAttribfvEXT: TwglGetPixelFormatAttribfvEXT;
14331   wglChoosePixelFormatEXT: TwglChoosePixelFormatEXT;
14332
14333   // WGL_EXT_swap_control
14334   wglSwapIntervalEXT: TwglSwapIntervalEXT;
14335   wglGetSwapIntervalEXT: TwglGetSwapIntervalEXT;
14336
14337   // WGL_I3D_digital_video_control
14338   wglGetDigitalVideoParametersI3D: TwglGetDigitalVideoParametersI3D;
14339   wglSetDigitalVideoParametersI3D: TwglSetDigitalVideoParametersI3D;
14340
14341   // WGL_I3D_gamma
14342   wglGetGammaTableParametersI3D: TwglGetGammaTableParametersI3D;
14343   wglSetGammaTableParametersI3D: TwglSetGammaTableParametersI3D;
14344   wglGetGammaTableI3D: TwglGetGammaTableI3D;
14345   wglSetGammaTableI3D: TwglSetGammaTableI3D;
14346
14347   // WGL_I3D_genlock
14348   wglEnableGenlockI3D: TwglEnableGenlockI3D;
14349   wglDisableGenlockI3D: TwglDisableGenlockI3D;
14350   wglIsEnabledGenlockI3D: TwglIsEnabledGenlockI3D;
14351   wglGenlockSourceI3D: TwglGenlockSourceI3D;
14352   wglGetGenlockSourceI3D: TwglGetGenlockSourceI3D;
14353   wglGenlockSourceEdgeI3D: TwglGenlockSourceEdgeI3D;
14354   wglGetGenlockSourceEdgeI3D: TwglGetGenlockSourceEdgeI3D;
14355   wglGenlockSampleRateI3D: TwglGenlockSampleRateI3D;
14356   wglGetGenlockSampleRateI3D: TwglGetGenlockSampleRateI3D;
14357   wglGenlockSourceDelayI3D: TwglGenlockSourceDelayI3D;
14358   wglGetGenlockSourceDelayI3D: TwglGetGenlockSourceDelayI3D;
14359   wglQueryGenlockMaxSourceDelayI3D: TwglQueryGenlockMaxSourceDelayI3D;
14360
14361   // WGL_I3D_image_buffer
14362   wglCreateImageBufferI3D: TwglCreateImageBufferI3D;
14363   wglDestroyImageBufferI3D: TwglDestroyImageBufferI3D;
14364   wglAssociateImageBufferEventsI3D: TwglAssociateImageBufferEventsI3D;
14365   wglReleaseImageBufferEventsI3D: TwglReleaseImageBufferEventsI3D;
14366
14367   // WGL_I3D_swap_frame_lock
14368   wglEnableFrameLockI3D: TwglEnableFrameLockI3D;
14369   wglDisableFrameLockI3D: TwglDisableFrameLockI3D;
14370   wglIsEnabledFrameLockI3D: TwglIsEnabledFrameLockI3D;
14371   wglQueryFrameLockMasterI3D: TwglQueryFrameLockMasterI3D;
14372
14373   // WGL_I3D_swap_frame_usage
14374   wglGetFrameUsageI3D: TwglGetFrameUsageI3D;
14375   wglBeginFrameTrackingI3D: TwglBeginFrameTrackingI3D;
14376   wglEndFrameTrackingI3D: TwglEndFrameTrackingI3D;
14377   wglQueryFrameTrackingI3D: TwglQueryFrameTrackingI3D;
14378
14379   // WGL_NV_vertex_array_range
14380   wglAllocateMemoryNV: TwglAllocateMemoryNV;
14381   wglFreeMemoryNV: TwglFreeMemoryNV;
14382
14383   // WGL_NV_present_video
14384   wglEnumerateVideoDevicesNV: TwglEnumerateVideoDevicesNV;
14385   wglBindVideoDeviceNV: TwglBindVideoDeviceNV;
14386   wglQueryCurrentContextNV: TwglQueryCurrentContextNV;
14387
14388   // WGL_NV_video_output
14389   wglGetVideoDeviceNV: TwglGetVideoDeviceNV;
14390   wglReleaseVideoDeviceNV: TwglReleaseVideoDeviceNV;
14391   wglBindVideoImageNV: TwglBindVideoImageNV;
14392   wglReleaseVideoImageNV: TwglReleaseVideoImageNV;
14393   wglSendPbufferToVideoNV: TwglSendPbufferToVideoNV;
14394   wglGetVideoInfoNV: TwglGetVideoInfoNV;
14395
14396   // WGL_NV_swap_group
14397   wglJoinSwapGroupNV: TwglJoinSwapGroupNV;
14398   wglBindSwapBarrierNV: TwglBindSwapBarrierNV;
14399   wglQuerySwapGroupNV: TwglQuerySwapGroupNV;
14400   wglQueryMaxSwapGroupsNV: TwglQueryMaxSwapGroupsNV;
14401   wglQueryFrameCountNV: TwglQueryFrameCountNV;
14402   wglResetFrameCountNV: TwglResetFrameCountNV;
14403
14404   // WGL_NV_gpu_affinity
14405   wglEnumGpusNV: TwglEnumGpusNV;
14406   wglEnumGpuDevicesNV: TwglEnumGpuDevicesNV;
14407   wglCreateAffinityDCNV: TwglCreateAffinityDCNV;
14408   wglEnumGpusFromAffinityDCNV: TwglEnumGpusFromAffinityDCNV;
14409   wglDeleteDCNV: TwglDeleteDCNV;
14410
14411   // WGL_NV_video_capture
14412   wglBindVideoCaptureDeviceNV: TwglBindVideoCaptureDeviceNV;
14413   wglEnumerateVideoCaptureDevicesNV: TwglEnumerateVideoCaptureDevicesNV;
14414   wglLockVideoCaptureDeviceNV: TwglLockVideoCaptureDeviceNV;
14415   wglQueryVideoCaptureDeviceNV: TwglQueryVideoCaptureDeviceNV;
14416   wglReleaseVideoCaptureDeviceNV: TwglReleaseVideoCaptureDeviceNV;
14417
14418   // WGL_NV_copy_image
14419   wglCopyImageSubDataNV: TwglCopyImageSubDataNV;
14420
14421   // WGL_NV_DX_interop
14422   wglDXSetResourceShareHandleNV : TwglDXSetResourceShareHandleNV;
14423   wglDXOpenDeviceNV : TwglDXOpenDeviceNV;
14424   wglDXCloseDeviceNV : TwglDXCloseDeviceNV;
14425   wglDXRegisterObjectNV : TwglDXRegisterObjectNV;
14426   wglDXUnregisterObjectNV : TwglDXUnregisterObjectNV;
14427   wglDXObjectAccessNV : TwglDXObjectAccessNV;
14428   wglDXLockObjectsNV : TwglDXLockObjectsNV;
14429   wglDXUnlockObjectsNV : TwglDXUnlockObjectsNV;
14430
14431   // WGL_OML_sync_control
14432   wglGetSyncValuesOML: TwglGetSyncValuesOML;
14433   wglGetMscRateOML: TwglGetMscRateOML;
14434   wglSwapBuffersMscOML: TwglSwapBuffersMscOML;
14435   wglSwapLayerBuffersMscOML: TwglSwapLayerBuffersMscOML;
14436   wglWaitForMscOML: TwglWaitForMscOML;
14437   wglWaitForSbcOML: TwglWaitForSbcOML;
14438
14439   // WGL_3DL_stereo_control
14440   wglSetStereoEmitterState3DL: TwglSetStereoEmitterState3DL;
14441
14442   // WIN_draw_range_elements
14443   glDrawRangeElementsWIN: TglDrawRangeElementsWIN;
14444
14445   // WIN_swap_hint
14446   glAddSwapHintRectWIN: TglAddSwapHintRectWIN;
14447 {$ENDIF}
14448
14449 {$IFDEF DGL_LINUX}
14450   glXChooseVisual: TglXChooseVisual;
14451   glXCopyContext: TglXCopyContext;
14452   glXCreateContext: TglXCreateContext;
14453   glXCreateGLXPixmap: TglXCreateGLXPixmap;
14454   glXDestroyContext: TglXDestroyContext;
14455   glXDestroyGLXPixmap: TglXDestroyGLXPixmap;
14456   glXGetConfig: TglXGetConfig;
14457   glXGetCurrentContext: TglXGetCurrentContext;
14458   glXGetCurrentDrawable: TglXGetCurrentDrawable;
14459   glXIsDirect: TglXIsDirect;
14460   glXMakeCurrent: TglXMakeCurrent;
14461   glXQueryExtension: TglXQueryExtension;
14462   glXQueryVersion: TglXQueryVersion;
14463   glXSwapBuffers: TglXSwapBuffers;
14464   glXUseXFont: TglXUseXFont;
14465   glXWaitGL: TglXWaitGL;
14466   glXWaitX: TglXWaitX;
14467
14468   glXGetClientString: TglXGetClientString;
14469   glXQueryServerString: TglXQueryServerString;
14470   glXQueryExtensionsString: TglXQueryExtensionsString;
14471
14472   // GLX_VERSION_1_3
14473   glXGetFBConfigs: TglXGetFBConfigs;
14474   glXChooseFBConfig: TglXChooseFBConfig;
14475   glXGetFBConfigAttrib: TglXGetFBConfigAttrib;
14476   glXGetVisualFromFBConfig: TglXGetVisualFromFBConfig;
14477   glXCreateWindow: TglXCreateWindow;
14478   glXDestroyWindow: TglXDestroyWindow;
14479   glXCreatePixmap: TglXCreatePixmap;
14480
14481   glXDestroyPixmap: TglXDestroyPixmap;
14482   glXCreatePbuffer: TglXCreatePbuffer;
14483   glXDestroyPbuffer: TglXDestroyPbuffer;
14484   glXQueryDrawable: TglXQueryDrawable;
14485   glXCreateNewContext: TglXCreateNewContext;
14486   glXMakeContextCurrent: TglXMakeContextCurrent;
14487   glXGetCurrentReadDrawable: TglXGetCurrentReadDrawable;
14488   glXGetCurreentDisplay: TglXGetCurreentDisplay;
14489
14490   glXQueryContext: TglXQueryContext;
14491   glXSelectEvent: TglXSelectEvent;
14492   glXGetSelectedEvent: TglXGetSelectedEvent;
14493
14494   // GLX_VERSION_1_4
14495   glXGetProcAddress: TglXGetProcAddress;
14496
14497   // GLX_ARB_get_proc_address
14498   glXGetProcAddressARB: TglXGetProcAddressARB;
14499
14500   // GLX_ARB_create_context
14501   glXCreateContextAttribsARB: TglXCreateContextAttribsARB;
14502
14503   // GLX_EXT_import_context
14504   glXGetCurrentDisplayEXT: TglXGetCurrentDisplayEXT;
14505   glXQueryContextInfoEXT: TglXQueryContextInfoEXT;
14506   glXGetContextIDEXT: TglXGetContextIDEXT;
14507   glXImportContextEXT: TglXImportContextEXT;
14508   glXFreeContextEXT: TglXFreeContextEXT;
14509
14510   // GLX_EXT_texture_from_pixmap
14511   glXBindTexImageEXT: TglXBindTexImageEXT;
14512   glXReleaseTexImageEXT: TglXReleaseTexImageEXT;
14513
14514   glXSwapIntervalEXT : TglXSwapIntervalEXT;
14515 {$ENDIF}
14516
14517   // GL utility functions and procedures
14518   gluErrorString: TgluErrorString;
14519   gluGetString: TgluGetString;
14520   gluOrtho2D: TgluOrtho2D;
14521   gluPerspective: TgluPerspective;
14522   gluPickMatrix: TgluPickMatrix;
14523   gluLookAt: TgluLookAt;
14524   gluProject: TgluProject;
14525   gluUnProject: TgluUnProject;
14526   gluScaleImage: TgluScaleImage;
14527   gluBuild1DMipmaps: TgluBuild1DMipmaps;
14528   gluBuild2DMipmaps: TgluBuild2DMipmaps;
14529   gluNewQuadric: TgluNewQuadric;
14530   gluDeleteQuadric: TgluDeleteQuadric;
14531   gluQuadricNormals: TgluQuadricNormals;
14532   gluQuadricTexture: TgluQuadricTexture;
14533   gluQuadricOrientation: TgluQuadricOrientation;
14534   gluQuadricDrawStyle: TgluQuadricDrawStyle;
14535   gluCylinder: TgluCylinder;
14536   gluDisk: TgluDisk;
14537   gluPartialDisk: TgluPartialDisk;
14538   gluSphere: TgluSphere;
14539   gluQuadricCallback: TgluQuadricCallback;
14540   gluNewTess: TgluNewTess;
14541   gluDeleteTess: TgluDeleteTess;
14542   gluTessBeginPolygon: TgluTessBeginPolygon;
14543   gluTessBeginContour: TgluTessBeginContour;
14544   gluTessVertex: TgluTessVertex;
14545   gluTessEndContour: TgluTessEndContour;
14546   gluTessEndPolygon: TgluTessEndPolygon;
14547   gluTessProperty: TgluTessProperty;
14548   gluTessNormal: TgluTessNormal;
14549   gluTessCallback: TgluTessCallback;
14550   gluGetTessProperty: TgluGetTessProperty;
14551   gluNewNurbsRenderer: TgluNewNurbsRenderer;
14552   gluDeleteNurbsRenderer: TgluDeleteNurbsRenderer;
14553   gluBeginSurface: TgluBeginSurface;
14554   gluBeginCurve: TgluBeginCurve;
14555   gluEndCurve: TgluEndCurve;
14556   gluEndSurface: TgluEndSurface;
14557   gluBeginTrim: TgluBeginTrim;
14558   gluEndTrim: TgluEndTrim;
14559   gluPwlCurve: TgluPwlCurve;
14560   gluNurbsCurve: TgluNurbsCurve;
14561   gluNurbsSurface: TgluNurbsSurface;
14562   gluLoadSamplingMatrices: TgluLoadSamplingMatrices;
14563   gluNurbsProperty: TgluNurbsProperty;
14564   gluGetNurbsProperty: TgluGetNurbsProperty;
14565   gluNurbsCallback: TgluNurbsCallback;
14566   gluBeginPolygon: TgluBeginPolygon;
14567   gluNextContour: TgluNextContour;
14568   gluEndPolygon: TgluEndPolygon;
14569
14570
14571 type
14572   TRCOptions = set of (opDoubleBuffered, opGDI, opStereo);
14573
14574 var
14575   GL_LibHandle: Pointer = nil;
14576   GLU_LibHandle: Pointer = nil;
14577
14578   LastPixelFormat: Integer;
14579   ExtensionsRead: Boolean;
14580   ImplementationRead: Boolean;
14581
14582
14583 const
14584 {$IFDEF DGL_WIN}
14585   OPENGL_LIBNAME = 'OpenGL32.dll';
14586   GLU_LIBNAME = 'GLU32.dll';
14587 {$ELSE}
14588   {$IFDEF darwin}
14589     OPENGL_LIBNAME = 'libGL.dylib';
14590     GLU_LIBNAME = 'libGLU.dylib';
14591   {$ELSE}
14592     OPENGL_LIBNAME = 'libGL.so.1';
14593     GLU_LIBNAME = 'libGLU.so.1';
14594   {$ENDIF}
14595 {$ENDIF}
14596
14597 function InitOpenGL(LibName: String = OPENGL_LIBNAME; GLULibName: String = GLU_LIBNAME): Boolean;
14598
14599 function dglGetProcAddress(ProcName: PAnsiChar; LibHandle: Pointer = nil {$IFDEF DGL_LINUX}; ForceDLSym: Boolean = False{$ENDIF}): Pointer;
14600 function dglCheckExtension(Extension: AnsiString): Boolean;
14601
14602 procedure ReadExtensions;
14603 procedure ReadImplementationProperties;
14604
14605 // =============================================================================
14606 // Helper-Functions
14607 // =============================================================================
14608 {$IFDEF DGL_WIN}
14609   function CreateRenderingContext(DC: HDC; Options: TRCOptions; ColorBits, ZBits, StencilBits, AccumBits, AuxBuffers: Integer; Layer: Integer): HGLRC;
14610   function CreateRenderingContextVersion(DC: HDC; Options: TRCOptions; MajorVersion, MinorVersion : Integer; ForwardCompatible : Boolean; ColorBits, ZBits, StencilBits, AccumBits, AuxBuffers: Integer; Layer: Integer): HGLRC;
14611   procedure DestroyRenderingContext(RC: HGLRC);
14612
14613   procedure ActivateRenderingContext(DC: HDC; RC: HGLRC; loadext: boolean = true);
14614   procedure DeactivateRenderingContext;
14615 {$ENDIF}
14616
14617
14618 procedure ReadOpenGLCore;
14619 procedure Read_GL_3DFX_tbuffer;
14620 procedure Read_GL_APPLE_element_array;
14621 procedure Read_GL_APPLE_fence;
14622 procedure Read_GL_APPLE_vertex_array_object;
14623 procedure Read_GL_APPLE_vertex_array_range;
14624 procedure Read_GL_APPLE_texture_range;
14625 procedure Read_GL_APPLE_vertex_program_evaluators;
14626 procedure Read_GL_APPLE_object_purgeable;
14627 procedure Read_GL_ARB_matrix_palette;
14628 procedure Read_GL_ARB_multitexture;
14629 procedure Read_GL_ARB_point_parameters;
14630 procedure Read_GL_ARB_texture_compression;
14631 procedure Read_GL_ARB_transpose_matrix;
14632 procedure Read_GL_ARB_vertex_blend;
14633 procedure Read_GL_ARB_vertex_buffer_object;
14634 procedure Read_GL_ARB_vertex_program;
14635 procedure Read_GL_ARB_window_pos;
14636 procedure Read_GL_ARB_color_buffer_float;
14637 procedure Read_GL_ARB_Shader_Objects;
14638 procedure Read_GL_ARB_occlusion_query;
14639 procedure Read_GL_ARB_draw_instanced;
14640 procedure Read_GL_ARB_framebuffer_object;
14641 procedure Read_GL_ARB_geometry_shader4;
14642 procedure Read_GL_ARB_instanced_arrays;
14643 procedure Read_GL_ARB_map_buffer_range;
14644 procedure Read_GL_ARB_texture_buffer_object;
14645 procedure Read_GL_ARB_vertex_array_object;
14646 procedure Read_GL_ARB_uniform_buffer_object;
14647 procedure Read_GL_ARB_copy_buffer;
14648 procedure Read_GL_ARB_draw_elements_base_vertex;
14649 procedure Read_GL_ARB_provoking_vertex;
14650 procedure Read_GL_ARB_sync;
14651 procedure Read_GL_ARB_texture_multisample;
14652 procedure Read_GL_ARB_draw_buffers_blend;
14653 procedure Read_GL_ARB_sample_shading;
14654 procedure Read_GL_ARB_shading_language_include;
14655 procedure Read_GL_ARB_blend_func_extended;
14656 procedure Read_GL_ARB_sampler_objects;
14657 procedure Read_GL_ARB_timer_query;
14658 procedure Read_GL_ARB_vertex_type_2_10_10_10_rev;
14659 procedure Read_GL_ARB_draw_indirect;
14660 procedure Read_GL_ARB_gpu_shader_fp64;
14661 procedure Read_GL_ARB_shader_subroutine;
14662 procedure Read_GL_ARB_tessellation_shader;
14663 procedure Read_GL_ARB_transform_feedback2;
14664 procedure Read_GL_ARB_transform_feedback3;
14665 procedure Read_GL_ARB_ES2_compatibility;
14666 procedure Read_GL_ARB_get_program_binary;
14667 procedure Read_GL_ARB_separate_shader_objects;
14668 procedure Read_GL_ARB_vertex_attrib_64bit;
14669 procedure Read_GL_ARB_viewport_array;
14670 // GL 4.2
14671 procedure Read_GL_ARB_base_instance;
14672 procedure Read_GL_ARB_transform_feedback_instanced;
14673 procedure Read_GL_ARB_internalformat_query;
14674 procedure Read_GL_ARB_shader_atomic_counters;
14675 procedure Read_GL_ARB_shader_image_load_store;
14676 procedure Read_GL_ARB_texture_storage;
14677 // GL 4.3
14678 procedure Read_GL_KHR_debug;
14679 procedure Read_GL_ARB_clear_buffer_object;
14680 procedure Read_GL_ARB_compute_shader;
14681 procedure Read_GL_ARB_copy_image;
14682 procedure Read_GL_ARB_framebuffer_no_attachments;
14683 procedure Read_GL_ARB_internalformat_query2;
14684 procedure Read_GL_ARB_invalidate_subdata;
14685 procedure Read_GL_ARB_multi_draw_indirect;
14686 procedure Read_GL_ARB_program_interface_query;
14687 procedure Read_GL_ARB_shader_storage_buffer_object;
14688 procedure Read_GL_ARB_texture_buffer_range;
14689 procedure Read_GL_ARB_texture_storage_multisample;
14690 procedure Read_GL_ARB_texture_view;
14691 procedure Read_GL_ARB_vertex_attrib_binding;
14692
14693
14694 procedure Read_GL_4_4;
14695 procedure Read_GL_4_5;
14696
14697 //
14698 procedure Read_GL_ARB_cl_event;
14699 procedure Read_GL_ARB_compute_variable_group_size;
14700 procedure Read_GL_ARB_debug_output;
14701 procedure Read_GL_ARB_robustness;
14702 procedure Read_GL_ATI_draw_buffers;
14703 procedure Read_GL_ATI_element_array;
14704 procedure Read_GL_ATI_envmap_bumpmap;
14705 procedure Read_GL_ATI_fragment_shader;
14706 procedure Read_GL_ATI_map_object_buffer;
14707 procedure Read_GL_ATI_pn_triangles;
14708 procedure Read_GL_ATI_separate_stencil;
14709 procedure Read_GL_ATI_vertex_array_object;
14710 procedure Read_GL_ATI_vertex_attrib_array_object;
14711 procedure Read_GL_ATI_vertex_streams;
14712 procedure Read_GL_AMD_performance_monitor;
14713 procedure Read_GL_AMD_vertex_shader_tesselator;
14714 procedure Read_GL_AMD_draw_buffers_blend;
14715 procedure Read_GL_AMD_name_gen_delete;
14716 procedure Read_GL_AMD_debug_output;
14717 procedure Read_GL_EXT_blend_color;
14718 procedure Read_GL_EXT_blend_func_separate;
14719 procedure Read_GL_EXT_blend_minmax;
14720 procedure Read_GL_EXT_color_subtable;
14721 procedure Read_GL_EXT_compiled_vertex_array;
14722 procedure Read_GL_EXT_convolution;
14723 procedure Read_GL_EXT_coordinate_frame;
14724 procedure Read_GL_EXT_copy_texture;
14725 procedure Read_GL_EXT_cull_vertex;
14726 procedure Read_GL_EXT_draw_range_elements;
14727 procedure Read_GL_EXT_fog_coord;
14728 procedure Read_GL_EXT_framebuffer_object;
14729 procedure Read_GL_EXT_histogram;
14730 procedure Read_GL_EXT_index_func;
14731 procedure Read_GL_EXT_index_material;
14732 procedure Read_GL_EXT_multi_draw_arrays;
14733 procedure Read_GL_EXT_multisample;
14734 procedure Read_GL_EXT_paletted_texture;
14735 procedure Read_GL_EXT_pixel_transform;
14736 procedure Read_GL_EXT_point_parameters;
14737 procedure Read_GL_EXT_polygon_offset;
14738 procedure Read_GL_EXT_secondary_color;
14739 procedure Read_GL_EXT_stencil_two_side;
14740 procedure Read_GL_EXT_subtexture;
14741 procedure Read_GL_EXT_texture3D;
14742 procedure Read_GL_EXT_texture_object;
14743 procedure Read_GL_EXT_texture_perturb_normal;
14744 procedure Read_GL_EXT_vertex_array;
14745 procedure Read_GL_EXT_vertex_shader;
14746 procedure Read_GL_EXT_vertex_weighting;
14747 procedure Read_GL_EXT_depth_bounds_test;
14748 procedure Read_GL_EXT_blend_equation_separate;
14749 procedure Read_GL_EXT_stencil_clear_tag;
14750 procedure Read_GL_EXT_framebuffer_blit;
14751 procedure Read_GL_EXT_framebuffer_multisample;
14752 procedure Read_GL_EXT_timer_query;
14753 procedure Read_GL_EXT_gpu_program_parameters;
14754 procedure Read_GL_EXT_bindable_uniform;
14755 procedure Read_GL_EXT_draw_buffers2;
14756 procedure Read_GL_EXT_draw_instanced;
14757 procedure Read_GL_EXT_geometry_shader4;
14758 procedure Read_GL_EXT_gpu_shader4;
14759 procedure Read_GL_EXT_texture_array;
14760 procedure Read_GL_EXT_texture_buffer_object;
14761 procedure Read_GL_EXT_texture_integer;
14762 procedure Read_GL_EXT_transform_feedback;
14763 procedure Read_GL_EXT_direct_state_access;
14764 procedure Read_GL_EXT_separate_shader_objects;
14765 procedure Read_GL_EXT_shader_image_load_store;
14766 procedure Read_GL_EXT_vertex_attrib_64bit;
14767 procedure Read_GL_HP_image_transform;
14768 procedure Read_GL_IBM_multimode_draw_arrays;
14769 procedure Read_GL_IBM_vertex_array_lists;
14770 procedure Read_GL_INGR_blend_func_separate;
14771 procedure Read_GL_INTEL_parallel_arrays;
14772 procedure Read_GL_MESA_resize_buffers;
14773 procedure Read_GL_MESA_window_pos;
14774 procedure Read_GL_NV_evaluators;
14775 procedure Read_GL_NV_fence;
14776 procedure Read_GL_NV_fragment_program;
14777 procedure Read_GL_NV_half_float;
14778 procedure Read_GL_NV_occlusion_query;
14779 procedure Read_GL_NV_pixel_data_range;
14780 procedure Read_GL_NV_point_sprite;
14781 procedure Read_GL_NV_primitive_restart;
14782 procedure Read_GL_NV_register_combiners;
14783 procedure Read_GL_NV_register_combiners2;
14784 procedure Read_GL_NV_vertex_array_range;
14785 procedure Read_GL_NV_vertex_program;
14786 procedure Read_GL_NV_depth_buffer_float;
14787 procedure Read_GL_NV_framebuffer_multisample_coverage;
14788 procedure Read_GL_NV_geometry_program4;
14789 procedure Read_GL_NV_gpu_program4;
14790 procedure Read_GL_NV_parameter_buffer_object;
14791 procedure Read_GL_NV_transform_feedback;
14792 procedure Read_GL_NV_conditional_render;
14793 procedure Read_GL_NV_present_video;
14794 procedure Read_GL_NV_explicit_multisample;
14795 procedure Read_GL_NV_transform_feedback2;
14796 procedure Read_GL_NV_video_capture;
14797 procedure Read_GL_NV_copy_image;
14798 procedure Read_GL_NV_shader_buffer_load;
14799 procedure Read_GL_NV_vertex_buffer_unified_memory;
14800 procedure Read_GL_NV_gpu_program5;
14801 procedure Read_GL_NV_gpu_shader5;
14802 procedure Read_GL_NV_vertex_attrib_integer_64bit;
14803 procedure Read_GL_NV_vdpau_interop;
14804 procedure Read_GL_NV_texture_barrier;
14805 procedure Read_GL_PGI_misc_hints;
14806 procedure Read_GL_SGIS_detail_texture;
14807 procedure Read_GL_SGIS_fog_function;
14808 procedure Read_GL_SGIS_multisample;
14809 procedure Read_GL_SGIS_pixel_texture;
14810 procedure Read_GL_SGIS_point_parameters;
14811 procedure Read_GL_SGIS_sharpen_texture;
14812 procedure Read_GL_SGIS_texture4D;
14813 procedure Read_GL_SGIS_texture_color_mask;
14814 procedure Read_GL_SGIS_texture_filter4;
14815 procedure Read_GL_SGIX_async;
14816 procedure Read_GL_SGIX_flush_raster;
14817 procedure Read_GL_SGIX_fragment_lighting;
14818 procedure Read_GL_SGIX_framezoom;
14819 procedure Read_GL_SGIX_igloo_interface;
14820 procedure Read_GL_SGIX_instruments;
14821 procedure Read_GL_SGIX_list_priority;
14822 procedure Read_GL_SGIX_pixel_texture;
14823 procedure Read_GL_SGIX_polynomial_ffd;
14824 procedure Read_GL_SGIX_reference_plane;
14825 procedure Read_GL_SGIX_sprite;
14826 procedure Read_GL_SGIX_tag_sample_buffer;
14827 procedure Read_GL_SGI_color_table;
14828 procedure Read_GL_SUNX_constant_data;
14829 procedure Read_GL_SUN_global_alpha;
14830 procedure Read_GL_SUN_mesh_array;
14831 procedure Read_GL_SUN_triangle_list;
14832 procedure Read_GL_SUN_vertex;
14833
14834 {$IFDEF DGL_WIN}
14835 procedure Read_WGL_ARB_buffer_region;
14836 procedure Read_WGL_ARB_extensions_string;
14837 procedure Read_WGL_ARB_make_current_read;
14838 procedure Read_WGL_ARB_pbuffer;
14839 procedure Read_WGL_ARB_pixel_format;
14840 procedure Read_WGL_ARB_pixel_format_float;
14841 procedure Read_WGL_ARB_render_texture;
14842 procedure Read_WGL_ARB_create_context;
14843 procedure Read_WGL_AMD_gpu_association;
14844 procedure Read_WGL_EXT_display_color_table;
14845 procedure Read_WGL_EXT_extensions_string;
14846 procedure Read_WGL_EXT_make_current_read;
14847 procedure Read_WGL_EXT_pbuffer;
14848 procedure Read_WGL_EXT_pixel_format;
14849 procedure Read_WGL_EXT_swap_control;
14850 procedure Read_WGL_I3D_digital_video_control;
14851 procedure Read_WGL_I3D_gamma;
14852 procedure Read_WGL_I3D_genlock;
14853 procedure Read_WGL_I3D_image_buffer;
14854 procedure Read_WGL_I3D_swap_frame_lock;
14855 procedure Read_WGL_I3D_swap_frame_usage;
14856 procedure Read_WGL_NV_vertex_array_range;
14857 procedure Read_WGL_NV_present_video;
14858 procedure Read_WGL_NV_video_output;
14859 procedure Read_WGL_NV_swap_group;
14860 procedure Read_WGL_NV_gpu_affinity;
14861 procedure Read_WGL_NV_video_capture;
14862 procedure Read_WGL_NV_copy_image;
14863 procedure Read_WGL_OML_sync_control;
14864 procedure Read_WGL_3DL_stereo_control;
14865
14866 procedure Read_WIN_draw_range_elements;
14867 procedure Read_WIN_swap_hint;
14868 {$ENDIF}
14869
14870
14871 implementation
14872
14873
14874 {$IFDEF DGL_LINUX}
14875 const
14876   RTLD_LAZY = $001;
14877   RTLD_NOW = $002;
14878   RTLD_BINDING_MASK = $003;
14879
14880   // Seems to work on Debian / Fedora
14881   LibraryLib = {$IFDEF Linux} 'libdl.so.2'{$ELSE} 'c'{$ENDIF};
14882
14883 function dlopen(Name: PAnsiChar; Flags: LongInt): Pointer; cdecl; external LibraryLib name 'dlopen';
14884 function dlclose(Lib: Pointer): LongInt; cdecl; external LibraryLib name 'dlclose';
14885
14886 function dlsym(Lib: Pointer; Name: PAnsiChar): Pointer; cdecl; external LibraryLib name 'dlsym';
14887 {$ENDIF}
14888
14889 {$IFDEF DGL_MAC}{$IFDEF OPENGL_FRAMEWORK}  // OpenGL framework used
14890 const
14891   RTLD_DEFAULT = Pointer(-2);
14892 {$ENDIF}{$ENDIF}
14893
14894 function dglLoadLibrary(Name: PChar): Pointer;
14895 begin
14896   {$IFDEF DGL_WIN}
14897   Result := {%H-}Pointer(LoadLibrary(Name));
14898   {$ENDIF}
14899
14900   {$IFDEF DGL_LINUX}
14901   Result := dlopen(Name, RTLD_LAZY);
14902   {$ENDIF}
14903
14904   {$IFDEF DGL_MAC}
14905   {$IFDEF OPENGL_FRAMEWORK}
14906   Result := RTLD_DEFAULT;
14907   {$ELSE}
14908   Result := Pointer(LoadLibrary(Name));
14909   {$ENDIF}
14910   {$ENDIF}
14911 end;
14912
14913
14914 function dglFreeLibrary(LibHandle: Pointer): Boolean;
14915 begin
14916   if LibHandle = nil then
14917     Result := False
14918   else
14919     {$IFDEF DGL_WIN}
14920     Result := FreeLibrary({%H-}HMODULE(LibHandle));
14921     {$ENDIF}
14922
14923     {$IFDEF DGL_LINUX}
14924     Result := dlclose(LibHandle) = 0;
14925     {$ENDIF}
14926
14927     {$IFDEF DGL_MAC}
14928     {$IFDEF OPENGL_FRAMEWORK}
14929         Result := true;
14930         {$ELSE}
14931     Result := FreeLibrary(HMODULE(LibHandle));
14932     {$ENDIF}
14933         {$ENDIF}
14934 end;
14935
14936
14937 function dglGetProcAddress(ProcName: PAnsiChar; LibHandle: Pointer = nil {$IFDEF DGL_LINUX}; ForceDLSym: Boolean = False{$ENDIF}): Pointer;
14938 begin
14939   if LibHandle = nil then
14940     LibHandle := GL_LibHandle;
14941
14942
14943   {$IFDEF DGL_WIN}
14944     Result := GetProcAddress({%H-}HMODULE(LibHandle), ProcName);
14945
14946     if result <> nil then
14947       exit;
14948
14949     if Addr(wglGetProcAddress) <> nil then
14950       Result := wglGetProcAddress(ProcName);
14951   {$ENDIF}
14952
14953   {$IFDEF DGL_LINUX}
14954     if not ForceDLSym then begin
14955       if Addr(glXGetProcAddress) <> nil then
14956         Result := glXGetProcAddress(ProcName);
14957
14958       if result <> nil then
14959         exit;
14960
14961       if Addr(glXGetProcAddressARB) <> nil then
14962         Result := glXGetProcAddressARB(ProcName);
14963
14964       if result <> nil then
14965         exit;
14966     end;
14967
14968     Result := dlsym(LibHandle, ProcName);
14969   {$ENDIF}
14970
14971   {$IFDEF DGL_MAC}
14972     Result := GetProcAddress(HMODULE(LibHandle), ProcName);
14973   {$ENDIF}
14974 end;
14975
14976
14977 function Int_GetExtensionString: AnsiString;
14978 var
14979         ExtensionCount : GLint;
14980   i : Integer;
14981 begin
14982   if GL_VERSION_3_0
14983     then
14984       begin
14985         if not Assigned(@glGetIntegerv) then glGetIntegerv := dglGetProcAddress('glGetIntegerv');
14986         if not Assigned(@glGetStringi)  then glGetStringi  := dglGetProcAddress('glGetStringi');
14987
14988         result := '';
14989
14990         if Assigned(@glGetIntegerv) and Assigned(@glGetStringi)
14991           then
14992             begin
14993               glGetIntegerv(GL_NUM_EXTENSIONS, @extensionCount);
14994
14995               For I := 0 to extensionCount - 1 do
14996                 result := result + #32 + PAnsiChar(glGetStringi(GL_EXTENSIONS, I));
14997             end;
14998       end
14999     else
15000       begin
15001         if not Assigned(@glGetString) then glGetString := dglGetProcAddress('glGetString');
15002
15003         if Assigned(@glGetString)
15004           then result := glGetString(GL_EXTENSIONS)
15005           else result := '';
15006       end;
15007
15008   if (GL_LibHandle <> nil) then begin
15009     {$IFDEF DGL_WIN}
15010       // wglGetExtensionsStringEXT
15011       if not Assigned(@wglGetExtensionsStringEXT) then
15012         wglGetExtensionsStringEXT := dglGetProcAddress('wglGetExtensionsStringEXT');
15013
15014       if Assigned(@wglGetExtensionsStringEXT) then
15015         Result := Result + #32 + wglGetExtensionsStringEXT;
15016
15017       // wglGetExtensionsStringARB
15018       if not Assigned(@wglGetExtensionsStringARB) then
15019         wglGetExtensionsStringARB := dglGetProcAddress('wglGetExtensionsStringARB');
15020
15021       if Assigned(@wglGetExtensionsStringARB) then
15022         Result := Result + #32 + wglGetExtensionsStringARB(wglGetCurrentDC);
15023     {$ENDIF}
15024   end;
15025
15026   Result := #32 + Result + #32;
15027 end;
15028
15029
15030 function Int_CheckExtension(AllExtensions, CheckExtension: AnsiString): Boolean;
15031 begin
15032   Result := Pos(#32 + CheckExtension + #32, AllExtensions) > 0;
15033 end;
15034
15035
15036 function dglCheckExtension(Extension: AnsiString): Boolean;
15037 var
15038   Extensions: AnsiString;
15039 begin
15040   Extensions := Int_GetExtensionString;
15041   Result := Int_CheckExtension(Extensions, Extension);
15042 end;
15043
15044
15045
15046 function InitOpenGL(LibName: String; GLULibName: String): Boolean;
15047 begin
15048   Result := False;
15049
15050   // free opened libraries
15051   if GL_LibHandle <> nil then
15052     dglFreeLibrary(GL_LibHandle);
15053
15054   if GLU_LibHandle <> nil then
15055     dglFreeLibrary(GLU_LibHandle);
15056
15057   // load library
15058   GL_LibHandle := dglLoadLibrary(PChar(LibName));
15059   GLU_LibHandle := dglLoadLibrary(PChar(GLULibName));
15060
15061   // load GL functions
15062   if (GL_LibHandle <> nil) then begin
15063     {$IFDEF DGL_WIN}
15064       wglCopyContext := dglGetProcAddress('wglCopyContext');
15065       wglCreateLayerContext := dglGetProcAddress('wglCreateLayerContext');
15066       wglCreateContext := dglGetProcAddress('wglCreateContext');
15067       wglDeleteContext := dglGetProcAddress('wglDeleteContext');
15068       wglDescribeLayerPlane := dglGetProcAddress('wglDescribeLayerPlane');
15069       wglGetCurrentContext := dglGetProcAddress('wglGetCurrentContext');
15070       wglGetCurrentDC := dglGetProcAddress('wglGetCurrentDC');
15071       wglGetLayerPaletteEntries := dglGetProcAddress('wglGetLayerPaletteEntries');
15072       wglGetProcAddress := dglGetProcAddress('wglGetProcAddress');
15073       wglMakeCurrent := dglGetProcAddress('wglMakeCurrent');
15074       wglRealizeLayerPalette := dglGetProcAddress('wglRealizeLayerPalette');
15075       wglSetLayerPaletteEntries := dglGetProcAddress('wglSetLayerPaletteEntries');
15076       wglShareLists := dglGetProcAddress('wglShareLists');
15077       wglSwapLayerBuffers := dglGetProcAddress('wglSwapLayerBuffers');
15078       wglSwapMultipleBuffers := dglGetProcAddress('wglSwapMultipleBuffers');
15079       wglUseFontBitmapsA := dglGetProcAddress('wglUseFontBitmapsA');
15080       wglUseFontOutlinesA := dglGetProcAddress('wglUseFontOutlinesA');
15081       wglUseFontBitmapsW := dglGetProcAddress('wglUseFontBitmapsW');
15082       wglUseFontOutlinesW := dglGetProcAddress('wglUseFontOutlinesW');
15083       wglUseFontBitmaps := dglGetProcAddress('wglUseFontBitmapsA');
15084       wglUseFontOutlines := dglGetProcAddress('wglUseFontOutlinesA');
15085     {$ENDIF}
15086
15087     {$IFDEF DGL_LINUX}
15088       // GLX_VERSION_1_4 (needs to be first)
15089       glXGetProcAddress := dglGetProcAddress('glXGetProcAddress', nil, True);
15090
15091       // GLX_ARB_get_proc_address  (also needs to be first)
15092       glXGetProcAddressARB := dglGetProcAddress('glXGetProcAddressARB', nil, True);
15093
15094       glXChooseVisual := dglGetProcAddress('glXChooseVisual');
15095       glXCopyContext := dglGetProcAddress('glXCopyContext');
15096       glXCreateContext := dglGetProcAddress('glXCreateContext');
15097       glXCreateGLXPixmap := dglGetProcAddress('glXCreateGLXPixmap');
15098       glXDestroyContext := dglGetProcAddress('glXDestroyContext');
15099       glXDestroyGLXPixmap := dglGetProcAddress('glXDestroyGLXPixmap');
15100       glXGetConfig := dglGetProcAddress('glXGetConfig');
15101       glXGetCurrentContext := dglGetProcAddress('glXGetCurrentContext');
15102       glXGetCurrentDrawable := dglGetProcAddress('glXGetCurrentDrawable');
15103       glXIsDirect := dglGetProcAddress('glXIsDirect');
15104       glXMakeCurrent := dglGetProcAddress('glXMakeCurrent');
15105       glXQueryExtension := dglGetProcAddress('glXQueryExtension');
15106       glXQueryVersion := dglGetProcAddress('glXQueryVersion');
15107       glXSwapBuffers := dglGetProcAddress('glXSwapBuffers');
15108       glXUseXFont := dglGetProcAddress('glXUseXFont');
15109       glXWaitGL := dglGetProcAddress('glXWaitGL');
15110       glXWaitX := dglGetProcAddress('glXWaitX');
15111
15112       glXGetClientString := dglGetProcAddress('glXGetClientString');
15113       glXQueryServerString := dglGetProcAddress('glXQueryServerString');
15114       glXQueryExtensionsString := dglGetProcAddress('glXQueryExtensionsString');
15115
15116       // GLX_VERSION_1_3
15117       glXGetFBConfigs := dglGetProcAddress('glXGetFBConfigs');
15118       glXChooseFBConfig := dglGetProcAddress('glXChooseFBConfig');
15119       glXGetFBConfigAttrib := dglGetProcAddress('glXGetFBConfigAttrib');
15120       glXGetVisualFromFBConfig := dglGetProcAddress('glXGetVisualFromFBConfig');
15121       glXCreateWindow := dglGetProcAddress('glXCreateWindow');
15122       glXDestroyWindow := dglGetProcAddress('glXDestroyWindow');
15123       glXCreatePixmap := dglGetProcAddress('glXCreatePixmap');
15124
15125       glXDestroyPixmap := dglGetProcAddress('glXDestroyPixmap');
15126       glXCreatePbuffer := dglGetProcAddress('glXCreatePbuffer');
15127       glXDestroyPbuffer := dglGetProcAddress('glXDestroyPbuffer');
15128       glXQueryDrawable := dglGetProcAddress('glXQueryDrawable');
15129       glXCreateNewContext := dglGetProcAddress('glXCreateNewContext');
15130       glXMakeContextCurrent := dglGetProcAddress('glXMakeContextCurrent');
15131       glXGetCurrentReadDrawable := dglGetProcAddress('glXGetCurrentReadDrawable');
15132       glXGetCurreentDisplay := dglGetProcAddress('glXGetCurreentDisplay');
15133
15134       glXQueryContext := dglGetProcAddress('glXQueryContext');
15135       glXSelectEvent := dglGetProcAddress('glXSelectEvent');
15136       glXGetSelectedEvent := dglGetProcAddress('glXGetSelectedEvent');
15137
15138       // GLX_ARB_create_context
15139       glXCreateContextAttribsARB := dglGetProcAddress('glXCreateContextAttribsARB');
15140
15141       // GLX_EXT_import_context
15142       glXGetCurrentDisplayEXT := dglGetProcAddress('glXGetCurrentDisplayEXT');
15143       glXQueryContextInfoEXT := dglGetProcAddress('glXQueryContextInfoEXT');
15144       glXGetContextIDEXT := dglGetProcAddress('glXGetContextIDEXT');
15145       glXImportContextEXT := dglGetProcAddress('glXImportContextEXT');
15146       glXFreeContextEXT := dglGetProcAddress('glXFreeContextEXT');
15147
15148       // GLX_EXT_texture_from_pixmap
15149       glXBindTexImageEXT := dglGetProcAddress('glXBindTexImageEXT');
15150       glXReleaseTexImageEXT := dglGetProcAddress('glXReleaseTexImageEXT');
15151
15152       glXSwapIntervalEXT := dglGetProcAddress('glXSwapIntervalEXT');
15153     {$ENDIF}
15154
15155     Result := True;
15156   end;
15157
15158   // load GLU functions
15159   if GLU_LibHandle <> nil then begin
15160     // GLU ========================================================================
15161     gluBeginCurve := dglGetProcAddress('gluBeginCurve', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15162     gluBeginPolygon := dglGetProcAddress('gluBeginPolygon', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15163     gluBeginSurface := dglGetProcAddress('gluBeginSurface', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15164     gluBeginTrim := dglGetProcAddress('gluBeginTrim', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15165     gluBuild1DMipmaps := dglGetProcAddress('gluBuild1DMipmaps', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15166     gluBuild2DMipmaps := dglGetProcAddress('gluBuild2DMipmaps', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15167     gluCylinder := dglGetProcAddress('gluCylinder', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15168     gluDeleteNurbsRenderer := dglGetProcAddress('gluDeleteNurbsRenderer', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15169     gluDeleteQuadric := dglGetProcAddress('gluDeleteQuadric', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15170     gluDeleteTess := dglGetProcAddress('gluDeleteTess', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15171     gluDisk := dglGetProcAddress('gluDisk', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15172     gluEndCurve := dglGetProcAddress('gluEndCurve', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15173     gluEndPolygon := dglGetProcAddress('gluEndPolygon', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15174     gluEndSurface := dglGetProcAddress('gluEndSurface', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15175     gluEndTrim := dglGetProcAddress('gluEndTrim', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15176     gluErrorString := dglGetProcAddress('gluErrorString', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15177     gluGetNurbsProperty := dglGetProcAddress('gluGetNurbsProperty', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15178     gluGetString := dglGetProcAddress('gluGetString', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15179     gluGetTessProperty := dglGetProcAddress('gluGetTessProperty', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15180     gluLoadSamplingMatrices := dglGetProcAddress('gluLoadSamplingMatrices', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15181     gluLookAt := dglGetProcAddress('gluLookAt', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15182     gluNewNurbsRenderer := dglGetProcAddress('gluNewNurbsRenderer', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15183     gluNewQuadric := dglGetProcAddress('gluNewQuadric', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15184     gluNewTess := dglGetProcAddress('gluNewTess', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15185     gluNextContour := dglGetProcAddress('gluNextContour', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15186     gluNurbsCallback := dglGetProcAddress('gluNurbsCallback', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15187     gluNurbsCurve := dglGetProcAddress('gluNurbsCurve', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15188     gluNurbsProperty := dglGetProcAddress('gluNurbsProperty', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15189     gluNurbsSurface := dglGetProcAddress('gluNurbsSurface', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15190     gluOrtho2D := dglGetProcAddress('gluOrtho2D', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15191     gluPartialDisk := dglGetProcAddress('gluPartialDisk', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15192     gluPerspective := dglGetProcAddress('gluPerspective', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15193     gluPickMatrix := dglGetProcAddress('gluPickMatrix', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15194     gluProject := dglGetProcAddress('gluProject', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15195     gluPwlCurve := dglGetProcAddress('gluPwlCurve', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15196     gluQuadricCallback := dglGetProcAddress('gluQuadricCallback', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15197     gluQuadricDrawStyle := dglGetProcAddress('gluQuadricDrawStyle', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15198     gluQuadricNormals := dglGetProcAddress('gluQuadricNormals', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15199     gluQuadricOrientation := dglGetProcAddress('gluQuadricOrientation', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15200     gluQuadricTexture := dglGetProcAddress('gluQuadricTexture', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15201     gluScaleImage := dglGetProcAddress('gluScaleImage', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15202     gluSphere := dglGetProcAddress('gluSphere', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15203     gluTessBeginContour := dglGetProcAddress('gluTessBeginContour', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15204     gluTessBeginPolygon := dglGetProcAddress('gluTessBeginPolygon', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15205     gluTessCallback := dglGetProcAddress('gluTessCallback', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15206     gluTessEndContour := dglGetProcAddress('gluTessEndContour', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15207     gluTessEndPolygon := dglGetProcAddress('gluTessEndPolygon', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15208     gluTessNormal := dglGetProcAddress('gluTessNormal', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15209     gluTessProperty := dglGetProcAddress('gluTessProperty', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15210     gluTessVertex := dglGetProcAddress('gluTessVertex', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15211     gluUnProject := dglGetProcAddress('gluUnProject', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15212   end;
15213 end;
15214
15215 procedure ReadOpenGLCore;
15216 begin
15217   // GL_VERSION_1_0
15218   glCullFace := dglGetProcAddress('glCullFace');
15219   glFrontFace := dglGetProcAddress('glFrontFace');
15220   glHint := dglGetProcAddress('glHint');
15221   glLineWidth := dglGetProcAddress('glLineWidth');
15222   glPointSize := dglGetProcAddress('glPointSize');
15223   glPolygonMode := dglGetProcAddress('glPolygonMode');
15224   glScissor := dglGetProcAddress('glScissor');
15225   glTexParameterf := dglGetProcAddress('glTexParameterf');
15226   glTexParameterfv := dglGetProcAddress('glTexParameterfv');
15227   glTexParameteri := dglGetProcAddress('glTexParameteri');
15228   glTexParameteriv := dglGetProcAddress('glTexParameteriv');
15229   glTexImage1D := dglGetProcAddress('glTexImage1D');
15230   glTexImage2D := dglGetProcAddress('glTexImage2D');
15231   glDrawBuffer := dglGetProcAddress('glDrawBuffer');
15232   glClear := dglGetProcAddress('glClear');
15233   glClearColor := dglGetProcAddress('glClearColor');
15234   glClearStencil := dglGetProcAddress('glClearStencil');
15235   glClearDepth := dglGetProcAddress('glClearDepth');
15236   glStencilMask := dglGetProcAddress('glStencilMask');
15237   glColorMask := dglGetProcAddress('glColorMask');
15238   glDepthMask := dglGetProcAddress('glDepthMask');
15239   glDisable := dglGetProcAddress('glDisable');
15240   glEnable := dglGetProcAddress('glEnable');
15241   glFinish := dglGetProcAddress('glFinish');
15242   glFlush := dglGetProcAddress('glFlush');
15243   glBlendFunc := dglGetProcAddress('glBlendFunc');
15244   glLogicOp := dglGetProcAddress('glLogicOp');
15245   glStencilFunc := dglGetProcAddress('glStencilFunc');
15246   glStencilOp := dglGetProcAddress('glStencilOp');
15247   glDepthFunc := dglGetProcAddress('glDepthFunc');
15248   glPixelStoref := dglGetProcAddress('glPixelStoref');
15249   glPixelStorei := dglGetProcAddress('glPixelStorei');
15250   glReadBuffer := dglGetProcAddress('glReadBuffer');
15251   glReadPixels := dglGetProcAddress('glReadPixels');
15252   glGetBooleanv := dglGetProcAddress('glGetBooleanv');
15253   glGetDoublev := dglGetProcAddress('glGetDoublev');
15254   glGetError := dglGetProcAddress('glGetError');
15255   glGetFloatv := dglGetProcAddress('glGetFloatv');
15256   glGetIntegerv := dglGetProcAddress('glGetIntegerv');
15257   glGetString := dglGetProcAddress('glGetString');
15258   glGetTexImage := dglGetProcAddress('glGetTexImage');
15259   glGetTexParameteriv := dglGetProcAddress('glGetTexParameteriv');
15260   glGetTexParameterfv := dglGetProcAddress('glGetTexParameterfv');
15261   glGetTexLevelParameterfv := dglGetProcAddress('glGetTexLevelParameterfv');
15262   glGetTexLevelParameteriv := dglGetProcAddress('glGetTexLevelParameteriv');
15263   glIsEnabled := dglGetProcAddress('glIsEnabled');
15264   glDepthRange := dglGetProcAddress('glDepthRange');
15265   glViewport := dglGetProcAddress('glViewport');
15266
15267   // GL_VERSION_1_1
15268   glDrawArrays := dglGetProcAddress('glDrawArrays');
15269   glDrawElements := dglGetProcAddress('glDrawElements');
15270   glGetPointerv := dglGetProcAddress('glGetPointerv');
15271   glPolygonOffset := dglGetProcAddress('glPolygonOffset');
15272   glCopyTexImage1D := dglGetProcAddress('glCopyTexImage1D');
15273   glCopyTexImage2D := dglGetProcAddress('glCopyTexImage2D');
15274   glCopyTexSubImage1D := dglGetProcAddress('glCopyTexSubImage1D');
15275   glCopyTexSubImage2D := dglGetProcAddress('glCopyTexSubImage2D');
15276   glTexSubImage1D := dglGetProcAddress('glTexSubImage1D');
15277   glTexSubImage2D := dglGetProcAddress('glTexSubImage2D');
15278   glBindTexture := dglGetProcAddress('glBindTexture');
15279   glDeleteTextures := dglGetProcAddress('glDeleteTextures');
15280   glGenTextures := dglGetProcAddress('glGenTextures');
15281
15282 {$ifdef DGL_DEPRECATED}
15283   glAccum := dglGetProcAddress('glAccum');
15284   glAlphaFunc := dglGetProcAddress('glAlphaFunc');
15285   glAreTexturesResident := dglGetProcAddress('glAreTexturesResident');
15286   glArrayElement := dglGetProcAddress('glArrayElement');
15287   glBegin := dglGetProcAddress('glBegin');
15288   glBitmap := dglGetProcAddress('glBitmap');
15289   glCallList := dglGetProcAddress('glCallList');
15290   glCallLists := dglGetProcAddress('glCallLists');
15291   glClearAccum := dglGetProcAddress('glClearAccum');
15292   glClearIndex := dglGetProcAddress('glClearIndex');
15293   glClipPlane := dglGetProcAddress('glClipPlane');
15294   glColor3b := dglGetProcAddress('glColor3b');
15295   glColor3bv := dglGetProcAddress('glColor3bv');
15296   glColor3d := dglGetProcAddress('glColor3d');
15297   glColor3dv := dglGetProcAddress('glColor3dv');
15298   glColor3f := dglGetProcAddress('glColor3f');
15299   glColor3fv := dglGetProcAddress('glColor3fv');
15300   glColor3i := dglGetProcAddress('glColor3i');
15301   glColor3iv := dglGetProcAddress('glColor3iv');
15302   glColor3s := dglGetProcAddress('glColor3s');
15303   glColor3sv := dglGetProcAddress('glColor3sv');
15304   glColor3ub := dglGetProcAddress('glColor3ub');
15305   glColor3ubv := dglGetProcAddress('glColor3ubv');
15306   glColor3ui := dglGetProcAddress('glColor3ui');
15307   glColor3uiv := dglGetProcAddress('glColor3uiv');
15308   glColor3us := dglGetProcAddress('glColor3us');
15309   glColor3usv := dglGetProcAddress('glColor3usv');
15310   glColor4b := dglGetProcAddress('glColor4b');
15311   glColor4bv := dglGetProcAddress('glColor4bv');
15312   glColor4d := dglGetProcAddress('glColor4d');
15313   glColor4dv := dglGetProcAddress('glColor4dv');
15314   glColor4f := dglGetProcAddress('glColor4f');
15315   glColor4fv := dglGetProcAddress('glColor4fv');
15316   glColor4i := dglGetProcAddress('glColor4i');
15317   glColor4iv := dglGetProcAddress('glColor4iv');
15318   glColor4s := dglGetProcAddress('glColor4s');
15319   glColor4sv := dglGetProcAddress('glColor4sv');
15320   glColor4ub := dglGetProcAddress('glColor4ub');
15321   glColor4ubv := dglGetProcAddress('glColor4ubv');
15322   glColor4ui := dglGetProcAddress('glColor4ui');
15323   glColor4uiv := dglGetProcAddress('glColor4uiv');
15324   glColor4us := dglGetProcAddress('glColor4us');
15325   glColor4usv := dglGetProcAddress('glColor4usv');
15326   glColorMaterial := dglGetProcAddress('glColorMaterial');
15327   glColorPointer := dglGetProcAddress('glColorPointer');
15328   glCopyPixels := dglGetProcAddress('glCopyPixels');
15329   glDeleteLists := dglGetProcAddress('glDeleteLists');
15330   glDisableClientState := dglGetProcAddress('glDisableClientState');
15331   glDrawPixels := dglGetProcAddress('glDrawPixels');
15332   glEdgeFlag := dglGetProcAddress('glEdgeFlag');
15333   glEdgeFlagPointer := dglGetProcAddress('glEdgeFlagPointer');
15334   glEdgeFlagv := dglGetProcAddress('glEdgeFlagv');
15335   glEnableClientState := dglGetProcAddress('glEnableClientState');
15336   glEnd := dglGetProcAddress('glEnd');
15337   glEndList := dglGetProcAddress('glEndList');
15338   glEvalCoord1d := dglGetProcAddress('glEvalCoord1d');
15339   glEvalCoord1dv := dglGetProcAddress('glEvalCoord1dv');
15340   glEvalCoord1f := dglGetProcAddress('glEvalCoord1f');
15341   glEvalCoord1fv := dglGetProcAddress('glEvalCoord1fv');
15342   glEvalCoord2d := dglGetProcAddress('glEvalCoord2d');
15343   glEvalCoord2dv := dglGetProcAddress('glEvalCoord2dv');
15344   glEvalCoord2f := dglGetProcAddress('glEvalCoord2f');
15345   glEvalCoord2fv := dglGetProcAddress('glEvalCoord2fv');
15346   glEvalMesh1 := dglGetProcAddress('glEvalMesh1');
15347   glEvalMesh2 := dglGetProcAddress('glEvalMesh2');
15348   glEvalPoint1 := dglGetProcAddress('glEvalPoint1');
15349   glEvalPoint2 := dglGetProcAddress('glEvalPoint2');
15350   glFeedbackBuffer := dglGetProcAddress('glFeedbackBuffer');
15351   glFogf := dglGetProcAddress('glFogf');
15352   glFogfv := dglGetProcAddress('glFogfv');
15353   glFogi := dglGetProcAddress('glFogi');
15354   glFogiv := dglGetProcAddress('glFogiv');
15355   glFrustum := dglGetProcAddress('glFrustum');
15356   glGenLists := dglGetProcAddress('glGenLists');
15357   glGetClipPlane := dglGetProcAddress('glGetClipPlane');
15358   glGetLightfv := dglGetProcAddress('glGetLightfv');
15359   glGetLightiv := dglGetProcAddress('glGetLightiv');
15360   glGetMapdv := dglGetProcAddress('glGetMapdv');
15361   glGetMapfv := dglGetProcAddress('glGetMapfv');
15362   glGetMapiv := dglGetProcAddress('glGetMapiv');
15363   glGetMaterialfv := dglGetProcAddress('glGetMaterialfv');
15364   glGetMaterialiv := dglGetProcAddress('glGetMaterialiv');
15365   glGetPixelMapfv := dglGetProcAddress('glGetPixelMapfv');
15366   glGetPixelMapuiv := dglGetProcAddress('glGetPixelMapuiv');
15367   glGetPixelMapusv := dglGetProcAddress('glGetPixelMapusv');
15368   glGetPolygonStipple := dglGetProcAddress('glGetPolygonStipple');
15369   glGetTexEnvfv := dglGetProcAddress('glGetTexEnvfv');
15370   glGetTexEnviv := dglGetProcAddress('glGetTexEnviv');
15371   glGetTexGendv := dglGetProcAddress('glGetTexGendv');
15372   glGetTexGenfv := dglGetProcAddress('glGetTexGenfv');
15373   glGetTexGeniv := dglGetProcAddress('glGetTexGeniv');
15374   glIndexMask := dglGetProcAddress('glIndexMask');
15375   glIndexPointer := dglGetProcAddress('glIndexPointer');
15376   glIndexd := dglGetProcAddress('glIndexd');
15377   glIndexdv := dglGetProcAddress('glIndexdv');
15378   glIndexf := dglGetProcAddress('glIndexf');
15379   glIndexfv := dglGetProcAddress('glIndexfv');
15380   glIndexi := dglGetProcAddress('glIndexi');
15381   glIndexiv := dglGetProcAddress('glIndexiv');
15382   glIndexs := dglGetProcAddress('glIndexs');
15383   glIndexsv := dglGetProcAddress('glIndexsv');
15384   glIndexub := dglGetProcAddress('glIndexub');
15385   glIndexubv := dglGetProcAddress('glIndexubv');
15386   glInitNames := dglGetProcAddress('glInitNames');
15387   glInterleavedArrays := dglGetProcAddress('glInterleavedArrays');
15388   glIsList := dglGetProcAddress('glIsList');
15389   glIsTexture := dglGetProcAddress('glIsTexture');
15390   glLightModelf := dglGetProcAddress('glLightModelf');
15391   glLightModelfv := dglGetProcAddress('glLightModelfv');
15392   glLightModeli := dglGetProcAddress('glLightModeli');
15393   glLightModeliv := dglGetProcAddress('glLightModeliv');
15394   glLightf := dglGetProcAddress('glLightf');
15395   glLightfv := dglGetProcAddress('glLightfv');
15396   glLighti := dglGetProcAddress('glLighti');
15397   glLightiv := dglGetProcAddress('glLightiv');
15398   glLineStipple := dglGetProcAddress('glLineStipple');
15399   glListBase := dglGetProcAddress('glListBase');
15400   glLoadIdentity := dglGetProcAddress('glLoadIdentity');
15401   glLoadMatrixd := dglGetProcAddress('glLoadMatrixd');
15402   glLoadMatrixf := dglGetProcAddress('glLoadMatrixf');
15403   glLoadName := dglGetProcAddress('glLoadName');
15404   glMap1d := dglGetProcAddress('glMap1d');
15405   glMap1f := dglGetProcAddress('glMap1f');
15406   glMap2d := dglGetProcAddress('glMap2d');
15407   glMap2f := dglGetProcAddress('glMap2f');
15408   glMapGrid1d := dglGetProcAddress('glMapGrid1d');
15409   glMapGrid1f := dglGetProcAddress('glMapGrid1f');
15410   glMapGrid2d := dglGetProcAddress('glMapGrid2d');
15411   glMapGrid2f := dglGetProcAddress('glMapGrid2f');
15412   glMaterialf := dglGetProcAddress('glMaterialf');
15413   glMaterialfv := dglGetProcAddress('glMaterialfv');
15414   glMateriali := dglGetProcAddress('glMateriali');
15415   glMaterialiv := dglGetProcAddress('glMaterialiv');
15416   glMatrixMode := dglGetProcAddress('glMatrixMode');
15417   glMultMatrixd := dglGetProcAddress('glMultMatrixd');
15418   glMultMatrixf := dglGetProcAddress('glMultMatrixf');
15419   glNewList := dglGetProcAddress('glNewList');
15420   glNormal3b := dglGetProcAddress('glNormal3b');
15421   glNormal3bv := dglGetProcAddress('glNormal3bv');
15422   glNormal3d := dglGetProcAddress('glNormal3d');
15423   glNormal3dv := dglGetProcAddress('glNormal3dv');
15424   glNormal3f := dglGetProcAddress('glNormal3f');
15425   glNormal3fv := dglGetProcAddress('glNormal3fv');
15426   glNormal3i := dglGetProcAddress('glNormal3i');
15427   glNormal3iv := dglGetProcAddress('glNormal3iv');
15428   glNormal3s := dglGetProcAddress('glNormal3s');
15429   glNormal3sv := dglGetProcAddress('glNormal3sv');
15430   glNormalPointer := dglGetProcAddress('glNormalPointer');
15431   glOrtho := dglGetProcAddress('glOrtho');
15432   glPassThrough := dglGetProcAddress('glPassThrough');
15433   glPixelMapfv := dglGetProcAddress('glPixelMapfv');
15434   glPixelMapuiv := dglGetProcAddress('glPixelMapuiv');
15435   glPixelMapusv := dglGetProcAddress('glPixelMapusv');
15436   glPixelTransferf := dglGetProcAddress('glPixelTransferf');
15437   glPixelTransferi := dglGetProcAddress('glPixelTransferi');
15438   glPixelZoom := dglGetProcAddress('glPixelZoom');
15439   glPolygonStipple := dglGetProcAddress('glPolygonStipple');
15440   glPopAttrib := dglGetProcAddress('glPopAttrib');
15441   glPopClientAttrib := dglGetProcAddress('glPopClientAttrib');
15442   glPopMatrix := dglGetProcAddress('glPopMatrix');
15443   glPopName := dglGetProcAddress('glPopName');
15444   glPrioritizeTextures := dglGetProcAddress('glPrioritizeTextures');
15445   glPushAttrib := dglGetProcAddress('glPushAttrib');
15446   glPushClientAttrib := dglGetProcAddress('glPushClientAttrib');
15447   glPushMatrix := dglGetProcAddress('glPushMatrix');
15448   glPushName := dglGetProcAddress('glPushName');
15449   glRasterPos2d := dglGetProcAddress('glRasterPos2d');
15450   glRasterPos2dv := dglGetProcAddress('glRasterPos2dv');
15451   glRasterPos2f := dglGetProcAddress('glRasterPos2f');
15452   glRasterPos2fv := dglGetProcAddress('glRasterPos2fv');
15453   glRasterPos2i := dglGetProcAddress('glRasterPos2i');
15454   glRasterPos2iv := dglGetProcAddress('glRasterPos2iv');
15455   glRasterPos2s := dglGetProcAddress('glRasterPos2s');
15456   glRasterPos2sv := dglGetProcAddress('glRasterPos2sv');
15457   glRasterPos3d := dglGetProcAddress('glRasterPos3d');
15458   glRasterPos3dv := dglGetProcAddress('glRasterPos3dv');
15459   glRasterPos3f := dglGetProcAddress('glRasterPos3f');
15460   glRasterPos3fv := dglGetProcAddress('glRasterPos3fv');
15461   glRasterPos3i := dglGetProcAddress('glRasterPos3i');
15462   glRasterPos3iv := dglGetProcAddress('glRasterPos3iv');
15463   glRasterPos3s := dglGetProcAddress('glRasterPos3s');
15464   glRasterPos3sv := dglGetProcAddress('glRasterPos3sv');
15465   glRasterPos4d := dglGetProcAddress('glRasterPos4d');
15466   glRasterPos4dv := dglGetProcAddress('glRasterPos4dv');
15467   glRasterPos4f := dglGetProcAddress('glRasterPos4f');
15468   glRasterPos4fv := dglGetProcAddress('glRasterPos4fv');
15469   glRasterPos4i := dglGetProcAddress('glRasterPos4i');
15470   glRasterPos4iv := dglGetProcAddress('glRasterPos4iv');
15471   glRasterPos4s := dglGetProcAddress('glRasterPos4s');
15472   glRasterPos4sv := dglGetProcAddress('glRasterPos4sv');
15473   glRectd := dglGetProcAddress('glRectd');
15474   glRectdv := dglGetProcAddress('glRectdv');
15475   glRectf := dglGetProcAddress('glRectf');
15476   glRectfv := dglGetProcAddress('glRectfv');
15477   glRecti := dglGetProcAddress('glRecti');
15478   glRectiv := dglGetProcAddress('glRectiv');
15479   glRects := dglGetProcAddress('glRects');
15480   glRectsv := dglGetProcAddress('glRectsv');
15481   glRenderMode := dglGetProcAddress('glRenderMode');
15482   glRotated := dglGetProcAddress('glRotated');
15483   glRotatef := dglGetProcAddress('glRotatef');
15484   glScaled := dglGetProcAddress('glScaled');
15485   glScalef := dglGetProcAddress('glScalef');
15486   glSelectBuffer := dglGetProcAddress('glSelectBuffer');
15487   glShadeModel := dglGetProcAddress('glShadeModel');
15488   glTexCoord1d := dglGetProcAddress('glTexCoord1d');
15489   glTexCoord1dv := dglGetProcAddress('glTexCoord1dv');
15490   glTexCoord1f := dglGetProcAddress('glTexCoord1f');
15491   glTexCoord1fv := dglGetProcAddress('glTexCoord1fv');
15492   glTexCoord1i := dglGetProcAddress('glTexCoord1i');
15493   glTexCoord1iv := dglGetProcAddress('glTexCoord1iv');
15494   glTexCoord1s := dglGetProcAddress('glTexCoord1s');
15495   glTexCoord1sv := dglGetProcAddress('glTexCoord1sv');
15496   glTexCoord2d := dglGetProcAddress('glTexCoord2d');
15497   glTexCoord2dv := dglGetProcAddress('glTexCoord2dv');
15498   glTexCoord2f := dglGetProcAddress('glTexCoord2f');
15499   glTexCoord2fv := dglGetProcAddress('glTexCoord2fv');
15500   glTexCoord2i := dglGetProcAddress('glTexCoord2i');
15501   glTexCoord2iv := dglGetProcAddress('glTexCoord2iv');
15502   glTexCoord2s := dglGetProcAddress('glTexCoord2s');
15503   glTexCoord2sv := dglGetProcAddress('glTexCoord2sv');
15504   glTexCoord3d := dglGetProcAddress('glTexCoord3d');
15505   glTexCoord3dv := dglGetProcAddress('glTexCoord3dv');
15506   glTexCoord3f := dglGetProcAddress('glTexCoord3f');
15507   glTexCoord3fv := dglGetProcAddress('glTexCoord3fv');
15508   glTexCoord3i := dglGetProcAddress('glTexCoord3i');
15509   glTexCoord3iv := dglGetProcAddress('glTexCoord3iv');
15510   glTexCoord3s := dglGetProcAddress('glTexCoord3s');
15511   glTexCoord3sv := dglGetProcAddress('glTexCoord3sv');
15512   glTexCoord4d := dglGetProcAddress('glTexCoord4d');
15513   glTexCoord4dv := dglGetProcAddress('glTexCoord4dv');
15514   glTexCoord4f := dglGetProcAddress('glTexCoord4f');
15515   glTexCoord4fv := dglGetProcAddress('glTexCoord4fv');
15516   glTexCoord4i := dglGetProcAddress('glTexCoord4i');
15517   glTexCoord4iv := dglGetProcAddress('glTexCoord4iv');
15518   glTexCoord4s := dglGetProcAddress('glTexCoord4s');
15519   glTexCoord4sv := dglGetProcAddress('glTexCoord4sv');
15520   glTexCoordPointer := dglGetProcAddress('glTexCoordPointer');
15521   glTexEnvf := dglGetProcAddress('glTexEnvf');
15522   glTexEnvfv := dglGetProcAddress('glTexEnvfv');
15523   glTexEnvi := dglGetProcAddress('glTexEnvi');
15524   glTexEnviv := dglGetProcAddress('glTexEnviv');
15525   glTexGend := dglGetProcAddress('glTexGend');
15526   glTexGendv := dglGetProcAddress('glTexGendv');
15527   glTexGenf := dglGetProcAddress('glTexGenf');
15528   glTexGenfv := dglGetProcAddress('glTexGenfv');
15529   glTexGeni := dglGetProcAddress('glTexGeni');
15530   glTexGeniv := dglGetProcAddress('glTexGeniv');
15531   glTranslated := dglGetProcAddress('glTranslated');
15532   glTranslatef := dglGetProcAddress('glTranslatef');
15533   glVertex2d := dglGetProcAddress('glVertex2d');
15534   glVertex2dv := dglGetProcAddress('glVertex2dv');
15535   glVertex2f := dglGetProcAddress('glVertex2f');
15536   glVertex2fv := dglGetProcAddress('glVertex2fv');
15537   glVertex2i := dglGetProcAddress('glVertex2i');
15538   glVertex2iv := dglGetProcAddress('glVertex2iv');
15539   glVertex2s := dglGetProcAddress('glVertex2s');
15540   glVertex2sv := dglGetProcAddress('glVertex2sv');
15541   glVertex3d := dglGetProcAddress('glVertex3d');
15542   glVertex3dv := dglGetProcAddress('glVertex3dv');
15543   glVertex3f := dglGetProcAddress('glVertex3f');
15544   glVertex3fv := dglGetProcAddress('glVertex3fv');
15545   glVertex3i := dglGetProcAddress('glVertex3i');
15546   glVertex3iv := dglGetProcAddress('glVertex3iv');
15547   glVertex3s := dglGetProcAddress('glVertex3s');
15548   glVertex3sv := dglGetProcAddress('glVertex3sv');
15549   glVertex4d := dglGetProcAddress('glVertex4d');
15550   glVertex4dv := dglGetProcAddress('glVertex4dv');
15551   glVertex4f := dglGetProcAddress('glVertex4f');
15552   glVertex4fv := dglGetProcAddress('glVertex4fv');
15553   glVertex4i := dglGetProcAddress('glVertex4i');
15554   glVertex4iv := dglGetProcAddress('glVertex4iv');
15555   glVertex4s := dglGetProcAddress('glVertex4s');
15556   glVertex4sv := dglGetProcAddress('glVertex4sv');
15557   glVertexPointer := dglGetProcAddress('glVertexPointer');
15558 {$endif}
15559
15560   // GL_VERSION_1_2
15561   glBlendColor := dglGetProcAddress('glBlendColor');
15562   glBlendEquation := dglGetProcAddress('glBlendEquation');
15563   glDrawRangeElements := dglGetProcAddress('glDrawRangeElements');
15564   glTexImage3D := dglGetProcAddress('glTexImage3D');
15565   glTexSubImage3D := dglGetProcAddress('glTexSubImage3D');
15566   glCopyTexSubImage3D := dglGetProcAddress('glCopyTexSubImage3D');
15567 {$ifdef DGL_DEPRECATED}
15568   glColorTable := dglGetProcAddress('glColorTable');
15569   glColorTableParameterfv := dglGetProcAddress('glColorTableParameterfv');
15570   glColorTableParameteriv := dglGetProcAddress('glColorTableParameteriv');
15571   glCopyColorTable := dglGetProcAddress('glCopyColorTable');
15572   glGetColorTable := dglGetProcAddress('glGetColorTable');
15573   glGetColorTableParameterfv := dglGetProcAddress('glGetColorTableParameterfv');
15574   glGetColorTableParameteriv := dglGetProcAddress('glGetColorTableParameteriv');
15575   glColorSubTable := dglGetProcAddress('glColorSubTable');
15576   glCopyColorSubTable := dglGetProcAddress('glCopyColorSubTable');
15577   glConvolutionFilter1D := dglGetProcAddress('glConvolutionFilter1D');
15578   glConvolutionFilter2D := dglGetProcAddress('glConvolutionFilter2D');
15579   glConvolutionParameterf := dglGetProcAddress('glConvolutionParameterf');
15580   glConvolutionParameterfv := dglGetProcAddress('glConvolutionParameterfv');
15581   glConvolutionParameteri := dglGetProcAddress('glConvolutionParameteri');
15582   glConvolutionParameteriv := dglGetProcAddress('glConvolutionParameteriv');
15583   glCopyConvolutionFilter1D := dglGetProcAddress('glCopyConvolutionFilter1D');
15584   glCopyConvolutionFilter2D := dglGetProcAddress('glCopyConvolutionFilter2D');
15585   glGetConvolutionFilter := dglGetProcAddress('glGetConvolutionFilter');
15586   glGetConvolutionParameterfv := dglGetProcAddress('glGetConvolutionParameterfv');
15587   glGetConvolutionParameteriv := dglGetProcAddress('glGetConvolutionParameteriv');
15588   glGetSeparableFilter := dglGetProcAddress('glGetSeparableFilter');
15589   glSeparableFilter2D := dglGetProcAddress('glSeparableFilter2D');
15590   glGetHistogram := dglGetProcAddress('glGetHistogram');
15591   glGetHistogramParameterfv := dglGetProcAddress('glGetHistogramParameterfv');
15592   glGetHistogramParameteriv := dglGetProcAddress('glGetHistogramParameteriv');
15593   glGetMinmax := dglGetProcAddress('glGetMinmax');
15594   glGetMinmaxParameterfv := dglGetProcAddress('glGetMinmaxParameterfv');
15595   glGetMinmaxParameteriv := dglGetProcAddress('glGetMinmaxParameteriv');
15596   glHistogram := dglGetProcAddress('glHistogram');
15597   glMinmax := dglGetProcAddress('glMinmax');
15598   glResetHistogram := dglGetProcAddress('glResetHistogram');
15599   glResetMinmax := dglGetProcAddress('glResetMinmax');
15600 {$endif}
15601
15602   // GL_VERSION_1_3
15603   glActiveTexture := dglGetProcAddress('glActiveTexture');
15604   glSampleCoverage := dglGetProcAddress('glSampleCoverage');
15605   glCompressedTexImage3D := dglGetProcAddress('glCompressedTexImage3D');
15606   glCompressedTexImage2D := dglGetProcAddress('glCompressedTexImage2D');
15607   glCompressedTexImage1D := dglGetProcAddress('glCompressedTexImage1D');
15608   glCompressedTexSubImage3D := dglGetProcAddress('glCompressedTexSubImage3D');
15609   glCompressedTexSubImage2D := dglGetProcAddress('glCompressedTexSubImage2D');
15610   glCompressedTexSubImage1D := dglGetProcAddress('glCompressedTexSubImage1D');
15611   glGetCompressedTexImage := dglGetProcAddress('glGetCompressedTexImage');
15612 {$ifdef DGL_DEPRECATED}
15613   glClientActiveTexture := dglGetProcAddress('glClientActiveTexture');
15614   glMultiTexCoord1d := dglGetProcAddress('glMultiTexCoord1d');
15615   glMultiTexCoord1dv := dglGetProcAddress('glMultiTexCoord1dv');
15616   glMultiTexCoord1f := dglGetProcAddress('glMultiTexCoord1f');
15617   glMultiTexCoord1fv := dglGetProcAddress('glMultiTexCoord1fv');
15618   glMultiTexCoord1i := dglGetProcAddress('glMultiTexCoord1i');
15619   glMultiTexCoord1iv := dglGetProcAddress('glMultiTexCoord1iv');
15620   glMultiTexCoord1s := dglGetProcAddress('glMultiTexCoord1s');
15621   glMultiTexCoord1sv := dglGetProcAddress('glMultiTexCoord1sv');
15622   glMultiTexCoord2d := dglGetProcAddress('glMultiTexCoord2d');
15623   glMultiTexCoord2dv := dglGetProcAddress('glMultiTexCoord2dv');
15624   glMultiTexCoord2f := dglGetProcAddress('glMultiTexCoord2f');
15625   glMultiTexCoord2fv := dglGetProcAddress('glMultiTexCoord2fv');
15626   glMultiTexCoord2i := dglGetProcAddress('glMultiTexCoord2i');
15627   glMultiTexCoord2iv := dglGetProcAddress('glMultiTexCoord2iv');
15628   glMultiTexCoord2s := dglGetProcAddress('glMultiTexCoord2s');
15629   glMultiTexCoord2sv := dglGetProcAddress('glMultiTexCoord2sv');
15630   glMultiTexCoord3d := dglGetProcAddress('glMultiTexCoord3d');
15631   glMultiTexCoord3dv := dglGetProcAddress('glMultiTexCoord3dv');
15632   glMultiTexCoord3f := dglGetProcAddress('glMultiTexCoord3f');
15633   glMultiTexCoord3fv := dglGetProcAddress('glMultiTexCoord3fv');
15634   glMultiTexCoord3i := dglGetProcAddress('glMultiTexCoord3i');
15635   glMultiTexCoord3iv := dglGetProcAddress('glMultiTexCoord3iv');
15636   glMultiTexCoord3s := dglGetProcAddress('glMultiTexCoord3s');
15637   glMultiTexCoord3sv := dglGetProcAddress('glMultiTexCoord3sv');
15638   glMultiTexCoord4d := dglGetProcAddress('glMultiTexCoord4d');
15639   glMultiTexCoord4dv := dglGetProcAddress('glMultiTexCoord4dv');
15640   glMultiTexCoord4f := dglGetProcAddress('glMultiTexCoord4f');
15641   glMultiTexCoord4fv := dglGetProcAddress('glMultiTexCoord4fv');
15642   glMultiTexCoord4i := dglGetProcAddress('glMultiTexCoord4i');
15643   glMultiTexCoord4iv := dglGetProcAddress('glMultiTexCoord4iv');
15644   glMultiTexCoord4s := dglGetProcAddress('glMultiTexCoord4s');
15645   glMultiTexCoord4sv := dglGetProcAddress('glMultiTexCoord4sv');
15646   glLoadTransposeMatrixf := dglGetProcAddress('glLoadTransposeMatrixf');
15647   glLoadTransposeMatrixd := dglGetProcAddress('glLoadTransposeMatrixd');
15648   glMultTransposeMatrixf := dglGetProcAddress('glMultTransposeMatrixf');
15649   glMultTransposeMatrixd := dglGetProcAddress('glMultTransposeMatrixd');
15650 {$endif}
15651
15652   // GL_VERSION_1_4
15653   glBlendFuncSeparate := dglGetProcAddress('glBlendFuncSeparate');
15654   glMultiDrawArrays := dglGetProcAddress('glMultiDrawArrays');
15655   glMultiDrawElements := dglGetProcAddress('glMultiDrawElements');
15656   glPointParameterf := dglGetProcAddress('glPointParameterf');
15657   glPointParameterfv := dglGetProcAddress('glPointParameterfv');
15658   glPointParameteri := dglGetProcAddress('glPointParameteri');
15659   glPointParameteriv := dglGetProcAddress('glPointParameteriv');
15660 {$ifdef DGL_DEPRECATED}
15661   glFogCoordf := dglGetProcAddress('glFogCoordf');
15662   glFogCoordfv := dglGetProcAddress('glFogCoordfv');
15663   glFogCoordd := dglGetProcAddress('glFogCoordd');
15664   glFogCoorddv := dglGetProcAddress('glFogCoorddv');
15665   glFogCoordPointer := dglGetProcAddress('glFogCoordPointer');
15666   glSecondaryColor3b := dglGetProcAddress('glSecondaryColor3b');
15667   glSecondaryColor3bv := dglGetProcAddress('glSecondaryColor3bv');
15668   glSecondaryColor3d := dglGetProcAddress('glSecondaryColor3d');
15669   glSecondaryColor3dv := dglGetProcAddress('glSecondaryColor3dv');
15670   glSecondaryColor3f := dglGetProcAddress('glSecondaryColor3f');
15671   glSecondaryColor3fv := dglGetProcAddress('glSecondaryColor3fv');
15672   glSecondaryColor3i := dglGetProcAddress('glSecondaryColor3i');
15673   glSecondaryColor3iv := dglGetProcAddress('glSecondaryColor3iv');
15674   glSecondaryColor3s := dglGetProcAddress('glSecondaryColor3s');
15675   glSecondaryColor3sv := dglGetProcAddress('glSecondaryColor3sv');
15676   glSecondaryColor3ub := dglGetProcAddress('glSecondaryColor3ub');
15677   glSecondaryColor3ubv := dglGetProcAddress('glSecondaryColor3ubv');
15678   glSecondaryColor3ui := dglGetProcAddress('glSecondaryColor3ui');
15679   glSecondaryColor3uiv := dglGetProcAddress('glSecondaryColor3uiv');
15680   glSecondaryColor3us := dglGetProcAddress('glSecondaryColor3us');
15681   glSecondaryColor3usv := dglGetProcAddress('glSecondaryColor3usv');
15682   glSecondaryColorPointer := dglGetProcAddress('glSecondaryColorPointer');
15683   glWindowPos2d := dglGetProcAddress('glWindowPos2d');
15684   glWindowPos2dv := dglGetProcAddress('glWindowPos2dv');
15685   glWindowPos2f := dglGetProcAddress('glWindowPos2f');
15686   glWindowPos2fv := dglGetProcAddress('glWindowPos2fv');
15687   glWindowPos2i := dglGetProcAddress('glWindowPos2i');
15688   glWindowPos2iv := dglGetProcAddress('glWindowPos2iv');
15689   glWindowPos2s := dglGetProcAddress('glWindowPos2s');
15690   glWindowPos2sv := dglGetProcAddress('glWindowPos2sv');
15691   glWindowPos3d := dglGetProcAddress('glWindowPos3d');
15692   glWindowPos3dv := dglGetProcAddress('glWindowPos3dv');
15693   glWindowPos3f := dglGetProcAddress('glWindowPos3f');
15694   glWindowPos3fv := dglGetProcAddress('glWindowPos3fv');
15695   glWindowPos3i := dglGetProcAddress('glWindowPos3i');
15696   glWindowPos3iv := dglGetProcAddress('glWindowPos3iv');
15697   glWindowPos3s := dglGetProcAddress('glWindowPos3s');
15698   glWindowPos3sv := dglGetProcAddress('glWindowPos3sv');
15699 {$endif}
15700
15701   // GL_VERSION_1_5
15702   glGenQueries := dglGetProcAddress('glGenQueries');
15703   glDeleteQueries := dglGetProcAddress('glDeleteQueries');
15704   glIsQuery := dglGetProcAddress('glIsQuery');
15705   glBeginQuery := dglGetProcAddress('glBeginQuery');
15706   glEndQuery := dglGetProcAddress('glEndQuery');
15707   glGetQueryiv := dglGetProcAddress('glGetQueryiv');
15708   glGetQueryObjectiv := dglGetProcAddress('glGetQueryObjectiv');
15709   glGetQueryObjectuiv := dglGetProcAddress('glGetQueryObjectuiv');
15710   glBindBuffer := dglGetProcAddress('glBindBuffer');
15711   glDeleteBuffers := dglGetProcAddress('glDeleteBuffers');
15712   glGenBuffers := dglGetProcAddress('glGenBuffers');
15713   glIsBuffer := dglGetProcAddress('glIsBuffer');
15714   glBufferData := dglGetProcAddress('glBufferData');
15715   glBufferSubData := dglGetProcAddress('glBufferSubData');
15716   glGetBufferSubData := dglGetProcAddress('glGetBufferSubData');
15717   glMapBuffer := dglGetProcAddress('glMapBuffer');
15718   glUnmapBuffer := dglGetProcAddress('glUnmapBuffer');
15719   glGetBufferParameteriv := dglGetProcAddress('glGetBufferParameteriv');
15720   glGetBufferPointerv := dglGetProcAddress('glGetBufferPointerv');
15721
15722   // GL_VERSION_2_0
15723   glBlendEquationSeparate := dglGetProcAddress('glBlendEquationSeparate');
15724   glDrawBuffers := dglGetProcAddress('glDrawBuffers');
15725   glStencilOpSeparate := dglGetProcAddress('glStencilOpSeparate');
15726   glStencilFuncSeparate := dglGetProcAddress('glStencilFuncSeparate');
15727   glStencilMaskSeparate := dglGetProcAddress('glStencilMaskSeparate');
15728   glAttachShader := dglGetProcAddress('glAttachShader');
15729   glBindAttribLocation := dglGetProcAddress('glBindAttribLocation');
15730   glCompileShader := dglGetProcAddress('glCompileShader');
15731   glCreateProgram := dglGetProcAddress('glCreateProgram');
15732   glCreateShader := dglGetProcAddress('glCreateShader');
15733   glDeleteProgram := dglGetProcAddress('glDeleteProgram');
15734   glDeleteShader := dglGetProcAddress('glDeleteShader');
15735   glDetachShader := dglGetProcAddress('glDetachShader');
15736   glDisableVertexAttribArray := dglGetProcAddress('glDisableVertexAttribArray');
15737   glEnableVertexAttribArray := dglGetProcAddress('glEnableVertexAttribArray');
15738   glGetActiveAttrib := dglGetProcAddress('glGetActiveAttrib');
15739   glGetActiveUniform := dglGetProcAddress('glGetActiveUniform');
15740   glGetAttachedShaders := dglGetProcAddress('glGetAttachedShaders');
15741   glGetAttribLocation := dglGetProcAddress('glGetAttribLocation');
15742   glGetProgramiv := dglGetProcAddress('glGetProgramiv');
15743   glGetProgramInfoLog := dglGetProcAddress('glGetProgramInfoLog');
15744   glGetShaderiv := dglGetProcAddress('glGetShaderiv');
15745   glGetShaderInfoLog := dglGetProcAddress('glGetShaderInfoLog');
15746   glGetShaderSource := dglGetProcAddress('glGetShaderSource');
15747   glGetUniformLocation := dglGetProcAddress('glGetUniformLocation');
15748   glGetUniformfv := dglGetProcAddress('glGetUniformfv');
15749   glGetUniformiv := dglGetProcAddress('glGetUniformiv');
15750   glGetVertexAttribfv := dglGetProcAddress('glGetVertexAttribfv');
15751   glGetVertexAttribiv := dglGetProcAddress('glGetVertexAttribiv');
15752   glGetVertexAttribPointerv := dglGetProcAddress('glGetVertexAttribPointerv');
15753   glIsProgram := dglGetProcAddress('glIsProgram');
15754   glIsShader := dglGetProcAddress('glIsShader');
15755   glLinkProgram := dglGetProcAddress('glLinkProgram');
15756   glShaderSource := dglGetProcAddress('glShaderSource');
15757   glUseProgram := dglGetProcAddress('glUseProgram');
15758   glUniform1f := dglGetProcAddress('glUniform1f');
15759   glUniform2f := dglGetProcAddress('glUniform2f');
15760   glUniform3f := dglGetProcAddress('glUniform3f');
15761   glUniform4f := dglGetProcAddress('glUniform4f');
15762   glUniform1i := dglGetProcAddress('glUniform1i');
15763   glUniform2i := dglGetProcAddress('glUniform2i');
15764   glUniform3i := dglGetProcAddress('glUniform3i');
15765   glUniform4i := dglGetProcAddress('glUniform4i');
15766   glUniform1fv := dglGetProcAddress('glUniform1fv');
15767   glUniform2fv := dglGetProcAddress('glUniform2fv');
15768   glUniform3fv := dglGetProcAddress('glUniform3fv');
15769   glUniform4fv := dglGetProcAddress('glUniform4fv');
15770   glUniform1iv := dglGetProcAddress('glUniform1iv');
15771   glUniform2iv := dglGetProcAddress('glUniform2iv');
15772   glUniform3iv := dglGetProcAddress('glUniform3iv');
15773   glUniform4iv := dglGetProcAddress('glUniform4iv');
15774   glUniformMatrix2fv := dglGetProcAddress('glUniformMatrix2fv');
15775   glUniformMatrix3fv := dglGetProcAddress('glUniformMatrix3fv');
15776   glUniformMatrix4fv := dglGetProcAddress('glUniformMatrix4fv');
15777   glValidateProgram := dglGetProcAddress('glValidateProgram');
15778   glVertexAttrib1d := dglGetProcAddress('glVertexAttrib1d');
15779   glVertexAttrib1dv := dglGetProcAddress('glVertexAttrib1dv');
15780   glVertexAttrib1f := dglGetProcAddress('glVertexAttrib1f');
15781   glVertexAttrib1fv := dglGetProcAddress('glVertexAttrib1fv');
15782   glVertexAttrib1s := dglGetProcAddress('glVertexAttrib1s');
15783   glVertexAttrib1sv := dglGetProcAddress('glVertexAttrib1sv');
15784   glVertexAttrib2d := dglGetProcAddress('glVertexAttrib2d');
15785   glVertexAttrib2dv := dglGetProcAddress('glVertexAttrib2dv');
15786   glVertexAttrib2f := dglGetProcAddress('glVertexAttrib2f');
15787   glVertexAttrib2fv := dglGetProcAddress('glVertexAttrib2fv');
15788   glVertexAttrib2s := dglGetProcAddress('glVertexAttrib2s');
15789   glVertexAttrib2sv := dglGetProcAddress('glVertexAttrib2sv');
15790   glVertexAttrib3d := dglGetProcAddress('glVertexAttrib3d');
15791   glVertexAttrib3dv := dglGetProcAddress('glVertexAttrib3dv');
15792   glVertexAttrib3f := dglGetProcAddress('glVertexAttrib3f');
15793   glVertexAttrib3fv := dglGetProcAddress('glVertexAttrib3fv');
15794   glVertexAttrib3s := dglGetProcAddress('glVertexAttrib3s');
15795   glVertexAttrib3sv := dglGetProcAddress('glVertexAttrib3sv');
15796   glVertexAttrib4Nbv := dglGetProcAddress('glVertexAttrib4Nbv');
15797   glVertexAttrib4Niv := dglGetProcAddress('glVertexAttrib4Niv');
15798   glVertexAttrib4Nsv := dglGetProcAddress('glVertexAttrib4Nsv');
15799   glVertexAttrib4Nub := dglGetProcAddress('glVertexAttrib4Nub');
15800   glVertexAttrib4Nubv := dglGetProcAddress('glVertexAttrib4Nubv');
15801   glVertexAttrib4Nuiv := dglGetProcAddress('glVertexAttrib4Nuiv');
15802   glVertexAttrib4Nusv := dglGetProcAddress('glVertexAttrib4Nusv');
15803   glVertexAttrib4bv := dglGetProcAddress('glVertexAttrib4bv');
15804   glVertexAttrib4d := dglGetProcAddress('glVertexAttrib4d');
15805   glVertexAttrib4dv := dglGetProcAddress('glVertexAttrib4dv');
15806   glVertexAttrib4f := dglGetProcAddress('glVertexAttrib4f');
15807   glVertexAttrib4fv := dglGetProcAddress('glVertexAttrib4fv');
15808   glVertexAttrib4iv := dglGetProcAddress('glVertexAttrib4iv');
15809   glVertexAttrib4s := dglGetProcAddress('glVertexAttrib4s');
15810   glVertexAttrib4sv := dglGetProcAddress('glVertexAttrib4sv');
15811   glVertexAttrib4ubv := dglGetProcAddress('glVertexAttrib4ubv');
15812   glVertexAttrib4uiv := dglGetProcAddress('glVertexAttrib4uiv');
15813   glVertexAttrib4usv := dglGetProcAddress('glVertexAttrib4usv');
15814   glVertexAttribPointer := dglGetProcAddress('glVertexAttribPointer');
15815
15816   // GL_VERSION_2_1
15817   glUniformMatrix2x3fv := dglGetProcAddress('glUniformMatrix2x3fv');
15818   glUniformMatrix3x2fv := dglGetProcAddress('glUniformMatrix3x2fv');
15819   glUniformMatrix2x4fv := dglGetProcAddress('glUniformMatrix2x4fv');
15820   glUniformMatrix4x2fv := dglGetProcAddress('glUniformMatrix4x2fv');
15821   glUniformMatrix3x4fv := dglGetProcAddress('glUniformMatrix3x4fv');
15822   glUniformMatrix4x3fv := dglGetProcAddress('glUniformMatrix4x3fv');
15823
15824   // GL_VERSION_3_0
15825   { OpenGL 3.0 also reuses entry points from these extensions: }
15826   Read_GL_ARB_framebuffer_object;
15827   Read_GL_ARB_map_buffer_range;
15828   Read_GL_ARB_vertex_array_object;
15829
15830   glColorMaski := dglGetProcAddress('glColorMaski');
15831   glGetBooleani_v := dglGetProcAddress('glGetBooleani_v');
15832   glGetIntegeri_v := dglGetProcAddress('glGetIntegeri_v');
15833   glEnablei := dglGetProcAddress('glEnablei');
15834   glDisablei := dglGetProcAddress('glDisablei');
15835   glIsEnabledi := dglGetProcAddress('glIsEnabledi');
15836   glBeginTransformFeedback := dglGetProcAddress('glBeginTransformFeedback');
15837   glEndTransformFeedback := dglGetProcAddress('glEndTransformFeedback');
15838   glBindBufferRange := dglGetProcAddress('glBindBufferRange');
15839   glBindBufferBase := dglGetProcAddress('glBindBufferBase');
15840   glTransformFeedbackVaryings := dglGetProcAddress('glTransformFeedbackVaryings');
15841   glGetTransformFeedbackVarying := dglGetProcAddress('glGetTransformFeedbackVarying');
15842   glClampColor := dglGetProcAddress('glClampColor');
15843   glBeginConditionalRender := dglGetProcAddress('glBeginConditionalRender');
15844   glEndConditionalRender := dglGetProcAddress('glEndConditionalRender');
15845   glVertexAttribI1i := dglGetProcAddress('glVertexAttribI1i');
15846   glVertexAttribI2i := dglGetProcAddress('glVertexAttribI2i');
15847   glVertexAttribI3i := dglGetProcAddress('glVertexAttribI3i');
15848   glVertexAttribI4i := dglGetProcAddress('glVertexAttribI4i');
15849   glVertexAttribI1ui := dglGetProcAddress('glVertexAttribI1ui');
15850   glVertexAttribI2ui := dglGetProcAddress('glVertexAttribI2ui');
15851   glVertexAttribI3ui := dglGetProcAddress('glVertexAttribI3ui');
15852   glVertexAttribI4ui := dglGetProcAddress('glVertexAttribI4ui');
15853   glVertexAttribI1iv := dglGetProcAddress('glVertexAttribI1iv');
15854   glVertexAttribI2iv := dglGetProcAddress('glVertexAttribI2iv');
15855   glVertexAttribI3iv := dglGetProcAddress('glVertexAttribI3iv');
15856   glVertexAttribI4iv := dglGetProcAddress('glVertexAttribI4iv');
15857   glVertexAttribI1uiv := dglGetProcAddress('glVertexAttribI1uiv');
15858   glVertexAttribI2uiv := dglGetProcAddress('glVertexAttribI2uiv');
15859   glVertexAttribI3uiv := dglGetProcAddress('glVertexAttribI3uiv');
15860   glVertexAttribI4uiv := dglGetProcAddress('glVertexAttribI4uiv');
15861   glVertexAttribI4bv := dglGetProcAddress('glVertexAttribI4bv');
15862   glVertexAttribI4sv := dglGetProcAddress('glVertexAttribI4sv');
15863   glVertexAttribI4ubv := dglGetProcAddress('glVertexAttribI4ubv');
15864   glVertexAttribI4usv := dglGetProcAddress('glVertexAttribI4usv');
15865   glVertexAttribIPointer := dglGetProcAddress('glVertexAttribIPointer');
15866   glGetVertexAttribIiv := dglGetProcAddress('glGetVertexAttribIiv');
15867   glGetVertexAttribIuiv := dglGetProcAddress('glGetVertexAttribIuiv');
15868   glGetUniformuiv := dglGetProcAddress('glGetUniformuiv');
15869   glBindFragDataLocation := dglGetProcAddress('glBindFragDataLocation');
15870   glGetFragDataLocation := dglGetProcAddress('glGetFragDataLocation');
15871   glUniform1ui := dglGetProcAddress('glUniform1ui');
15872   glUniform2ui := dglGetProcAddress('glUniform2ui');
15873   glUniform3ui := dglGetProcAddress('glUniform3ui');
15874   glUniform4ui := dglGetProcAddress('glUniform4ui');
15875   glUniform1uiv := dglGetProcAddress('glUniform1uiv');
15876   glUniform2uiv := dglGetProcAddress('glUniform2uiv');
15877   glUniform3uiv := dglGetProcAddress('glUniform3uiv');
15878   glUniform4uiv := dglGetProcAddress('glUniform4uiv');
15879   glTexParameterIiv := dglGetProcAddress('glTexParameterIiv');
15880   glTexParameterIuiv := dglGetProcAddress('glTexParameterIuiv');
15881   glGetTexParameterIiv := dglGetProcAddress('glGetTexParameterIiv');
15882   glGetTexParameterIuiv := dglGetProcAddress('glGetTexParameterIuiv');
15883   glClearBufferiv := dglGetProcAddress('glClearBufferiv');
15884   glClearBufferuiv := dglGetProcAddress('glClearBufferuiv');
15885   glClearBufferfv := dglGetProcAddress('glClearBufferfv');
15886   glClearBufferfi := dglGetProcAddress('glClearBufferfi');
15887   glGetStringi := dglGetProcAddress('glGetStringi');
15888
15889   // GL_VERSION_2_1
15890   glEnableVertexArrayEXT := dglGetProcAddress('glEnableVertexArrayEXT');
15891   glEnableVertexArrayAttribEXT := dglGetProcAddress('glEnableVertexArrayAttribEXT');
15892   glVertexArrayVertexAttribOffsetEXT := dglGetProcAddress('glVertexArrayVertexAttribOffsetEXT');
15893
15894   // GL_VERSION_3_1
15895   { OpenGL 3.1 also reuses entry points from these extensions: }
15896   Read_GL_ARB_copy_buffer;
15897   Read_GL_ARB_uniform_buffer_object;
15898
15899   glDrawArraysInstanced := dglGetProcAddress('glDrawArraysInstanced');
15900   glDrawElementsInstanced := dglGetProcAddress('glDrawElementsInstanced');
15901   glTexBuffer := dglGetProcAddress('glTexBuffer');
15902   glPrimitiveRestartIndex := dglGetProcAddress('glPrimitiveRestartIndex');
15903
15904   // GL_VERSION_3_2
15905   { OpenGL 3.2 also reuses entry points from these extensions: }
15906   Read_GL_ARB_draw_elements_base_vertex;
15907   Read_GL_ARB_provoking_vertex;
15908   Read_GL_ARB_sync;
15909   Read_GL_ARB_texture_multisample;
15910
15911   glGetInteger64i_v := dglGetProcAddress('glGetInteger64i_v');
15912   glGetBufferParameteri64v := dglGetProcAddress('glGetBufferParameteri64v');
15913   glFramebufferTexture := dglGetProcAddress('glFramebufferTexture');
15914 //  glFramebufferTextureFace := dglGetProcAddress('glFramebufferTextureFace');
15915
15916   // GL_VERSION_3_3
15917   { OpenGL 3.3 also reuses entry points from these extensions: }
15918   Read_GL_ARB_blend_func_extended;
15919   Read_GL_ARB_sampler_objects;
15920   { ARB_explicit_attrib_location, but it has none }
15921   { ARB_occlusion_query2 (no entry points) }
15922   { ARB_shader_bit_encoding (no entry points) }
15923   { ARB_texture_rgb10_a2ui (no entry points) }
15924   { ARB_texture_swizzle (no entry points) }
15925   Read_GL_ARB_timer_query;
15926   Read_GL_ARB_vertex_type_2_10_10_10_rev;
15927
15928   glVertexAttribDivisor := dglGetProcAddress('glVertexAttribDivisor');
15929
15930   // GL_VERSION_4_0
15931   { OpenGL 4.0 also reuses entry points from these extensions: }
15932   { ARB_texture_query_lod (no entry points) }
15933   Read_GL_ARB_draw_indirect;
15934   { ARB_gpu_shader5 (no entry points) }
15935   Read_GL_ARB_gpu_shader_fp64;
15936   Read_GL_ARB_shader_subroutine;
15937   Read_GL_ARB_tessellation_shader;
15938   { ARB_texture_buffer_object_rgb32 (no entry points) }
15939   { ARB_texture_cube_map_array (no entry points) }
15940   { ARB_texture_gather (no entry points) }
15941   Read_GL_ARB_transform_feedback2;
15942   Read_GL_ARB_transform_feedback3;
15943
15944   glMinSampleShading := dglGetProcAddress('glMinSampleShading');
15945   glBlendEquationi := dglGetProcAddress('glBlendEquationi');
15946   glBlendEquationSeparatei := dglGetProcAddress('glBlendEquationSeparatei');
15947   glBlendFunci := dglGetProcAddress('glBlendFunci');
15948   glBlendFuncSeparatei := dglGetProcAddress('glBlendFuncSeparatei');
15949
15950   // GL_VERSION_4_1
15951   { OpenGL 4.1 also reuses entry points from these extensions: }
15952   Read_GL_ARB_ES2_compatibility;
15953   Read_GL_ARB_get_program_binary;
15954   Read_GL_ARB_separate_shader_objects;
15955   { ARB_shader_precision (no entry points) }
15956   Read_GL_ARB_vertex_attrib_64bit;
15957   Read_GL_ARB_viewport_array;
15958
15959   // GL_VERSION_4_2
15960   { OpenGL 4.2 reuses entry points from these extensions: }
15961   Read_GL_ARB_base_instance;
15962   //Read_GL_ARB_shading_language_420pack (no entry points)
15963   Read_GL_ARB_transform_feedback_instanced;
15964   //Read_GL_ARB_compressed_texture_pixel_storage (no entry points)
15965   //Read_GL_ARB_conservative_depth;
15966   Read_GL_ARB_internalformat_query;
15967   //Read_GL_ARB_map_buffer_alignment;
15968   Read_GL_ARB_shader_atomic_counters;
15969   Read_GL_ARB_shader_image_load_store;
15970   //Read_GL_ARB_shading_language_packing;
15971   Read_GL_ARB_texture_storage;
15972
15973   // GL_VERSION_4_3
15974   // OpenGL 4.3 reuses entry points from these extensions:
15975   // Read_GL_ARB_arrays_of_arrays (none, GLSL only) (no entry points)
15976   // Read_GL_ARB_fragment_layer_viewport (none, GLSL only) (no entry points)
15977   // Read_GL_ARB_shader_image_size (none, GLSL only) (no entry points)
15978   // Read_GL_ARB_ES3_compatibility (no entry points)
15979   Read_GL_ARB_clear_buffer_object;
15980   Read_GL_ARB_compute_shader;
15981   Read_GL_ARB_copy_image;
15982   Read_GL_KHR_debug;
15983   // Read_GL_ARB_explicit_uniform_location  (no entry points)
15984   Read_GL_ARB_framebuffer_no_attachments;
15985   Read_GL_ARB_internalformat_query2;
15986   Read_GL_ARB_invalidate_subdata;
15987   Read_GL_ARB_multi_draw_indirect;
15988   Read_GL_ARB_program_interface_query;
15989   // Read_GL_ARB_robust_buffer_access_behavior (none)  (no entry points)
15990   Read_GL_ARB_shader_storage_buffer_object;
15991   // Read_GL_ARB_stencil_texturing  (no entry points)
15992   Read_GL_ARB_texture_buffer_range;
15993   // Read_GL_ARB_texture_query_levels (none)  (no entry points)
15994   Read_GL_ARB_texture_storage_multisample;
15995   Read_GL_ARB_texture_view;
15996   Read_GL_ARB_vertex_attrib_binding;
15997
15998   //  Note (Due to Khronos' change in header convetions, no more single read_ functions) starting with GL 4.4
15999   Read_GL_4_4;
16000   Read_GL_4_5;
16001 end;
16002
16003 procedure Read_GL_3DFX_tbuffer;
16004 begin
16005   glTbufferMask3DFX := dglGetProcAddress('glTbufferMask3DFX');
16006 end;
16007
16008 procedure Read_GL_APPLE_element_array;
16009 begin
16010   glElementPointerAPPLE := dglGetProcAddress('glElementPointerAPPLE');
16011   glDrawElementArrayAPPLE := dglGetProcAddress('glDrawElementArrayAPPLE');
16012   glDrawRangeElementArrayAPPLE := dglGetProcAddress('glDrawRangeElementArrayAPPLE');
16013   glMultiDrawElementArrayAPPLE := dglGetProcAddress('glMultiDrawElementArrayAPPLE');
16014   glMultiDrawRangeElementArrayAPPLE := dglGetProcAddress('glMultiDrawRangeElementArrayAPPLE');
16015 end;
16016
16017 procedure Read_GL_APPLE_fence;
16018 begin
16019   glGenFencesAPPLE := dglGetProcAddress('glGenFencesAPPLE');
16020   glDeleteFencesAPPLE := dglGetProcAddress('glDeleteFencesAPPLE');
16021   glSetFenceAPPLE := dglGetProcAddress('glSetFenceAPPLE');
16022   glIsFenceAPPLE := dglGetProcAddress('glIsFenceAPPLE');
16023   glTestFenceAPPLE := dglGetProcAddress('glTestFenceAPPLE');
16024   glFinishFenceAPPLE := dglGetProcAddress('glFinishFenceAPPLE');
16025   glTestObjectAPPLE := dglGetProcAddress('glTestObjectAPPLE');
16026   glFinishObjectAPPLE := dglGetProcAddress('glFinishObjectAPPLE');
16027 end;
16028
16029 procedure Read_GL_APPLE_vertex_array_object;
16030 begin
16031   glBindVertexArrayAPPLE := dglGetProcAddress('glBindVertexArrayAPPLE');
16032   glDeleteVertexArraysAPPLE := dglGetProcAddress('glDeleteVertexArraysAPPLE');
16033   glGenVertexArraysAPPLE := dglGetProcAddress('glGenVertexArraysAPPLE');
16034   glIsVertexArrayAPPLE := dglGetProcAddress('glIsVertexArrayAPPLE');
16035 end;
16036
16037 procedure Read_GL_APPLE_vertex_array_range;
16038 begin
16039   glVertexArrayRangeAPPLE := dglGetProcAddress('glVertexArrayRangeAPPLE');
16040   glFlushVertexArrayRangeAPPLE := dglGetProcAddress('glFlushVertexArrayRangeAPPLE');
16041   glVertexArrayParameteriAPPLE := dglGetProcAddress('glVertexArrayParameteriAPPLE');
16042 end;
16043
16044 procedure Read_GL_APPLE_texture_range;
16045 begin
16046   glTextureRangeAPPLE := dglGetProcAddress('glTextureRangeAPPLE');
16047   glGetTexParameterPointervAPPLE := dglGetProcAddress('glGetTexParameterPointervAPPLE');
16048 end;
16049
16050 procedure Read_GL_APPLE_vertex_program_evaluators;
16051 begin
16052   glEnableVertexAttribAPPLE := dglGetProcAddress('glEnableVertexAttribAPPLE');
16053   glDisableVertexAttribAPPLE := dglGetProcAddress('glDisableVertexAttribAPPLE');
16054   glIsVertexAttribEnabledAPPLE := dglGetProcAddress('glIsVertexAttribEnabledAPPLE');
16055   glMapVertexAttrib1dAPPLE := dglGetProcAddress('glMapVertexAttrib1dAPPLE');
16056   glMapVertexAttrib1fAPPLE := dglGetProcAddress('glMapVertexAttrib1fAPPLE');
16057   glMapVertexAttrib2dAPPLE := dglGetProcAddress('glMapVertexAttrib2dAPPLE');
16058   glMapVertexAttrib2fAPPLE := dglGetProcAddress('glMapVertexAttrib2fAPPLE');
16059 end;
16060
16061 procedure Read_GL_APPLE_object_purgeable;
16062 begin
16063   glObjectPurgeableAPPLE := dglGetProcAddress('glObjectPurgeableAPPLE');
16064   glObjectUnpurgeableAPPLE := dglGetProcAddress('glObjectUnpurgeableAPPLE');
16065   glGetObjectParameterivAPPLE := dglGetProcAddress('glGetObjectParameterivAPPLE');
16066 end;
16067
16068 procedure Read_GL_ARB_matrix_palette;
16069 begin
16070   glCurrentPaletteMatrixARB := dglGetProcAddress('glCurrentPaletteMatrixARB');
16071   glMatrixIndexubvARB := dglGetProcAddress('glMatrixIndexubvARB');
16072   glMatrixIndexusvARB := dglGetProcAddress('glMatrixIndexusvARB');
16073   glMatrixIndexuivARB := dglGetProcAddress('glMatrixIndexuivARB');
16074   glMatrixIndexPointerARB := dglGetProcAddress('glMatrixIndexPointerARB');
16075 end;
16076
16077 procedure Read_GL_ARB_multisample;
16078 begin
16079   glSampleCoverageARB := dglGetProcAddress('glSampleCoverageARB');
16080 end;
16081
16082 procedure Read_GL_ARB_multitexture;
16083 begin
16084   glActiveTextureARB := dglGetProcAddress('glActiveTextureARB');
16085   glClientActiveTextureARB := dglGetProcAddress('glClientActiveTextureARB');
16086   glMultiTexCoord1dARB := dglGetProcAddress('glMultiTexCoord1dARB');
16087   glMultiTexCoord1dvARB := dglGetProcAddress('glMultiTexCoord1dvARB');
16088   glMultiTexCoord1fARB := dglGetProcAddress('glMultiTexCoord1fARB');
16089   glMultiTexCoord1fvARB := dglGetProcAddress('glMultiTexCoord1fvARB');
16090   glMultiTexCoord1iARB := dglGetProcAddress('glMultiTexCoord1iARB');
16091   glMultiTexCoord1ivARB := dglGetProcAddress('glMultiTexCoord1ivARB');
16092   glMultiTexCoord1sARB := dglGetProcAddress('glMultiTexCoord1sARB');
16093   glMultiTexCoord1svARB := dglGetProcAddress('glMultiTexCoord1svARB');
16094   glMultiTexCoord2dARB := dglGetProcAddress('glMultiTexCoord2dARB');
16095   glMultiTexCoord2dvARB := dglGetProcAddress('glMultiTexCoord2dvARB');
16096   glMultiTexCoord2fARB := dglGetProcAddress('glMultiTexCoord2fARB');
16097   glMultiTexCoord2fvARB := dglGetProcAddress('glMultiTexCoord2fvARB');
16098   glMultiTexCoord2iARB := dglGetProcAddress('glMultiTexCoord2iARB');
16099   glMultiTexCoord2ivARB := dglGetProcAddress('glMultiTexCoord2ivARB');
16100   glMultiTexCoord2sARB := dglGetProcAddress('glMultiTexCoord2sARB');
16101   glMultiTexCoord2svARB := dglGetProcAddress('glMultiTexCoord2svARB');
16102   glMultiTexCoord3dARB := dglGetProcAddress('glMultiTexCoord3dARB');
16103   glMultiTexCoord3dvARB := dglGetProcAddress('glMultiTexCoord3dvARB');
16104   glMultiTexCoord3fARB := dglGetProcAddress('glMultiTexCoord3fARB');
16105   glMultiTexCoord3fvARB := dglGetProcAddress('glMultiTexCoord3fvARB');
16106   glMultiTexCoord3iARB := dglGetProcAddress('glMultiTexCoord3iARB');
16107   glMultiTexCoord3ivARB := dglGetProcAddress('glMultiTexCoord3ivARB');
16108   glMultiTexCoord3sARB := dglGetProcAddress('glMultiTexCoord3sARB');
16109   glMultiTexCoord3svARB := dglGetProcAddress('glMultiTexCoord3svARB');
16110   glMultiTexCoord4dARB := dglGetProcAddress('glMultiTexCoord4dARB');
16111   glMultiTexCoord4dvARB := dglGetProcAddress('glMultiTexCoord4dvARB');
16112   glMultiTexCoord4fARB := dglGetProcAddress('glMultiTexCoord4fARB');
16113   glMultiTexCoord4fvARB := dglGetProcAddress('glMultiTexCoord4fvARB');
16114   glMultiTexCoord4iARB := dglGetProcAddress('glMultiTexCoord4iARB');
16115   glMultiTexCoord4ivARB := dglGetProcAddress('glMultiTexCoord4ivARB');
16116   glMultiTexCoord4sARB := dglGetProcAddress('glMultiTexCoord4sARB');
16117   glMultiTexCoord4svARB := dglGetProcAddress('glMultiTexCoord4svARB');
16118 end;
16119
16120 procedure Read_GL_ARB_point_parameters;
16121 begin
16122   glPointParameterfARB := dglGetProcAddress('glPointParameterfARB');
16123   glPointParameterfvARB := dglGetProcAddress('glPointParameterfvARB');
16124 end;
16125
16126 procedure Read_GL_ARB_texture_compression;
16127 begin
16128   glCompressedTexImage3DARB := dglGetProcAddress('glCompressedTexImage3DARB');
16129   glCompressedTexImage2DARB := dglGetProcAddress('glCompressedTexImage2DARB');
16130   glCompressedTexImage1DARB := dglGetProcAddress('glCompressedTexImage1DARB');
16131   glCompressedTexSubImage3DARB := dglGetProcAddress('glCompressedTexSubImage3DARB');
16132   glCompressedTexSubImage2DARB := dglGetProcAddress('glCompressedTexSubImage2DARB');
16133   glCompressedTexSubImage1DARB := dglGetProcAddress('glCompressedTexSubImage1DARB');
16134   glGetCompressedTexImageARB := dglGetProcAddress('glGetCompressedTexImageARB');
16135 end;
16136
16137 procedure Read_GL_ARB_transpose_matrix;
16138 begin
16139   glLoadTransposeMatrixfARB := dglGetProcAddress('glLoadTransposeMatrixfARB');
16140   glLoadTransposeMatrixdARB := dglGetProcAddress('glLoadTransposeMatrixdARB');
16141   glMultTransposeMatrixfARB := dglGetProcAddress('glMultTransposeMatrixfARB');
16142   glMultTransposeMatrixdARB := dglGetProcAddress('glMultTransposeMatrixdARB');
16143 end;
16144
16145 procedure Read_GL_ARB_vertex_blend;
16146 begin
16147   glWeightbvARB := dglGetProcAddress('glWeightbvARB');
16148   glWeightsvARB := dglGetProcAddress('glWeightsvARB');
16149   glWeightivARB := dglGetProcAddress('glWeightivARB');
16150   glWeightfvARB := dglGetProcAddress('glWeightfvARB');
16151   glWeightdvARB := dglGetProcAddress('glWeightdvARB');
16152   glWeightubvARB := dglGetProcAddress('glWeightubvARB');
16153   glWeightusvARB := dglGetProcAddress('glWeightusvARB');
16154   glWeightuivARB := dglGetProcAddress('glWeightuivARB');
16155   glWeightPointerARB := dglGetProcAddress('glWeightPointerARB');
16156   glVertexBlendARB := dglGetProcAddress('glVertexBlendARB');
16157 end;
16158
16159 procedure Read_GL_ARB_vertex_buffer_object;
16160 begin
16161   glBindBufferARB := dglGetProcAddress('glBindBufferARB');
16162   glDeleteBuffersARB := dglGetProcAddress('glDeleteBuffersARB');
16163   glGenBuffersARB := dglGetProcAddress('glGenBuffersARB');
16164   glIsBufferARB := dglGetProcAddress('glIsBufferARB');
16165   glBufferDataARB := dglGetProcAddress('glBufferDataARB');
16166   glBufferSubDataARB := dglGetProcAddress('glBufferSubDataARB');
16167   glGetBufferSubDataARB := dglGetProcAddress('glGetBufferSubDataARB');
16168   glMapBufferARB := dglGetProcAddress('glMapBufferARB');
16169   glUnmapBufferARB := dglGetProcAddress('glUnmapBufferARB');
16170   glGetBufferParameterivARB := dglGetProcAddress('glGetBufferParameterivARB');
16171   glGetBufferPointervARB := dglGetProcAddress('glGetBufferPointervARB');
16172 end;
16173
16174 procedure Read_GL_ARB_vertex_program;
16175 begin
16176   glVertexAttrib1dARB := dglGetProcAddress('glVertexAttrib1dARB');
16177   glVertexAttrib1dvARB := dglGetProcAddress('glVertexAttrib1dvARB');
16178   glVertexAttrib1fARB := dglGetProcAddress('glVertexAttrib1fARB');
16179   glVertexAttrib1fvARB := dglGetProcAddress('glVertexAttrib1fvARB');
16180   glVertexAttrib1sARB := dglGetProcAddress('glVertexAttrib1sARB');
16181   glVertexAttrib1svARB := dglGetProcAddress('glVertexAttrib1svARB');
16182   glVertexAttrib2dARB := dglGetProcAddress('glVertexAttrib2dARB');
16183   glVertexAttrib2dvARB := dglGetProcAddress('glVertexAttrib2dvARB');
16184   glVertexAttrib2fARB := dglGetProcAddress('glVertexAttrib2fARB');
16185   glVertexAttrib2fvARB := dglGetProcAddress('glVertexAttrib2fvARB');
16186   glVertexAttrib2sARB := dglGetProcAddress('glVertexAttrib2sARB');
16187   glVertexAttrib2svARB := dglGetProcAddress('glVertexAttrib2svARB');
16188   glVertexAttrib3dARB := dglGetProcAddress('glVertexAttrib3dARB');
16189   glVertexAttrib3dvARB := dglGetProcAddress('glVertexAttrib3dvARB');
16190   glVertexAttrib3fARB := dglGetProcAddress('glVertexAttrib3fARB');
16191   glVertexAttrib3fvARB := dglGetProcAddress('glVertexAttrib3fvARB');
16192   glVertexAttrib3sARB := dglGetProcAddress('glVertexAttrib3sARB');
16193   glVertexAttrib3svARB := dglGetProcAddress('glVertexAttrib3svARB');
16194   glVertexAttrib4NbvARB := dglGetProcAddress('glVertexAttrib4NbvARB');
16195   glVertexAttrib4NivARB := dglGetProcAddress('glVertexAttrib4NivARB');
16196   glVertexAttrib4NsvARB := dglGetProcAddress('glVertexAttrib4NsvARB');
16197   glVertexAttrib4NubARB := dglGetProcAddress('glVertexAttrib4NubARB');
16198   glVertexAttrib4NubvARB := dglGetProcAddress('glVertexAttrib4NubvARB');
16199   glVertexAttrib4NuivARB := dglGetProcAddress('glVertexAttrib4NuivARB');
16200   glVertexAttrib4NusvARB := dglGetProcAddress('glVertexAttrib4NusvARB');
16201   glVertexAttrib4bvARB := dglGetProcAddress('glVertexAttrib4bvARB');
16202   glVertexAttrib4dARB := dglGetProcAddress('glVertexAttrib4dARB');
16203   glVertexAttrib4dvARB := dglGetProcAddress('glVertexAttrib4dvARB');
16204   glVertexAttrib4fARB := dglGetProcAddress('glVertexAttrib4fARB');
16205   glVertexAttrib4fvARB := dglGetProcAddress('glVertexAttrib4fvARB');
16206   glVertexAttrib4ivARB := dglGetProcAddress('glVertexAttrib4ivARB');
16207   glVertexAttrib4sARB := dglGetProcAddress('glVertexAttrib4sARB');
16208   glVertexAttrib4svARB := dglGetProcAddress('glVertexAttrib4svARB');
16209   glVertexAttrib4ubvARB := dglGetProcAddress('glVertexAttrib4ubvARB');
16210   glVertexAttrib4uivARB := dglGetProcAddress('glVertexAttrib4uivARB');
16211   glVertexAttrib4usvARB := dglGetProcAddress('glVertexAttrib4usvARB');
16212   glVertexAttribPointerARB := dglGetProcAddress('glVertexAttribPointerARB');
16213   glEnableVertexAttribArrayARB := dglGetProcAddress('glEnableVertexAttribArrayARB');
16214   glDisableVertexAttribArrayARB := dglGetProcAddress('glDisableVertexAttribArrayARB');
16215   glProgramStringARB := dglGetProcAddress('glProgramStringARB');
16216   glBindProgramARB := dglGetProcAddress('glBindProgramARB');
16217   glDeleteProgramsARB := dglGetProcAddress('glDeleteProgramsARB');
16218   glGenProgramsARB := dglGetProcAddress('glGenProgramsARB');
16219   glProgramEnvParameter4dARB := dglGetProcAddress('glProgramEnvParameter4dARB');
16220   glProgramEnvParameter4dvARB := dglGetProcAddress('glProgramEnvParameter4dvARB');
16221   glProgramEnvParameter4fARB := dglGetProcAddress('glProgramEnvParameter4fARB');
16222   glProgramEnvParameter4fvARB := dglGetProcAddress('glProgramEnvParameter4fvARB');
16223   glProgramLocalParameter4dARB := dglGetProcAddress('glProgramLocalParameter4dARB');
16224   glProgramLocalParameter4dvARB := dglGetProcAddress('glProgramLocalParameter4dvARB');
16225   glProgramLocalParameter4fARB := dglGetProcAddress('glProgramLocalParameter4fARB');
16226   glProgramLocalParameter4fvARB := dglGetProcAddress('glProgramLocalParameter4fvARB');
16227   glGetProgramEnvParameterdvARB := dglGetProcAddress('glGetProgramEnvParameterdvARB');
16228   glGetProgramEnvParameterfvARB := dglGetProcAddress('glGetProgramEnvParameterfvARB');
16229   glGetProgramLocalParameterdvARB := dglGetProcAddress('glGetProgramLocalParameterdvARB');
16230   glGetProgramLocalParameterfvARB := dglGetProcAddress('glGetProgramLocalParameterfvARB');
16231   glGetProgramivARB := dglGetProcAddress('glGetProgramivARB');
16232   glGetProgramStringARB := dglGetProcAddress('glGetProgramStringARB');
16233   glGetVertexAttribdvARB := dglGetProcAddress('glGetVertexAttribdvARB');
16234   glGetVertexAttribfvARB := dglGetProcAddress('glGetVertexAttribfvARB');
16235   glGetVertexAttribivARB := dglGetProcAddress('glGetVertexAttribivARB');
16236   glGetVertexAttribPointervARB := dglGetProcAddress('glGetVertexAttribPointervARB');
16237   glIsProgramARB := dglGetProcAddress('glIsProgramARB');
16238 end;
16239
16240 procedure Read_GL_ARB_window_pos;
16241 begin
16242   glWindowPos2dARB := dglGetProcAddress('glWindowPos2dARB');
16243   glWindowPos2dvARB := dglGetProcAddress('glWindowPos2dvARB');
16244   glWindowPos2fARB := dglGetProcAddress('glWindowPos2fARB');
16245   glWindowPos2fvARB := dglGetProcAddress('glWindowPos2fvARB');
16246   glWindowPos2iARB := dglGetProcAddress('glWindowPos2iARB');
16247   glWindowPos2ivARB := dglGetProcAddress('glWindowPos2ivARB');
16248   glWindowPos2sARB := dglGetProcAddress('glWindowPos2sARB');
16249   glWindowPos2svARB := dglGetProcAddress('glWindowPos2svARB');
16250   glWindowPos3dARB := dglGetProcAddress('glWindowPos3dARB');
16251   glWindowPos3dvARB := dglGetProcAddress('glWindowPos3dvARB');
16252   glWindowPos3fARB := dglGetProcAddress('glWindowPos3fARB');
16253   glWindowPos3fvARB := dglGetProcAddress('glWindowPos3fvARB');
16254   glWindowPos3iARB := dglGetProcAddress('glWindowPos3iARB');
16255   glWindowPos3ivARB := dglGetProcAddress('glWindowPos3ivARB');
16256   glWindowPos3sARB := dglGetProcAddress('glWindowPos3sARB');
16257   glWindowPos3svARB := dglGetProcAddress('glWindowPos3svARB');
16258 end;
16259
16260 procedure Read_GL_ARB_draw_buffers;
16261 begin
16262   glDrawBuffersARB := dglGetProcAddress('glDrawBuffersARB');
16263 end;
16264
16265 procedure Read_GL_ARB_color_buffer_float;
16266 begin
16267   glClampColorARB := dglGetProcAddress('glClampColorARB');
16268 end;
16269
16270 procedure Read_GL_ARB_Shader_Objects;
16271 begin
16272   // GL_ARB_Shader_Objects
16273   glCreateShaderObjectARB := dglGetProcAddress('glCreateShaderObjectARB');
16274   glShaderSourceARB := dglGetProcAddress('glShaderSourceARB');
16275   glCompileShaderARB := dglGetProcAddress('glCompileShaderARB');
16276   glDeleteObjectARB := dglGetProcAddress('glDeleteObjectARB');
16277   glGetHandleARB := dglGetProcAddress('glGetHandleARB');
16278   glDetachObjectARB := dglGetProcAddress('glDetachObjectARB');
16279   glCreateProgramObjectARB := dglGetProcAddress('glCreateProgramObjectARB');
16280   glAttachObjectARB := dglGetProcAddress('glAttachObjectARB');
16281   glLinkProgramARB := dglGetProcAddress('glLinkProgramARB');
16282   glUseProgramObjectARB := dglGetProcAddress('glUseProgramObjectARB');
16283   glValidateProgramARB := dglGetProcAddress('glValidateProgramARB');
16284   glGetObjectParameterfvARB := dglGetProcAddress('glGetObjectParameterfvARB');
16285   glGetObjectParameterivARB := dglGetProcAddress('glGetObjectParameterivARB');
16286   glGetActiveUniformARB := dglGetProcAddress('glGetActiveUniformARB');
16287   glGetAttachedObjectsARB := dglGetProcAddress('glGetAttachedObjectsARB');
16288   glGetShaderSourceARB := dglGetProcAddress('glGetShaderSourceARB');
16289   glGetUniformfvARB := dglGetProcAddress('glGetUniformfvARB');
16290   glGetUniformivARB := dglGetProcAddress('glGetUniformivARB');
16291   glGetUniformLocationARB := dglGetProcAddress('glGetUniformLocationARB');
16292   glGetInfoLogARB := dglGetProcAddress('glGetInfoLogARB');
16293   glUniform1fARB := dglGetProcAddress('glUniform1fARB');
16294   glUniform2fARB := dglGetProcAddress('glUniform2fARB');
16295   glUniform3fARB := dglGetProcAddress('glUniform3fARB');
16296   glUniform4fARB := dglGetProcAddress('glUniform4fARB');
16297   glUniform1iARB := dglGetProcAddress('glUniform1iARB');
16298   glUniform2iARB := dglGetProcAddress('glUniform2iARB');
16299   glUniform3iARB := dglGetProcAddress('glUniform3iARB');
16300   glUniform4iARB := dglGetProcAddress('glUniform4iARB');
16301   glUniform1fvARB := dglGetProcAddress('glUniform1fvARB');
16302   glUniform2fvARB := dglGetProcAddress('glUniform2fvARB');
16303   glUniform3fvARB := dglGetProcAddress('glUniform3fvARB');
16304   glUniform4fvARB := dglGetProcAddress('glUniform4fvARB');
16305   glUniform1ivARB := dglGetProcAddress('glUniform1ivARB');
16306   glUniform2ivARB := dglGetProcAddress('glUniform2ivARB');
16307   glUniform3ivARB := dglGetProcAddress('glUniform3ivARB');
16308   glUniform4ivARB := dglGetProcAddress('glUniform4ivARB');
16309   glUniformMatrix2fvARB := dglGetProcAddress('glUniformMatrix2fvARB');
16310   glUniformMatrix3fvARB := dglGetProcAddress('glUniformMatrix3fvARB');
16311   glUniformMatrix4fvARB := dglGetProcAddress('glUniformMatrix4fvARB');
16312
16313   // GL_ARB_vertex_shader
16314   glGetActiveAttribARB := dglGetProcAddress('glGetActiveAttribARB');
16315   glGetAttribLocationARB := dglGetProcAddress('glGetAttribLocationARB');
16316   glBindAttribLocationARB := dglGetProcAddress('glBindAttribLocationARB');
16317   glGetVertexAttribPointervARB := dglGetProcAddress('glGetVertexAttribPointervARB');
16318 end;
16319
16320 procedure Read_GL_ARB_occlusion_query;
16321 begin
16322   glGenQueriesARB := dglGetProcAddress('glGenQueriesARB');
16323   glDeleteQueriesARB := dglGetProcAddress('glDeleteQueriesARB');
16324   glIsQueryARB := dglGetProcAddress('glIsQueryARB');
16325   glBeginQueryARB := dglGetProcAddress('glBeginQueryARB');
16326   glEndQueryARB := dglGetProcAddress('glEndQueryARB');
16327   glGetQueryivARB := dglGetProcAddress('glGetQueryivARB');
16328   glGetQueryObjectivARB := dglGetProcAddress('glGetQueryObjectivARB');
16329   glGetQueryObjectuivARB := dglGetProcAddress('glGetQueryObjectuivARB');
16330 end;
16331
16332 procedure Read_GL_ARB_draw_instanced;
16333 begin
16334   glDrawArraysInstancedARB := dglGetProcAddress('glDrawArraysInstancedARB');
16335   glDrawElementsInstancedARB := dglGetProcAddress('glDrawElementsInstancedARB');
16336 end;
16337
16338 procedure Read_GL_ARB_framebuffer_object;
16339 begin
16340   glIsRenderbuffer := dglGetProcAddress('glIsRenderbuffer');
16341   glBindRenderbuffer := dglGetProcAddress('glBindRenderbuffer');
16342   glDeleteRenderbuffers := dglGetProcAddress('glDeleteRenderbuffers');
16343   glGenRenderbuffers := dglGetProcAddress('glGenRenderbuffers');
16344   glRenderbufferStorage := dglGetProcAddress('glRenderbufferStorage');
16345   glGetRenderbufferParameteriv := dglGetProcAddress('glGetRenderbufferParameteriv');
16346   glIsFramebuffer := dglGetProcAddress('glIsFramebuffer');
16347   glBindFramebuffer := dglGetProcAddress('glBindFramebuffer');
16348   glDeleteFramebuffers := dglGetProcAddress('glDeleteFramebuffers');
16349   glGenFramebuffers := dglGetProcAddress('glGenFramebuffers');
16350   glCheckFramebufferStatus := dglGetProcAddress('glCheckFramebufferStatus');
16351   glFramebufferTexture1D := dglGetProcAddress('glFramebufferTexture1D');
16352   glFramebufferTexture2D := dglGetProcAddress('glFramebufferTexture2D');
16353   glFramebufferTexture3D := dglGetProcAddress('glFramebufferTexture3D');
16354   glFramebufferRenderbuffer := dglGetProcAddress('glFramebufferRenderbuffer');
16355   glGetFramebufferAttachmentParameteriv := dglGetProcAddress('glGetFramebufferAttachmentParameteriv');
16356   glGenerateMipmap := dglGetProcAddress('glGenerateMipmap');
16357   glBlitFramebuffer := dglGetProcAddress('glBlitFramebuffer');
16358   glRenderbufferStorageMultisample := dglGetProcAddress('glRenderbufferStorageMultisample');
16359   glFramebufferTextureLayer := dglGetProcAddress('glFramebufferTextureLayer');
16360 end;
16361
16362 procedure Read_GL_ARB_geometry_shader4;
16363 begin
16364   glProgramParameteriARB := dglGetProcAddress('glProgramParameteriARB');
16365   glFramebufferTextureARB := dglGetProcAddress('glFramebufferTextureARB');
16366   glFramebufferTextureLayerARB := dglGetProcAddress('glFramebufferTextureLayerARB');
16367   glFramebufferTextureFaceARB := dglGetProcAddress('glFramebufferTextureFaceARB');
16368 end;
16369
16370 procedure Read_GL_ARB_instanced_arrays;
16371 begin
16372   glVertexAttribDivisorARB := dglGetProcAddress('glVertexAttribDivisorARB');
16373 end;
16374
16375 procedure Read_GL_ARB_map_buffer_range;
16376 begin
16377   glMapBufferRange := dglGetProcAddress('glMapBufferRange');
16378   glFlushMappedBufferRange := dglGetProcAddress('glFlushMappedBufferRange');
16379 end;
16380
16381 procedure Read_GL_ARB_texture_buffer_object;
16382 begin
16383   glTexBufferARB := dglGetProcAddress('glTexBufferARB');
16384 end;
16385
16386 procedure Read_GL_ARB_vertex_array_object;
16387 begin
16388   glBindVertexArray := dglGetProcAddress('glBindVertexArray');
16389   glDeleteVertexArrays := dglGetProcAddress('glDeleteVertexArrays');
16390   glGenVertexArrays := dglGetProcAddress('glGenVertexArrays');
16391   glIsVertexArray := dglGetProcAddress('glIsVertexArray');
16392 end;
16393
16394 procedure Read_GL_ARB_uniform_buffer_object;
16395 begin
16396   glGetUniformIndices := dglGetProcAddress('glGetUniformIndices');
16397   glGetActiveUniformsiv := dglGetProcAddress('glGetActiveUniformsiv');
16398   glGetActiveUniformName := dglGetProcAddress('glGetActiveUniformName');
16399   glGetUniformBlockIndex := dglGetProcAddress('glGetUniformBlockIndex');
16400   glGetActiveUniformBlockiv := dglGetProcAddress('glGetActiveUniformBlockiv');
16401   glGetActiveUniformBlockName := dglGetProcAddress('glGetActiveUniformBlockName');
16402   glUniformBlockBinding := dglGetProcAddress('glUniformBlockBinding');
16403 end;
16404
16405 procedure Read_GL_ARB_copy_buffer;
16406 begin
16407   glCopyBufferSubData := dglGetProcAddress('glCopyBufferSubData');
16408 end;
16409
16410 procedure Read_GL_ARB_draw_elements_base_vertex;
16411 begin
16412   glDrawElementsBaseVertex := dglGetProcAddress('glDrawElementsBaseVertex');
16413   glDrawRangeElementsBaseVertex := dglGetProcAddress('glDrawRangeElementsBaseVertex');
16414   glDrawElementsInstancedBaseVertex := dglGetProcAddress('glDrawElementsInstancedBaseVertex');
16415   glMultiDrawElementsBaseVertex := dglGetProcAddress('glMultiDrawElementsBaseVertex');
16416 end;
16417
16418 procedure Read_GL_ARB_provoking_vertex;
16419 begin
16420   glProvokingVertex := dglGetProcAddress('glProvokingVertex');
16421 end;
16422
16423 procedure Read_GL_ARB_sync;
16424 begin
16425   glFenceSync := dglGetProcAddress('glFenceSync');
16426   glIsSync := dglGetProcAddress('glIsSync');
16427   glDeleteSync := dglGetProcAddress('glDeleteSync');
16428   glClientWaitSync := dglGetProcAddress('glClientWaitSync');
16429   glWaitSync := dglGetProcAddress('glWaitSync');
16430   glGetInteger64v := dglGetProcAddress('glGetInteger64v');
16431   glGetSynciv := dglGetProcAddress('glGetSynciv');
16432 end;
16433
16434 procedure Read_GL_ARB_texture_multisample;
16435 begin
16436   glTexImage2DMultisample := dglGetProcAddress('glTexImage2DMultisample');
16437   glTexImage3DMultisample := dglGetProcAddress('glTexImage3DMultisample');
16438   glGetMultisamplefv := dglGetProcAddress('glGetMultisamplefv');
16439   glSampleMaski := dglGetProcAddress('glSampleMaski');
16440 end;
16441
16442 procedure Read_GL_ARB_draw_buffers_blend;
16443 begin
16444   glBlendEquationiARB := dglGetProcAddress('glBlendEquationiARB');
16445   glBlendEquationSeparateiARB := dglGetProcAddress('glBlendEquationSeparateiARB');
16446   glBlendFunciARB := dglGetProcAddress('glBlendFunciARB');
16447   glBlendFuncSeparateiARB := dglGetProcAddress('glBlendFuncSeparateiARB');
16448 end;
16449
16450 procedure Read_GL_ARB_sample_shading;
16451 begin
16452   glMinSampleShadingARB := dglGetProcAddress('glMinSampleShadingARB');
16453 end;
16454
16455 procedure Read_GL_ARB_shading_language_include;
16456 begin
16457   glNamedStringARB := dglGetProcAddress('glNamedStringARB');
16458   glDeleteNamedStringARB := dglGetProcAddress('glDeleteNamedStringARB');
16459   glCompileShaderIncludeARB := dglGetProcAddress('glCompileShaderIncludeARB');
16460   glIsNamedStringARB := dglGetProcAddress('glIsNamedStringARB');
16461   glGetNamedStringARB := dglGetProcAddress('glGetNamedStringARB');
16462   glGetNamedStringivARB := dglGetProcAddress('glGetNamedStringivARB');
16463 end;
16464
16465 procedure Read_GL_ARB_sparse_texture;
16466 begin
16467   glTexPageCommitmentARB := dglGetProcAddress('glTexPageCommitmentARB');
16468 end;
16469
16470 procedure Read_GL_ARB_sparse_buffer;
16471 begin
16472   glBufferPageCommitmentARB := dglGetProcAddress('glBufferPageCommitmentARB');
16473   glNamedBufferPageCommitmentEXT := dglGetProcAddress('glNamedBufferPageCommitmentEXT');
16474   glNamedBufferPageCommitmentARB := dglGetProcAddress('glNamedBufferPageCommitmentARB');
16475 end;
16476
16477 procedure Read_GL_KHR_blend_equation_advanced;
16478 begin
16479   glBlendBarrierKHR := dglGetProcAddress('glBlendBarrierKHR');
16480 end;
16481
16482
16483 procedure Read_GL_ARB_blend_func_extended;
16484 begin
16485   glBindFragDataLocationIndexed := dglGetProcAddress('glBindFragDataLocationIndexed');
16486   glGetFragDataIndex := dglGetProcAddress('glGetFragDataIndex');
16487 end;
16488
16489 procedure Read_GL_ARB_sampler_objects;
16490 begin
16491   glGenSamplers := dglGetProcAddress('glGenSamplers');
16492   glDeleteSamplers := dglGetProcAddress('glDeleteSamplers');
16493   glIsSampler := dglGetProcAddress('glIsSampler');
16494   glBindSampler := dglGetProcAddress('glBindSampler');
16495   glSamplerParameteri := dglGetProcAddress('glSamplerParameteri');
16496   glSamplerParameteriv := dglGetProcAddress('glSamplerParameteriv');
16497   glSamplerParameterf := dglGetProcAddress('glSamplerParameterf');
16498   glSamplerParameterfv := dglGetProcAddress('glSamplerParameterfv');
16499   glSamplerParameterIiv := dglGetProcAddress('glSamplerParameterIiv');
16500   glSamplerParameterIuiv := dglGetProcAddress('glSamplerParameterIuiv');
16501   glGetSamplerParameteriv := dglGetProcAddress('glGetSamplerParameteriv');
16502   glGetSamplerParameterIiv := dglGetProcAddress('glGetSamplerParameterIiv');
16503   glGetSamplerParameterfv := dglGetProcAddress('glGetSamplerParameterfv');
16504   glGetSamplerParameterIuiv := dglGetProcAddress('glGetSamplerParameterIuiv');
16505 end;
16506
16507 procedure Read_GL_ARB_timer_query;
16508 begin
16509   glQueryCounter := dglGetProcAddress('glQueryCounter');
16510   glGetQueryObjecti64v := dglGetProcAddress('glGetQueryObjecti64v');
16511   glGetQueryObjectui64v := dglGetProcAddress('glGetQueryObjectui64v');
16512 end;
16513
16514 procedure Read_GL_ARB_vertex_type_2_10_10_10_rev;
16515 begin
16516   glVertexP2ui := dglGetProcAddress('glVertexP2ui');
16517   glVertexP2uiv := dglGetProcAddress('glVertexP2uiv');
16518   glVertexP3ui := dglGetProcAddress('glVertexP3ui');
16519   glVertexP3uiv := dglGetProcAddress('glVertexP3uiv');
16520   glVertexP4ui := dglGetProcAddress('glVertexP4ui');
16521   glVertexP4uiv := dglGetProcAddress('glVertexP4uiv');
16522   glTexCoordP1ui := dglGetProcAddress('glTexCoordP1ui');
16523   glTexCoordP1uiv := dglGetProcAddress('glTexCoordP1uiv');
16524   glTexCoordP2ui := dglGetProcAddress('glTexCoordP2ui');
16525   glTexCoordP2uiv := dglGetProcAddress('glTexCoordP2uiv');
16526   glTexCoordP3ui := dglGetProcAddress('glTexCoordP3ui');
16527   glTexCoordP3uiv := dglGetProcAddress('glTexCoordP3uiv');
16528   glTexCoordP4ui := dglGetProcAddress('glTexCoordP4ui');
16529   glTexCoordP4uiv := dglGetProcAddress('glTexCoordP4uiv');
16530   glMultiTexCoordP1ui := dglGetProcAddress('glMultiTexCoordP1ui');
16531   glMultiTexCoordP1uiv := dglGetProcAddress('glMultiTexCoordP1uiv');
16532   glMultiTexCoordP2ui := dglGetProcAddress('glMultiTexCoordP2ui');
16533   glMultiTexCoordP2uiv := dglGetProcAddress('glMultiTexCoordP2uiv');
16534   glMultiTexCoordP3ui := dglGetProcAddress('glMultiTexCoordP3ui');
16535   glMultiTexCoordP3uiv := dglGetProcAddress('glMultiTexCoordP3uiv');
16536   glMultiTexCoordP4ui := dglGetProcAddress('glMultiTexCoordP4ui');
16537   glMultiTexCoordP4uiv := dglGetProcAddress('glMultiTexCoordP4uiv');
16538   glNormalP3ui := dglGetProcAddress('glNormalP3ui');
16539   glNormalP3uiv := dglGetProcAddress('glNormalP3uiv');
16540   glColorP3ui := dglGetProcAddress('glColorP3ui');
16541   glColorP3uiv := dglGetProcAddress('glColorP3uiv');
16542   glColorP4ui := dglGetProcAddress('glColorP4ui');
16543   glColorP4uiv := dglGetProcAddress('glColorP4uiv');
16544   glSecondaryColorP3ui := dglGetProcAddress('glSecondaryColorP3ui');
16545   glSecondaryColorP3uiv := dglGetProcAddress('glSecondaryColorP3uiv');
16546   glVertexAttribP1ui := dglGetProcAddress('glVertexAttribP1ui');
16547   glVertexAttribP1uiv := dglGetProcAddress('glVertexAttribP1uiv');
16548   glVertexAttribP2ui := dglGetProcAddress('glVertexAttribP2ui');
16549   glVertexAttribP2uiv := dglGetProcAddress('glVertexAttribP2uiv');
16550   glVertexAttribP3ui := dglGetProcAddress('glVertexAttribP3ui');
16551   glVertexAttribP3uiv := dglGetProcAddress('glVertexAttribP3uiv');
16552   glVertexAttribP4ui := dglGetProcAddress('glVertexAttribP4ui');
16553   glVertexAttribP4uiv := dglGetProcAddress('glVertexAttribP4uiv');
16554 end;
16555
16556 procedure Read_GL_ARB_draw_indirect;
16557 begin
16558   glDrawArraysIndirect := dglGetProcAddress('glDrawArraysIndirect');
16559   glDrawElementsIndirect := dglGetProcAddress('glDrawElementsIndirect');
16560 end;
16561
16562 procedure Read_GL_ARB_gpu_shader_fp64;
16563 begin
16564   glUniform1d := dglGetProcAddress('glUniform1d');
16565   glUniform2d := dglGetProcAddress('glUniform2d');
16566   glUniform3d := dglGetProcAddress('glUniform3d');
16567   glUniform4d := dglGetProcAddress('glUniform4d');
16568   glUniform1dv := dglGetProcAddress('glUniform1dv');
16569   glUniform2dv := dglGetProcAddress('glUniform2dv');
16570   glUniform3dv := dglGetProcAddress('glUniform3dv');
16571   glUniform4dv := dglGetProcAddress('glUniform4dv');
16572   glUniformMatrix2dv := dglGetProcAddress('glUniformMatrix2dv');
16573   glUniformMatrix3dv := dglGetProcAddress('glUniformMatrix3dv');
16574   glUniformMatrix4dv := dglGetProcAddress('glUniformMatrix4dv');
16575   glUniformMatrix2x3dv := dglGetProcAddress('glUniformMatrix2x3dv');
16576   glUniformMatrix2x4dv := dglGetProcAddress('glUniformMatrix2x4dv');
16577   glUniformMatrix3x2dv := dglGetProcAddress('glUniformMatrix3x2dv');
16578   glUniformMatrix3x4dv := dglGetProcAddress('glUniformMatrix3x4dv');
16579   glUniformMatrix4x2dv := dglGetProcAddress('glUniformMatrix4x2dv');
16580   glUniformMatrix4x3dv := dglGetProcAddress('glUniformMatrix4x3dv');
16581   glGetUniformdv := dglGetProcAddress('glGetUniformdv');
16582 end;
16583
16584 procedure Read_GL_ARB_shader_subroutine;
16585 begin
16586   glGetSubroutineUniformLocation := dglGetProcAddress('glGetSubroutineUniformLocation');
16587   glGetSubroutineIndex := dglGetProcAddress('glGetSubroutineIndex');
16588   glGetActiveSubroutineUniformiv := dglGetProcAddress('glGetActiveSubroutineUniformiv');
16589   glGetActiveSubroutineUniformName := dglGetProcAddress('glGetActiveSubroutineUniformName');
16590   glGetActiveSubroutineName := dglGetProcAddress('glGetActiveSubroutineName');
16591   glUniformSubroutinesuiv := dglGetProcAddress('glUniformSubroutinesuiv');
16592   glGetUniformSubroutineuiv := dglGetProcAddress('glGetUniformSubroutineuiv');
16593   glGetProgramStageiv := dglGetProcAddress('glGetProgramStageiv');
16594 end;
16595
16596 procedure Read_GL_ARB_tessellation_shader;
16597 begin
16598   glPatchParameteri := dglGetProcAddress('glPatchParameteri');
16599   glPatchParameterfv := dglGetProcAddress('glPatchParameterfv');
16600 end;
16601
16602 procedure Read_GL_ARB_transform_feedback2;
16603 begin
16604   glBindTransformFeedback := dglGetProcAddress('glBindTransformFeedback');
16605   glDeleteTransformFeedbacks := dglGetProcAddress('glDeleteTransformFeedbacks');
16606   glGenTransformFeedbacks := dglGetProcAddress('glGenTransformFeedbacks');
16607   glIsTransformFeedback := dglGetProcAddress('glIsTransformFeedback');
16608   glPauseTransformFeedback := dglGetProcAddress('glPauseTransformFeedback');
16609   glResumeTransformFeedback := dglGetProcAddress('glResumeTransformFeedback');
16610   glDrawTransformFeedback := dglGetProcAddress('glDrawTransformFeedback');
16611 end;
16612
16613 procedure Read_GL_ARB_transform_feedback3;
16614 begin
16615   glDrawTransformFeedbackStream := dglGetProcAddress('glDrawTransformFeedbackStream');
16616   glBeginQueryIndexed := dglGetProcAddress('glBeginQueryIndexed');
16617   glEndQueryIndexed := dglGetProcAddress('glEndQueryIndexed');
16618   glGetQueryIndexediv := dglGetProcAddress('glGetQueryIndexediv');
16619 end;
16620
16621 procedure Read_GL_ARB_ES2_compatibility;
16622 begin
16623   glReleaseShaderCompiler := dglGetProcAddress('glReleaseShaderCompiler');
16624   glShaderBinary := dglGetProcAddress('glShaderBinary');
16625   glGetShaderPrecisionFormat := dglGetProcAddress('glGetShaderPrecisionFormat');
16626   glDepthRangef := dglGetProcAddress('glDepthRangef');
16627   glClearDepthf := dglGetProcAddress('glClearDepthf');
16628 end;
16629
16630 procedure Read_GL_ARB_get_program_binary;
16631 begin
16632   glGetProgramBinary := dglGetProcAddress('glGetProgramBinary');
16633   glProgramBinary := dglGetProcAddress('glProgramBinary');
16634   glProgramParameteri := dglGetProcAddress('glProgramParameteri');
16635 end;
16636
16637 procedure Read_GL_ARB_separate_shader_objects;
16638 begin
16639   glUseProgramStages := dglGetProcAddress('glUseProgramStages');
16640   glActiveShaderProgram := dglGetProcAddress('glActiveShaderProgram');
16641   glCreateShaderProgramv := dglGetProcAddress('glCreateShaderProgramv');
16642   glBindProgramPipeline := dglGetProcAddress('glBindProgramPipeline');
16643   glDeleteProgramPipelines := dglGetProcAddress('glDeleteProgramPipelines');
16644   glGenProgramPipelines := dglGetProcAddress('glGenProgramPipelines');
16645   glIsProgramPipeline := dglGetProcAddress('glIsProgramPipeline');
16646   glGetProgramPipelineiv := dglGetProcAddress('glGetProgramPipelineiv');
16647   glProgramUniform1i := dglGetProcAddress('glProgramUniform1i');
16648   glProgramUniform1iv := dglGetProcAddress('glProgramUniform1iv');
16649   glProgramUniform1f := dglGetProcAddress('glProgramUniform1f');
16650   glProgramUniform1fv := dglGetProcAddress('glProgramUniform1fv');
16651   glProgramUniform1d := dglGetProcAddress('glProgramUniform1d');
16652   glProgramUniform1dv := dglGetProcAddress('glProgramUniform1dv');
16653   glProgramUniform1ui := dglGetProcAddress('glProgramUniform1ui');
16654   glProgramUniform1uiv := dglGetProcAddress('glProgramUniform1uiv');
16655   glProgramUniform2i := dglGetProcAddress('glProgramUniform2i');
16656   glProgramUniform2iv := dglGetProcAddress('glProgramUniform2iv');
16657   glProgramUniform2f := dglGetProcAddress('glProgramUniform2f');
16658   glProgramUniform2fv := dglGetProcAddress('glProgramUniform2fv');
16659   glProgramUniform2d := dglGetProcAddress('glProgramUniform2d');
16660   glProgramUniform2dv := dglGetProcAddress('glProgramUniform2dv');
16661   glProgramUniform2ui := dglGetProcAddress('glProgramUniform2ui');
16662   glProgramUniform2uiv := dglGetProcAddress('glProgramUniform2uiv');
16663   glProgramUniform3i := dglGetProcAddress('glProgramUniform3i');
16664   glProgramUniform3iv := dglGetProcAddress('glProgramUniform3iv');
16665   glProgramUniform3f := dglGetProcAddress('glProgramUniform3f');
16666   glProgramUniform3fv := dglGetProcAddress('glProgramUniform3fv');
16667   glProgramUniform3d := dglGetProcAddress('glProgramUniform3d');
16668   glProgramUniform3dv := dglGetProcAddress('glProgramUniform3dv');
16669   glProgramUniform3ui := dglGetProcAddress('glProgramUniform3ui');
16670   glProgramUniform3uiv := dglGetProcAddress('glProgramUniform3uiv');
16671   glProgramUniform4i := dglGetProcAddress('glProgramUniform4i');
16672   glProgramUniform4iv := dglGetProcAddress('glProgramUniform4iv');
16673   glProgramUniform4f := dglGetProcAddress('glProgramUniform4f');
16674   glProgramUniform4fv := dglGetProcAddress('glProgramUniform4fv');
16675   glProgramUniform4d := dglGetProcAddress('glProgramUniform4d');
16676   glProgramUniform4dv := dglGetProcAddress('glProgramUniform4dv');
16677   glProgramUniform4ui := dglGetProcAddress('glProgramUniform4ui');
16678   glProgramUniform4uiv := dglGetProcAddress('glProgramUniform4uiv');
16679   glProgramUniformMatrix2fv := dglGetProcAddress('glProgramUniformMatrix2fv');
16680   glProgramUniformMatrix3fv := dglGetProcAddress('glProgramUniformMatrix3fv');
16681   glProgramUniformMatrix4fv := dglGetProcAddress('glProgramUniformMatrix4fv');
16682   glProgramUniformMatrix2dv := dglGetProcAddress('glProgramUniformMatrix2dv');
16683   glProgramUniformMatrix3dv := dglGetProcAddress('glProgramUniformMatrix3dv');
16684   glProgramUniformMatrix4dv := dglGetProcAddress('glProgramUniformMatrix4dv');
16685   glProgramUniformMatrix2x3fv := dglGetProcAddress('glProgramUniformMatrix2x3fv');
16686   glProgramUniformMatrix3x2fv := dglGetProcAddress('glProgramUniformMatrix3x2fv');
16687   glProgramUniformMatrix2x4fv := dglGetProcAddress('glProgramUniformMatrix2x4fv');
16688   glProgramUniformMatrix4x2fv := dglGetProcAddress('glProgramUniformMatrix4x2fv');
16689   glProgramUniformMatrix3x4fv := dglGetProcAddress('glProgramUniformMatrix3x4fv');
16690   glProgramUniformMatrix4x3fv := dglGetProcAddress('glProgramUniformMatrix4x3fv');
16691   glProgramUniformMatrix2x3dv := dglGetProcAddress('glProgramUniformMatrix2x3dv');
16692   glProgramUniformMatrix3x2dv := dglGetProcAddress('glProgramUniformMatrix3x2dv');
16693   glProgramUniformMatrix2x4dv := dglGetProcAddress('glProgramUniformMatrix2x4dv');
16694   glProgramUniformMatrix4x2dv := dglGetProcAddress('glProgramUniformMatrix4x2dv');
16695   glProgramUniformMatrix3x4dv := dglGetProcAddress('glProgramUniformMatrix3x4dv');
16696   glProgramUniformMatrix4x3dv := dglGetProcAddress('glProgramUniformMatrix4x3dv');
16697   glValidateProgramPipeline := dglGetProcAddress('glValidateProgramPipeline');
16698   glGetProgramPipelineInfoLog := dglGetProcAddress('glGetProgramPipelineInfoLog');
16699 end;
16700
16701 procedure Read_GL_ARB_vertex_attrib_64bit;
16702 begin
16703   glVertexAttribL1d := dglGetProcAddress('glVertexAttribL1d');
16704   glVertexAttribL2d := dglGetProcAddress('glVertexAttribL2d');
16705   glVertexAttribL3d := dglGetProcAddress('glVertexAttribL3d');
16706   glVertexAttribL4d := dglGetProcAddress('glVertexAttribL4d');
16707   glVertexAttribL1dv := dglGetProcAddress('glVertexAttribL1dv');
16708   glVertexAttribL2dv := dglGetProcAddress('glVertexAttribL2dv');
16709   glVertexAttribL3dv := dglGetProcAddress('glVertexAttribL3dv');
16710   glVertexAttribL4dv := dglGetProcAddress('glVertexAttribL4dv');
16711   glVertexAttribLPointer := dglGetProcAddress('glVertexAttribLPointer');
16712   glGetVertexAttribLdv := dglGetProcAddress('glGetVertexAttribLdv');
16713 end;
16714
16715 procedure Read_GL_ARB_viewport_array;
16716 begin
16717   glViewportArrayv := dglGetProcAddress('glViewportArrayv');
16718   glViewportIndexedf := dglGetProcAddress('glViewportIndexedf');
16719   glViewportIndexedfv := dglGetProcAddress('glViewportIndexedfv');
16720   glScissorArrayv := dglGetProcAddress('glScissorArrayv');
16721   glScissorIndexed := dglGetProcAddress('glScissorIndexed');
16722   glScissorIndexedv := dglGetProcAddress('glScissorIndexedv');
16723   glDepthRangeArrayv := dglGetProcAddress('glDepthRangeArrayv');
16724   glDepthRangeIndexed := dglGetProcAddress('glDepthRangeIndexed');
16725   glGetFloati_v := dglGetProcAddress('glGetFloati_v');
16726   glGetDoublei_v := dglGetProcAddress('glGetDoublei_v');
16727 end;
16728
16729 // GL 4.2
16730
16731 procedure Read_GL_ARB_base_instance;
16732 begin
16733 glDrawArraysInstancedBaseInstance := dglGetProcAddress('glDrawArraysInstancedBaseInstance');
16734 glDrawElementsInstancedBaseInstance := dglGetProcAddress('glDrawElementsInstancedBaseInstance');
16735 glDrawElementsInstancedBaseVertexBaseInstance := dglGetProcAddress('glDrawElementsInstancedBaseVertexBaseInstance');
16736 end;
16737
16738 procedure Read_GL_ARB_transform_feedback_instanced;
16739 begin
16740 glDrawTransformFeedbackInstanced := dglGetProcAddress('glDrawTransformFeedbackInstanced');
16741 glDrawTransformFeedbackStreamInstanced := dglGetProcAddress('glDrawTransformFeedbackStreamInstanced');
16742 end;
16743
16744 procedure Read_GL_ARB_internalformat_query;
16745 begin
16746 glGetInternalformativ := dglGetProcAddress('glGetInternalformativ');
16747 end;
16748
16749 procedure Read_GL_ARB_shader_atomic_counters;
16750 begin
16751 glGetActiveAtomicCounterBufferiv := dglGetProcAddress('glGetActiveAtomicCounterBufferiv');
16752 end;
16753
16754 procedure Read_GL_ARB_shader_image_load_store;
16755 begin
16756 glBindImageTexture := dglGetProcAddress('glBindImageTexture');
16757 glMemoryBarrier := dglGetProcAddress('glMemoryBarrier');
16758 end;
16759
16760 procedure Read_GL_ARB_texture_storage;
16761 begin
16762 glTexStorage1D := dglGetProcAddress('glTexStorage1D');
16763 glTexStorage2D := dglGetProcAddress('glTexStorage2D');
16764 glTexStorage3D := dglGetProcAddress('glTexStorage3D');
16765 glTextureStorage1DEXT := dglGetProcAddress('glTextureStorage1DEXT');
16766 glTextureStorage2DEXT := dglGetProcAddress('glTextureStorage2DEXT');
16767 glTextureStorage3DEXT := dglGetProcAddress('glTextureStorage3DEXT');
16768 end;
16769
16770
16771 // GL 4.3
16772 procedure Read_GL_KHR_debug;
16773 begin
16774   glDebugMessageControl := dglGetProcAddress('glDebugMessageControl');
16775   glDebugMessageInsert := dglGetProcAddress('glDebugMessageInsert');
16776   glDebugMessageCallback := dglGetProcAddress('glDebugMessageCallback');
16777   glGetDebugMessageLog := dglGetProcAddress('glGetDebugMessageLog');
16778   glPushDebugGroup := dglGetProcAddress('glPushDebugGroup');
16779   glPopDebugGroup := dglGetProcAddress('glPopDebugGroup');
16780   glObjectLabel := dglGetProcAddress('glObjectLabel');
16781   glGetObjectLabel := dglGetProcAddress('glGetObjectLabel');
16782   glObjectPtrLabel := dglGetProcAddress('glObjectPtrLabel');
16783   glGetObjectPtrLabel := dglGetProcAddress('glGetObjectPtrLabel');
16784 end;
16785
16786 procedure Read_GL_ARB_clear_buffer_object;
16787 begin
16788   glClearBufferData := dglGetProcAddress('glClearBufferData');
16789   glClearBufferSubData := dglGetProcAddress('glClearBufferSubData');
16790   glClearNamedBufferDataEXT := dglGetProcAddress('glClearNamedBufferDataEXT');
16791   glClearNamedBufferSubDataEXT := dglGetProcAddress('glClearNamedBufferSubDataEXT');
16792 end;
16793
16794 procedure Read_GL_ARB_compute_shader;
16795 begin
16796   glDispatchCompute := dglGetProcAddress('glDispatchCompute');
16797   glDispatchComputeIndirect := dglGetProcAddress('glDispatchComputeIndirect');
16798 end;
16799
16800 procedure Read_GL_ARB_copy_image;
16801 begin
16802   glCopyImageSubData := dglGetProcAddress('glCopyImageSubData');
16803 end;
16804
16805 procedure Read_GL_ARB_framebuffer_no_attachments;
16806 begin
16807   glFramebufferParameteri := dglGetProcAddress('glFramebufferParameteri');
16808   glGetFramebufferParameteriv := dglGetProcAddress('glGetFramebufferParameteriv');
16809   glNamedFramebufferParameteriEXT := dglGetProcAddress('glNamedFramebufferParameteriEXT');
16810   glGetNamedFramebufferParameterivEXT := dglGetProcAddress('glGetNamedFramebufferParameterivEXT');
16811 end;
16812
16813 procedure Read_GL_ARB_internalformat_query2;
16814 begin
16815   glGetInternalformati64v := dglGetProcAddress('glGetInternalformati64v');;
16816 end;
16817
16818 procedure Read_GL_ARB_invalidate_subdata;
16819 begin
16820   glInvalidateTexSubImage := dglGetProcAddress('glInvalidateTexSubImage');
16821   glInvalidateTexImage := dglGetProcAddress('glInvalidateTexImage');
16822   glInvalidateBufferSubData := dglGetProcAddress('glInvalidateBufferSubData');
16823   glInvalidateBufferData := dglGetProcAddress('glInvalidateBufferData');
16824   glInvalidateFramebuffer := dglGetProcAddress('glInvalidateFramebuffer');
16825   glInvalidateSubFramebuffer := dglGetProcAddress('glInvalidateSubFramebuffer');
16826 end;
16827
16828 procedure Read_GL_ARB_multi_draw_indirect;
16829 begin
16830   glMultiDrawArraysIndirect := dglGetProcAddress('glMultiDrawArraysIndirect');
16831   glMultiDrawElementsIndirect := dglGetProcAddress('glMultiDrawElementsIndirect');
16832 end;
16833
16834 procedure Read_GL_ARB_program_interface_query;
16835 begin
16836   glGetProgramInterfaceiv := dglGetProcAddress('glGetProgramInterfaceiv');
16837   glGetProgramResourceIndex := dglGetProcAddress('glGetProgramResourceIndex');
16838   glGetProgramResourceName := dglGetProcAddress('glGetProgramResourceName');
16839   glGetProgramResourceiv := dglGetProcAddress('glGetProgramResourceiv');
16840   glGetProgramResourceLocation := dglGetProcAddress('glGetProgramResourceLocation');
16841   glGetProgramResourceLocationIndex := dglGetProcAddress('glGetProgramResourceLocationIndex');
16842 end;
16843
16844 procedure Read_GL_ARB_shader_storage_buffer_object;
16845 begin
16846   glShaderStorageBlockBinding := dglGetProcAddress('glShaderStorageBlockBinding');
16847 end;
16848
16849 procedure Read_GL_ARB_texture_buffer_range;
16850 begin
16851   glTexBufferRange := dglGetProcAddress('glTexBufferRange');
16852   glTextureBufferRangeEXT := dglGetProcAddress('glTextureBufferRangeEXT');
16853 end;
16854
16855 procedure Read_GL_ARB_texture_storage_multisample;
16856 begin
16857   glTexStorage2DMultisample := dglGetProcAddress('glTexStorage2DMultisample');
16858   glTexStorage3DMultisample := dglGetProcAddress('glTexStorage3DMultisample');
16859   glTextureStorage2DMultisampleEXT := dglGetProcAddress('glTextureStorage2DMultisampleEXT');
16860   glTextureStorage3DMultisampleEXT := dglGetProcAddress('glTextureStorage3DMultisampleEXT');
16861 end;
16862
16863 procedure Read_GL_ARB_texture_view;
16864 begin
16865   glTextureView := dglGetProcAddress('glTextureView');
16866 end;
16867
16868 procedure Read_GL_ARB_vertex_attrib_binding;
16869 begin
16870   glBindVertexBuffer := dglGetProcAddress('glBindVertexBuffer');
16871   glVertexAttribFormat := dglGetProcAddress('glVertexAttribFormat');
16872   glVertexAttribIFormat := dglGetProcAddress('glVertexAttribIFormat');
16873   glVertexAttribLFormat := dglGetProcAddress('glVertexAttribLFormat');
16874   glVertexAttribBinding := dglGetProcAddress('glVertexAttribBinding');
16875   glVertexBindingDivisor := dglGetProcAddress('glVertexBindingDivisor');
16876   glVertexArrayBindVertexBufferEXT := dglGetProcAddress('glVertexArrayBindVertexBufferEXT');
16877   glVertexArrayVertexAttribFormatEXT := dglGetProcAddress('glVertexArrayVertexAttribFormatEXT');
16878   glVertexArrayVertexAttribIFormatEXT := dglGetProcAddress('glVertexArrayVertexAttribIFormatEXT');
16879   glVertexArrayVertexAttribLFormatEXT := dglGetProcAddress('glVertexArrayVertexAttribLFormatEXT');
16880   glVertexArrayVertexAttribBindingEXT := dglGetProcAddress('glVertexArrayVertexAttribBindingEXT');
16881   glVertexArrayVertexBindingDivisorEXT := dglGetProcAddress('glVertexArrayVertexBindingDivisorEXT');
16882 end;
16883
16884 procedure Read_GL_4_4;
16885 begin
16886   glBufferStorage     := dglGetProcAddress('glBufferStorage');
16887   glClearTexImage     := dglGetProcAddress('glClearTexImage');
16888   glClearTexSubImage  := dglGetProcAddress('glClearTexSubImage');
16889   glBindBuffersBase   := dglGetProcAddress('glBindBuffersBase');
16890   glBindBuffersRange  := dglGetProcAddress('glBindBuffersRange');
16891   glBindTextures      := dglGetProcAddress('glBindTextures');
16892   glBindSamplers      := dglGetProcAddress('glBindSamplers');
16893   glBindImageTextures := dglGetProcAddress('glBindImageTextures');
16894   glBindVertexBuffers := dglGetProcAddress('glBindVertexBuffers');
16895 end;
16896
16897 procedure Read_GL_4_5;
16898 begin
16899   glClipControl:= dglGetProcAddress('glClipControl');
16900   glCreateTransformFeedbacks:= dglGetProcAddress('glCreateTransformFeedbacks');
16901   glTransformFeedbackBufferBase:= dglGetProcAddress('glTransformFeedbackBufferBase');
16902   glTransformFeedbackBufferRange:= dglGetProcAddress('glTransformFeedbackBufferRange');
16903   glGetTransformFeedbackiv:= dglGetProcAddress('glGetTransformFeedbackiv');
16904   glGetTransformFeedbacki_v:= dglGetProcAddress('glGetTransformFeedbacki_v');
16905   glGetTransformFeedbacki64_v:= dglGetProcAddress('glGetTransformFeedbacki64_v');
16906   glCreateBuffers:= dglGetProcAddress('glCreateBuffers');
16907   glNamedBufferStorage:= dglGetProcAddress('glNamedBufferStorage');
16908   glNamedBufferData:= dglGetProcAddress('glNamedBufferData');
16909   glNamedBufferSubData:= dglGetProcAddress('glNamedBufferSubData');
16910   glCopyNamedBufferSubData:= dglGetProcAddress('glCopyNamedBufferSubData');
16911   glClearNamedBufferData:= dglGetProcAddress('glClearNamedBufferData');
16912   glClearNamedBufferSubData:= dglGetProcAddress('glClearNamedBufferSubData');
16913   glMapNamedBuffer:= dglGetProcAddress('glMapNamedBuffer');
16914   glMapNamedBufferRange:= dglGetProcAddress('glMapNamedBufferRange');
16915   glUnmapNamedBuffer:= dglGetProcAddress('glUnmapNamedBuffer');
16916   glFlushMappedNamedBufferRange:= dglGetProcAddress('glFlushMappedNamedBufferRange');
16917   glGetNamedBufferParameteriv:= dglGetProcAddress('glGetNamedBufferParameteriv');
16918   glGetNamedBufferParameteri64v:= dglGetProcAddress('glGetNamedBufferParameteri64v');
16919   glGetNamedBufferPointerv:= dglGetProcAddress('glGetNamedBufferPointerv');
16920   glGetNamedBufferSubData:= dglGetProcAddress('glGetNamedBufferSubData');
16921   glCreateFramebuffers:= dglGetProcAddress('glCreateFramebuffers');
16922   glNamedFramebufferRenderbuffer:= dglGetProcAddress('glNamedFramebufferRenderbuffer');
16923   glNamedFramebufferParameteri:= dglGetProcAddress('glNamedFramebufferParameteri');
16924   glNamedFramebufferTexture:= dglGetProcAddress('glNamedFramebufferTexture');
16925   glNamedFramebufferTextureLayer:= dglGetProcAddress('glNamedFramebufferTextureLayer');
16926   glNamedFramebufferDrawBuffer:= dglGetProcAddress('glNamedFramebufferDrawBuffer');
16927   glNamedFramebufferDrawBuffers:= dglGetProcAddress('glNamedFramebufferDrawBuffers');
16928   glNamedFramebufferReadBuffer:= dglGetProcAddress('glNamedFramebufferReadBuffer');
16929   glInvalidateNamedFramebufferData:= dglGetProcAddress('glInvalidateNamedFramebufferData');
16930   glInvalidateNamedFramebufferSubData:= dglGetProcAddress('glInvalidateNamedFramebufferSubData');
16931   glClearNamedFramebufferiv:= dglGetProcAddress('glClearNamedFramebufferiv');
16932   glClearNamedFramebufferuiv:= dglGetProcAddress('glClearNamedFramebufferuiv');
16933   glClearNamedFramebufferfv:= dglGetProcAddress('glClearNamedFramebufferfv');
16934   glClearNamedFramebufferfi:= dglGetProcAddress('glClearNamedFramebufferfi');
16935   glBlitNamedFramebuffer:= dglGetProcAddress('glBlitNamedFramebuffer');
16936   glCheckNamedFramebufferStatus:= dglGetProcAddress('glCheckNamedFramebufferStatus');
16937   glGetNamedFramebufferParameteriv:= dglGetProcAddress('glGetNamedFramebufferParameteriv');
16938   glGetNamedFramebufferAttachmentParameteriv:= dglGetProcAddress('glGetNamedFramebufferAttachmentParameteriv');
16939   glCreateRenderbuffers:= dglGetProcAddress('glCreateRenderbuffers');
16940   glNamedRenderbufferStorage:= dglGetProcAddress('glNamedRenderbufferStorage');
16941   glNamedRenderbufferStorageMultisample:= dglGetProcAddress('glNamedRenderbufferStorageMultisample');
16942   glGetNamedRenderbufferParameteriv:= dglGetProcAddress('glGetNamedRenderbufferParameteriv');
16943   glCreateTextures:= dglGetProcAddress('glCreateTextures');
16944   glTextureBuffer:= dglGetProcAddress('glTextureBuffer');
16945   glTextureBufferRange:= dglGetProcAddress('glTextureBufferRange');
16946   glTextureStorage1D:= dglGetProcAddress('glTextureStorage1D');
16947   glTextureStorage2D:= dglGetProcAddress('glTextureStorage2D');
16948   glTextureStorage3D:= dglGetProcAddress('glTextureStorage3D');
16949   glTextureStorage2DMultisample:= dglGetProcAddress('glTextureStorage2DMultisample');
16950   glTextureStorage3DMultisample:= dglGetProcAddress('glTextureStorage3DMultisample');
16951   glTextureSubImage1D:= dglGetProcAddress('glTextureSubImage1D');
16952   glTextureSubImage2D:= dglGetProcAddress('glTextureSubImage2D');
16953   glTextureSubImage3D:= dglGetProcAddress('glTextureSubImage3D');
16954   glCompressedTextureSubImage1D:= dglGetProcAddress('glCompressedTextureSubImage1D');
16955   glCompressedTextureSubImage2D:= dglGetProcAddress('glCompressedTextureSubImage2D');
16956   glCompressedTextureSubImage3D:= dglGetProcAddress('glCompressedTextureSubImage3D');
16957   glCopyTextureSubImage1D:= dglGetProcAddress('glCopyTextureSubImage1D');
16958   glCopyTextureSubImage2D:= dglGetProcAddress('glCopyTextureSubImage2D');
16959   glCopyTextureSubImage3D:= dglGetProcAddress('glCopyTextureSubImage3D');
16960   glTextureParameterf:= dglGetProcAddress('glTextureParameterf');
16961   glTextureParameterfv:= dglGetProcAddress('glTextureParameterfv');
16962   glTextureParameteri:= dglGetProcAddress('glTextureParameteri');
16963   glTextureParameterIiv:= dglGetProcAddress('glTextureParameterIiv');
16964   glTextureParameterIuiv:= dglGetProcAddress('glTextureParameterIuiv');
16965   glTextureParameteriv:= dglGetProcAddress('glTextureParameteriv');
16966   glGenerateTextureMipmap:= dglGetProcAddress('glGenerateTextureMipmap');
16967   glBindTextureUnit:= dglGetProcAddress('glBindTextureUnit');
16968   glGetTextureImage:= dglGetProcAddress('glGetTextureImage');
16969   glGetCompressedTextureImage:= dglGetProcAddress('glGetCompressedTextureImage');
16970   glGetTextureLevelParameterfv:= dglGetProcAddress('glGetTextureLevelParameterfv');
16971   glGetTextureLevelParameteriv:= dglGetProcAddress('glGetTextureLevelParameteriv');
16972   glGetTextureParameterfv:= dglGetProcAddress('glGetTextureParameterfv');
16973   glGetTextureParameterIiv:= dglGetProcAddress('glGetTextureParameterIiv');
16974   glGetTextureParameterIuiv:= dglGetProcAddress('glGetTextureParameterIuiv');
16975   glGetTextureParameteriv:= dglGetProcAddress('glGetTextureParameteriv');
16976   glCreateVertexArrays:= dglGetProcAddress('glCreateVertexArrays');
16977   glDisableVertexArrayAttrib:= dglGetProcAddress('glDisableVertexArrayAttrib');
16978   glEnableVertexArrayAttrib:= dglGetProcAddress('glEnableVertexArrayAttrib');
16979   glVertexArrayElementBuffer:= dglGetProcAddress('glVertexArrayElementBuffer');
16980   glVertexArrayVertexBuffer:= dglGetProcAddress('glVertexArrayVertexBuffer');
16981   glVertexArrayVertexBuffers:= dglGetProcAddress('glVertexArrayVertexBuffers');
16982   glVertexArrayAttribBinding:= dglGetProcAddress('glVertexArrayAttribBinding');
16983   glVertexArrayAttribFormat:= dglGetProcAddress('glVertexArrayAttribFormat');
16984   glVertexArrayAttribIFormat:= dglGetProcAddress('glVertexArrayAttribIFormat');
16985   glVertexArrayAttribLFormat:= dglGetProcAddress('glVertexArrayAttribLFormat');
16986   glVertexArrayBindingDivisor:= dglGetProcAddress('glVertexArrayBindingDivisor');
16987   glGetVertexArrayiv:= dglGetProcAddress('glGetVertexArrayiv');
16988   glGetVertexArrayIndexediv:= dglGetProcAddress('glGetVertexArrayIndexediv');
16989   glGetVertexArrayIndexed64iv:= dglGetProcAddress('glGetVertexArrayIndexed64iv');
16990   glCreateSamplers:= dglGetProcAddress('glCreateSamplers');
16991   glCreateProgramPipelines:= dglGetProcAddress('glCreateProgramPipelines');
16992   glCreateQueries:= dglGetProcAddress('glCreateQueries');
16993   glMemoryBarrierByRegion:= dglGetProcAddress('glMemoryBarrierByRegion');
16994   glGetTextureSubImage:= dglGetProcAddress('glGetTextureSubImage');
16995   glGetCompressedTextureSubImage:= dglGetProcAddress('glGetCompressedTextureSubImage');
16996   glGetGraphicsResetStatus:= dglGetProcAddress('glGetGraphicsResetStatus');
16997   glGetnCompressedTexImage:= dglGetProcAddress('glGetnCompressedTexImage');
16998   glGetnTexImage:= dglGetProcAddress('glGetnTexImage');
16999   glGetnUniformdv:= dglGetProcAddress('glGetnUniformdv');
17000   glGetnUniformfv:= dglGetProcAddress('glGetnUniformfv');
17001   glGetnUniformiv:= dglGetProcAddress('glGetnUniformiv');
17002   glGetnUniformuiv:= dglGetProcAddress('glGetnUniformuiv');
17003   glReadnPixels:= dglGetProcAddress('glReadnPixels');
17004   glGetnMapdv:= dglGetProcAddress('glGetnMapdv');
17005   glGetnMapfv:= dglGetProcAddress('glGetnMapfv');
17006   glGetnMapiv:= dglGetProcAddress('glGetnMapiv');
17007   glGetnPixelMapfv:= dglGetProcAddress('glGetnPixelMapfv');
17008   glGetnPixelMapuiv:= dglGetProcAddress('glGetnPixelMapuiv');
17009   glGetnPixelMapusv:= dglGetProcAddress('glGetnPixelMapusv');
17010   glGetnPolygonStipple:= dglGetProcAddress('glGetnPolygonStipple');
17011   glGetnColorTable:= dglGetProcAddress('glGetnColorTable');
17012   glGetnConvolutionFilter:= dglGetProcAddress('glGetnConvolutionFilter');
17013   glGetnSeparableFilter:= dglGetProcAddress('glGetnSeparableFilter');
17014   glGetnHistogram:= dglGetProcAddress('glGetnHistogram');
17015   glGetnMinmax:= dglGetProcAddress('glGetnMinmax');
17016   glTextureBarrier:= dglGetProcAddress('glTextureBarrier');
17017 end;
17018
17019 procedure Read_GL_NV_path_rendering;
17020 begin
17021   glGenPathsNV := dglGetProcAddress('glGenPathsNV');
17022   glDeletePathsNV := dglGetProcAddress('glDeletePathsNV');
17023   glIsPathNV := dglGetProcAddress('glIsPathNV');
17024   glPathCommandsNV := dglGetProcAddress('glPathCommandsNV');
17025   glPathCoordsNV := dglGetProcAddress('glPathCoordsNV');
17026   glPathSubCommandsNV := dglGetProcAddress('glPathSubCommandsNV');
17027   glPathSubCoordsNV := dglGetProcAddress('glPathSubCoordsNV');
17028   glPathStringNV := dglGetProcAddress('glPathStringNV');
17029   glPathGlyphsNV := dglGetProcAddress('glPathGlyphsNV');
17030   glPathGlyphRangeNV := dglGetProcAddress('glPathGlyphRangeNV');
17031   glWeightPathsNV := dglGetProcAddress('glWeightPathsNV');
17032   glCopyPathNV := dglGetProcAddress('glCopyPathNV');
17033   glInterpolatePathsNV := dglGetProcAddress('glInterpolatePathsNV');
17034   glTransformPathNV := dglGetProcAddress('glTransformPathNV');
17035   glPathParameterivNV := dglGetProcAddress('glPathParameterivNV');
17036   glPathParameteriNV := dglGetProcAddress('glPathParameteriNV');
17037   glPathParameterfvNV := dglGetProcAddress('glPathParameterfvNV');
17038   glPathParameterfNV := dglGetProcAddress('glPathParameterfNV');
17039   glPathDashArrayNV := dglGetProcAddress('glPathDashArrayNV');
17040   glPathStencilFuncNV := dglGetProcAddress('glPathStencilFuncNV');
17041   glPathStencilDepthOffsetNV := dglGetProcAddress('glPathStencilDepthOffsetNV');
17042   glStencilFillPathNV := dglGetProcAddress('glStencilFillPathNV');
17043   glStencilStrokePathNV := dglGetProcAddress('glStencilStrokePathNV');
17044   glStencilFillPathInstancedNV := dglGetProcAddress('glStencilFillPathInstancedNV');
17045   glStencilStrokePathInstancedNV := dglGetProcAddress('glStencilStrokePathInstancedNV');
17046   glPathCoverDepthFuncNV := dglGetProcAddress('glPathCoverDepthFuncNV');
17047   glPathColorGenNV := dglGetProcAddress('glPathColorGenNV');
17048   glPathTexGenNV := dglGetProcAddress('glPathTexGenNV');
17049   glPathFogGenNV := dglGetProcAddress('glPathFogGenNV');
17050   glCoverFillPathNV := dglGetProcAddress('glCoverFillPathNV');
17051   glCoverStrokePathNV := dglGetProcAddress('glCoverStrokePathNV');
17052   glCoverFillPathInstancedNV := dglGetProcAddress('glCoverFillPathInstancedNV');
17053   glCoverStrokePathInstancedNV := dglGetProcAddress('glCoverStrokePathInstancedNV');
17054   glGetPathParameterivNV := dglGetProcAddress('glGetPathParameterivNV');
17055   glGetPathParameterfvNV := dglGetProcAddress('glGetPathParameterfvNV');
17056   glGetPathCommandsNV := dglGetProcAddress('glGetPathCommandsNV');
17057   glGetPathCoordsNV := dglGetProcAddress('glGetPathCoordsNV');
17058   glGetPathDashArrayNV := dglGetProcAddress('glGetPathDashArrayNV');
17059   glGetPathMetricsNV := dglGetProcAddress('glGetPathMetricsNV');
17060   glGetPathMetricRangeNV := dglGetProcAddress('glGetPathMetricRangeNV');
17061   glGetPathSpacingNV := dglGetProcAddress('glGetPathSpacingNV');
17062   glGetPathColorGenivNV := dglGetProcAddress('glGetPathColorGenivNV');
17063   glGetPathColorGenfvNV := dglGetProcAddress('glGetPathColorGenfvNV');
17064   glGetPathTexGenivNV := dglGetProcAddress('glGetPathTexGenivNV');
17065   glGetPathTexGenfvNV := dglGetProcAddress('glGetPathTexGenfvNV');
17066   glIsPointInFillPathNV := dglGetProcAddress('glIsPointInFillPathNV');
17067   glIsPointInStrokePathNV := dglGetProcAddress('glIsPointInStrokePathNV');
17068   glGetPathLengthNV := dglGetProcAddress('glGetPathLengthNV');
17069   glPointAlongPathNV := dglGetProcAddress('glPointAlongPathNV');
17070 end;
17071
17072 procedure Read_GL_AMD_stencil_operation_extended;
17073 begin
17074         glStencilOpValueAMD := dglGetProcAddress('glStencilOpValueAMD');
17075 end;
17076
17077 procedure Read_GL_NV_bindless_texture;
17078 begin
17079   glGetTextureHandleNV := dglGetProcAddress('glGetTextureHandleNV');
17080   glGetTextureSamplerHandleNV := dglGetProcAddress('glGetTextureSamplerHandleNV');
17081   glMakeTextureHandleResidentNV := dglGetProcAddress('glMakeTextureHandleResidentNV');
17082   glMakeTextureHandleNonResidentNV := dglGetProcAddress('glMakeTextureHandleNonResidentNV');
17083   glGetImageHandleNV := dglGetProcAddress('glGetImageHandleNV');
17084   glMakeImageHandleResidentNV := dglGetProcAddress('glMakeImageHandleResidentNV');
17085   glMakeImageHandleNonResidentNV := dglGetProcAddress('glMakeImageHandleNonResidentNV');
17086   glUniformHandleui64NV := dglGetProcAddress('glUniformHandleui64NV');
17087   glUniformHandleui64vNV := dglGetProcAddress('glUniformHandleui64vNV');
17088   glProgramUniformHandleui64NV := dglGetProcAddress('glProgramUniformHandleui64NV');
17089   glProgramUniformHandleui64vNV := dglGetProcAddress('glProgramUniformHandleui64vNV');
17090   glIsTextureHandleResidentNV := dglGetProcAddress('glIsTextureHandleResidentNV');
17091   glIsImageHandleResidentNV := dglGetProcAddress('glIsImageHandleResidentNV');
17092 end;
17093
17094 procedure Read_GL_ARB_bindless_texture;
17095 begin
17096   glGetTextureHandleARB := dglGetProcAddress('TglGetTextureHandleARB');
17097   glGetTextureSamplerHandleARB := dglGetProcAddress('TglGetTextureSamplerHandleARB');
17098   glMakeTextureHandleResidentARB := dglGetProcAddress('TglMakeTextureHandleResidentARB');
17099   glMakeTextureHandleNonResidentARB := dglGetProcAddress('TglMakeTextureHandleNonResidentARB');
17100   glGetImageHandleARB := dglGetProcAddress('TglGetImageHandleARB');
17101   glMakeImageHandleResidentARB := dglGetProcAddress('TglMakeImageHandleResidentARB');
17102   glMakeImageHandleNonResidentARB := dglGetProcAddress('TglMakeImageHandleNonResidentARB');
17103   glUniformHandleui64ARB := dglGetProcAddress('TglUniformHandleui64ARB');
17104   glUniformHandleui64vARB := dglGetProcAddress('TglUniformHandleui64vARB');
17105   glProgramUniformHandleui64ARB := dglGetProcAddress('TglProgramUniformHandleui64ARB');
17106   glProgramUniformHandleui64vARB := dglGetProcAddress('TglProgramUniformHandleui64vARB');
17107   glIsTextureHandleResidentARB := dglGetProcAddress('TglIsTextureHandleResidentARB');
17108   glIsImageHandleResidentARB := dglGetProcAddress('TglIsImageHandleResidentARB');
17109   glVertexAttribL1ui64ARB := dglGetProcAddress('TglVertexAttribL1ui64ARB');
17110   glVertexAttribL1ui64vARB := dglGetProcAddress('TglVertexAttribL1ui64vARB');
17111   glGetVertexAttribLui64vARB := dglGetProcAddress('TglGetVertexAttribLui64vARB');
17112 end;
17113
17114 procedure Read_GL_ARB_cl_event;
17115 begin
17116   glCreateSyncFromCLeventARB := dglGetProcAddress('glCreateSyncFromCLeventARB');
17117 end;
17118
17119 procedure Read_GL_ARB_compute_variable_group_size;
17120 begin
17121   glDispatchComputeGroupSizeARB := dglGetProcAddress('glDispatchComputeGroupSizeARB');
17122 end;
17123
17124 procedure Read_GL_ARB_debug_output;
17125 begin
17126   glDebugMessageControlARB := dglGetProcAddress('glDebugMessageControlARB');
17127   glDebugMessageInsertARB := dglGetProcAddress('glDebugMessageInsertARB');
17128   glDebugMessageCallbackARB := dglGetProcAddress('glDebugMessageCallbackARB');
17129   glGetDebugMessageLogARB := dglGetProcAddress('glGetDebugMessageLogARB');
17130 end;
17131
17132 procedure Read_GL_ARB_robustness;
17133 begin
17134   glGetGraphicsResetStatusARB := dglGetProcAddress('glGetGraphicsResetStatusARB');
17135   glGetnMapdvARB := dglGetProcAddress('glGetnMapdvARB');
17136   glGetnMapfvARB := dglGetProcAddress('glGetnMapfvARB');
17137   glGetnMapivARB := dglGetProcAddress('glGetnMapivARB');
17138   glGetnPixelMapfvARB := dglGetProcAddress('glGetnPixelMapfvARB');
17139   glGetnPixelMapuivARB := dglGetProcAddress('glGetnPixelMapuivARB');
17140   glGetnPixelMapusvARB := dglGetProcAddress('glGetnPixelMapusvARB');
17141   glGetnPolygonStippleARB := dglGetProcAddress('glGetnPolygonStippleARB');
17142   glGetnColorTableARB := dglGetProcAddress('glGetnColorTableARB');
17143   glGetnConvolutionFilterARB := dglGetProcAddress('glGetnConvolutionFilterARB');
17144   glGetnSeparableFilterARB := dglGetProcAddress('glGetnSeparableFilterARB');
17145   glGetnHistogramARB := dglGetProcAddress('glGetnHistogramARB');
17146   glGetnMinmaxARB := dglGetProcAddress('glGetnMinmaxARB');
17147   glGetnTexImageARB := dglGetProcAddress('glGetnTexImageARB');
17148   glReadnPixelsARB := dglGetProcAddress('glReadnPixelsARB');
17149   glGetnCompressedTexImageARB := dglGetProcAddress('glGetnCompressedTexImageARB');
17150   glGetnUniformfvARB := dglGetProcAddress('glGetnUniformfvARB');
17151   glGetnUniformivARB := dglGetProcAddress('glGetnUniformivARB');
17152   glGetnUniformuivARB := dglGetProcAddress('glGetnUniformuivARB');
17153   glGetnUniformdvARB := dglGetProcAddress('glGetnUniformdvARB');
17154 end;
17155
17156 procedure Read_GL_ATI_draw_buffers;
17157 begin
17158   glDrawBuffersATI := dglGetProcAddress('glDrawBuffersATI');
17159 end;
17160
17161 procedure Read_GL_ATI_element_array;
17162 begin
17163   glElementPointerATI := dglGetProcAddress('glElementPointerATI');
17164   glDrawElementArrayATI := dglGetProcAddress('glDrawElementArrayATI');
17165   glDrawRangeElementArrayATI := dglGetProcAddress('glDrawRangeElementArrayATI');
17166 end;
17167
17168 procedure Read_GL_ATI_envmap_bumpmap;
17169 begin
17170   glTexBumpParameterivATI := dglGetProcAddress('glTexBumpParameterivATI');
17171   glTexBumpParameterfvATI := dglGetProcAddress('glTexBumpParameterfvATI');
17172   glGetTexBumpParameterivATI := dglGetProcAddress('glGetTexBumpParameterivATI');
17173   glGetTexBumpParameterfvATI := dglGetProcAddress('glGetTexBumpParameterfvATI');
17174 end;
17175
17176 procedure Read_GL_ATI_fragment_shader;
17177 begin
17178   glGenFragmentShadersATI := dglGetProcAddress('glGenFragmentShadersATI');
17179   glBindFragmentShaderATI := dglGetProcAddress('glBindFragmentShaderATI');
17180   glDeleteFragmentShaderATI := dglGetProcAddress('glDeleteFragmentShaderATI');
17181   glBeginFragmentShaderATI := dglGetProcAddress('glBeginFragmentShaderATI');
17182   glEndFragmentShaderATI := dglGetProcAddress('glEndFragmentShaderATI');
17183   glPassTexCoordATI := dglGetProcAddress('glPassTexCoordATI');
17184   glSampleMapATI := dglGetProcAddress('glSampleMapATI');
17185   glColorFragmentOp1ATI := dglGetProcAddress('glColorFragmentOp1ATI');
17186   glColorFragmentOp2ATI := dglGetProcAddress('glColorFragmentOp2ATI');
17187   glColorFragmentOp3ATI := dglGetProcAddress('glColorFragmentOp3ATI');
17188   glAlphaFragmentOp1ATI := dglGetProcAddress('glAlphaFragmentOp1ATI');
17189   glAlphaFragmentOp2ATI := dglGetProcAddress('glAlphaFragmentOp2ATI');
17190   glAlphaFragmentOp3ATI := dglGetProcAddress('glAlphaFragmentOp3ATI');
17191   glSetFragmentShaderConstantATI := dglGetProcAddress('glSetFragmentShaderConstantATI');
17192 end;
17193
17194 procedure Read_GL_ATI_map_object_buffer;
17195 begin
17196   glMapObjectBufferATI := dglGetProcAddress('glMapObjectBufferATI');
17197   glUnmapObjectBufferATI := dglGetProcAddress('glUnmapObjectBufferATI');
17198 end;
17199
17200 procedure Read_GL_ATI_pn_triangles;
17201 begin
17202   glPNTrianglesiATI := dglGetProcAddress('glPNTrianglesiATI');
17203   glPNTrianglesfATI := dglGetProcAddress('glPNTrianglesfATI');
17204 end;
17205
17206 procedure Read_GL_ATI_separate_stencil;
17207 begin
17208   glStencilOpSeparateATI := dglGetProcAddress('glStencilOpSeparateATI');
17209   glStencilFuncSeparateATI := dglGetProcAddress('glStencilFuncSeparateATI');
17210 end;
17211
17212 procedure Read_GL_ATI_vertex_array_object;
17213 begin
17214   glNewObjectBufferATI := dglGetProcAddress('glNewObjectBufferATI');
17215   glIsObjectBufferATI := dglGetProcAddress('glIsObjectBufferATI');
17216   glUpdateObjectBufferATI := dglGetProcAddress('glUpdateObjectBufferATI');
17217   glGetObjectBufferfvATI := dglGetProcAddress('glGetObjectBufferfvATI');
17218   glGetObjectBufferivATI := dglGetProcAddress('glGetObjectBufferivATI');
17219   glFreeObjectBufferATI := dglGetProcAddress('glFreeObjectBufferATI');
17220   glArrayObjectATI := dglGetProcAddress('glArrayObjectATI');
17221   glGetArrayObjectfvATI := dglGetProcAddress('glGetArrayObjectfvATI');
17222   glGetArrayObjectivATI := dglGetProcAddress('glGetArrayObjectivATI');
17223   glVariantArrayObjectATI := dglGetProcAddress('glVariantArrayObjectATI');
17224   glGetVariantArrayObjectfvATI := dglGetProcAddress('glGetVariantArrayObjectfvATI');
17225   glGetVariantArrayObjectivATI := dglGetProcAddress('glGetVariantArrayObjectivATI');
17226
17227 end;
17228
17229 procedure Read_GL_ATI_vertex_attrib_array_object;
17230 begin
17231   glVertexAttribArrayObjectATI := dglGetProcAddress('glVertexAttribArrayObjectATI');
17232   glGetVertexAttribArrayObjectfvATI := dglGetProcAddress('glGetVertexAttribArrayObjectfvATI');
17233   glGetVertexAttribArrayObjectivATI := dglGetProcAddress('glGetVertexAttribArrayObjectivATI');
17234 end;
17235
17236 procedure Read_GL_ATI_vertex_streams;
17237 begin
17238   glVertexStream1sATI := dglGetProcAddress('glVertexStream1sATI');
17239   glVertexStream1svATI := dglGetProcAddress('glVertexStream1svATI');
17240   glVertexStream1iATI := dglGetProcAddress('glVertexStream1iATI');
17241   glVertexStream1ivATI := dglGetProcAddress('glVertexStream1ivATI');
17242   glVertexStream1fATI := dglGetProcAddress('glVertexStream1fATI');
17243   glVertexStream1fvATI := dglGetProcAddress('glVertexStream1fvATI');
17244   glVertexStream1dATI := dglGetProcAddress('glVertexStream1dATI');
17245   glVertexStream1dvATI := dglGetProcAddress('glVertexStream1dvATI');
17246   glVertexStream2sATI := dglGetProcAddress('glVertexStream2sATI');
17247   glVertexStream2svATI := dglGetProcAddress('glVertexStream2svATI');
17248   glVertexStream2iATI := dglGetProcAddress('glVertexStream2iATI');
17249   glVertexStream2ivATI := dglGetProcAddress('glVertexStream2ivATI');
17250   glVertexStream2fATI := dglGetProcAddress('glVertexStream2fATI');
17251   glVertexStream2fvATI := dglGetProcAddress('glVertexStream2fvATI');
17252   glVertexStream2dATI := dglGetProcAddress('glVertexStream2dATI');
17253   glVertexStream2dvATI := dglGetProcAddress('glVertexStream2dvATI');
17254   glVertexStream3sATI := dglGetProcAddress('glVertexStream3sATI');
17255   glVertexStream3svATI := dglGetProcAddress('glVertexStream3svATI');
17256   glVertexStream3iATI := dglGetProcAddress('glVertexStream3iATI');
17257   glVertexStream3ivATI := dglGetProcAddress('glVertexStream3ivATI');
17258   glVertexStream3fATI := dglGetProcAddress('glVertexStream3fATI');
17259   glVertexStream3fvATI := dglGetProcAddress('glVertexStream3fvATI');
17260   glVertexStream3dATI := dglGetProcAddress('glVertexStream3dATI');
17261   glVertexStream3dvATI := dglGetProcAddress('glVertexStream3dvATI');
17262   glVertexStream4sATI := dglGetProcAddress('glVertexStream4sATI');
17263   glVertexStream4svATI := dglGetProcAddress('glVertexStream4svATI');
17264   glVertexStream4iATI := dglGetProcAddress('glVertexStream4iATI');
17265   glVertexStream4ivATI := dglGetProcAddress('glVertexStream4ivATI');
17266   glVertexStream4fATI := dglGetProcAddress('glVertexStream4fATI');
17267   glVertexStream4fvATI := dglGetProcAddress('glVertexStream4fvATI');
17268   glVertexStream4dATI := dglGetProcAddress('glVertexStream4dATI');
17269   glVertexStream4dvATI := dglGetProcAddress('glVertexStream4dvATI');
17270   glNormalStream3bATI := dglGetProcAddress('glNormalStream3bATI');
17271   glNormalStream3bvATI := dglGetProcAddress('glNormalStream3bvATI');
17272   glNormalStream3sATI := dglGetProcAddress('glNormalStream3sATI');
17273   glNormalStream3svATI := dglGetProcAddress('glNormalStream3svATI');
17274   glNormalStream3iATI := dglGetProcAddress('glNormalStream3iATI');
17275   glNormalStream3ivATI := dglGetProcAddress('glNormalStream3ivATI');
17276   glNormalStream3fATI := dglGetProcAddress('glNormalStream3fATI');
17277   glNormalStream3fvATI := dglGetProcAddress('glNormalStream3fvATI');
17278   glNormalStream3dATI := dglGetProcAddress('glNormalStream3dATI');
17279   glNormalStream3dvATI := dglGetProcAddress('glNormalStream3dvATI');
17280   glClientActiveVertexStreamATI := dglGetProcAddress('glClientActiveVertexStreamATI');
17281   glVertexBlendEnviATI := dglGetProcAddress('glVertexBlendEnviATI');
17282   glVertexBlendEnvfATI := dglGetProcAddress('glVertexBlendEnvfATI');
17283 end;
17284
17285 procedure Read_GL_AMD_performance_monitor;
17286 begin
17287   glGetPerfMonitorGroupsAMD := dglGetProcAddress('glGetPerfMonitorGroupsAMD');
17288   glGetPerfMonitorCountersAMD := dglGetProcAddress('glGetPerfMonitorCountersAMD');
17289   glGetPerfMonitorGroupStringAMD := dglGetProcAddress('glGetPerfMonitorGroupStringAMD');
17290   glGetPerfMonitorCounterStringAMD := dglGetProcAddress('glGetPerfMonitorCounterStringAMD');
17291   glGetPerfMonitorCounterInfoAMD := dglGetProcAddress('glGetPerfMonitorCounterInfoAMD');
17292   glGenPerfMonitorsAMD := dglGetProcAddress('glGenPerfMonitorsAMD');
17293   glDeletePerfMonitorsAMD := dglGetProcAddress('glDeletePerfMonitorsAMD');
17294   glSelectPerfMonitorCountersAMD := dglGetProcAddress('glSelectPerfMonitorCountersAMD');
17295   glBeginPerfMonitorAMD := dglGetProcAddress('glBeginPerfMonitorAMD');
17296   glEndPerfMonitorAMD := dglGetProcAddress('glEndPerfMonitorAMD');
17297   glGetPerfMonitorCounterDataAMD := dglGetProcAddress('glGetPerfMonitorCounterDataAMD');
17298 end;
17299
17300 procedure Read_GL_AMD_vertex_shader_tesselator;
17301 begin
17302   glTessellationFactorAMD := dglGetProcAddress('glTessellationFactorAMD');
17303   glTessellationModeAMD := dglGetProcAddress('glTessellationModeAMD');
17304 end;
17305
17306 procedure Read_GL_AMD_draw_buffers_blend;
17307 begin
17308   glBlendFuncIndexedAMD := dglGetProcAddress('glBlendFuncIndexedAMD');
17309   glBlendFuncSeparateIndexedAMD := dglGetProcAddress('glBlendFuncSeparateIndexedAMD');
17310   glBlendEquationIndexedAMD := dglGetProcAddress('glBlendEquationIndexedAMD');
17311   glBlendEquationSeparateIndexedAMD := dglGetProcAddress('glBlendEquationSeparateIndexedAMD');
17312 end;
17313
17314 procedure Read_GL_AMD_name_gen_delete;
17315 begin
17316   glGenNamesAMD := dglGetProcAddress('glGenNamesAMD');
17317   glDeleteNamesAMD := dglGetProcAddress('glDeleteNamesAMD');
17318   glIsNameAMD := dglGetProcAddress('glIsNameAMD');
17319 end;
17320
17321 procedure Read_GL_AMD_debug_output;
17322 begin
17323   glDebugMessageEnableAMD := dglGetProcAddress('glDebugMessageEnableAMD');
17324   glDebugMessageInsertAMD := dglGetProcAddress('glDebugMessageInsertAMD');
17325   glDebugMessageCallbackAMD := dglGetProcAddress('glDebugMessageCallbackAMD');
17326   glGetDebugMessageLogAMD := dglGetProcAddress('glGetDebugMessageLogAMD');
17327 end;
17328
17329 procedure Read_GL_EXT_blend_color;
17330 begin
17331   glBlendColorEXT := dglGetProcAddress('glBlendColorEXT');
17332 end;
17333
17334 procedure Read_GL_EXT_blend_func_separate;
17335 begin
17336   glBlendFuncSeparateEXT := dglGetProcAddress('glBlendFuncSeparateEXT');
17337 end;
17338
17339 procedure Read_GL_EXT_blend_minmax;
17340 begin
17341   glBlendEquationEXT := dglGetProcAddress('glBlendEquationEXT');
17342 end;
17343
17344 procedure Read_GL_EXT_color_subtable;
17345 begin
17346   glColorSubTableEXT := dglGetProcAddress('glColorSubTableEXT');
17347   glCopyColorSubTableEXT := dglGetProcAddress('glCopyColorSubTableEXT');
17348 end;
17349
17350 procedure Read_GL_EXT_compiled_vertex_array;
17351 begin
17352   glLockArraysEXT := dglGetProcAddress('glLockArraysEXT');
17353   glUnlockArraysEXT := dglGetProcAddress('glUnlockArraysEXT');
17354 end;
17355
17356 procedure Read_GL_EXT_convolution;
17357 begin
17358   glConvolutionFilter1DEXT := dglGetProcAddress('glConvolutionFilter1DEXT');
17359   glConvolutionFilter2DEXT := dglGetProcAddress('glConvolutionFilter2DEXT');
17360   glConvolutionParameterfEXT := dglGetProcAddress('glConvolutionParameterfEXT');
17361   glConvolutionParameterfvEXT := dglGetProcAddress('glConvolutionParameterfvEXT');
17362   glConvolutionParameteriEXT := dglGetProcAddress('glConvolutionParameteriEXT');
17363   glConvolutionParameterivEXT := dglGetProcAddress('glConvolutionParameterivEXT');
17364   glCopyConvolutionFilter1DEXT := dglGetProcAddress('glCopyConvolutionFilter1DEXT');
17365   glCopyConvolutionFilter2DEXT := dglGetProcAddress('glCopyConvolutionFilter2DEXT');
17366   glGetConvolutionFilterEXT := dglGetProcAddress('glGetConvolutionFilterEXT');
17367   glGetConvolutionParameterfvEXT := dglGetProcAddress('glGetConvolutionParameterfvEXT');
17368   glGetConvolutionParameterivEXT := dglGetProcAddress('glGetConvolutionParameterivEXT');
17369   glGetSeparableFilterEXT := dglGetProcAddress('glGetSeparableFilterEXT');
17370   glSeparableFilter2DEXT := dglGetProcAddress('glSeparableFilter2DEXT');
17371 end;
17372
17373 procedure Read_GL_EXT_coordinate_frame;
17374 begin
17375   glTangent3bEXT := dglGetProcAddress('glTangent3bEXT');
17376   glTangent3bvEXT := dglGetProcAddress('glTangent3bvEXT');
17377   glTangent3dEXT := dglGetProcAddress('glTangent3dEXT');
17378   glTangent3dvEXT := dglGetProcAddress('glTangent3dvEXT');
17379   glTangent3fEXT := dglGetProcAddress('glTangent3fEXT');
17380   glTangent3fvEXT := dglGetProcAddress('glTangent3fvEXT');
17381   glTangent3iEXT := dglGetProcAddress('glTangent3iEXT');
17382   glTangent3ivEXT := dglGetProcAddress('glTangent3ivEXT');
17383   glTangent3sEXT := dglGetProcAddress('glTangent3sEXT');
17384   glTangent3svEXT := dglGetProcAddress('glTangent3svEXT');
17385   glBinormal3bEXT := dglGetProcAddress('glBinormal3bEXT');
17386   glBinormal3bvEXT := dglGetProcAddress('glBinormal3bvEXT');
17387   glBinormal3dEXT := dglGetProcAddress('glBinormal3dEXT');
17388   glBinormal3dvEXT := dglGetProcAddress('glBinormal3dvEXT');
17389   glBinormal3fEXT := dglGetProcAddress('glBinormal3fEXT');
17390   glBinormal3fvEXT := dglGetProcAddress('glBinormal3fvEXT');
17391   glBinormal3iEXT := dglGetProcAddress('glBinormal3iEXT');
17392   glBinormal3ivEXT := dglGetProcAddress('glBinormal3ivEXT');
17393   glBinormal3sEXT := dglGetProcAddress('glBinormal3sEXT');
17394   glBinormal3svEXT := dglGetProcAddress('glBinormal3svEXT');
17395   glTangentPointerEXT := dglGetProcAddress('glTangentPointerEXT');
17396   glBinormalPointerEXT := dglGetProcAddress('glBinormalPointerEXT');
17397 end;
17398
17399 procedure Read_GL_EXT_copy_texture;
17400 begin
17401   glCopyTexImage1DEXT := dglGetProcAddress('glCopyTexImage1DEXT');
17402   glCopyTexImage2DEXT := dglGetProcAddress('glCopyTexImage2DEXT');
17403   glCopyTexSubImage1DEXT := dglGetProcAddress('glCopyTexSubImage1DEXT');
17404   glCopyTexSubImage2DEXT := dglGetProcAddress('glCopyTexSubImage2DEXT');
17405   glCopyTexSubImage3DEXT := dglGetProcAddress('glCopyTexSubImage3DEXT');
17406 end;
17407
17408 procedure Read_GL_EXT_cull_vertex;
17409 begin
17410   glCullParameterdvEXT := dglGetProcAddress('glCullParameterdvEXT');
17411   glCullParameterfvEXT := dglGetProcAddress('glCullParameterfvEXT');
17412 end;
17413
17414 procedure Read_GL_EXT_draw_range_elements;
17415 begin
17416   glDrawRangeElementsEXT := dglGetProcAddress('glDrawRangeElementsEXT');
17417 end;
17418
17419 procedure Read_GL_EXT_fog_coord;
17420 begin
17421   glFogCoordfEXT := dglGetProcAddress('glFogCoordfEXT');
17422   glFogCoordfvEXT := dglGetProcAddress('glFogCoordfvEXT');
17423   glFogCoorddEXT := dglGetProcAddress('glFogCoorddEXT');
17424   glFogCoorddvEXT := dglGetProcAddress('glFogCoorddvEXT');
17425   glFogCoordPointerEXT := dglGetProcAddress('glFogCoordPointerEXT');
17426 end;
17427
17428 procedure Read_GL_EXT_framebuffer_object;
17429 begin
17430   glIsRenderbufferEXT := dglGetProcAddress('glIsRenderbufferEXT');
17431   glBindRenderbufferEXT := dglGetProcAddress('glBindRenderbufferEXT');
17432   glDeleteRenderbuffersEXT := dglGetProcAddress('glDeleteRenderbuffersEXT');
17433   glGenRenderbuffersEXT := dglGetProcAddress('glGenRenderbuffersEXT');
17434   glRenderbufferStorageEXT := dglGetProcAddress('glRenderbufferStorageEXT');
17435   glGetRenderbufferParameterivEXT := dglGetProcAddress('glGetRenderbufferParameterivEXT');
17436   glIsFramebufferEXT := dglGetProcAddress('glIsFramebufferEXT');
17437   glBindFramebufferEXT := dglGetProcAddress('glBindFramebufferEXT');
17438   glDeleteFramebuffersEXT := dglGetProcAddress('glDeleteFramebuffersEXT');
17439   glGenFramebuffersEXT := dglGetProcAddress('glGenFramebuffersEXT');
17440   glCheckFramebufferStatusEXT := dglGetProcAddress('glCheckFramebufferStatusEXT');
17441   glFramebufferTexture1DEXT := dglGetProcAddress('glFramebufferTexture1DEXT');
17442   glFramebufferTexture2DEXT := dglGetProcAddress('glFramebufferTexture2DEXT');
17443   glFramebufferTexture3DEXT := dglGetProcAddress('glFramebufferTexture3DEXT');
17444   glFramebufferRenderbufferEXT := dglGetProcAddress('glFramebufferRenderbufferEXT');
17445   glGetFramebufferAttachmentParameterivEXT := dglGetProcAddress('glGetFramebufferAttachmentParameterivEXT');
17446   glGenerateMipmapEXT := dglGetProcAddress('glGenerateMipmapEXT');
17447 end;
17448
17449 procedure Read_GL_EXT_histogram;
17450 begin
17451   glGetHistogramEXT := dglGetProcAddress('glGetHistogramEXT');
17452   glGetHistogramParameterfvEXT := dglGetProcAddress('glGetHistogramParameterfvEXT');
17453   glGetHistogramParameterivEXT := dglGetProcAddress('glGetHistogramParameterivEXT');
17454   glGetMinmaxEXT := dglGetProcAddress('glGetMinmaxEXT');
17455   glGetMinmaxParameterfvEXT := dglGetProcAddress('glGetMinmaxParameterfvEXT');
17456   glGetMinmaxParameterivEXT := dglGetProcAddress('glGetMinmaxParameterivEXT');
17457   glHistogramEXT := dglGetProcAddress('glHistogramEXT');
17458   glMinmaxEXT := dglGetProcAddress('glMinmaxEXT');
17459   glResetHistogramEXT := dglGetProcAddress('glResetHistogramEXT');
17460   glResetMinmaxEXT := dglGetProcAddress('glResetMinmaxEXT');
17461 end;
17462
17463 procedure Read_GL_EXT_index_func;
17464 begin
17465   glIndexFuncEXT := dglGetProcAddress('glIndexFuncEXT');
17466 end;
17467
17468 procedure Read_GL_EXT_index_material;
17469 begin
17470   glIndexMaterialEXT := dglGetProcAddress('glIndexMaterialEXT');
17471 end;
17472
17473 procedure Read_GL_EXT_light_texture;
17474 begin
17475   glApplyTextureEXT := dglGetProcAddress('glApplyTextureEXT');
17476   glTextureLightEXT := dglGetProcAddress('glTextureLightEXT');
17477   glTextureMaterialEXT := dglGetProcAddress('glTextureMaterialEXT');
17478 end;
17479
17480 procedure Read_GL_EXT_multi_draw_arrays;
17481 begin
17482   glMultiDrawArraysEXT := dglGetProcAddress('glMultiDrawArraysEXT');
17483   glMultiDrawElementsEXT := dglGetProcAddress('glMultiDrawElementsEXT');
17484 end;
17485
17486 procedure Read_GL_EXT_multisample;
17487 begin
17488   glSampleMaskEXT := dglGetProcAddress('glSampleMaskEXT');
17489   glSamplePatternEXT := dglGetProcAddress('glSamplePatternEXT');
17490 end;
17491
17492 procedure Read_GL_EXT_paletted_texture;
17493 begin
17494   glColorTableEXT := dglGetProcAddress('glColorTableEXT');
17495   glGetColorTableEXT := dglGetProcAddress('glGetColorTableEXT');
17496   glGetColorTableParameterivEXT := dglGetProcAddress('glGetColorTableParameterivEXT');
17497   glGetColorTableParameterfvEXT := dglGetProcAddress('glGetColorTableParameterfvEXT');
17498 end;
17499
17500 procedure Read_GL_EXT_pixel_transform;
17501 begin
17502   glPixelTransformParameteriEXT := dglGetProcAddress('glPixelTransformParameteriEXT');
17503   glPixelTransformParameterfEXT := dglGetProcAddress('glPixelTransformParameterfEXT');
17504   glPixelTransformParameterivEXT := dglGetProcAddress('glPixelTransformParameterivEXT');
17505   glPixelTransformParameterfvEXT := dglGetProcAddress('glPixelTransformParameterfvEXT');
17506 end;
17507
17508 procedure Read_GL_EXT_point_parameters;
17509 begin
17510   glPointParameterfEXT := dglGetProcAddress('glPointParameterfEXT');
17511   glPointParameterfvEXT := dglGetProcAddress('glPointParameterfvEXT');
17512 end;
17513
17514 procedure Read_GL_EXT_polygon_offset;
17515 begin
17516   glPolygonOffsetEXT := dglGetProcAddress('glPolygonOffsetEXT');
17517 end;
17518
17519 procedure Read_GL_EXT_secondary_color;
17520 begin
17521   glSecondaryColor3bEXT := dglGetProcAddress('glSecondaryColor3bEXT');
17522   glSecondaryColor3bvEXT := dglGetProcAddress('glSecondaryColor3bvEXT');
17523   glSecondaryColor3dEXT := dglGetProcAddress('glSecondaryColor3dEXT');
17524   glSecondaryColor3dvEXT := dglGetProcAddress('glSecondaryColor3dvEXT');
17525   glSecondaryColor3fEXT := dglGetProcAddress('glSecondaryColor3fEXT');
17526   glSecondaryColor3fvEXT := dglGetProcAddress('glSecondaryColor3fvEXT');
17527   glSecondaryColor3iEXT := dglGetProcAddress('glSecondaryColor3iEXT');
17528   glSecondaryColor3ivEXT := dglGetProcAddress('glSecondaryColor3ivEXT');
17529   glSecondaryColor3sEXT := dglGetProcAddress('glSecondaryColor3sEXT');
17530   glSecondaryColor3svEXT := dglGetProcAddress('glSecondaryColor3svEXT');
17531   glSecondaryColor3ubEXT := dglGetProcAddress('glSecondaryColor3ubEXT');
17532   glSecondaryColor3ubvEXT := dglGetProcAddress('glSecondaryColor3ubvEXT');
17533   glSecondaryColor3uiEXT := dglGetProcAddress('glSecondaryColor3uiEXT');
17534   glSecondaryColor3uivEXT := dglGetProcAddress('glSecondaryColor3uivEXT');
17535   glSecondaryColor3usEXT := dglGetProcAddress('glSecondaryColor3usEXT');
17536   glSecondaryColor3usvEXT := dglGetProcAddress('glSecondaryColor3usvEXT');
17537   glSecondaryColorPointerEXT := dglGetProcAddress('glSecondaryColorPointerEXT');
17538 end;
17539
17540 procedure Read_GL_EXT_stencil_two_side;
17541 begin
17542   glActiveStencilFaceEXT := dglGetProcAddress('glActiveStencilFaceEXT');
17543 end;
17544
17545 procedure Read_GL_EXT_subtexture;
17546 begin
17547   glTexSubImage1DEXT := dglGetProcAddress('glTexSubImage1DEXT');
17548   glTexSubImage2DEXT := dglGetProcAddress('glTexSubImage2DEXT');
17549 end;
17550
17551 procedure Read_GL_EXT_texture3D;
17552 begin
17553   glTexImage3DEXT := dglGetProcAddress('glTexImage3DEXT');
17554   glTexSubImage3DEXT := dglGetProcAddress('glTexSubImage3DEXT');
17555 end;
17556
17557 procedure Read_GL_EXT_texture_object;
17558 begin
17559   glAreTexturesResidentEXT := dglGetProcAddress('glAreTexturesResidentEXT');
17560   glBindTextureEXT := dglGetProcAddress('glBindTextureEXT');
17561   glDeleteTexturesEXT := dglGetProcAddress('glDeleteTexturesEXT');
17562   glGenTexturesEXT := dglGetProcAddress('glGenTexturesEXT');
17563   glIsTextureEXT := dglGetProcAddress('glIsTextureEXT');
17564   glPrioritizeTexturesEXT := dglGetProcAddress('glPrioritizeTexturesEXT');
17565 end;
17566
17567 procedure Read_GL_EXT_texture_perturb_normal;
17568 begin
17569   glTextureNormalEXT := dglGetProcAddress('glTextureNormalEXT');
17570 end;
17571
17572 procedure Read_GL_EXT_vertex_array;
17573 begin
17574   glArrayElementEXT := dglGetProcAddress('glArrayElementEXT');
17575   glColorPointerEXT := dglGetProcAddress('glColorPointerEXT');
17576   glDrawArraysEXT := dglGetProcAddress('glDrawArraysEXT');
17577   glEdgeFlagPointerEXT := dglGetProcAddress('glEdgeFlagPointerEXT');
17578   glGetPointervEXT := dglGetProcAddress('glGetPointervEXT');
17579   glIndexPointerEXT := dglGetProcAddress('glIndexPointerEXT');
17580   glNormalPointerEXT := dglGetProcAddress('glNormalPointerEXT');
17581   glTexCoordPointerEXT := dglGetProcAddress('glTexCoordPointerEXT');
17582   glVertexPointerEXT := dglGetProcAddress('glVertexPointerEXT');
17583 end;
17584
17585 procedure Read_GL_EXT_vertex_shader;
17586 begin
17587   glBeginVertexShaderEXT := dglGetProcAddress('glBeginVertexShaderEXT');
17588   glEndVertexShaderEXT := dglGetProcAddress('glEndVertexShaderEXT');
17589   glBindVertexShaderEXT := dglGetProcAddress('glBindVertexShaderEXT');
17590   glGenVertexShadersEXT := dglGetProcAddress('glGenVertexShadersEXT');
17591   glDeleteVertexShaderEXT := dglGetProcAddress('glDeleteVertexShaderEXT');
17592   glShaderOp1EXT := dglGetProcAddress('glShaderOp1EXT');
17593   glShaderOp2EXT := dglGetProcAddress('glShaderOp2EXT');
17594   glShaderOp3EXT := dglGetProcAddress('glShaderOp3EXT');
17595   glSwizzleEXT := dglGetProcAddress('glSwizzleEXT');
17596   glWriteMaskEXT := dglGetProcAddress('glWriteMaskEXT');
17597   glInsertComponentEXT := dglGetProcAddress('glInsertComponentEXT');
17598   glExtractComponentEXT := dglGetProcAddress('glExtractComponentEXT');
17599   glGenSymbolsEXT := dglGetProcAddress('glGenSymbolsEXT');
17600   glSetInvariantEXT := dglGetProcAddress('glSetInvariantEXT');
17601   glSetLocalConstantEXT := dglGetProcAddress('glSetLocalConstantEXT');
17602   glVariantbvEXT := dglGetProcAddress('glVariantbvEXT');
17603   glVariantsvEXT := dglGetProcAddress('glVariantsvEXT');
17604   glVariantivEXT := dglGetProcAddress('glVariantivEXT');
17605   glVariantfvEXT := dglGetProcAddress('glVariantfvEXT');
17606   glVariantdvEXT := dglGetProcAddress('glVariantdvEXT');
17607   glVariantubvEXT := dglGetProcAddress('glVariantubvEXT');
17608   glVariantusvEXT := dglGetProcAddress('glVariantusvEXT');
17609   glVariantuivEXT := dglGetProcAddress('glVariantuivEXT');
17610   glVariantPointerEXT := dglGetProcAddress('glVariantPointerEXT');
17611   glEnableVariantClientStateEXT := dglGetProcAddress('glEnableVariantClientStateEXT');
17612   glDisableVariantClientStateEXT := dglGetProcAddress('glDisableVariantClientStateEXT');
17613   glBindLightParameterEXT := dglGetProcAddress('glBindLightParameterEXT');
17614   glBindMaterialParameterEXT := dglGetProcAddress('glBindMaterialParameterEXT');
17615   glBindTexGenParameterEXT := dglGetProcAddress('glBindTexGenParameterEXT');
17616   glBindTextureUnitParameterEXT := dglGetProcAddress('glBindTextureUnitParameterEXT');
17617   glBindParameterEXT := dglGetProcAddress('glBindParameterEXT');
17618   glIsVariantEnabledEXT := dglGetProcAddress('glIsVariantEnabledEXT');
17619   glGetVariantBooleanvEXT := dglGetProcAddress('glGetVariantBooleanvEXT');
17620   glGetVariantIntegervEXT := dglGetProcAddress('glGetVariantIntegervEXT');
17621   glGetVariantFloatvEXT := dglGetProcAddress('glGetVariantFloatvEXT');
17622   glGetVariantPointervEXT := dglGetProcAddress('glGetVariantPointervEXT');
17623   glGetInvariantBooleanvEXT := dglGetProcAddress('glGetInvariantBooleanvEXT');
17624   glGetInvariantIntegervEXT := dglGetProcAddress('glGetInvariantIntegervEXT');
17625   glGetInvariantFloatvEXT := dglGetProcAddress('glGetInvariantFloatvEXT');
17626   glGetLocalConstantBooleanvEXT := dglGetProcAddress('glGetLocalConstantBooleanvEXT');
17627   glGetLocalConstantIntegervEXT := dglGetProcAddress('glGetLocalConstantIntegervEXT');
17628   glGetLocalConstantFloatvEXT := dglGetProcAddress('glGetLocalConstantFloatvEXT');
17629 end;
17630
17631 procedure Read_GL_EXT_vertex_weighting;
17632 begin
17633   glVertexWeightfEXT := dglGetProcAddress('glVertexWeightfEXT');
17634   glVertexWeightfvEXT := dglGetProcAddress('glVertexWeightfvEXT');
17635   glVertexWeightPointerEXT := dglGetProcAddress('glVertexWeightPointerEXT');
17636 end;
17637
17638 procedure Read_GL_EXT_depth_bounds_test;
17639 begin
17640   glImageTransformParameteriHP := dglGetProcAddress('glImageTransformParameteriHP');
17641   glDepthBoundsEXT := dglGetProcAddress('glDepthBoundsEXT');
17642 end;
17643
17644 procedure Read_GL_EXT_blend_equation_separate;
17645 begin
17646   glBlendEquationSeparateEXT := dglGetProcAddress('glBlendEquationSeparateEXT');
17647 end;
17648
17649 procedure Read_GL_EXT_stencil_clear_tag;
17650 begin
17651   glStencilClearTagEXT := dglGetProcAddress('glStencilClearTagEXT');
17652 end;
17653
17654 procedure Read_GL_EXT_framebuffer_blit;
17655 begin
17656   glBlitFramebufferEXT := dglGetProcAddress('glBlitFramebufferEXT');
17657 end;
17658
17659 procedure Read_GL_EXT_framebuffer_multisample;
17660 begin
17661   glRenderbufferStorageMultisampleEXT := dglGetProcAddress('glRenderbufferStorageMultisampleEXT');
17662 end;
17663
17664 procedure Read_GL_EXT_timer_query;
17665 begin
17666   glGetQueryObjecti64vEXT := dglGetProcAddress('glGetQueryObjecti64vEXT');
17667   glGetQueryObjectui64vEXT := dglGetProcAddress('glGetQueryObjectui64vEXT');
17668 end;
17669
17670 procedure Read_GL_EXT_gpu_program_parameters;
17671 begin
17672   glProgramEnvParameters4fvEXT := dglGetProcAddress('glProgramEnvParameters4fvEXT');
17673   glProgramLocalParameters4fvEXT := dglGetProcAddress('glProgramLocalParameters4fvEXT');
17674 end;
17675
17676 procedure Read_GL_EXT_bindable_uniform;
17677 begin
17678   glUniformBufferEXT := dglGetProcAddress('glUniformBufferEXT');
17679   glGetUniformBufferSizeEXT := dglGetProcAddress('glGetUniformBufferSizeEXT');
17680   glGetUniformOffsetEXT := dglGetProcAddress('glGetUniformOffsetEXT');
17681 end;
17682
17683 procedure Read_GL_EXT_draw_buffers2;
17684 begin
17685   glColorMaskIndexedEXT := dglGetProcAddress('glColorMaskIndexedEXT');
17686   glGetBooleanIndexedvEXT := dglGetProcAddress('glGetBooleanIndexedvEXT');
17687   glGetIntegerIndexedvEXT := dglGetProcAddress('glGetIntegerIndexedvEXT');
17688   glEnableIndexedEXT := dglGetProcAddress('glEnableIndexedEXT');
17689   glDisableIndexedEXT := dglGetProcAddress('glDisableIndexedEXT');
17690   glIsEnabledIndexedEXT := dglGetProcAddress('glIsEnabledIndexedEXT');
17691 end;
17692
17693 procedure Read_GL_EXT_draw_instanced;
17694 begin
17695   glDrawArraysInstancedEXT := dglGetProcAddress('glDrawArraysInstancedEXT');
17696   glDrawElementsInstancedEXT := dglGetProcAddress('glDrawElementsInstancedEXT');
17697 end;
17698
17699 procedure Read_GL_EXT_geometry_shader4;
17700 begin
17701   glProgramParameteriEXT := dglGetProcAddress('glProgramParameteriEXT');
17702   glFramebufferTextureEXT := dglGetProcAddress('glFramebufferTextureEXT');
17703 //  glFramebufferTextureLayerEXT := dglGetProcAddress('glFramebufferTextureLayerEXT');
17704   glFramebufferTextureFaceEXT := dglGetProcAddress('glFramebufferTextureFaceEXT');
17705 end;
17706
17707 procedure Read_GL_EXT_gpu_shader4;
17708 begin
17709   glVertexAttribI1iEXT := dglGetProcAddress('glVertexAttribI1iEXT');
17710   glVertexAttribI2iEXT := dglGetProcAddress('glVertexAttribI2iEXT');
17711   glVertexAttribI3iEXT := dglGetProcAddress('glVertexAttribI3iEXT');
17712   glVertexAttribI4iEXT := dglGetProcAddress('glVertexAttribI4iEXT');
17713   glVertexAttribI1uiEXT := dglGetProcAddress('glVertexAttribI1uiEXT');
17714   glVertexAttribI2uiEXT := dglGetProcAddress('glVertexAttribI2uiEXT');
17715   glVertexAttribI3uiEXT := dglGetProcAddress('glVertexAttribI3uiEXT');
17716   glVertexAttribI4uiEXT := dglGetProcAddress('glVertexAttribI4uiEXT');
17717   glVertexAttribI1ivEXT := dglGetProcAddress('glVertexAttribI1ivEXT');
17718   glVertexAttribI2ivEXT := dglGetProcAddress('glVertexAttribI2ivEXT');
17719   glVertexAttribI3ivEXT := dglGetProcAddress('glVertexAttribI3ivEXT');
17720   glVertexAttribI4ivEXT := dglGetProcAddress('glVertexAttribI4ivEXT');
17721   glVertexAttribI1uivEXT := dglGetProcAddress('glVertexAttribI1uivEXT');
17722   glVertexAttribI2uivEXT := dglGetProcAddress('glVertexAttribI2uivEXT');
17723   glVertexAttribI3uivEXT := dglGetProcAddress('glVertexAttribI3uivEXT');
17724   glVertexAttribI4uivEXT := dglGetProcAddress('glVertexAttribI4uivEXT');
17725   glVertexAttribI4bvEXT := dglGetProcAddress('glVertexAttribI4bvEXT');
17726   glVertexAttribI4svEXT := dglGetProcAddress('glVertexAttribI4svEXT');
17727   glVertexAttribI4ubvEXT := dglGetProcAddress('glVertexAttribI4ubvEXT');
17728   glVertexAttribI4usvEXT := dglGetProcAddress('glVertexAttribI4usvEXT');
17729   glVertexAttribIPointerEXT := dglGetProcAddress('glVertexAttribIPointerEXT');
17730   glGetVertexAttribIivEXT := dglGetProcAddress('glGetVertexAttribIivEXT');
17731   glGetVertexAttribIuivEXT := dglGetProcAddress('glGetVertexAttribIuivEXT');
17732   glUniform1uiEXT := dglGetProcAddress('glUniform1uiEXT');
17733   glUniform2uiEXT := dglGetProcAddress('glUniform2uiEXT');
17734   glUniform3uiEXT := dglGetProcAddress('glUniform3uiEXT');
17735   glUniform4uiEXT := dglGetProcAddress('glUniform4uiEXT');
17736   glUniform1uivEXT := dglGetProcAddress('glUniform1uivEXT');
17737   glUniform2uivEXT := dglGetProcAddress('glUniform2uivEXT');
17738   glUniform3uivEXT := dglGetProcAddress('glUniform3uivEXT');
17739   glUniform4uivEXT := dglGetProcAddress('glUniform4uivEXT');
17740   glGetUniformuivEXT := dglGetProcAddress('glGetUniformuivEXT');
17741   glBindFragDataLocationEXT := dglGetProcAddress('glBindFragDataLocationEXT');
17742   glGetFragDataLocationEXT := dglGetProcAddress('glGetFragDataLocationEXT');
17743 end;
17744
17745 procedure Read_GL_EXT_texture_array;
17746 begin
17747   glFramebufferTextureLayerEXT := dglGetProcAddress('glFramebufferTextureLayerEXT');
17748 end;
17749
17750 procedure Read_GL_EXT_texture_buffer_object;
17751 begin
17752   glTexBufferEXT := dglGetProcAddress('glTexBufferEXT');
17753 end;
17754
17755 procedure Read_GL_EXT_texture_integer;
17756 begin
17757   glClearColorIiEXT := dglGetProcAddress('glClearColorIiEXT');
17758   glClearColorIuiEXT := dglGetProcAddress('glClearColorIuiEXT');
17759   glTexParameterIivEXT := dglGetProcAddress('glTexParameterIivEXT');
17760   glTexParameterIuivEXT := dglGetProcAddress('glTexParameterIuivEXT');
17761   glGetTexParameterIivEXT := dglGetProcAddress('glGetTexParameterIivEXT');
17762   glGetTexParameterIiuvEXT := dglGetProcAddress('glGetTexParameterIiuvEXT');
17763 end;
17764
17765 procedure Read_GL_EXT_transform_feedback;
17766 begin
17767   glBeginTransformFeedbackEXT := dglGetProcAddress('lBeginTransformFeedbackEXT');
17768   glEndTransformFeedbackEXT := dglGetProcAddress('glEndTransformFeedbackEXT');
17769   glBindBufferRangeEXT := dglGetProcAddress('glBindBufferRangeEXT');
17770   glBindBufferOffsetEXT := dglGetProcAddress('glBindBufferOffsetEXT');
17771   glBindBufferBaseEXT := dglGetProcAddress('glBindBufferBaseEXT');
17772   glTransformFeedbackVaryingsEXT := dglGetProcAddress('glTransformFeedbackVaryingsEXT');
17773   glGetTransformFeedbackVaryingEXT := dglGetProcAddress('glGetTransformFeedbackVaryingEXT');
17774 end;
17775
17776 procedure Read_GL_EXT_direct_state_access;
17777 begin
17778   glClientAttribDefaultEXT := dglGetProcAddress('glClientAttribDefaultEXT');
17779   glPushClientAttribDefaultEXT := dglGetProcAddress('glPushClientAttribDefaultEXT');
17780   glMatrixLoadfEXT := dglGetProcAddress('glMatrixLoadfEXT');
17781   glMatrixLoaddEXT := dglGetProcAddress('glMatrixLoaddEXT');
17782   glMatrixMultfEXT := dglGetProcAddress('glMatrixMultfEXT');
17783   glMatrixMultdEXT := dglGetProcAddress('glMatrixMultdEXT');
17784   glMatrixLoadIdentityEXT := dglGetProcAddress('glMatrixLoadIdentityEXT');
17785   glMatrixRotatefEXT := dglGetProcAddress('glMatrixRotatefEXT');
17786   glMatrixRotatedEXT := dglGetProcAddress('glMatrixRotatedEXT');
17787   glMatrixScalefEXT := dglGetProcAddress('glMatrixScalefEXT');
17788   glMatrixScaledEXT := dglGetProcAddress('glMatrixScaledEXT');
17789   glMatrixTranslatefEXT := dglGetProcAddress('glMatrixTranslatefEXT');
17790   glMatrixTranslatedEXT := dglGetProcAddress('glMatrixTranslatedEXT');
17791   glMatrixFrustumEXT := dglGetProcAddress('glMatrixFrustumEXT');
17792   glMatrixOrthoEXT := dglGetProcAddress('glMatrixOrthoEXT');
17793   glMatrixPopEXT := dglGetProcAddress('glMatrixPopEXT');
17794   glMatrixPushEXT := dglGetProcAddress('glMatrixPushEXT');
17795   glMatrixLoadTransposefEXT := dglGetProcAddress('glMatrixLoadTransposefEXT');
17796   glMatrixLoadTransposedEXT := dglGetProcAddress('glMatrixLoadTransposedEXT');
17797   glMatrixMultTransposefEXT := dglGetProcAddress('glMatrixMultTransposefEXT');
17798   glMatrixMultTransposedEXT := dglGetProcAddress('glMatrixMultTransposedEXT');
17799   glTextureParameterfEXT := dglGetProcAddress('glTextureParameterfEXT');
17800   glTextureParameterfvEXT := dglGetProcAddress('glTextureParameterfvEXT');
17801   glTextureParameteriEXT := dglGetProcAddress('glTextureParameteriEXT');
17802   glTextureParameterivEXT := dglGetProcAddress('glTextureParameterivEXT');
17803   glTextureImage1DEXT := dglGetProcAddress('glTextureImage1DEXT');
17804   glTextureImage2DEXT := dglGetProcAddress('glTextureImage2DEXT');
17805   glTextureSubImage1DEXT := dglGetProcAddress('glTextureSubImage1DEXT');
17806   glTextureSubImage2DEXT := dglGetProcAddress('glTextureSubImage2DEXT');
17807   glCopyTextureImage1DEXT := dglGetProcAddress('glCopyTextureImage1DEXT');
17808   glCopyTextureImage2DEXT := dglGetProcAddress('glCopyTextureImage2DEXT');
17809   glCopyTextureSubImage1DEXT := dglGetProcAddress('glCopyTextureSubImage1DEXT');
17810   glCopyTextureSubImage2DEXT := dglGetProcAddress('glCopyTextureSubImage2DEXT');
17811   glGetTextureImageEXT := dglGetProcAddress('glGetTextureImageEXT');
17812   glGetTextureParameterfvEXT := dglGetProcAddress('glGetTextureParameterfvEXT');
17813   glGetTextureParameterivEXT := dglGetProcAddress('glGetTextureParameterivEXT');
17814   glGetTextureLevelParameterfvEXT := dglGetProcAddress('glGetTextureLevelParameterfvEXT');
17815   glGetTextureLevelParameterivEXT := dglGetProcAddress('glGetTextureLevelParameterivEXT');
17816   glTextureImage3DEXT := dglGetProcAddress('glTextureImage3DEXT');
17817   glTextureSubImage3DEXT := dglGetProcAddress('glTextureSubImage3DEXT');
17818   glCopyTextureSubImage3DEXT := dglGetProcAddress('glCopyTextureSubImage3DEXT');
17819   glMultiTexParameterfEXT := dglGetProcAddress('glMultiTexParameterfEXT');
17820   glMultiTexParameterfvEXT := dglGetProcAddress('glMultiTexParameterfvEXT');
17821   glMultiTexParameteriEXT := dglGetProcAddress('glMultiTexParameteriEXT');
17822   glMultiTexParameterivEXT := dglGetProcAddress('glMultiTexParameterivEXT');
17823   glMultiTexImage1DEXT := dglGetProcAddress('glMultiTexImage1DEXT');
17824   glMultiTexImage2DEXT := dglGetProcAddress('glMultiTexImage2DEXT');
17825   glMultiTexSubImage1DEXT := dglGetProcAddress('glMultiTexSubImage1DEXT');
17826   glMultiTexSubImage2DEXT := dglGetProcAddress('glMultiTexSubImage2DEXT');
17827   glCopyMultiTexImage1DEXT := dglGetProcAddress('glCopyMultiTexImage1DEXT');
17828   glCopyMultiTexImage2DEXT := dglGetProcAddress('glCopyMultiTexImage2DEXT');
17829   glCopyMultiTexSubImage1DEXT := dglGetProcAddress('glCopyMultiTexSubImage1DEXT');
17830   glCopyMultiTexSubImage2DEXT := dglGetProcAddress('glCopyMultiTexSubImage2DEXT');
17831   glGetMultiTexImageEXT := dglGetProcAddress('glGetMultiTexImageEXT');
17832   glGetMultiTexParameterfvEXT := dglGetProcAddress('glGetMultiTexParameterfvEXT');
17833   glGetMultiTexParameterivEXT := dglGetProcAddress('glGetMultiTexParameterivEXT');
17834   glGetMultiTexLevelParameterfvEXT := dglGetProcAddress('glGetMultiTexLevelParameterfvEXT');
17835   glGetMultiTexLevelParameterivEXT := dglGetProcAddress('glGetMultiTexLevelParameterivEXT');
17836   glMultiTexImage3DEXT := dglGetProcAddress('glMultiTexImage3DEXT');
17837   glMultiTexSubImage3DEXT := dglGetProcAddress('glMultiTexSubImage3DEXT');
17838   glCopyMultiTexSubImage3DEXT := dglGetProcAddress('glCopyMultiTexSubImage3DEXT');
17839   glBindMultiTextureEXT := dglGetProcAddress('glBindMultiTextureEXT');
17840   glEnableClientStateIndexedEXT := dglGetProcAddress('glEnableClientStateIndexedEXT');
17841   glDisableClientStateIndexedEXT := dglGetProcAddress('glDisableClientStateIndexedEXT');
17842   glMultiTexCoordPointerEXT := dglGetProcAddress('glMultiTexCoordPointerEXT');
17843   glMultiTexEnvfEXT := dglGetProcAddress('glMultiTexEnvfEXT');
17844   glMultiTexEnvfvEXT := dglGetProcAddress('glMultiTexEnvfvEXT');
17845   glMultiTexEnviEXT := dglGetProcAddress('glMultiTexEnviEXT');
17846   glMultiTexEnvivEXT := dglGetProcAddress('glMultiTexEnvivEXT');
17847   glMultiTexGendEXT := dglGetProcAddress('glMultiTexGendEXT');
17848   glMultiTexGendvEXT := dglGetProcAddress('glMultiTexGendvEXT');
17849   glMultiTexGenfEXT := dglGetProcAddress('glMultiTexGenfEXT');
17850   glMultiTexGenfvEXT := dglGetProcAddress('glMultiTexGenfvEXT');
17851   glMultiTexGeniEXT := dglGetProcAddress('glMultiTexGeniEXT');
17852   glMultiTexGenivEXT := dglGetProcAddress('glMultiTexGenivEXT');
17853   glGetMultiTexEnvfvEXT := dglGetProcAddress('glGetMultiTexEnvfvEXT');
17854   glGetMultiTexEnvivEXT := dglGetProcAddress('glGetMultiTexEnvivEXT');
17855   glGetMultiTexGendvEXT := dglGetProcAddress('glGetMultiTexGendvEXT');
17856   glGetMultiTexGenfvEXT := dglGetProcAddress('glGetMultiTexGenfvEXT');
17857   glGetMultiTexGenivEXT := dglGetProcAddress('glGetMultiTexGenivEXT');
17858   glGetFloatIndexedvEXT := dglGetProcAddress('glGetFloatIndexedvEXT');
17859   glGetDoubleIndexedvEXT := dglGetProcAddress('glGetDoubleIndexedvEXT');
17860   glGetPointerIndexedvEXT := dglGetProcAddress('glGetPointerIndexedvEXT');
17861   glCompressedTextureImage3DEXT := dglGetProcAddress('glCompressedTextureImage3DEXT');
17862   glCompressedTextureImage2DEXT := dglGetProcAddress('glCompressedTextureImage2DEXT');
17863   glCompressedTextureImage1DEXT := dglGetProcAddress('glCompressedTextureImage1DEXT');
17864   glCompressedTextureSubImage3DEXT := dglGetProcAddress('glCompressedTextureSubImage3DEXT');
17865   glCompressedTextureSubImage2DEXT := dglGetProcAddress('glCompressedTextureSubImage2DEXT');
17866   glCompressedTextureSubImage1DEXT := dglGetProcAddress('glCompressedTextureSubImage1DEXT');
17867   glGetCompressedTextureImageEXT := dglGetProcAddress('glGetCompressedTextureImageEXT');
17868   glCompressedMultiTexImage3DEXT := dglGetProcAddress('glCompressedMultiTexImage3DEXT');
17869   glCompressedMultiTexImage2DEXT := dglGetProcAddress('glCompressedMultiTexImage2DEXT');
17870   glCompressedMultiTexImage1DEXT := dglGetProcAddress('glCompressedMultiTexImage1DEXT');
17871   glCompressedMultiTexSubImage3DEXT := dglGetProcAddress('glCompressedMultiTexSubImage3DEXT');
17872   glCompressedMultiTexSubImage2DEXT := dglGetProcAddress('glCompressedMultiTexSubImage2DEXT');
17873   glCompressedMultiTexSubImage1DEXT := dglGetProcAddress('glCompressedMultiTexSubImage1DEXT');
17874   glGetCompressedMultiTexImageEXT := dglGetProcAddress('glGetCompressedMultiTexImageEXT');
17875   glNamedProgramStringEXT := dglGetProcAddress('glNamedProgramStringEXT');
17876   glNamedProgramLocalParameter4dEXT := dglGetProcAddress('glNamedProgramLocalParameter4dEXT');
17877   glNamedProgramLocalParameter4dvEXT := dglGetProcAddress('glNamedProgramLocalParameter4dvEXT');
17878   glNamedProgramLocalParameter4fEXT := dglGetProcAddress('glNamedProgramLocalParameter4fEXT');
17879   glNamedProgramLocalParameter4fvEXT := dglGetProcAddress('glNamedProgramLocalParameter4fvEXT');
17880   glGetNamedProgramLocalParameterdvEXT := dglGetProcAddress('glGetNamedProgramLocalParameterdvEXT');
17881   glGetNamedProgramLocalParameterfvEXT := dglGetProcAddress('glGetNamedProgramLocalParameterfvEXT');
17882   glGetNamedProgramivEXT := dglGetProcAddress('glGetNamedProgramivEXT');
17883   glGetNamedProgramStringEXT := dglGetProcAddress('glGetNamedProgramStringEXT');
17884   glNamedProgramLocalParameters4fvEXT := dglGetProcAddress('glNamedProgramLocalParameters4fvEXT');
17885   glNamedProgramLocalParameterI4iEXT := dglGetProcAddress('glNamedProgramLocalParameterI4iEXT');
17886   glNamedProgramLocalParameterI4ivEXT := dglGetProcAddress('glNamedProgramLocalParameterI4ivEXT');
17887   glNamedProgramLocalParametersI4ivEXT := dglGetProcAddress('glNamedProgramLocalParametersI4ivEXT');
17888   glNamedProgramLocalParameterI4uiEXT := dglGetProcAddress('glNamedProgramLocalParameterI4uiEXT');
17889   glNamedProgramLocalParameterI4uivEXT := dglGetProcAddress('glNamedProgramLocalParameterI4uivEXT');
17890   glNamedProgramLocalParametersI4uivEXT := dglGetProcAddress('glNamedProgramLocalParametersI4uivEXT');
17891   glGetNamedProgramLocalParameterIivEXT := dglGetProcAddress('glGetNamedProgramLocalParameterIivEXT');
17892   glGetNamedProgramLocalParameterIuivEXT := dglGetProcAddress('glGetNamedProgramLocalParameterIuivEXT');
17893   glTextureParameterIivEXT := dglGetProcAddress('glTextureParameterIivEXT');
17894   glTextureParameterIuivEXT := dglGetProcAddress('glTextureParameterIuivEXT');
17895   glGetTextureParameterIivEXT := dglGetProcAddress('glGetTextureParameterIivEXT');
17896   glGetTextureParameterIuivEXT := dglGetProcAddress('glGetTextureParameterIuivEXT');
17897   glMultiTexParameterIivEXT := dglGetProcAddress('glMultiTexParameterIivEXT');
17898   glMultiTexParameterIuivEXT := dglGetProcAddress('glMultiTexParameterIuivEXT');
17899   glGetMultiTexParameterIivEXT := dglGetProcAddress('glGetMultiTexParameterIivEXT');
17900   glGetMultiTexParameterIuivEXT := dglGetProcAddress('glGetMultiTexParameterIuivEXT');
17901   glProgramUniform1fEXT := dglGetProcAddress('glProgramUniform1fEXT');
17902   glProgramUniform2fEXT := dglGetProcAddress('glProgramUniform2fEXT');
17903   glProgramUniform3fEXT := dglGetProcAddress('glProgramUniform3fEXT');
17904   glProgramUniform4fEXT := dglGetProcAddress('glProgramUniform4fEXT');
17905   glProgramUniform1iEXT := dglGetProcAddress('glProgramUniform1iEXT');
17906   glProgramUniform2iEXT := dglGetProcAddress('glProgramUniform2iEXT');
17907   glProgramUniform3iEXT := dglGetProcAddress('glProgramUniform3iEXT');
17908   glProgramUniform4iEXT := dglGetProcAddress('glProgramUniform4iEXT');
17909   glProgramUniform1fvEXT := dglGetProcAddress('glProgramUniform1fvEXT');
17910   glProgramUniform2fvEXT := dglGetProcAddress('glProgramUniform2fvEXT');
17911   glProgramUniform3fvEXT := dglGetProcAddress('glProgramUniform3fvEXT');
17912   glProgramUniform4fvEXT := dglGetProcAddress('glProgramUniform4fvEXT');
17913   glProgramUniform1ivEXT := dglGetProcAddress('glProgramUniform1ivEXT');
17914   glProgramUniform2ivEXT := dglGetProcAddress('glProgramUniform2ivEXT');
17915   glProgramUniform3ivEXT := dglGetProcAddress('glProgramUniform3ivEXT');
17916   glProgramUniform4ivEXT := dglGetProcAddress('glProgramUniform4ivEXT');
17917   glProgramUniformMatrix2fvEXT := dglGetProcAddress('glProgramUniformMatrix2fvEXT');
17918   glProgramUniformMatrix3fvEXT := dglGetProcAddress('glProgramUniformMatrix3fvEXT');
17919   glProgramUniformMatrix4fvEXT := dglGetProcAddress('glProgramUniformMatrix4fvEXT');
17920   glProgramUniformMatrix2x3fvEXT := dglGetProcAddress('glProgramUniformMatrix2x3fvEXT');
17921   glProgramUniformMatrix3x2fvEXT := dglGetProcAddress('glProgramUniformMatrix3x2fvEXT');
17922   glProgramUniformMatrix2x4fvEXT := dglGetProcAddress('glProgramUniformMatrix2x4fvEXT');
17923   glProgramUniformMatrix4x2fvEXT := dglGetProcAddress('glProgramUniformMatrix4x2fvEXT');
17924   glProgramUniformMatrix3x4fvEXT := dglGetProcAddress('glProgramUniformMatrix3x4fvEXT');
17925   glProgramUniformMatrix4x3fvEXT := dglGetProcAddress('glProgramUniformMatrix4x3fvEXT');
17926   glProgramUniform1uiEXT := dglGetProcAddress('glProgramUniform1uiEXT');
17927   glProgramUniform2uiEXT := dglGetProcAddress('glProgramUniform2uiEXT');
17928   glProgramUniform3uiEXT := dglGetProcAddress('glProgramUniform3uiEXT');
17929   glProgramUniform4uiEXT := dglGetProcAddress('glProgramUniform4uiEXT');
17930   glProgramUniform1uivEXT := dglGetProcAddress('glProgramUniform1uivEXT');
17931   glProgramUniform2uivEXT := dglGetProcAddress('glProgramUniform2uivEXT');
17932   glProgramUniform3uivEXT := dglGetProcAddress('glProgramUniform3uivEXT');
17933   glProgramUniform4uivEXT := dglGetProcAddress('glProgramUniform4uivEXT');
17934   glNamedBufferDataEXT := dglGetProcAddress('glNamedBufferDataEXT');
17935   glNamedBufferSubDataEXT := dglGetProcAddress('glNamedBufferSubDataEXT');
17936   glMapNamedBufferEXT := dglGetProcAddress('glMapNamedBufferEXT');
17937   glUnmapNamedBufferEXT := dglGetProcAddress('glUnmapNamedBufferEXT');
17938   glMapNamedBufferRangeEXT := dglGetProcAddress('glMapNamedBufferRangeEXT');
17939   glFlushMappedNamedBufferRangeEXT := dglGetProcAddress('glFlushMappedNamedBufferRangeEXT');
17940   glNamedCopyBufferSubDataEXT := dglGetProcAddress('glNamedCopyBufferSubDataEXT');
17941   glGetNamedBufferParameterivEXT := dglGetProcAddress('glGetNamedBufferParameterivEXT');
17942   glGetNamedBufferPointervEXT := dglGetProcAddress('glGetNamedBufferPointervEXT');
17943   glGetNamedBufferSubDataEXT := dglGetProcAddress('glGetNamedBufferSubDataEXT');
17944   glTextureBufferEXT := dglGetProcAddress('glTextureBufferEXT');
17945   glMultiTexBufferEXT := dglGetProcAddress('glMultiTexBufferEXT');
17946   glNamedRenderbufferStorageEXT := dglGetProcAddress('glNamedRenderbufferStorageEXT');
17947   glGetNamedRenderbufferParameterivEXT := dglGetProcAddress('glGetNamedRenderbufferParameterivEXT');
17948   glCheckNamedFramebufferStatusEXT := dglGetProcAddress('glCheckNamedFramebufferStatusEXT');
17949   glNamedFramebufferTexture1DEXT := dglGetProcAddress('glNamedFramebufferTexture1DEXT');
17950   glNamedFramebufferTexture2DEXT := dglGetProcAddress('glNamedFramebufferTexture2DEXT');
17951   glNamedFramebufferTexture3DEXT := dglGetProcAddress('glNamedFramebufferTexture3DEXT');
17952   glNamedFramebufferRenderbufferEXT := dglGetProcAddress('glNamedFramebufferRenderbufferEXT');
17953   glGetNamedFramebufferAttachmentParameterivEXT := dglGetProcAddress('glGetNamedFramebufferAttachmentParameterivEXT');
17954   glGenerateTextureMipmapEXT := dglGetProcAddress('glGenerateTextureMipmapEXT');
17955   glGenerateMultiTexMipmapEXT := dglGetProcAddress('glGenerateMultiTexMipmapEXT');
17956   glFramebufferDrawBufferEXT := dglGetProcAddress('glFramebufferDrawBufferEXT');
17957   glFramebufferDrawBuffersEXT := dglGetProcAddress('glFramebufferDrawBuffersEXT');
17958   glFramebufferReadBufferEXT := dglGetProcAddress('glFramebufferReadBufferEXT');
17959   glGetFramebufferParameterivEXT := dglGetProcAddress('glGetFramebufferParameterivEXT');
17960   glNamedRenderbufferStorageMultisampleEXT := dglGetProcAddress('glNamedRenderbufferStorageMultisampleEXT');
17961   glNamedRenderbufferStorageMultisampleCoverageEXT := dglGetProcAddress('glNamedRenderbufferStorageMultisampleCoverageEXT');
17962   glNamedFramebufferTextureEXT := dglGetProcAddress('glNamedFramebufferTextureEXT');
17963   glNamedFramebufferTextureLayerEXT := dglGetProcAddress('glNamedFramebufferTextureLayerEXT');
17964   glNamedFramebufferTextureFaceEXT := dglGetProcAddress('glNamedFramebufferTextureFaceEXT');
17965   glTextureRenderbufferEXT := dglGetProcAddress('glTextureRenderbufferEXT');
17966   glMultiTexRenderbufferEXT := dglGetProcAddress('glMultiTexRenderbufferEXT');
17967   glProgramUniform1dEXT := dglGetProcAddress('glProgramUniform1dEXT');
17968   glProgramUniform2dEXT := dglGetProcAddress('glProgramUniform2dEXT');
17969   glProgramUniform3dEXT := dglGetProcAddress('glProgramUniform3dEXT');
17970   glProgramUniform4dEXT := dglGetProcAddress('glProgramUniform4dEXT');
17971   glProgramUniform1dvEXT := dglGetProcAddress('glProgramUniform1dvEXT');
17972   glProgramUniform2dvEXT := dglGetProcAddress('glProgramUniform2dvEXT');
17973   glProgramUniform3dvEXT := dglGetProcAddress('glProgramUniform3dvEXT');
17974   glProgramUniform4dvEXT := dglGetProcAddress('glProgramUniform4dvEXT');
17975   glProgramUniformMatrix2dvEXT := dglGetProcAddress('glProgramUniformMatrix2dvEXT');
17976   glProgramUniformMatrix3dvEXT := dglGetProcAddress('glProgramUniformMatrix3dvEXT');
17977   glProgramUniformMatrix4dvEXT := dglGetProcAddress('glProgramUniformMatrix4dvEXT');
17978   glProgramUniformMatrix2x3dvEXT := dglGetProcAddress('glProgramUniformMatrix2x3dvEXT');
17979   glProgramUniformMatrix2x4dvEXT := dglGetProcAddress('glProgramUniformMatrix2x4dvEXT');
17980   glProgramUniformMatrix3x2dvEXT := dglGetProcAddress('glProgramUniformMatrix3x2dvEXT');
17981   glProgramUniformMatrix3x4dvEXT := dglGetProcAddress('glProgramUniformMatrix3x4dvEXT');
17982   glProgramUniformMatrix4x2dvEXT := dglGetProcAddress('glProgramUniformMatrix4x2dvEXT');
17983   glProgramUniformMatrix4x3dvEXT := dglGetProcAddress('glProgramUniformMatrix4x3dvEXT');
17984 end;
17985
17986 procedure Read_GL_EXT_separate_shader_objects;
17987 begin
17988   glUseShaderProgramEXT := dglGetProcAddress('glUseShaderProgramEXT');
17989   glActiveProgramEXT := dglGetProcAddress('glActiveProgramEXT');
17990   glCreateShaderProgramEXT := dglGetProcAddress('glCreateShaderProgramEXT');
17991 end;
17992
17993 procedure Read_GL_EXT_shader_image_load_store;
17994 begin
17995   glBindImageTextureEXT := dglGetProcAddress('glBindImageTextureEXT');
17996   glMemoryBarrierEXT := dglGetProcAddress('glMemoryBarrierEXT');
17997 end;
17998
17999 procedure Read_GL_EXT_vertex_attrib_64bit;
18000 begin
18001   glVertexAttribL1dEXT := dglGetProcAddress('glVertexAttribL1dEXT');
18002   glVertexAttribL2dEXT := dglGetProcAddress('glVertexAttribL2dEXT');
18003   glVertexAttribL3dEXT := dglGetProcAddress('glVertexAttribL3dEXT');
18004   glVertexAttribL4dEXT := dglGetProcAddress('glVertexAttribL4dEXT');
18005   glVertexAttribL1dvEXT := dglGetProcAddress('glVertexAttribL1dvEXT');
18006   glVertexAttribL2dvEXT := dglGetProcAddress('glVertexAttribL2dvEXT');
18007   glVertexAttribL3dvEXT := dglGetProcAddress('glVertexAttribL3dvEXT');
18008   glVertexAttribL4dvEXT := dglGetProcAddress('glVertexAttribL4dvEXT');
18009   glVertexAttribLPointerEXT := dglGetProcAddress('glVertexAttribLPointerEXT');
18010   glGetVertexAttribLdvEXT := dglGetProcAddress('glGetVertexAttribLdvEXT');
18011   glVertexArrayVertexAttribLOffsetEXT := dglGetProcAddress('glVertexArrayVertexAttribLOffsetEXT');
18012 end;
18013
18014 procedure Read_GL_HP_image_transform;
18015 begin
18016   glImageTransformParameteriHP := dglGetProcAddress('glImageTransformParameteriHP');
18017   glImageTransformParameterfHP := dglGetProcAddress('glImageTransformParameterfHP');
18018   glImageTransformParameterivHP := dglGetProcAddress('glImageTransformParameterivHP');
18019   glImageTransformParameterfvHP := dglGetProcAddress('glImageTransformParameterfvHP');
18020   glGetImageTransformParameterivHP := dglGetProcAddress('glGetImageTransformParameterivHP');
18021   glGetImageTransformParameterfvHP := dglGetProcAddress('glGetImageTransformParameterfvHP');
18022 end;
18023
18024 procedure Read_GL_IBM_multimode_draw_arrays;
18025 begin
18026   glMultiModeDrawArraysIBM := dglGetProcAddress('glMultiModeDrawArraysIBM');
18027   glMultiModeDrawElementsIBM := dglGetProcAddress('glMultiModeDrawElementsIBM');
18028 end;
18029
18030 procedure Read_GL_IBM_vertex_array_lists;
18031 begin
18032   glColorPointerListIBM := dglGetProcAddress('glColorPointerListIBM');
18033   glSecondaryColorPointerListIBM := dglGetProcAddress('glSecondaryColorPointerListIBM');
18034   glEdgeFlagPointerListIBM := dglGetProcAddress('glEdgeFlagPointerListIBM');
18035   glFogCoordPointerListIBM := dglGetProcAddress('glFogCoordPointerListIBM');
18036   glIndexPointerListIBM := dglGetProcAddress('glIndexPointerListIBM');
18037   glNormalPointerListIBM := dglGetProcAddress('glNormalPointerListIBM');
18038   glTexCoordPointerListIBM := dglGetProcAddress('glTexCoordPointerListIBM');
18039   glVertexPointerListIBM := dglGetProcAddress('glVertexPointerListIBM');
18040 end;
18041
18042 procedure Read_GL_INGR_blend_func_separate;
18043 begin
18044   glBlendFuncSeparateINGR := dglGetProcAddress('glBlendFuncSeparateINGR');
18045 end;
18046
18047 procedure Read_GL_INTEL_parallel_arrays;
18048 begin
18049   glVertexPointervINTEL := dglGetProcAddress('glVertexPointervINTEL');
18050   glNormalPointervINTEL := dglGetProcAddress('glNormalPointervINTEL');
18051   glColorPointervINTEL := dglGetProcAddress('glColorPointervINTEL');
18052   glTexCoordPointervINTEL := dglGetProcAddress('glTexCoordPointervINTEL');
18053 end;
18054
18055 procedure Read_GL_MESA_resize_buffers;
18056 begin
18057   glResizeBuffersMESA := dglGetProcAddress('glResizeBuffersMESA');
18058 end;
18059
18060 procedure Read_GL_MESA_window_pos;
18061 begin
18062   glWindowPos2dMESA := dglGetProcAddress('glWindowPos2dMESA');
18063   glWindowPos2dvMESA := dglGetProcAddress('glWindowPos2dvMESA');
18064   glWindowPos2fMESA := dglGetProcAddress('glWindowPos2fMESA');
18065   glWindowPos2fvMESA := dglGetProcAddress('glWindowPos2fvMESA');
18066   glWindowPos2iMESA := dglGetProcAddress('glWindowPos2iMESA');
18067   glWindowPos2ivMESA := dglGetProcAddress('glWindowPos2ivMESA');
18068   glWindowPos2sMESA := dglGetProcAddress('glWindowPos2sMESA');
18069   glWindowPos2svMESA := dglGetProcAddress('glWindowPos2svMESA');
18070   glWindowPos3dMESA := dglGetProcAddress('glWindowPos3dMESA');
18071   glWindowPos3dvMESA := dglGetProcAddress('glWindowPos3dvMESA');
18072   glWindowPos3fMESA := dglGetProcAddress('glWindowPos3fMESA');
18073   glWindowPos3fvMESA := dglGetProcAddress('glWindowPos3fvMESA');
18074   glWindowPos3iMESA := dglGetProcAddress('glWindowPos3iMESA');
18075   glWindowPos3ivMESA := dglGetProcAddress('glWindowPos3ivMESA');
18076   glWindowPos3sMESA := dglGetProcAddress('glWindowPos3sMESA');
18077   glWindowPos3svMESA := dglGetProcAddress('glWindowPos3svMESA');
18078   glWindowPos4dMESA := dglGetProcAddress('glWindowPos4dMESA');
18079   glWindowPos4dvMESA := dglGetProcAddress('glWindowPos4dvMESA');
18080   glWindowPos4fMESA := dglGetProcAddress('glWindowPos4fMESA');
18081   glWindowPos4fvMESA := dglGetProcAddress('glWindowPos4fvMESA');
18082   glWindowPos4iMESA := dglGetProcAddress('glWindowPos4iMESA');
18083   glWindowPos4ivMESA := dglGetProcAddress('glWindowPos4ivMESA');
18084   glWindowPos4sMESA := dglGetProcAddress('glWindowPos4sMESA');
18085   glWindowPos4svMESA := dglGetProcAddress('glWindowPos4svMESA');
18086 end;
18087
18088 procedure Read_GL_NV_evaluators;
18089 begin
18090   glMapControlPointsNV := dglGetProcAddress('glMapControlPointsNV');
18091   glMapParameterivNV := dglGetProcAddress('glMapParameterivNV');
18092   glMapParameterfvNV := dglGetProcAddress('glMapParameterfvNV');
18093   glGetMapControlPointsNV := dglGetProcAddress('glGetMapControlPointsNV');
18094   glGetMapParameterivNV := dglGetProcAddress('glGetMapParameterivNV');
18095   glGetMapParameterfvNV := dglGetProcAddress('glGetMapParameterfvNV');
18096   glGetMapAttribParameterivNV := dglGetProcAddress('glGetMapAttribParameterivNV');
18097   glGetMapAttribParameterfvNV := dglGetProcAddress('glGetMapAttribParameterfvNV');
18098   glEvalMapsNV := dglGetProcAddress('glEvalMapsNV');
18099 end;
18100
18101 procedure Read_GL_NV_fence;
18102 begin
18103   glDeleteFencesNV := dglGetProcAddress('glDeleteFencesNV');
18104   glGenFencesNV := dglGetProcAddress('glGenFencesNV');
18105   glIsFenceNV := dglGetProcAddress('glIsFenceNV');
18106   glTestFenceNV := dglGetProcAddress('glTestFenceNV');
18107   glGetFenceivNV := dglGetProcAddress('glGetFenceivNV');
18108   glFinishFenceNV := dglGetProcAddress('glFinishFenceNV');
18109   glSetFenceNV := dglGetProcAddress('glSetFenceNV');
18110 end;
18111
18112 procedure Read_GL_NV_fragment_program;
18113 begin
18114   glProgramNamedParameter4fNV := dglGetProcAddress('glProgramNamedParameter4fNV');
18115   glProgramNamedParameter4dNV := dglGetProcAddress('glProgramNamedParameter4dNV');
18116   glProgramNamedParameter4fvNV := dglGetProcAddress('glProgramNamedParameter4fvNV');
18117   glProgramNamedParameter4dvNV := dglGetProcAddress('glProgramNamedParameter4dvNV');
18118   glGetProgramNamedParameterfvNV := dglGetProcAddress('glGetProgramNamedParameterfvNV');
18119   glGetProgramNamedParameterdvNV := dglGetProcAddress('glGetProgramNamedParameterdvNV');
18120 end;
18121
18122 procedure Read_GL_NV_half_float;
18123 begin
18124   glVertex2hNV := dglGetProcAddress('glVertex2hNV');
18125   glVertex2hvNV := dglGetProcAddress('glVertex2hvNV');
18126   glVertex3hNV := dglGetProcAddress('glVertex3hNV');
18127   glVertex3hvNV := dglGetProcAddress('glVertex3hvNV');
18128   glVertex4hNV := dglGetProcAddress('glVertex4hNV');
18129   glVertex4hvNV := dglGetProcAddress('glVertex4hvNV');
18130   glNormal3hNV := dglGetProcAddress('glNormal3hNV');
18131   glNormal3hvNV := dglGetProcAddress('glNormal3hvNV');
18132   glColor3hNV := dglGetProcAddress('glColor3hNV');
18133   glColor3hvNV := dglGetProcAddress('glColor3hvNV');
18134   glColor4hNV := dglGetProcAddress('glColor4hNV');
18135   glColor4hvNV := dglGetProcAddress('glColor4hvNV');
18136   glTexCoord1hNV := dglGetProcAddress('glTexCoord1hNV');
18137   glTexCoord1hvNV := dglGetProcAddress('glTexCoord1hvNV');
18138   glTexCoord2hNV := dglGetProcAddress('glTexCoord2hNV');
18139   glTexCoord2hvNV := dglGetProcAddress('glTexCoord2hvNV');
18140   glTexCoord3hNV := dglGetProcAddress('glTexCoord3hNV');
18141   glTexCoord3hvNV := dglGetProcAddress('glTexCoord3hvNV');
18142   glTexCoord4hNV := dglGetProcAddress('glTexCoord4hNV');
18143   glTexCoord4hvNV := dglGetProcAddress('glTexCoord4hvNV');
18144   glMultiTexCoord1hNV := dglGetProcAddress('glMultiTexCoord1hNV');
18145   glMultiTexCoord1hvNV := dglGetProcAddress('glMultiTexCoord1hvNV');
18146   glMultiTexCoord2hNV := dglGetProcAddress('glMultiTexCoord2hNV');
18147   glMultiTexCoord2hvNV := dglGetProcAddress('glMultiTexCoord2hvNV');
18148   glMultiTexCoord3hNV := dglGetProcAddress('glMultiTexCoord3hNV');
18149   glMultiTexCoord3hvNV := dglGetProcAddress('glMultiTexCoord3hvNV');
18150   glMultiTexCoord4hNV := dglGetProcAddress('glMultiTexCoord4hNV');
18151   glMultiTexCoord4hvNV := dglGetProcAddress('glMultiTexCoord4hvNV');
18152   glFogCoordhNV := dglGetProcAddress('glFogCoordhNV');
18153   glFogCoordhvNV := dglGetProcAddress('glFogCoordhvNV');
18154   glSecondaryColor3hNV := dglGetProcAddress('glSecondaryColor3hNV');
18155   glSecondaryColor3hvNV := dglGetProcAddress('glSecondaryColor3hvNV');
18156   glVertexWeighthNV := dglGetProcAddress('glVertexWeighthNV');
18157   glVertexWeighthvNV := dglGetProcAddress('glVertexWeighthvNV');
18158   glVertexAttrib1hNV := dglGetProcAddress('glVertexAttrib1hNV');
18159   glVertexAttrib1hvNV := dglGetProcAddress('glVertexAttrib1hvNV');
18160   glVertexAttrib2hNV := dglGetProcAddress('glVertexAttrib2hNV');
18161   glVertexAttrib2hvNV := dglGetProcAddress('glVertexAttrib2hvNV');
18162   glVertexAttrib3hNV := dglGetProcAddress('glVertexAttrib3hNV');
18163   glVertexAttrib3hvNV := dglGetProcAddress('glVertexAttrib3hvNV');
18164   glVertexAttrib4hNV := dglGetProcAddress('glVertexAttrib4hNV');
18165   glVertexAttrib4hvNV := dglGetProcAddress('glVertexAttrib4hvNV');
18166   glVertexAttribs1hvNV := dglGetProcAddress('glVertexAttribs1hvNV');
18167   glVertexAttribs2hvNV := dglGetProcAddress('glVertexAttribs2hvNV');
18168   glVertexAttribs3hvNV := dglGetProcAddress('glVertexAttribs3hvNV');
18169   glVertexAttribs4hvNV := dglGetProcAddress('glVertexAttribs4hvNV');
18170 end;
18171
18172 procedure Read_GL_NV_occlusion_query;
18173 begin
18174   glGenOcclusionQueriesNV := dglGetProcAddress('glGenOcclusionQueriesNV');
18175   glDeleteOcclusionQueriesNV := dglGetProcAddress('glDeleteOcclusionQueriesNV');
18176   glIsOcclusionQueryNV := dglGetProcAddress('glIsOcclusionQueryNV');
18177   glBeginOcclusionQueryNV := dglGetProcAddress('glBeginOcclusionQueryNV');
18178   glEndOcclusionQueryNV := dglGetProcAddress('glEndOcclusionQueryNV');
18179   glGetOcclusionQueryivNV := dglGetProcAddress('glGetOcclusionQueryivNV');
18180   glGetOcclusionQueryuivNV := dglGetProcAddress('glGetOcclusionQueryuivNV');
18181 end;
18182
18183 procedure Read_GL_NV_pixel_data_range;
18184 begin
18185   glPixelDataRangeNV := dglGetProcAddress('glPixelDataRangeNV');
18186   glFlushPixelDataRangeNV := dglGetProcAddress('glFlushPixelDataRangeNV');
18187 end;
18188
18189 procedure Read_GL_NV_point_sprite;
18190 begin
18191   glPointParameteriNV := dglGetProcAddress('glPointParameteriNV');
18192   glPointParameterivNV := dglGetProcAddress('glPointParameterivNV');
18193 end;
18194
18195 procedure Read_GL_NV_primitive_restart;
18196 begin
18197   glPrimitiveRestartNV := dglGetProcAddress('glPrimitiveRestartNV');
18198   glPrimitiveRestartIndexNV := dglGetProcAddress('glPrimitiveRestartIndexNV');
18199 end;
18200
18201 procedure Read_GL_NV_register_combiners;
18202 begin
18203   glCombinerParameterfvNV := dglGetProcAddress('glCombinerParameterfvNV');
18204   glCombinerParameterfNV := dglGetProcAddress('glCombinerParameterfNV');
18205   glCombinerParameterivNV := dglGetProcAddress('glCombinerParameterivNV');
18206   glCombinerParameteriNV := dglGetProcAddress('glCombinerParameteriNV');
18207   glCombinerInputNV := dglGetProcAddress('glCombinerInputNV');
18208   glCombinerOutputNV := dglGetProcAddress('glCombinerOutputNV');
18209   glFinalCombinerInputNV := dglGetProcAddress('glFinalCombinerInputNV');
18210   glGetCombinerInputParameterfvNV := dglGetProcAddress('glGetCombinerInputParameterfvNV');
18211   glGetCombinerInputParameterivNV := dglGetProcAddress('glGetCombinerInputParameterivNV');
18212   glGetCombinerOutputParameterfvNV := dglGetProcAddress('glGetCombinerOutputParameterfvNV');
18213   glGetCombinerOutputParameterivNV := dglGetProcAddress('glGetCombinerOutputParameterivNV');
18214   glGetFinalCombinerInputParameterfvNV := dglGetProcAddress('glGetFinalCombinerInputParameterfvNV');
18215   glGetFinalCombinerInputParameterivNV := dglGetProcAddress('glGetFinalCombinerInputParameterivNV');
18216 end;
18217
18218 procedure Read_GL_NV_register_combiners2;
18219 begin
18220   glCombinerStageParameterfvNV := dglGetProcAddress('glCombinerStageParameterfvNV');
18221   glGetCombinerStageParameterfvNV := dglGetProcAddress('glGetCombinerStageParameterfvNV');
18222 end;
18223
18224 procedure Read_GL_NV_vertex_array_range;
18225 begin
18226   glFlushVertexArrayRangeNV := dglGetProcAddress('glFlushVertexArrayRangeNV');
18227   glVertexArrayRangeNV := dglGetProcAddress('glVertexArrayRangeNV');
18228 end;
18229
18230 procedure Read_GL_NV_vertex_program;
18231 begin
18232   glAreProgramsResidentNV := dglGetProcAddress('glAreProgramsResidentNV');
18233   glBindProgramNV := dglGetProcAddress('glBindProgramNV');
18234   glDeleteProgramsNV := dglGetProcAddress('glDeleteProgramsNV');
18235   glExecuteProgramNV := dglGetProcAddress('glExecuteProgramNV');
18236   glGenProgramsNV := dglGetProcAddress('glGenProgramsNV');
18237   glGetProgramParameterdvNV := dglGetProcAddress('glGetProgramParameterdvNV');
18238   glGetProgramParameterfvNV := dglGetProcAddress('glGetProgramParameterfvNV');
18239   glGetProgramivNV := dglGetProcAddress('glGetProgramivNV');
18240   glGetProgramStringNV := dglGetProcAddress('glGetProgramStringNV');
18241   glGetTrackMatrixivNV := dglGetProcAddress('glGetTrackMatrixivNV');
18242   glGetVertexAttribdvNV := dglGetProcAddress('glGetVertexAttribdvNV');
18243   glGetVertexAttribfvNV := dglGetProcAddress('glGetVertexAttribfvNV');
18244   glGetVertexAttribivNV := dglGetProcAddress('glGetVertexAttribivNV');
18245   glGetVertexAttribPointervNV := dglGetProcAddress('glGetVertexAttribPointervNV');
18246   glIsProgramNV := dglGetProcAddress('glIsProgramNV');
18247   glLoadProgramNV := dglGetProcAddress('glLoadProgramNV');
18248   glProgramParameter4dNV := dglGetProcAddress('glProgramParameter4dNV');
18249   glProgramParameter4dvNV := dglGetProcAddress('glProgramParameter4dvNV');
18250   glProgramParameter4fNV := dglGetProcAddress('glProgramParameter4fNV');
18251   glProgramParameter4fvNV := dglGetProcAddress('glProgramParameter4fvNV');
18252   glProgramParameters4dvNV := dglGetProcAddress('glProgramParameters4dvNV');
18253   glProgramParameters4fvNV := dglGetProcAddress('glProgramParameters4fvNV');
18254   glRequestResidentProgramsNV := dglGetProcAddress('glRequestResidentProgramsNV');
18255   glTrackMatrixNV := dglGetProcAddress('glTrackMatrixNV');
18256   glVertexAttribPointerNV := dglGetProcAddress('glVertexAttribPointerNV');
18257   glVertexAttrib1dNV := dglGetProcAddress('glVertexAttrib1dNV');
18258   glVertexAttrib1dvNV := dglGetProcAddress('glVertexAttrib1dvNV');
18259   glVertexAttrib1fNV := dglGetProcAddress('glVertexAttrib1fNV');
18260   glVertexAttrib1fvNV := dglGetProcAddress('glVertexAttrib1fvNV');
18261   glVertexAttrib1sNV := dglGetProcAddress('glVertexAttrib1sNV');
18262   glVertexAttrib1svNV := dglGetProcAddress('glVertexAttrib1svNV');
18263   glVertexAttrib2dNV := dglGetProcAddress('glVertexAttrib2dNV');
18264   glVertexAttrib2dvNV := dglGetProcAddress('glVertexAttrib2dvNV');
18265   glVertexAttrib2fNV := dglGetProcAddress('glVertexAttrib2fNV');
18266   glVertexAttrib2fvNV := dglGetProcAddress('glVertexAttrib2fvNV');
18267   glVertexAttrib2sNV := dglGetProcAddress('glVertexAttrib2sNV');
18268   glVertexAttrib2svNV := dglGetProcAddress('glVertexAttrib2svNV');
18269   glVertexAttrib3dNV := dglGetProcAddress('glVertexAttrib3dNV');
18270   glVertexAttrib3dvNV := dglGetProcAddress('glVertexAttrib3dvNV');
18271   glVertexAttrib3fNV := dglGetProcAddress('glVertexAttrib3fNV');
18272   glVertexAttrib3fvNV := dglGetProcAddress('glVertexAttrib3fvNV');
18273   glVertexAttrib3sNV := dglGetProcAddress('glVertexAttrib3sNV');
18274   glVertexAttrib3svNV := dglGetProcAddress('glVertexAttrib3svNV');
18275   glVertexAttrib4dNV := dglGetProcAddress('glVertexAttrib4dNV');
18276   glVertexAttrib4dvNV := dglGetProcAddress('glVertexAttrib4dvNV');
18277   glVertexAttrib4fNV := dglGetProcAddress('glVertexAttrib4fNV');
18278   glVertexAttrib4fvNV := dglGetProcAddress('glVertexAttrib4fvNV');
18279   glVertexAttrib4sNV := dglGetProcAddress('glVertexAttrib4sNV');
18280   glVertexAttrib4svNV := dglGetProcAddress('glVertexAttrib4svNV');
18281   glVertexAttrib4ubNV := dglGetProcAddress('glVertexAttrib4ubNV');
18282   glVertexAttrib4ubvNV := dglGetProcAddress('glVertexAttrib4ubvNV');
18283   glVertexAttribs1dvNV := dglGetProcAddress('glVertexAttribs1dvNV');
18284   glVertexAttribs1fvNV := dglGetProcAddress('glVertexAttribs1fvNV');
18285   glVertexAttribs1svNV := dglGetProcAddress('glVertexAttribs1svNV');
18286   glVertexAttribs2dvNV := dglGetProcAddress('glVertexAttribs2dvNV');
18287   glVertexAttribs2fvNV := dglGetProcAddress('glVertexAttribs2fvNV');
18288   glVertexAttribs2svNV := dglGetProcAddress('glVertexAttribs2svNV');
18289   glVertexAttribs3dvNV := dglGetProcAddress('glVertexAttribs3dvNV');
18290   glVertexAttribs3fvNV := dglGetProcAddress('glVertexAttribs3fvNV');
18291   glVertexAttribs3svNV := dglGetProcAddress('glVertexAttribs3svNV');
18292   glVertexAttribs4dvNV := dglGetProcAddress('glVertexAttribs4dvNV');
18293   glVertexAttribs4fvNV := dglGetProcAddress('glVertexAttribs4fvNV');
18294   glVertexAttribs4svNV := dglGetProcAddress('glVertexAttribs4svNV');
18295   glVertexAttribs4ubvNV := dglGetProcAddress('glVertexAttribs4ubvNV');
18296 end;
18297
18298 procedure Read_GL_NV_depth_buffer_float;
18299 begin
18300   glDepthRangedNV := dglGetProcAddress('glDepthRangedNV');
18301   glClearDepthdNV := dglGetProcAddress('glClearDepthdNV');
18302   glDepthBoundsdNV := dglGetProcAddress('glDepthBoundsdNV');
18303 end;
18304
18305 procedure Read_GL_NV_framebuffer_multisample_coverage;
18306 begin
18307   glRenderbufferStorageMultsampleCoverageNV := dglGetProcAddress('glRenderbufferStorageMultsampleCoverageNV');
18308 end;
18309
18310 procedure Read_GL_NV_geometry_program4;
18311 begin
18312   glProgramVertexLimitNV := dglGetProcAddress('glProgramVertexLimitNV');
18313 end;
18314
18315 procedure Read_GL_NV_gpu_program4;
18316 begin
18317   glProgramLocalParameterI4iNV := dglGetProcAddress('glProgramLocalParameterI4iNV');
18318   glProgramLocalParameterI4ivNV := dglGetProcAddress('glProgramLocalParameterI4ivNV');
18319   glProgramLocalParametersI4ivNV := dglGetProcAddress('glProgramLocalParametersI4ivNV');
18320   glProgramLocalParameterI4uiNV := dglGetProcAddress('glProgramLocalParameterI4uiNV');
18321   glProgramLocalParameterI4uivNV := dglGetProcAddress('glProgramLocalParameterI4uivNV');
18322   glProgramLocalParametersI4uivNV := dglGetProcAddress('glProgramLocalParametersI4uivNV');
18323   glProgramEnvParameterI4iNV := dglGetProcAddress('glProgramEnvParameterI4iNV');
18324   glProgramEnvParameterI4ivNV := dglGetProcAddress('glProgramEnvParameterI4ivNV');
18325   glProgramEnvParametersI4ivNV := dglGetProcAddress('glProgramEnvParametersI4ivNV');
18326   glProgramEnvParameterI4uiNV := dglGetProcAddress('glProgramEnvParameterI4uiNV');
18327   glProgramEnvParameterI4uivNV := dglGetProcAddress('glProgramEnvParameterI4uivNV');
18328   glProgramEnvParametersI4uivNV := dglGetProcAddress('glProgramEnvParametersI4uivNV');
18329   glGetProgramLocalParameterIivNV := dglGetProcAddress('glGetProgramLocalParameterIivNV');
18330   glGetProgramLocalParameterIuivNV := dglGetProcAddress('glGetProgramLocalParameterIuivNV');
18331   glGetProgramEnvParameterIivNV := dglGetProcAddress('glGetProgramEnvParameterIivNV');
18332   glGetProgramEnvParameterIuivNV := dglGetProcAddress('glGetProgramEnvParameterIuivNV');
18333 end;
18334
18335 procedure Read_GL_NV_parameter_buffer_object;
18336 begin
18337   glProgramBufferParametersfvNV := dglGetProcAddress('glProgramBufferParametersfvNV');
18338   glProgramBufferParametersIivNV := dglGetProcAddress('glProgramBufferParametersIivNV');
18339   glProgramBufferParametersIuivNV := dglGetProcAddress('glProgramBufferParametersIuivNV');
18340 end;
18341
18342 procedure Read_GL_NV_transform_feedback;
18343 begin
18344   glBeginTransformFeedbackNV := dglGetProcAddress('glBeginTransformFeedbackNV');
18345   glEndTransformFeedbackNV := dglGetProcAddress('glEndTransformFeedbackNV');
18346   glTransformFeedbackAttribsNV := dglGetProcAddress('glTransformFeedbackAttribsNV');
18347   glBindBufferRangeNV := dglGetProcAddress('glBindBufferRangeNV');
18348   glBindBufferOffsetNV := dglGetProcAddress('glBindBufferOffsetNV');
18349   glBindBufferBaseNV := dglGetProcAddress('glBindBufferBaseNV');
18350   glTransformFeedbackVaryingsNV := dglGetProcAddress('glTransformFeedbackVaryingsNV');
18351   glActiveVaryingNV := dglGetProcAddress('glActiveVaryingNV');
18352   glGetVaryingLocationNV := dglGetProcAddress('glGetVaryingLocationNV');
18353   glGetActiveVaryingNV := dglGetProcAddress('glGetActiveVaryingNV');
18354   glGetTransformFeedbackVaryingNV := dglGetProcAddress('glGetTransformFeedbackVaryingNV');
18355   glTransformFeedbackStreamAttribsNV := dglGetProcAddress('glTransformFeedbackStreamAttribsNV');
18356 end;
18357
18358 procedure Read_GL_NV_conditional_render;
18359 begin
18360   glBeginConditionalRenderNV := dglGetProcAddress('glBeginConditionalRenderNV');
18361   glEndConditionalRenderNV := dglGetProcAddress('glEndConditionalRenderNV');
18362 end;
18363
18364 procedure Read_GL_NV_present_video;
18365 begin
18366   glPresentFrameKeyedNV := dglGetProcAddress('glPresentFrameKeyedNV');
18367   glPresentFrameDualFillNV := dglGetProcAddress('glPresentFrameDualFillNV');
18368   glGetVideoivNV := dglGetProcAddress('glGetVideoivNV');
18369   glGetVideouivNV := dglGetProcAddress('glGetVideouivNV');
18370   glGetVideoi64vNV := dglGetProcAddress('glGetVideoi64vNV');
18371   glGetVideoui64vNV := dglGetProcAddress('glGetVideoui64vNV');
18372 //  glVideoParameterivNV := dglGetProcAddress('glVideoParameterivNV');
18373 end;
18374
18375 procedure Read_GL_NV_explicit_multisample;
18376 begin
18377   glGetMultisamplefvNV := dglGetProcAddress('glGetMultisamplefvNV');
18378   glSampleMaskIndexedNV := dglGetProcAddress('glSampleMaskIndexedNV');
18379   glTexRenderbufferNV := dglGetProcAddress('glTexRenderbufferNV');
18380 end;
18381
18382 procedure Read_GL_NV_transform_feedback2;
18383 begin
18384   glBindTransformFeedbackNV := dglGetProcAddress('glBindTransformFeedbackNV');
18385   glDeleteTransformFeedbacksNV := dglGetProcAddress('glDeleteTransformFeedbacksNV');
18386   glGenTransformFeedbacksNV := dglGetProcAddress('glGenTransformFeedbacksNV');
18387   glIsTransformFeedbackNV := dglGetProcAddress('glIsTransformFeedbackNV');
18388   glPauseTransformFeedbackNV := dglGetProcAddress('glPauseTransformFeedbackNV');
18389   glResumeTransformFeedbackNV := dglGetProcAddress('glResumeTransformFeedbackNV');
18390   glDrawTransformFeedbackNV := dglGetProcAddress('glDrawTransformFeedbackNV');
18391 end;
18392
18393 procedure Read_GL_NV_video_capture;
18394 begin
18395   glBeginVideoCaptureNV := dglGetProcAddress('glBeginVideoCaptureNV');
18396   glBindVideoCaptureStreamBufferNV := dglGetProcAddress('glBindVideoCaptureStreamBufferNV');
18397   glBindVideoCaptureStreamTextureNV := dglGetProcAddress('glBindVideoCaptureStreamTextureNV');
18398   glEndVideoCaptureNV := dglGetProcAddress('glEndVideoCaptureNV');
18399   glGetVideoCaptureivNV := dglGetProcAddress('glGetVideoCaptureivNV');
18400   glGetVideoCaptureStreamivNV := dglGetProcAddress('glGetVideoCaptureStreamivNV');
18401   glGetVideoCaptureStreamfvNV := dglGetProcAddress('glGetVideoCaptureStreamfvNV');
18402   glGetVideoCaptureStreamdvNV := dglGetProcAddress('glGetVideoCaptureStreamdvNV');
18403   glVideoCaptureNV := dglGetProcAddress('glVideoCaptureNV');
18404   glVideoCaptureStreamParameterivNV := dglGetProcAddress('glVideoCaptureStreamParameterivNV');
18405   glVideoCaptureStreamParameterfvNV := dglGetProcAddress('glVideoCaptureStreamParameterfvNV');
18406   glVideoCaptureStreamParameterdvNV := dglGetProcAddress('glVideoCaptureStreamParameterdvNV');
18407 end;
18408
18409 procedure Read_GL_NV_copy_image;
18410 begin
18411   glCopyImageSubDataNV := dglGetProcAddress('glCopyImageSubDataNV');
18412 end;
18413
18414 procedure Read_GL_NV_shader_buffer_load;
18415 begin
18416   glMakeBufferResidentNV := dglGetProcAddress('glMakeBufferResidentNV');
18417   glMakeBufferNonResidentNV := dglGetProcAddress('glMakeBufferNonResidentNV');
18418   glIsBufferResidentNV := dglGetProcAddress('glIsBufferResidentNV');
18419   glMakeNamedBufferResidentNV := dglGetProcAddress('glMakeNamedBufferResidentNV');
18420   glMakeNamedBufferNonResidentNV := dglGetProcAddress('glMakeNamedBufferNonResidentNV');
18421   glIsNamedBufferResidentNV := dglGetProcAddress('glIsNamedBufferResidentNV');
18422   glGetBufferParameterui64vNV := dglGetProcAddress('glGetBufferParameterui64vNV');
18423   glGetNamedBufferParameterui64vNV := dglGetProcAddress('glGetNamedBufferParameterui64vNV');
18424   glGetIntegerui64vNV := dglGetProcAddress('glGetIntegerui64vNV');
18425   glUniformui64NV := dglGetProcAddress('glUniformui64NV');
18426   glUniformui64vNV := dglGetProcAddress('glUniformui64vNV');
18427   glGetUniformui64vNV := dglGetProcAddress('glGetUniformui64vNV');
18428   glProgramUniformui64NV := dglGetProcAddress('glProgramUniformui64NV');
18429   glProgramUniformui64vNV := dglGetProcAddress('glProgramUniformui64vNV');
18430 end;
18431
18432 procedure Read_GL_NV_vertex_buffer_unified_memory;
18433 begin
18434   glBufferAddressRangeNV := dglGetProcAddress('glBufferAddressRangeNV');
18435   glVertexFormatNV := dglGetProcAddress('glVertexFormatNV');
18436   glNormalFormatNV := dglGetProcAddress('glNormalFormatNV');
18437   glColorFormatNV := dglGetProcAddress('glColorFormatNV');
18438   glIndexFormatNV := dglGetProcAddress('glIndexFormatNV');
18439   glTexCoordFormatNV := dglGetProcAddress('glTexCoordFormatNV');
18440   glEdgeFlagFormatNV := dglGetProcAddress('glEdgeFlagFormatNV');
18441   glSecondaryColorFormatNV := dglGetProcAddress('glSecondaryColorFormatNV');
18442   glFogCoordFormatNV := dglGetProcAddress('glFogCoordFormatNV');
18443   glVertexAttribFormatNV := dglGetProcAddress('glVertexAttribFormatNV');
18444   glVertexAttribIFormatNV := dglGetProcAddress('glVertexAttribIFormatNV');
18445   glGetIntegerui64i_vNV := dglGetProcAddress('glGetIntegerui64i_vNV');
18446 end;
18447
18448 procedure Read_GL_NV_gpu_program5;
18449 begin
18450   glProgramSubroutineParametersuivNV := dglGetProcAddress('glProgramSubroutineParametersuivNV');
18451   glGetProgramSubroutineParameteruivNV := dglGetProcAddress('glGetProgramSubroutineParameteruivNV');
18452 end;
18453
18454 procedure Read_GL_NV_gpu_shader5;
18455 begin
18456   glUniform1i64NV := dglGetProcAddress('glUniform1i64NV');
18457   glUniform2i64NV := dglGetProcAddress('glUniform2i64NV');
18458   glUniform3i64NV := dglGetProcAddress('glUniform3i64NV');
18459   glUniform4i64NV := dglGetProcAddress('glUniform4i64NV');
18460   glUniform1i64vNV := dglGetProcAddress('glUniform1i64vNV');
18461   glUniform2i64vNV := dglGetProcAddress('glUniform2i64vNV');
18462   glUniform3i64vNV := dglGetProcAddress('glUniform3i64vNV');
18463   glUniform4i64vNV := dglGetProcAddress('glUniform4i64vNV');
18464   glUniform1ui64NV := dglGetProcAddress('glUniform1ui64NV');
18465   glUniform2ui64NV := dglGetProcAddress('glUniform2ui64NV');
18466   glUniform3ui64NV := dglGetProcAddress('glUniform3ui64NV');
18467   glUniform4ui64NV := dglGetProcAddress('glUniform4ui64NV');
18468   glUniform1ui64vNV := dglGetProcAddress('glUniform1ui64vNV');
18469   glUniform2ui64vNV := dglGetProcAddress('glUniform2ui64vNV');
18470   glUniform3ui64vNV := dglGetProcAddress('glUniform3ui64vNV');
18471   glUniform4ui64vNV := dglGetProcAddress('glUniform4ui64vNV');
18472   glGetUniformi64vNV := dglGetProcAddress('glGetUniformi64vNV');
18473   glProgramUniform1i64NV := dglGetProcAddress('glProgramUniform1i64NV');
18474   glProgramUniform2i64NV := dglGetProcAddress('glProgramUniform2i64NV');
18475   glProgramUniform3i64NV := dglGetProcAddress('glProgramUniform3i64NV');
18476   glProgramUniform4i64NV := dglGetProcAddress('glProgramUniform4i64NV');
18477   glProgramUniform1i64vNV := dglGetProcAddress('glProgramUniform1i64vNV');
18478   glProgramUniform2i64vNV := dglGetProcAddress('glProgramUniform2i64vNV');
18479   glProgramUniform3i64vNV := dglGetProcAddress('glProgramUniform3i64vNV');
18480   glProgramUniform4i64vNV := dglGetProcAddress('glProgramUniform4i64vNV');
18481   glProgramUniform1ui64NV := dglGetProcAddress('glProgramUniform1ui64NV');
18482   glProgramUniform2ui64NV := dglGetProcAddress('glProgramUniform2ui64NV');
18483   glProgramUniform3ui64NV := dglGetProcAddress('glProgramUniform3ui64NV');
18484   glProgramUniform4ui64NV := dglGetProcAddress('glProgramUniform4ui64NV');
18485   glProgramUniform1ui64vNV := dglGetProcAddress('glProgramUniform1ui64vNV');
18486   glProgramUniform2ui64vNV := dglGetProcAddress('glProgramUniform2ui64vNV');
18487   glProgramUniform3ui64vNV := dglGetProcAddress('glProgramUniform3ui64vNV');
18488   glProgramUniform4ui64vNV := dglGetProcAddress('glProgramUniform4ui64vNV');
18489 end;
18490
18491 procedure Read_GL_NV_vertex_attrib_integer_64bit;
18492 begin
18493   glVertexAttribL1i64NV := dglGetProcAddress('glVertexAttribL1i64NV');
18494   glVertexAttribL2i64NV := dglGetProcAddress('glVertexAttribL2i64NV');
18495   glVertexAttribL3i64NV := dglGetProcAddress('glVertexAttribL3i64NV');
18496   glVertexAttribL4i64NV := dglGetProcAddress('glVertexAttribL4i64NV');
18497   glVertexAttribL1i64vNV := dglGetProcAddress('glVertexAttribL1i64vNV');
18498   glVertexAttribL2i64vNV := dglGetProcAddress('glVertexAttribL2i64vNV');
18499   glVertexAttribL3i64vNV := dglGetProcAddress('glVertexAttribL3i64vNV');
18500   glVertexAttribL4i64vNV := dglGetProcAddress('glVertexAttribL4i64vNV');
18501   glVertexAttribL1ui64NV := dglGetProcAddress('glVertexAttribL1ui64NV');
18502   glVertexAttribL2ui64NV := dglGetProcAddress('glVertexAttribL2ui64NV');
18503   glVertexAttribL3ui64NV := dglGetProcAddress('glVertexAttribL3ui64NV');
18504   glVertexAttribL4ui64NV := dglGetProcAddress('glVertexAttribL4ui64NV');
18505   glVertexAttribL1ui64vNV := dglGetProcAddress('glVertexAttribL1ui64vNV');
18506   glVertexAttribL2ui64vNV := dglGetProcAddress('glVertexAttribL2ui64vNV');
18507   glVertexAttribL3ui64vNV := dglGetProcAddress('glVertexAttribL3ui64vNV');
18508   glVertexAttribL4ui64vNV := dglGetProcAddress('glVertexAttribL4ui64vNV');
18509   glGetVertexAttribLi64vNV := dglGetProcAddress('glGetVertexAttribLi64vNV');
18510   glGetVertexAttribLui64vNV := dglGetProcAddress('glGetVertexAttribLui64vNV');
18511   glVertexAttribLFormatNV := dglGetProcAddress('glVertexAttribLFormatNV');
18512 end;
18513
18514 procedure Read_GL_NV_vdpau_interop;
18515 begin
18516   glVDPAUInitNV := dglGetProcAddress('glVDPAUInitNV');
18517   glVDPAUFiniNV := dglGetProcAddress('glVDPAUFiniNV');
18518   glVDPAURegisterVideoSurfaceNV := dglGetProcAddress('glVDPAURegisterVideoSurfaceNV');
18519   glVDPAURegisterOutputSurfaceNV := dglGetProcAddress('glVDPAURegisterOutputSurfaceNV');
18520   glVDPAUIsSurfaceNV := dglGetProcAddress('glVDPAUIsSurfaceNV');
18521   glVDPAUUnregisterSurfaceNV := dglGetProcAddress('glVDPAUUnregisterSurfaceNV');
18522   glVDPAUGetSurfaceivNV := dglGetProcAddress('glVDPAUGetSurfaceivNV');
18523   glVDPAUSurfaceAccessNV := dglGetProcAddress('glVDPAUSurfaceAccessNV');
18524   glVDPAUMapSurfacesNV := dglGetProcAddress('glVDPAUMapSurfacesNV');
18525   glVDPAUUnmapSurfacesNV := dglGetProcAddress('glVDPAUUnmapSurfacesNV');
18526 end;
18527
18528 procedure Read_GL_NV_texture_barrier;
18529 begin
18530   glTextureBarrierNV := dglGetProcAddress('glTextureBarrierNV');
18531 end;
18532
18533 procedure Read_GL_PGI_misc_hints;
18534 begin
18535   glHintPGI := dglGetProcAddress('glHintPGI');
18536 end;
18537
18538 procedure Read_GL_SGIS_detail_texture;
18539 begin
18540   glDetailTexFuncSGIS := dglGetProcAddress('glDetailTexFuncSGIS');
18541   glGetDetailTexFuncSGIS := dglGetProcAddress('glGetDetailTexFuncSGIS');
18542 end;
18543
18544 procedure Read_GL_SGIS_fog_function;
18545 begin
18546   glFogFuncSGIS := dglGetProcAddress('glFogFuncSGIS');
18547   glGetFogFuncSGIS := dglGetProcAddress('glGetFogFuncSGIS');
18548 end;
18549
18550 procedure Read_GL_SGIS_multisample;
18551 begin
18552   glSampleMaskSGIS := dglGetProcAddress('glSampleMaskSGIS');
18553   glSamplePatternSGIS := dglGetProcAddress('glSamplePatternSGIS');
18554 end;
18555
18556 procedure Read_GL_SGIS_pixel_texture;
18557 begin
18558   glPixelTexGenParameteriSGIS := dglGetProcAddress('glPixelTexGenParameteriSGIS');
18559   glPixelTexGenParameterivSGIS := dglGetProcAddress('glPixelTexGenParameterivSGIS');
18560   glPixelTexGenParameterfSGIS := dglGetProcAddress('glPixelTexGenParameterfSGIS');
18561   glPixelTexGenParameterfvSGIS := dglGetProcAddress('glPixelTexGenParameterfvSGIS');
18562   glGetPixelTexGenParameterivSGIS := dglGetProcAddress('glGetPixelTexGenParameterivSGIS');
18563   glGetPixelTexGenParameterfvSGIS := dglGetProcAddress('glGetPixelTexGenParameterfvSGIS');
18564 end;
18565
18566 procedure Read_GL_SGIS_point_parameters;
18567 begin
18568   glPointParameterfSGIS := dglGetProcAddress('glPointParameterfSGIS');
18569   glPointParameterfvSGIS := dglGetProcAddress('glPointParameterfvSGIS');
18570 end;
18571
18572 procedure Read_GL_SGIS_sharpen_texture;
18573 begin
18574   glSharpenTexFuncSGIS := dglGetProcAddress('glSharpenTexFuncSGIS');
18575   glGetSharpenTexFuncSGIS := dglGetProcAddress('glGetSharpenTexFuncSGIS');
18576 end;
18577
18578 procedure Read_GL_SGIS_texture4D;
18579 begin
18580   glTexImage4DSGIS := dglGetProcAddress('glTexImage4DSGIS');
18581   glTexSubImage4DSGIS := dglGetProcAddress('glTexSubImage4DSGIS');
18582 end;
18583
18584 procedure Read_GL_SGIS_texture_color_mask;
18585 begin
18586   glTextureColorMaskSGIS := dglGetProcAddress('glTextureColorMaskSGIS');
18587 end;
18588
18589 procedure Read_GL_SGIS_texture_filter4;
18590 begin
18591   glGetTexFilterFuncSGIS := dglGetProcAddress('glGetTexFilterFuncSGIS');
18592   glTexFilterFuncSGIS := dglGetProcAddress('glTexFilterFuncSGIS');
18593 end;
18594
18595 procedure Read_GL_SGIX_async;
18596 begin
18597   glAsyncMarkerSGIX := dglGetProcAddress('glAsyncMarkerSGIX');
18598   glFinishAsyncSGIX := dglGetProcAddress('glFinishAsyncSGIX');
18599   glPollAsyncSGIX := dglGetProcAddress('glPollAsyncSGIX');
18600   glGenAsyncMarkersSGIX := dglGetProcAddress('glGenAsyncMarkersSGIX');
18601   glDeleteAsyncMarkersSGIX := dglGetProcAddress('glDeleteAsyncMarkersSGIX');
18602   glIsAsyncMarkerSGIX := dglGetProcAddress('glIsAsyncMarkerSGIX');
18603 end;
18604
18605 procedure Read_GL_SGIX_flush_raster;
18606 begin
18607   glFlushRasterSGIX := dglGetProcAddress('glFlushRasterSGIX');
18608 end;
18609
18610 procedure Read_GL_SGIX_fragment_lighting;
18611 begin
18612   glFragmentColorMaterialSGIX := dglGetProcAddress('glFragmentColorMaterialSGIX');
18613   glFragmentLightfSGIX := dglGetProcAddress('glFragmentLightfSGIX');
18614   glFragmentLightfvSGIX := dglGetProcAddress('glFragmentLightfvSGIX');
18615   glFragmentLightiSGIX := dglGetProcAddress('glFragmentLightiSGIX');
18616   glFragmentLightivSGIX := dglGetProcAddress('glFragmentLightivSGIX');
18617   glFragmentLightModelfSGIX := dglGetProcAddress('glFragmentLightModelfSGIX');
18618   glFragmentLightModelfvSGIX := dglGetProcAddress('glFragmentLightModelfvSGIX');
18619   glFragmentLightModeliSGIX := dglGetProcAddress('glFragmentLightModeliSGIX');
18620   glFragmentLightModelivSGIX := dglGetProcAddress('glFragmentLightModelivSGIX');
18621   glFragmentMaterialfSGIX := dglGetProcAddress('glFragmentMaterialfSGIX');
18622   glFragmentMaterialfvSGIX := dglGetProcAddress('glFragmentMaterialfvSGIX');
18623   glFragmentMaterialiSGIX := dglGetProcAddress('glFragmentMaterialiSGIX');
18624   glFragmentMaterialivSGIX := dglGetProcAddress('glFragmentMaterialivSGIX');
18625   glGetFragmentLightfvSGIX := dglGetProcAddress('glGetFragmentLightfvSGIX');
18626   glGetFragmentLightivSGIX := dglGetProcAddress('glGetFragmentLightivSGIX');
18627   glGetFragmentMaterialfvSGIX := dglGetProcAddress('glGetFragmentMaterialfvSGIX');
18628   glGetFragmentMaterialivSGIX := dglGetProcAddress('glGetFragmentMaterialivSGIX');
18629   glLightEnviSGIX := dglGetProcAddress('glLightEnviSGIX');
18630 end;
18631
18632 procedure Read_GL_SGIX_framezoom;
18633 begin
18634   glFrameZoomSGIX := dglGetProcAddress('glFrameZoomSGIX');
18635 end;
18636
18637 procedure Read_GL_SGIX_igloo_interface;
18638 begin
18639   glIglooInterfaceSGIX := dglGetProcAddress('glIglooInterfaceSGIX');
18640 end;
18641
18642 procedure Read_GL_SGIX_instruments;
18643 begin
18644   glGetInstrumentsSGIX := dglGetProcAddress('glGetInstrumentsSGIX');
18645   glInstrumentsBufferSGIX := dglGetProcAddress('glInstrumentsBufferSGIX');
18646   glPollInstrumentsSGIX := dglGetProcAddress('glPollInstrumentsSGIX');
18647   glReadInstrumentsSGIX := dglGetProcAddress('glReadInstrumentsSGIX');
18648   glStartInstrumentsSGIX := dglGetProcAddress('glStartInstrumentsSGIX');
18649   glStopInstrumentsSGIX := dglGetProcAddress('glStopInstrumentsSGIX');
18650 end;
18651
18652 procedure Read_GL_SGIX_list_priority;
18653 begin
18654   glGetListParameterfvSGIX := dglGetProcAddress('glGetListParameterfvSGIX');
18655   glGetListParameterivSGIX := dglGetProcAddress('glGetListParameterivSGIX');
18656   glListParameterfSGIX := dglGetProcAddress('glListParameterfSGIX');
18657   glListParameterfvSGIX := dglGetProcAddress('glListParameterfvSGIX');
18658   glListParameteriSGIX := dglGetProcAddress('glListParameteriSGIX');
18659   glListParameterivSGIX := dglGetProcAddress('glListParameterivSGIX');
18660 end;
18661
18662 procedure Read_GL_SGIX_pixel_texture;
18663 begin
18664   glPixelTexGenSGIX := dglGetProcAddress('glPixelTexGenSGIX');
18665 end;
18666
18667 procedure Read_GL_SGIX_polynomial_ffd;
18668 begin
18669   glDeformationMap3dSGIX := dglGetProcAddress('glDeformationMap3dSGIX');
18670   glDeformationMap3fSGIX := dglGetProcAddress('glDeformationMap3fSGIX');
18671   glDeformSGIX := dglGetProcAddress('glDeformSGIX');
18672   glLoadIdentityDeformationMapSGIX := dglGetProcAddress('glLoadIdentityDeformationMapSGIX');
18673 end;
18674
18675 procedure Read_GL_SGIX_reference_plane;
18676 begin
18677   glReferencePlaneSGIX := dglGetProcAddress('glReferencePlaneSGIX');
18678 end;
18679
18680 procedure Read_GL_SGIX_sprite;
18681 begin
18682   glSpriteParameterfSGIX := dglGetProcAddress('glSpriteParameterfSGIX');
18683   glSpriteParameterfvSGIX := dglGetProcAddress('glSpriteParameterfvSGIX');
18684   glSpriteParameteriSGIX := dglGetProcAddress('glSpriteParameteriSGIX');
18685   glSpriteParameterivSGIX := dglGetProcAddress('glSpriteParameterivSGIX');
18686 end;
18687
18688 procedure Read_GL_SGIX_tag_sample_buffer;
18689 begin
18690   glTagSampleBufferSGIX := dglGetProcAddress('glTagSampleBufferSGIX');
18691 end;
18692
18693 procedure Read_GL_SGI_color_table;
18694 begin
18695   glColorTableSGI := dglGetProcAddress('glColorTableSGI');
18696   glColorTableParameterfvSGI := dglGetProcAddress('glColorTableParameterfvSGI');
18697   glColorTableParameterivSGI := dglGetProcAddress('glColorTableParameterivSGI');
18698   glCopyColorTableSGI := dglGetProcAddress('glCopyColorTableSGI');
18699   glGetColorTableSGI := dglGetProcAddress('glGetColorTableSGI');
18700   glGetColorTableParameterfvSGI := dglGetProcAddress('glGetColorTableParameterfvSGI');
18701   glGetColorTableParameterivSGI := dglGetProcAddress('glGetColorTableParameterivSGI');
18702 end;
18703
18704 procedure Read_GL_SUNX_constant_data;
18705 begin
18706   glFinishTextureSUNX := dglGetProcAddress('glFinishTextureSUNX');
18707 end;
18708
18709 procedure Read_GL_SUN_global_alpha;
18710 begin
18711   glGlobalAlphaFactorbSUN := dglGetProcAddress('glGlobalAlphaFactorbSUN');
18712   glGlobalAlphaFactorsSUN := dglGetProcAddress('glGlobalAlphaFactorsSUN');
18713   glGlobalAlphaFactoriSUN := dglGetProcAddress('glGlobalAlphaFactoriSUN');
18714   glGlobalAlphaFactorfSUN := dglGetProcAddress('glGlobalAlphaFactorfSUN');
18715   glGlobalAlphaFactordSUN := dglGetProcAddress('glGlobalAlphaFactordSUN');
18716   glGlobalAlphaFactorubSUN := dglGetProcAddress('glGlobalAlphaFactorubSUN');
18717   glGlobalAlphaFactorusSUN := dglGetProcAddress('glGlobalAlphaFactorusSUN');
18718   glGlobalAlphaFactoruiSUN := dglGetProcAddress('glGlobalAlphaFactoruiSUN');
18719 end;
18720
18721 procedure Read_GL_SUN_mesh_array;
18722 begin
18723   glDrawMeshArraysSUN := dglGetProcAddress('glDrawMeshArraysSUN');
18724 end;
18725
18726 procedure Read_GL_SUN_triangle_list;
18727 begin
18728   glReplacementCodeuiSUN := dglGetProcAddress('glReplacementCodeuiSUN');
18729   glReplacementCodeusSUN := dglGetProcAddress('glReplacementCodeusSUN');
18730   glReplacementCodeubSUN := dglGetProcAddress('glReplacementCodeubSUN');
18731   glReplacementCodeuivSUN := dglGetProcAddress('glReplacementCodeuivSUN');
18732   glReplacementCodeusvSUN := dglGetProcAddress('glReplacementCodeusvSUN');
18733   glReplacementCodeubvSUN := dglGetProcAddress('glReplacementCodeubvSUN');
18734   glReplacementCodePointerSUN := dglGetProcAddress('glReplacementCodePointerSUN');
18735 end;
18736
18737 procedure Read_GL_SUN_vertex;
18738 begin
18739   glColor4ubVertex2fSUN := dglGetProcAddress('glColor4ubVertex2fSUN');
18740   glColor4ubVertex2fvSUN := dglGetProcAddress('glColor4ubVertex2fvSUN');
18741   glColor4ubVertex3fSUN := dglGetProcAddress('glColor4ubVertex3fSUN');
18742   glColor4ubVertex3fvSUN := dglGetProcAddress('glColor4ubVertex3fvSUN');
18743   glColor3fVertex3fSUN := dglGetProcAddress('glColor3fVertex3fSUN');
18744   glColor3fVertex3fvSUN := dglGetProcAddress('glColor3fVertex3fvSUN');
18745   glNormal3fVertex3fSUN := dglGetProcAddress('glNormal3fVertex3fSUN');
18746   glNormal3fVertex3fvSUN := dglGetProcAddress('glNormal3fVertex3fvSUN');
18747   glColor4fNormal3fVertex3fSUN := dglGetProcAddress('glColor4fNormal3fVertex3fSUN');
18748   glColor4fNormal3fVertex3fvSUN := dglGetProcAddress('glColor4fNormal3fVertex3fvSUN');
18749   glTexCoord2fVertex3fSUN := dglGetProcAddress('glTexCoord2fVertex3fSUN');
18750   glTexCoord2fVertex3fvSUN := dglGetProcAddress('glTexCoord2fVertex3fvSUN');
18751   glTexCoord4fVertex4fSUN := dglGetProcAddress('glTexCoord4fVertex4fSUN');
18752   glTexCoord4fVertex4fvSUN := dglGetProcAddress('glTexCoord4fVertex4fvSUN');
18753   glTexCoord2fColor4ubVertex3fSUN := dglGetProcAddress('glTexCoord2fColor4ubVertex3fSUN');
18754   glTexCoord2fColor4ubVertex3fvSUN := dglGetProcAddress('glTexCoord2fColor4ubVertex3fvSUN');
18755   glTexCoord2fColor3fVertex3fSUN := dglGetProcAddress('glTexCoord2fColor3fVertex3fSUN');
18756   glTexCoord2fColor3fVertex3fvSUN := dglGetProcAddress('glTexCoord2fColor3fVertex3fvSUN');
18757   glTexCoord2fNormal3fVertex3fSUN := dglGetProcAddress('glTexCoord2fNormal3fVertex3fSUN');
18758   glTexCoord2fNormal3fVertex3fvSUN := dglGetProcAddress('glTexCoord2fNormal3fVertex3fvSUN');
18759   glTexCoord2fColor4fNormal3fVertex3fSUN := dglGetProcAddress('glTexCoord2fColor4fNormal3fVertex3fSUN');
18760   glTexCoord2fColor4fNormal3fVertex3fvSUN := dglGetProcAddress('glTexCoord2fColor4fNormal3fVertex3fvSUN');
18761   glTexCoord4fColor4fNormal3fVertex4fSUN := dglGetProcAddress('glTexCoord4fColor4fNormal3fVertex4fSUN');
18762   glTexCoord4fColor4fNormal3fVertex4fvSUN := dglGetProcAddress('glTexCoord4fColor4fNormal3fVertex4fvSUN');
18763   glReplacementCodeuiVertex3fSUN := dglGetProcAddress('glReplacementCodeuiVertex3fSUN');
18764   glReplacementCodeuiVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiVertex3fvSUN');
18765   glReplacementCodeuiColor4ubVertex3fSUN := dglGetProcAddress('glReplacementCodeuiColor4ubVertex3fSUN');
18766   glReplacementCodeuiColor4ubVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiColor4ubVertex3fvSUN');
18767   glReplacementCodeuiColor3fVertex3fSUN := dglGetProcAddress('glReplacementCodeuiColor3fVertex3fSUN');
18768   glReplacementCodeuiColor3fVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiColor3fVertex3fvSUN');
18769   glReplacementCodeuiNormal3fVertex3fSUN := dglGetProcAddress('glReplacementCodeuiNormal3fVertex3fSUN');
18770   glReplacementCodeuiNormal3fVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiNormal3fVertex3fvSUN');
18771   glReplacementCodeuiColor4fNormal3fVertex3fSUN := dglGetProcAddress('glReplacementCodeuiColor4fNormal3fVertex3fSUN');
18772   glReplacementCodeuiColor4fNormal3fVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiColor4fNormal3fVertex3fvSUN');
18773   glReplacementCodeuiTexCoord2fVertex3fSUN := dglGetProcAddress('glReplacementCodeuiTexCoord2fVertex3fSUN');
18774   glReplacementCodeuiTexCoord2fVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiTexCoord2fVertex3fvSUN');
18775   glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN := dglGetProcAddress('glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN');
18776   glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN');
18777   glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN := dglGetProcAddress('glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN');
18778   glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN');
18779 end;
18780
18781 {$IFDEF DGL_WIN}
18782 procedure Read_WGL_ARB_buffer_region;
18783 begin
18784   wglCreateBufferRegionARB := dglGetProcAddress('wglCreateBufferRegionARB');
18785   wglDeleteBufferRegionARB := dglGetProcAddress('wglDeleteBufferRegionARB');
18786   wglSaveBufferRegionARB := dglGetProcAddress('wglSaveBufferRegionARB');
18787   wglRestoreBufferRegionARB := dglGetProcAddress('wglRestoreBufferRegionARB');
18788 end;
18789
18790 procedure Read_WGL_ARB_extensions_string;
18791 begin
18792   wglGetExtensionsStringARB := dglGetProcAddress('wglGetExtensionsStringARB');
18793 end;
18794
18795 procedure Read_WGL_ARB_make_current_read;
18796 begin
18797   wglMakeContextCurrentARB := dglGetProcAddress('wglMakeContextCurrentARB');
18798   wglGetCurrentReadDCARB := dglGetProcAddress('wglGetCurrentReadDCARB');
18799 end;
18800
18801 procedure Read_WGL_ARB_pbuffer;
18802 begin
18803   wglCreatePbufferARB := dglGetProcAddress('wglCreatePbufferARB');
18804   wglGetPbufferDCARB := dglGetProcAddress('wglGetPbufferDCARB');
18805   wglReleasePbufferDCARB := dglGetProcAddress('wglReleasePbufferDCARB');
18806   wglDestroyPbufferARB := dglGetProcAddress('wglDestroyPbufferARB');
18807   wglQueryPbufferARB := dglGetProcAddress('wglQueryPbufferARB');
18808 end;
18809
18810 procedure Read_WGL_ARB_pixel_format;
18811 begin
18812   wglGetPixelFormatAttribivARB := dglGetProcAddress('wglGetPixelFormatAttribivARB');
18813   wglGetPixelFormatAttribfvARB := dglGetProcAddress('wglGetPixelFormatAttribfvARB');
18814   wglChoosePixelFormatARB := dglGetProcAddress('wglChoosePixelFormatARB');
18815 end;
18816
18817 procedure Read_WGL_ARB_pixel_format_float;
18818 begin
18819   wglClampColorARB := dglGetProcAddress('wglClampColorARB');
18820 end;
18821
18822 procedure Read_WGL_ARB_render_texture;
18823 begin
18824   wglBindTexImageARB := dglGetProcAddress('wglBindTexImageARB');
18825   wglReleaseTexImageARB := dglGetProcAddress('wglReleaseTexImageARB');
18826   wglSetPbufferAttribARB := dglGetProcAddress('wglSetPbufferAttribARB');
18827 end;
18828
18829 procedure Read_WGL_ARB_create_context;
18830 begin
18831   wglCreateContextAttribsARB := dglGetProcAddress('wglCreateContextAttribsARB');
18832 end;
18833
18834 procedure Read_WGL_AMD_gpu_association;
18835 begin
18836   wglGetGPUIDsAMD := dglGetProcAddress('wglGetGPUIDsAMD');
18837   wglGetGPUInfoAMD := dglGetProcAddress('wglGetGPUInfoAMD');
18838   wglGetContextGPUIDAMD := dglGetProcAddress('wglGetContextGPUIDAMD');
18839   wglCreateAssociatedContextAMD := dglGetProcAddress('wglCreateAssociatedContextAMD');
18840   wglCreateAssociatedContextAttribsAMD := dglGetProcAddress('wglCreateAssociatedContextAttribsAMD');
18841   wglDeleteAssociatedContextAMD := dglGetProcAddress('wglDeleteAssociatedContextAMD');
18842   wglMakeAssociatedContextCurrentAMD := dglGetProcAddress('wglMakeAssociatedContextCurrentAMD');
18843   wglGetCurrentAssociatedContextAMD := dglGetProcAddress('wglGetCurrentAssociatedContextAMD');
18844   wglBlitContextFramebufferAMD := dglGetProcAddress('wglBlitContextFramebufferAMD');
18845 end;
18846
18847 procedure Read_WGL_EXT_display_color_table;
18848 begin
18849   wglCreateDisplayColorTableEXT := dglGetProcAddress('wglCreateDisplayColorTableEXT');
18850   wglLoadDisplayColorTableEXT := dglGetProcAddress('wglLoadDisplayColorTableEXT');
18851   wglBindDisplayColorTableEXT := dglGetProcAddress('wglBindDisplayColorTableEXT');
18852   wglDestroyDisplayColorTableEXT := dglGetProcAddress('wglDestroyDisplayColorTableEXT');
18853 end;
18854
18855 procedure Read_WGL_EXT_extensions_string;
18856 begin
18857   wglGetExtensionsStringEXT := dglGetProcAddress('wglGetExtensionsStringEXT');
18858 end;
18859
18860 procedure Read_WGL_EXT_make_current_read;
18861 begin
18862   wglMakeContextCurrentEXT := dglGetProcAddress('wglMakeContextCurrentEXT');
18863   wglGetCurrentReadDCEXT := dglGetProcAddress('wglGetCurrentReadDCEXT');
18864 end;
18865
18866 procedure Read_WGL_EXT_pbuffer;
18867 begin
18868   wglCreatePbufferEXT := dglGetProcAddress('wglCreatePbufferEXT');
18869   wglGetPbufferDCEXT := dglGetProcAddress('wglGetPbufferDCEXT');
18870   wglReleasePbufferDCEXT := dglGetProcAddress('wglReleasePbufferDCEXT');
18871   wglDestroyPbufferEXT := dglGetProcAddress('wglDestroyPbufferEXT');
18872   wglQueryPbufferEXT := dglGetProcAddress('wglQueryPbufferEXT');
18873 end;
18874
18875 procedure Read_WGL_EXT_pixel_format;
18876 begin
18877   wglGetPixelFormatAttribivEXT := dglGetProcAddress('wglGetPixelFormatAttribivEXT');
18878   wglGetPixelFormatAttribfvEXT := dglGetProcAddress('wglGetPixelFormatAttribfvEXT');
18879   wglChoosePixelFormatEXT := dglGetProcAddress('wglChoosePixelFormatEXT');
18880 end;
18881
18882 procedure Read_WGL_EXT_swap_control;
18883 begin
18884   wglSwapIntervalEXT := dglGetProcAddress('wglSwapIntervalEXT');
18885   wglGetSwapIntervalEXT := dglGetProcAddress('wglGetSwapIntervalEXT');
18886 end;
18887
18888 procedure Read_WGL_I3D_digital_video_control;
18889 begin
18890   wglGetDigitalVideoParametersI3D := dglGetProcAddress('wglGetDigitalVideoParametersI3D');
18891   wglSetDigitalVideoParametersI3D := dglGetProcAddress('wglSetDigitalVideoParametersI3D');
18892 end;
18893
18894 procedure Read_WGL_I3D_gamma;
18895 begin
18896   wglGetGammaTableParametersI3D := dglGetProcAddress('wglGetGammaTableParametersI3D');
18897   wglSetGammaTableParametersI3D := dglGetProcAddress('wglSetGammaTableParametersI3D');
18898   wglGetGammaTableI3D := dglGetProcAddress('wglGetGammaTableI3D');
18899   wglSetGammaTableI3D := dglGetProcAddress('wglSetGammaTableI3D');
18900 end;
18901
18902 procedure Read_WGL_I3D_genlock;
18903 begin
18904   wglEnableGenlockI3D := dglGetProcAddress('wglEnableGenlockI3D');
18905   wglDisableGenlockI3D := dglGetProcAddress('wglDisableGenlockI3D');
18906   wglIsEnabledGenlockI3D := dglGetProcAddress('wglIsEnabledGenlockI3D');
18907   wglGenlockSourceI3D := dglGetProcAddress('wglGenlockSourceI3D');
18908   wglGetGenlockSourceI3D := dglGetProcAddress('wglGetGenlockSourceI3D');
18909   wglGenlockSourceEdgeI3D := dglGetProcAddress('wglGenlockSourceEdgeI3D');
18910   wglGetGenlockSourceEdgeI3D := dglGetProcAddress('wglGetGenlockSourceEdgeI3D');
18911   wglGenlockSampleRateI3D := dglGetProcAddress('wglGenlockSampleRateI3D');
18912   wglGetGenlockSampleRateI3D := dglGetProcAddress('wglGetGenlockSampleRateI3D');
18913   wglGenlockSourceDelayI3D := dglGetProcAddress('wglGenlockSourceDelayI3D');
18914   wglGetGenlockSourceDelayI3D := dglGetProcAddress('wglGetGenlockSourceDelayI3D');
18915   wglQueryGenlockMaxSourceDelayI3D := dglGetProcAddress('wglQueryGenlockMaxSourceDelayI3D');
18916 end;
18917
18918 procedure Read_WGL_I3D_image_buffer;
18919 begin
18920   wglCreateImageBufferI3D := dglGetProcAddress('wglCreateImageBufferI3D');
18921   wglDestroyImageBufferI3D := dglGetProcAddress('wglDestroyImageBufferI3D');
18922   wglAssociateImageBufferEventsI3D := dglGetProcAddress('wglAssociateImageBufferEventsI3D');
18923   wglReleaseImageBufferEventsI3D := dglGetProcAddress('wglReleaseImageBufferEventsI3D');
18924 end;
18925
18926 procedure Read_WGL_I3D_swap_frame_lock;
18927 begin
18928   wglEnableFrameLockI3D := dglGetProcAddress('wglEnableFrameLockI3D');
18929   wglDisableFrameLockI3D := dglGetProcAddress('wglDisableFrameLockI3D');
18930   wglIsEnabledFrameLockI3D := dglGetProcAddress('wglIsEnabledFrameLockI3D');
18931   wglQueryFrameLockMasterI3D := dglGetProcAddress('wglQueryFrameLockMasterI3D');
18932 end;
18933
18934 procedure Read_WGL_I3D_swap_frame_usage;
18935 begin
18936   wglGetFrameUsageI3D := dglGetProcAddress('wglGetFrameUsageI3D');
18937   wglBeginFrameTrackingI3D := dglGetProcAddress('wglBeginFrameTrackingI3D');
18938   wglEndFrameTrackingI3D := dglGetProcAddress('wglEndFrameTrackingI3D');
18939   wglQueryFrameTrackingI3D := dglGetProcAddress('wglQueryFrameTrackingI3D');
18940 end;
18941
18942 procedure Read_WGL_NV_vertex_array_range;
18943 begin
18944   wglAllocateMemoryNV := dglGetProcAddress('wglAllocateMemoryNV');
18945   wglFreeMemoryNV := dglGetProcAddress('wglFreeMemoryNV');
18946 end;
18947
18948 procedure Read_WGL_NV_present_video;
18949 begin
18950   wglEnumerateVideoDevicesNV := dglGetProcAddress('wglEnumerateVideoDevicesNV');
18951   wglBindVideoDeviceNV := dglGetProcAddress('wglBindVideoDeviceNV');
18952   wglQueryCurrentContextNV := dglGetProcAddress('wglQueryCurrentContextNV');
18953 end;
18954
18955 procedure Read_WGL_NV_video_output;
18956 begin
18957   wglGetVideoDeviceNV := dglGetProcAddress('wglGetVideoDeviceNV');
18958   wglReleaseVideoDeviceNV := dglGetProcAddress('wglReleaseVideoDeviceNV');
18959   wglBindVideoImageNV := dglGetProcAddress('wglBindVideoImageNV');
18960   wglReleaseVideoImageNV := dglGetProcAddress('wglReleaseVideoImageNV');
18961   wglSendPbufferToVideoNV := dglGetProcAddress('wglSendPbufferToVideoNV');
18962   wglGetVideoInfoNV := dglGetProcAddress('wglGetVideoInfoNV');
18963 end;
18964
18965 procedure Read_WGL_NV_swap_group;
18966 begin
18967   wglJoinSwapGroupNV := dglGetProcAddress('wglJoinSwapGroupNV');
18968   wglBindSwapBarrierNV := dglGetProcAddress('wglBindSwapBarrierNV');
18969   wglQuerySwapGroupNV := dglGetProcAddress('wglQuerySwapGroupNV');
18970   wglQueryMaxSwapGroupsNV := dglGetProcAddress('wglQueryMaxSwapGroupsNV');
18971   wglQueryFrameCountNV := dglGetProcAddress('wglQueryFrameCountNV');
18972   wglResetFrameCountNV := dglGetProcAddress('wglResetFrameCountNV');
18973 end;
18974
18975 procedure Read_WGL_NV_gpu_affinity;
18976 begin
18977   wglEnumGpusNV := dglGetProcAddress('wglEnumGpusNV');
18978   wglEnumGpuDevicesNV := dglGetProcAddress('wglEnumGpuDevicesNV');
18979   wglCreateAffinityDCNV := dglGetProcAddress('wglCreateAffinityDCNV');
18980   wglEnumGpusFromAffinityDCNV := dglGetProcAddress('wglEnumGpusFromAffinityDCNV');
18981   wglDeleteDCNV := dglGetProcAddress('wglDeleteDCNV');
18982 end;
18983
18984 procedure Read_WGL_NV_video_capture;
18985 begin
18986   wglBindVideoCaptureDeviceNV := dglGetProcAddress('wglBindVideoCaptureDeviceNV');
18987   wglEnumerateVideoCaptureDevicesNV := dglGetProcAddress('wglEnumerateVideoCaptureDevicesNV');
18988   wglLockVideoCaptureDeviceNV := dglGetProcAddress('wglLockVideoCaptureDeviceNV');
18989   wglQueryVideoCaptureDeviceNV := dglGetProcAddress('wglQueryVideoCaptureDeviceNV');
18990   wglReleaseVideoCaptureDeviceNV := dglGetProcAddress('wglReleaseVideoCaptureDeviceNV');
18991 end;
18992
18993 procedure Read_WGL_NV_copy_image;
18994 begin
18995   wglCopyImageSubDataNV := dglGetProcAddress('wglCopyImageSubDataNV');
18996 end;
18997
18998 procedure Read_WGL_NV_DX_interop;
18999 begin
19000   wglDXSetResourceShareHandleNV := dglGetProcAddress('wglDXSetResourceShareHandleNV');
19001   wglDXOpenDeviceNV := dglGetProcAddress('wglDXOpenDeviceNV');
19002   wglDXCloseDeviceNV := dglGetProcAddress('wglDXCloseDeviceNV');
19003   wglDXRegisterObjectNV := dglGetProcAddress('wglDXRegisterObjectNV');
19004   wglDXUnregisterObjectNV := dglGetProcAddress('wglDXUnregisterObjectNV');
19005   wglDXObjectAccessNV := dglGetProcAddress('wglDXObjectAccessNV');
19006   wglDXLockObjectsNV := dglGetProcAddress('wglDXLockObjectsNV');
19007   wglDXUnlockObjectsNV := dglGetProcAddress('wglDXUnlockObjectsNV');
19008 end;
19009
19010
19011 procedure Read_WGL_OML_sync_control;
19012 begin
19013   wglGetSyncValuesOML := dglGetProcAddress('wglGetSyncValuesOML');
19014   wglGetMscRateOML := dglGetProcAddress('wglGetMscRateOML');
19015   wglSwapBuffersMscOML := dglGetProcAddress('wglSwapBuffersMscOML');
19016   wglSwapLayerBuffersMscOML := dglGetProcAddress('wglSwapLayerBuffersMscOML');
19017   wglWaitForMscOML := dglGetProcAddress('wglWaitForMscOML');
19018   wglWaitForSbcOML := dglGetProcAddress('wglWaitForSbcOML');
19019 end;
19020
19021 procedure Read_WGL_3DL_stereo_control;
19022 begin
19023   wglSetStereoEmitterState3DL := dglGetProcAddress('wglSetStereoEmitterState3DL');
19024 end;
19025
19026 procedure Read_WIN_draw_range_elements;
19027 begin
19028   glDrawRangeElementsWIN := dglGetProcAddress('glDrawRangeElementsWIN');
19029 end;
19030
19031 procedure Read_WIN_swap_hint;
19032 begin
19033   glAddSwapHintRectWIN := dglGetProcAddress('glAddSwapHintRectWIN');
19034 end;
19035 {$ENDIF}
19036
19037
19038 procedure ReadExtensions;
19039 begin
19040   ReadOpenGLCore;
19041
19042   Read_GL_3DFX_tbuffer;
19043   Read_GL_APPLE_element_array;
19044   Read_GL_APPLE_fence;
19045   Read_GL_APPLE_vertex_array_object;
19046   Read_GL_APPLE_vertex_array_range;
19047   Read_GL_APPLE_texture_range;
19048   Read_GL_APPLE_vertex_program_evaluators;
19049   Read_GL_APPLE_object_purgeable;
19050   Read_GL_ARB_matrix_palette;
19051   Read_GL_ARB_multitexture;
19052   Read_GL_ARB_point_parameters;
19053   Read_GL_ARB_texture_compression;
19054   Read_GL_ARB_transpose_matrix;
19055   Read_GL_ARB_vertex_blend;
19056   Read_GL_ARB_vertex_buffer_object;
19057   Read_GL_ARB_vertex_program;
19058   Read_GL_ARB_window_pos;
19059   Read_GL_ARB_color_buffer_float;
19060   Read_GL_ARB_Shader_Objects;
19061   Read_GL_ARB_occlusion_query;
19062   Read_GL_ARB_draw_instanced;
19063   Read_GL_ARB_framebuffer_object;
19064   Read_GL_ARB_geometry_shader4;
19065   Read_GL_ARB_instanced_arrays;
19066   Read_GL_ARB_map_buffer_range;
19067   Read_GL_ARB_texture_buffer_object;
19068   Read_GL_ARB_vertex_array_object;
19069   Read_GL_ARB_uniform_buffer_object;
19070   Read_GL_ARB_copy_buffer;
19071   Read_GL_ARB_draw_elements_base_vertex;
19072   Read_GL_ARB_provoking_vertex;
19073   Read_GL_ARB_sync;
19074   Read_GL_ARB_texture_multisample;
19075   Read_GL_ARB_draw_buffers_blend;
19076   Read_GL_ARB_sample_shading;
19077   Read_GL_ARB_shading_language_include;
19078   Read_GL_ARB_sparse_texture;
19079   Read_GL_ARB_sparse_buffer;
19080   Read_GL_ARB_blend_func_extended;
19081   Read_GL_ARB_sampler_objects;
19082   Read_GL_ARB_timer_query;
19083   Read_GL_ARB_vertex_type_2_10_10_10_rev;
19084   Read_GL_ARB_draw_indirect;
19085   Read_GL_ARB_gpu_shader_fp64;
19086   Read_GL_ARB_shader_subroutine;
19087   Read_GL_ARB_tessellation_shader;
19088   Read_GL_ARB_transform_feedback2;
19089   Read_GL_ARB_transform_feedback3;
19090   Read_GL_ARB_ES2_compatibility;
19091   Read_GL_ARB_get_program_binary;
19092   Read_GL_ARB_separate_shader_objects;
19093   Read_GL_ARB_vertex_attrib_64bit;
19094   Read_GL_ARB_viewport_array;
19095   Read_GL_ARB_cl_event;
19096   Read_GL_ARB_compute_variable_group_size;
19097   Read_GL_ARB_debug_output;
19098   Read_GL_ARB_robustness;
19099   //
19100   Read_GL_ATI_draw_buffers;
19101   Read_GL_ATI_element_array;
19102   Read_GL_ATI_envmap_bumpmap;
19103   Read_GL_ATI_fragment_shader;
19104   Read_GL_ATI_map_object_buffer;
19105   Read_GL_ATI_pn_triangles;
19106   Read_GL_ATI_separate_stencil;
19107   Read_GL_ATI_vertex_array_object;
19108   Read_GL_ATI_vertex_attrib_array_object;
19109   Read_GL_ATI_vertex_streams;
19110   Read_GL_AMD_performance_monitor;
19111   Read_GL_AMD_vertex_shader_tesselator;
19112   Read_GL_AMD_draw_buffers_blend;
19113   Read_GL_AMD_name_gen_delete;
19114   Read_GL_AMD_debug_output;
19115   Read_GL_AMD_stencil_operation_extended;
19116   Read_GL_EXT_blend_color;
19117   Read_GL_EXT_blend_func_separate;
19118   Read_GL_EXT_blend_minmax;
19119   Read_GL_EXT_color_subtable;
19120   Read_GL_EXT_compiled_vertex_array;
19121   Read_GL_EXT_convolution;
19122   Read_GL_EXT_coordinate_frame;
19123   Read_GL_EXT_copy_texture;
19124   Read_GL_EXT_cull_vertex;
19125   Read_GL_EXT_draw_range_elements;
19126   Read_GL_EXT_fog_coord;
19127   Read_GL_EXT_framebuffer_object;
19128   Read_GL_EXT_histogram;
19129   Read_GL_EXT_index_func;
19130   Read_GL_EXT_index_material;
19131   Read_GL_EXT_multi_draw_arrays;
19132   Read_GL_EXT_multisample;
19133   Read_GL_EXT_paletted_texture;
19134   Read_GL_EXT_pixel_transform;
19135   Read_GL_EXT_point_parameters;
19136   Read_GL_EXT_polygon_offset;
19137   Read_GL_EXT_secondary_color;
19138   Read_GL_EXT_stencil_two_side;
19139   Read_GL_EXT_subtexture;
19140   Read_GL_EXT_texture3D;
19141   Read_GL_EXT_texture_object;
19142   Read_GL_EXT_texture_perturb_normal;
19143   Read_GL_EXT_vertex_array;
19144   Read_GL_EXT_vertex_shader;
19145   Read_GL_EXT_vertex_weighting;
19146   Read_GL_EXT_depth_bounds_test;
19147   Read_GL_EXT_blend_equation_separate;
19148   Read_GL_EXT_stencil_clear_tag;
19149   Read_GL_EXT_framebuffer_blit;
19150   Read_GL_EXT_framebuffer_multisample;
19151   Read_GL_EXT_timer_query;
19152   Read_GL_EXT_gpu_program_parameters;
19153   Read_GL_EXT_bindable_uniform;
19154   Read_GL_EXT_draw_buffers2;
19155   Read_GL_EXT_draw_instanced;
19156   Read_GL_EXT_geometry_shader4;
19157   Read_GL_EXT_gpu_shader4;
19158   Read_GL_EXT_texture_array;
19159   Read_GL_EXT_texture_buffer_object;
19160   Read_GL_EXT_texture_integer;
19161   Read_GL_EXT_transform_feedback;
19162   Read_GL_EXT_direct_state_access;
19163   Read_GL_EXT_separate_shader_objects;
19164   Read_GL_EXT_shader_image_load_store;
19165   Read_GL_EXT_vertex_attrib_64bit;
19166   Read_GL_HP_image_transform;
19167   Read_GL_IBM_multimode_draw_arrays;
19168   Read_GL_IBM_vertex_array_lists;
19169   Read_GL_INGR_blend_func_separate;
19170   Read_GL_INTEL_parallel_arrays;
19171   Read_GL_KHR_blend_equation_advanced;
19172   Read_GL_MESA_resize_buffers;
19173   Read_GL_MESA_window_pos;
19174   Read_GL_NV_evaluators;
19175   Read_GL_NV_fence;
19176   Read_GL_NV_fragment_program;
19177   Read_GL_NV_half_float;
19178   Read_GL_NV_occlusion_query;
19179   Read_GL_NV_pixel_data_range;
19180   Read_GL_NV_point_sprite;
19181   Read_GL_NV_primitive_restart;
19182   Read_GL_NV_register_combiners;
19183   Read_GL_NV_register_combiners2;
19184   Read_GL_NV_vertex_array_range;
19185   Read_GL_NV_vertex_program;
19186   Read_GL_NV_depth_buffer_float;
19187   Read_GL_NV_framebuffer_multisample_coverage;
19188   Read_GL_NV_geometry_program4;
19189   Read_GL_NV_gpu_program4;
19190   Read_GL_NV_parameter_buffer_object;
19191   Read_GL_NV_transform_feedback;
19192   Read_GL_NV_conditional_render;
19193   Read_GL_NV_present_video;
19194   Read_GL_NV_explicit_multisample;
19195   Read_GL_NV_transform_feedback2;
19196   Read_GL_NV_video_capture;
19197   Read_GL_NV_copy_image;
19198   Read_GL_NV_shader_buffer_load;
19199   Read_GL_NV_vertex_buffer_unified_memory;
19200   Read_GL_NV_gpu_program5;
19201   Read_GL_NV_gpu_shader5;
19202   Read_GL_NV_vertex_attrib_integer_64bit;
19203   Read_GL_NV_vdpau_interop;
19204   Read_GL_NV_texture_barrier;
19205   Read_GL_NV_path_rendering;
19206   Read_GL_NV_bindless_texture;
19207   Read_GL_PGI_misc_hints;
19208   Read_GL_SGIS_detail_texture;
19209   Read_GL_SGIS_fog_function;
19210   Read_GL_SGIS_multisample;
19211   Read_GL_SGIS_pixel_texture;
19212   Read_GL_SGIS_point_parameters;
19213   Read_GL_SGIS_sharpen_texture;
19214   Read_GL_SGIS_texture4D;
19215   Read_GL_SGIS_texture_color_mask;
19216   Read_GL_SGIS_texture_filter4;
19217   Read_GL_SGIX_async;
19218   Read_GL_SGIX_flush_raster;
19219   Read_GL_SGIX_fragment_lighting;
19220   Read_GL_SGIX_framezoom;
19221   Read_GL_SGIX_igloo_interface;
19222   Read_GL_SGIX_instruments;
19223   Read_GL_SGIX_list_priority;
19224   Read_GL_SGIX_pixel_texture;
19225   Read_GL_SGIX_polynomial_ffd;
19226   Read_GL_SGIX_reference_plane;
19227   Read_GL_SGIX_sprite;
19228   Read_GL_SGIX_tag_sample_buffer;
19229   Read_GL_SGI_color_table;
19230   Read_GL_SUNX_constant_data;
19231   Read_GL_SUN_global_alpha;
19232   Read_GL_SUN_mesh_array;
19233   Read_GL_SUN_triangle_list;
19234   Read_GL_SUN_vertex;
19235
19236 {$IFDEF DGL_WIN}
19237   Read_WGL_ARB_buffer_region;
19238   Read_WGL_ARB_extensions_string;
19239   Read_WGL_ARB_make_current_read;
19240   Read_WGL_ARB_pbuffer;
19241   Read_WGL_ARB_pixel_format;
19242   Read_WGL_ARB_pixel_format_float;
19243   Read_WGL_ARB_render_texture;
19244   Read_WGL_ARB_create_context;
19245   Read_WGL_AMD_gpu_association;
19246   Read_WGL_EXT_display_color_table;
19247   Read_WGL_EXT_extensions_string;
19248   Read_WGL_EXT_make_current_read;
19249   Read_WGL_EXT_pbuffer;
19250   Read_WGL_EXT_pixel_format;
19251   Read_WGL_EXT_swap_control;
19252   Read_WGL_I3D_digital_video_control;
19253   Read_WGL_I3D_gamma;
19254   Read_WGL_I3D_genlock;
19255   Read_WGL_I3D_image_buffer;
19256   Read_WGL_I3D_swap_frame_lock;
19257   Read_WGL_I3D_swap_frame_usage;
19258   Read_WGL_NV_vertex_array_range;
19259   Read_WGL_NV_present_video;
19260   Read_WGL_NV_video_output;
19261   Read_WGL_NV_swap_group;
19262   Read_WGL_NV_gpu_affinity;
19263   Read_WGL_NV_video_capture;
19264   Read_WGL_NV_copy_image;
19265   Read_WGL_NV_DX_interop;
19266   Read_WGL_OML_sync_control;
19267   Read_WGL_3DL_stereo_control;
19268
19269   Read_WIN_draw_range_elements;
19270   Read_WIN_swap_hint;
19271 {$ENDIF}
19272
19273   ExtensionsRead := True;
19274 end;
19275
19276 // =============================================================================
19277 //  ReadCoreVersion
19278 // =============================================================================
19279
19280 procedure ReadCoreVersion;
19281 var
19282   AnsiBuffer: AnsiString;
19283   Buffer: String;
19284   MajorVersion, MinorVersion: Integer;
19285
19286   procedure TrimAndSplitVersionString(Buffer: String; out Max, Min: Integer);
19287     // Peels out the X.Y form from the given Buffer which must contain a version string like "text Minor.Major.Build text"
19288     // at least however "Major.Minor".
19289   var
19290     Separator: Integer;
19291   begin
19292     try
19293       // There must be at least one dot to separate major and minor version number.
19294       Separator := Pos('.', Buffer);
19295       // At least one number must be before and one after the dot.
19296       if (Separator > 1) and (Separator < Length(Buffer)) and (AnsiChar(Buffer[Separator - 1]) in ['0'..'9']) and
19297       (AnsiChar(Buffer[Separator + 1]) in ['0'..'9']) then
19298       begin
19299         // OK, it's a valid version string. Now remove unnecessary parts.
19300         Dec(Separator);
19301         // Find last non-numeric character before version number.
19302         while (Separator > 0) and (AnsiChar(Buffer[Separator]) in ['0'..'9']) do
19303           Dec(Separator);
19304         // Delete leading characters which do not belong to the version string.
19305         Delete(Buffer, 1, Separator);
19306         Separator := Pos('.', Buffer) + 1;
19307         // Find first non-numeric character after version number
19308         while (Separator <= Length(Buffer)) and (AnsiChar(Buffer[Separator]) in ['0'..'9']) do
19309           Inc(Separator);
19310         // delete trailing characters not belonging to the version string
19311         Delete(Buffer, Separator, 255);
19312         // Now translate the numbers.
19313         Separator := Pos('.', Buffer); // This is necessary because the buffer length might have changed.
19314         Max := StrToInt(Copy(Buffer, 1, Separator - 1));
19315         Min := StrToInt(Copy(Buffer, Separator + 1, 1));
19316       end
19317       else
19318         Abort;
19319     except
19320       Min := 0;
19321       Max := 0;
19322     end;
19323   end;
19324
19325
19326 begin
19327   // determine version of implementation
19328   // GL
19329   if not Assigned(@glGetString) then
19330     glGetString := dglGetProcAddress('glGetString');
19331
19332   AnsiBuffer := glGetString(GL_VERSION);
19333   Buffer := String(AnsiBuffer);
19334
19335   TrimAndSplitVersionString(Buffer, MajorVersion, MinorVersion);
19336
19337   GL_VERSION_1_0 := True;
19338   GL_VERSION_1_1 := False;
19339   GL_VERSION_1_2 := False;
19340   GL_VERSION_1_3 := False;
19341   GL_VERSION_1_4 := False;
19342   GL_VERSION_1_5 := False;
19343   GL_VERSION_2_0 := False;
19344   GL_VERSION_2_1 := False;
19345   GL_VERSION_3_0 := False;
19346   GL_VERSION_3_1 := False;
19347   GL_VERSION_3_2 := False;
19348   GL_VERSION_3_3 := False;
19349   GL_VERSION_4_0 := False;
19350   GL_VERSION_4_1 := False;
19351   GL_VERSION_4_2 := False;
19352   GL_VERSION_4_3 := False;
19353   GL_VERSION_4_4 := False;
19354   GL_VERSION_4_5 := False;
19355
19356   if MajorVersion = 1 then
19357   begin
19358     if MinorVersion >= 1 then
19359       GL_VERSION_1_1 := True;
19360     if MinorVersion >= 2 then
19361       GL_VERSION_1_2 := True;
19362     if MinorVersion >= 3 then
19363       GL_VERSION_1_3 := True;
19364     if MinorVersion >= 4 then
19365       GL_VERSION_1_4 := True;
19366     if MinorVersion >= 5 then
19367       GL_VERSION_1_5 := True;
19368   end;
19369
19370   if MajorVersion >= 2 then
19371   begin
19372     GL_VERSION_1_1 := True;
19373     GL_VERSION_1_2 := True;
19374     GL_VERSION_1_3 := True;
19375     GL_VERSION_1_4 := True;
19376     GL_VERSION_1_5 := True;
19377     GL_VERSION_2_0 := True;
19378
19379     if MinorVersion >= 1 then
19380       GL_VERSION_2_1 := True;
19381   end;
19382
19383   if MajorVersion >= 3 then
19384   begin
19385     GL_VERSION_2_1 := True;
19386     GL_VERSION_3_0 := True;
19387
19388     if MinorVersion >= 1 then
19389       GL_VERSION_3_1 := True;
19390     if MinorVersion >= 2 then
19391       GL_VERSION_3_2 := True;
19392     if MinorVersion >= 3 then
19393       GL_VERSION_3_3 := True;
19394   end;
19395
19396   if MajorVersion >= 4 then
19397   begin
19398     GL_VERSION_3_1 := True;
19399     GL_VERSION_3_2 := True;
19400     GL_VERSION_3_3 := True;
19401     GL_VERSION_4_0 := True;
19402
19403     if MinorVersion >= 1 then
19404       GL_VERSION_4_1 := True;
19405     if MinorVersion >= 2 then
19406       GL_VERSION_4_2 := True;
19407     if MinorVersion >= 3 then
19408       GL_VERSION_4_3 := True;
19409     if MinorVersion >= 4 then
19410       GL_VERSION_4_4 := True;
19411     if MinorVersion >= 5 then
19412       GL_VERSION_4_5:= True;
19413   end;
19414
19415   // GLU
19416   GLU_VERSION_1_1 := False;
19417   GLU_VERSION_1_2 := False;
19418   GLU_VERSION_1_3 := False;
19419
19420   if Assigned(gluGetString) then begin
19421     AnsiBuffer := gluGetString(GLU_VERSION);
19422     Buffer := String(AnsiBuffer);
19423
19424     TrimAndSplitVersionString(Buffer, Majorversion, MinorVersion);
19425
19426     GLU_VERSION_1_1 := True;
19427
19428     if MinorVersion >= 2 then
19429       GLU_VERSION_1_2 := True;
19430
19431     if MinorVersion >= 3 then
19432       GLU_VERSION_1_3 := True;
19433   end;
19434 end;
19435
19436
19437 // =============================================================================
19438 //  ReadImplementationProperties
19439 // =============================================================================
19440
19441 procedure ReadImplementationProperties;
19442 var
19443   Buffer: Ansistring;
19444 begin
19445   ReadCoreVersion;
19446
19447   // Check all extensions
19448   Buffer := Int_GetExtensionString;
19449
19450   // 3DFX
19451   GL_3DFX_multisample := Int_CheckExtension(Buffer, 'GL_3DFX_multisample');
19452   GL_3DFX_tbuffer := Int_CheckExtension(Buffer, 'GL_3DFX_tbuffer');
19453   GL_3DFX_texture_compression_FXT1 := Int_CheckExtension(Buffer, 'GL_3DFX_texture_compression_FXT1');
19454
19455   // APPLE
19456   GL_APPLE_client_storage := Int_CheckExtension(Buffer, 'GL_APPLE_client_storage');
19457   GL_APPLE_element_array := Int_CheckExtension(Buffer, 'GL_APPLE_element_array');
19458   GL_APPLE_fence := Int_CheckExtension(Buffer, 'GL_APPLE_fence');
19459   GL_APPLE_specular_vector := Int_CheckExtension(Buffer, 'GL_APPLE_specular_vector');
19460   GL_APPLE_transform_hint := Int_CheckExtension(Buffer, 'GL_APPLE_transform_hint');
19461   GL_APPLE_vertex_array_object := Int_CheckExtension(Buffer, 'GL_APPLE_vertex_array_object');
19462   GL_APPLE_vertex_array_range := Int_CheckExtension(Buffer, 'GL_APPLE_vertex_array_range');
19463   GL_APPLE_ycbcr_422 := Int_CheckExtension(Buffer, 'GL_APPLE_ycbcr_422');
19464   GL_APPLE_texture_range := Int_CheckExtension(Buffer, 'GL_APPLE_texture_range');
19465   GL_APPLE_float_pixels := Int_CheckExtension(Buffer, 'GL_APPLE_float_pixels');
19466   GL_APPLE_vertex_program_evaluators := Int_CheckExtension(Buffer, 'GL_APPLE_vertex_program_evaluators');
19467   GL_APPLE_aux_depth_stencil := Int_CheckExtension(Buffer, 'GL_APPLE_aux_depth_stencil');
19468   GL_APPLE_object_purgeable := Int_CheckExtension(Buffer, 'GL_APPLE_object_purgeable');
19469   GL_APPLE_row_bytes := Int_CheckExtension(Buffer, 'GL_APPLE_row_bytes');
19470   GL_APPLE_rgb_422 := Int_CheckExtension(Buffer, 'GL_APPLE_rgb_422');
19471
19472   // ARB
19473   GL_ARB_depth_texture := Int_CheckExtension(Buffer, 'GL_ARB_depth_texture');
19474   GL_ARB_fragment_program := Int_CheckExtension(Buffer, 'GL_ARB_fragment_program');
19475   GL_ARB_imaging := Int_CheckExtension(Buffer, 'GL_ARB_imaging');
19476   GL_ARB_matrix_palette := Int_CheckExtension(Buffer, 'GL_ARB_matrix_palette');
19477   GL_ARB_multisample := Int_CheckExtension(Buffer, 'GL_ARB_multisample');
19478   GL_ARB_multitexture := Int_CheckExtension(Buffer, 'GL_ARB_multitexture');
19479   GL_ARB_point_parameters := Int_CheckExtension(Buffer, 'GL_ARB_point_parameters');
19480   GL_ARB_shadow := Int_CheckExtension(Buffer, 'GL_ARB_shadow');
19481   GL_ARB_shadow_ambient := Int_CheckExtension(Buffer, 'GL_ARB_shadow_ambient');
19482   GL_ARB_sparse_texture := Int_CheckExtension(Buffer, 'GL_ARB_sparse_texture');
19483   GL_ARB_texture_border_clamp := Int_CheckExtension(Buffer, 'GL_ARB_texture_border_clamp');
19484   GL_ARB_texture_compression := Int_CheckExtension(Buffer, 'GL_ARB_texture_compression');
19485   GL_ARB_texture_cube_map := Int_CheckExtension(Buffer, 'GL_ARB_texture_cube_map');
19486   GL_ARB_texture_env_add := Int_CheckExtension(Buffer, 'GL_ARB_texture_env_add');
19487   GL_ARB_texture_env_combine := Int_CheckExtension(Buffer, 'GL_ARB_texture_env_combine');
19488   GL_ARB_texture_env_crossbar := Int_CheckExtension(Buffer, 'GL_ARB_texture_env_crossbar');
19489   GL_ARB_texture_env_dot3 := Int_CheckExtension(Buffer, 'GL_ARB_texture_env_dot3');
19490   GL_ARB_texture_mirrored_repeat := Int_CheckExtension(Buffer, 'GL_ARB_texture_mirrored_repeat');
19491   GL_ARB_transpose_matrix := Int_CheckExtension(Buffer, 'GL_ARB_transpose_matrix');
19492   GL_ARB_vertex_blend := Int_CheckExtension(Buffer, 'GL_ARB_vertex_blend');
19493   GL_ARB_vertex_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_vertex_buffer_object');
19494   GL_ARB_vertex_program := Int_CheckExtension(Buffer, 'GL_ARB_vertex_program');
19495   GL_ARB_window_pos := Int_CheckExtension(Buffer, 'GL_ARB_window_pos');
19496   GL_ARB_shader_objects := Int_CheckExtension(Buffer, 'GL_ARB_shader_objects');
19497   GL_ARB_vertex_shader := Int_CheckExtension(Buffer, 'GL_ARB_vertex_shader');
19498   GL_ARB_fragment_shader := Int_CheckExtension(Buffer, 'GL_ARB_fragment_shader');
19499   GL_ARB_occlusion_query := Int_CheckExtension(Buffer, 'GL_ARB_occlusion_query');
19500   GL_ARB_shading_language_100 := Int_CheckExtension(Buffer, 'GL_ARB_shading_language_100');
19501   GL_ARB_point_sprite := Int_CheckExtension(Buffer, 'GL_ARB_point_sprite');
19502   GL_ARB_texture_non_power_of_two := Int_CheckExtension(Buffer, 'GL_ARB_texture_non_power_of_two');
19503   GL_ARB_fragment_program_shadow := Int_CheckExtension(Buffer, 'GL_ARB_fragment_program_shadow');
19504   GL_ARB_draw_buffers := Int_CheckExtension(Buffer, 'GL_ARB_draw_buffers');
19505   GL_ARB_texture_rectangle := Int_CheckExtension(Buffer, 'GL_ARB_texture_rectangle');
19506   GL_ARB_color_buffer_float := Int_CheckExtension(Buffer, 'GL_ARB_color_buffer_float');
19507   GL_ARB_half_float_pixel := Int_CheckExtension(Buffer, 'GL_ARB_half_float_pixel');
19508   GL_ARB_texture_float := Int_CheckExtension(Buffer, 'GL_ARB_texture_float');
19509   GL_ARB_pixel_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_pixel_buffer_object');
19510   GL_ARB_depth_buffer_float := Int_CheckExtension(Buffer, 'GL_ARB_depth_buffer_float');
19511   GL_ARB_draw_instanced := Int_CheckExtension(Buffer, 'GL_ARB_draw_instanced');
19512   GL_ARB_framebuffer_object := Int_CheckExtension(Buffer, 'GL_ARB_framebuffer_object');
19513   GL_ARB_framebuffer_sRGB := Int_CheckExtension(Buffer, 'GL_ARB_framebuffer_sRGB');
19514   GL_ARB_geometry_shader4 := Int_CheckExtension(Buffer, 'GL_ARB_geometry_shader4');
19515   GL_ARB_half_float_vertex := Int_CheckExtension(Buffer, 'GL_ARB_half_float_vertex');
19516   GL_ARB_instanced_arrays := Int_CheckExtension(Buffer, 'GL_ARB_instanced_arrays');
19517   GL_ARB_map_buffer_range := Int_CheckExtension(Buffer, 'GL_ARB_map_buffer_range');
19518   GL_ARB_texture_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_texture_buffer_object');
19519   GL_ARB_texture_compression_rgtc := Int_CheckExtension(Buffer, 'GL_ARB_texture_compression_rgtc');
19520   GL_ARB_texture_rg := Int_CheckExtension(Buffer, 'GL_ARB_texture_rg');
19521   GL_ARB_vertex_array_object := Int_CheckExtension(Buffer, 'GL_ARB_vertex_array_object');
19522   GL_ARB_uniform_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_uniform_buffer_object');
19523   GL_ARB_compatibility := Int_CheckExtension(Buffer, 'GL_ARB_compatibility');
19524   GL_ARB_copy_buffer := Int_CheckExtension(Buffer, 'GL_ARB_copy_buffer');
19525   GL_ARB_shader_texture_lod := Int_CheckExtension(Buffer, 'GL_ARB_shader_texture_lod');
19526   GL_ARB_depth_clamp := Int_CheckExtension(Buffer, 'GL_ARB_depth_clamp');
19527   GL_ARB_draw_elements_base_vertex := Int_CheckExtension(Buffer, 'GL_ARB_draw_elements_base_vertex');
19528   GL_ARB_fragment_coord_conventions := Int_CheckExtension(Buffer, 'GL_ARB_fragment_coord_conventions');
19529   GL_ARB_provoking_vertex := Int_CheckExtension(Buffer, 'GL_ARB_provoking_vertex');
19530   GL_ARB_seamless_cube_map := Int_CheckExtension(Buffer, 'GL_ARB_seamless_cube_map');
19531   GL_ARB_sync := Int_CheckExtension(Buffer, 'GL_ARB_sync');
19532   GL_ARB_texture_multisample := Int_CheckExtension(Buffer, 'GL_ARB_texture_multisample');
19533   GL_ARB_vertex_array_bgra := Int_CheckExtension(Buffer, 'GL_ARB_vertex_array_bgra');
19534   GL_ARB_draw_buffers_blend := Int_CheckExtension(Buffer, 'GL_ARB_draw_buffers_blend');
19535   GL_ARB_sample_shading := Int_CheckExtension(Buffer, 'GL_ARB_sample_shading');
19536   GL_ARB_texture_cube_map_array := Int_CheckExtension(Buffer, 'GL_ARB_texture_cube_map_array');
19537   GL_ARB_texture_gather := Int_CheckExtension(Buffer, 'GL_ARB_texture_gather');
19538   GL_ARB_texture_query_lod := Int_CheckExtension(Buffer, 'GL_ARB_texture_query_lod');
19539   GL_ARB_shading_language_include := Int_CheckExtension(Buffer, 'GL_ARB_shading_language_include');
19540   GL_ARB_texture_compression_bptc := Int_CheckExtension(Buffer, 'GL_ARB_texture_compression_bptc');
19541   GL_ARB_blend_func_extended := Int_CheckExtension(Buffer, 'GL_ARB_blend_func_extended');
19542   GL_ARB_explicit_attrib_location := Int_CheckExtension(Buffer, 'GL_ARB_explicit_attrib_location');
19543   GL_ARB_occlusion_query2 := Int_CheckExtension(Buffer, 'GL_ARB_occlusion_query2');
19544   GL_ARB_sampler_objects := Int_CheckExtension(Buffer, 'GL_ARB_sampler_objects');
19545   GL_ARB_shader_bit_encoding := Int_CheckExtension(Buffer, 'GL_ARB_shader_bit_encoding');
19546   GL_ARB_texture_rgb10_a2ui := Int_CheckExtension(Buffer, 'GL_ARB_texture_rgb10_a2ui');
19547   GL_ARB_texture_swizzle := Int_CheckExtension(Buffer, 'GL_ARB_texture_swizzle');
19548   GL_ARB_timer_query := Int_CheckExtension(Buffer, 'GL_ARB_timer_query');
19549   GL_ARB_vertex_type_2_10_10_10_rev := Int_CheckExtension(Buffer, 'GL_ARB_vertex_type_2_10_10_10_rev');
19550   GL_ARB_draw_indirect := Int_CheckExtension(Buffer, 'GL_ARB_draw_indirect');
19551   GL_ARB_gpu_shader5 := Int_CheckExtension(Buffer, 'GL_ARB_gpu_shader5');
19552   GL_ARB_gpu_shader_fp64 := Int_CheckExtension(Buffer, 'GL_ARB_gpu_shader_fp64');
19553   GL_ARB_shader_subroutine := Int_CheckExtension(Buffer, 'GL_ARB_shader_subroutine');
19554   GL_ARB_tessellation_shader := Int_CheckExtension(Buffer, 'GL_ARB_tessellation_shader');
19555   GL_ARB_texture_buffer_object_rgb32 := Int_CheckExtension(Buffer, 'GL_ARB_texture_buffer_object_rgb32');
19556   GL_ARB_transform_feedback2 := Int_CheckExtension(Buffer, 'GL_ARB_transform_feedback2');
19557   GL_ARB_transform_feedback3 := Int_CheckExtension(Buffer, 'GL_ARB_transform_feedback3');
19558   GL_ARB_ES2_compatibility := Int_CheckExtension(Buffer, 'GL_ARB_ES2_compatibility');
19559   GL_ARB_get_program_binary := Int_CheckExtension(Buffer, 'GL_ARB_get_program_binary');
19560   GL_ARB_separate_shader_objects := Int_CheckExtension(Buffer, 'GL_ARB_separate_shader_objects');
19561   GL_ARB_shader_precision := Int_CheckExtension(Buffer, 'GL_ARB_shader_precision');
19562   GL_ARB_vertex_attrib_64bit := Int_CheckExtension(Buffer, 'GL_ARB_vertex_attrib_64bit');
19563   GL_ARB_viewport_array := Int_CheckExtension(Buffer, 'GL_ARB_viewport_array');
19564   GL_ARB_compute_variable_group_size := Int_CheckExtension(Buffer, 'GL_ARB_compute_variable_group_size');
19565
19566   // GL 4.2
19567   GL_ARB_base_instance := Int_CheckExtension(Buffer, 'GL_ARB_base_instance');
19568   GL_ARB_shading_language_420pack := Int_CheckExtension(Buffer, 'GL_ARB_shading_language_420pack');
19569   GL_ARB_transform_feedback_instanced := Int_CheckExtension(Buffer, 'GL_ARB_transform_feedback_instanced');
19570   GL_ARB_compressed_texture_pixel_storage := Int_CheckExtension(Buffer, 'GL_ARB_compressed_texture_pixel_storage');
19571   GL_ARB_conservative_depth := Int_CheckExtension(Buffer, 'GL_ARB_conservative_depth');
19572   GL_ARB_internalformat_query := Int_CheckExtension(Buffer, 'GL_ARB_internalformat_query');
19573   GL_ARB_map_buffer_alignment := Int_CheckExtension(Buffer, 'GL_ARB_map_buffer_alignment');
19574   GL_ARB_shader_atomic_counters := Int_CheckExtension(Buffer, 'GL_ARB_shader_atomic_counters');
19575   GL_ARB_shader_image_load_store := Int_CheckExtension(Buffer, 'GL_ARB_shader_image_load_store');
19576   GL_ARB_shading_language_packing := Int_CheckExtension(Buffer, 'GL_ARB_shading_language_packing');
19577   GL_ARB_texture_storage := Int_CheckExtension(Buffer, 'GL_ARB_texture_storage');
19578
19579   // GL 4.3
19580   GL_ARB_arrays_of_arrays := Int_CheckExtension(Buffer, 'GL_ARB_arrays_of_arrays');
19581   GL_ARB_fragment_layer_viewport := Int_CheckExtension(Buffer, 'GL_ARB_fragment_layer_viewport');
19582   GL_ARB_shader_image_size := Int_CheckExtension(Buffer, 'GL_ARB_shader_image_size');
19583   GL_ARB_ES3_compatibility := Int_CheckExtension(Buffer, 'GL_ARB_ES3_compatibility');
19584   GL_ARB_clear_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_clear_buffer_object');
19585   GL_ARB_compute_shader := Int_CheckExtension(Buffer, 'GL_ARB_compute_shader');
19586   GL_ARB_copy_image := Int_CheckExtension(Buffer, 'GL_ARB_copy_image');
19587   GL_KHR_debug := Int_CheckExtension(Buffer, 'GL_KHR_debug');
19588   GL_ARB_explicit_uniform_location := Int_CheckExtension(Buffer, 'GL_ARB_explicit_uniform_location');
19589   GL_ARB_framebuffer_no_attachments := Int_CheckExtension(Buffer, 'GL_ARB_framebuffer_no_attachments');
19590   GL_ARB_internalformat_query2 := Int_CheckExtension(Buffer, 'GL_ARB_internalformat_query2');
19591   GL_ARB_invalidate_subdata := Int_CheckExtension(Buffer, 'GL_ARB_invalidate_subdata');
19592   GL_ARB_multi_draw_indirect := Int_CheckExtension(Buffer, 'GL_ARB_multi_draw_indirect');
19593   GL_ARB_program_interface_query := Int_CheckExtension(Buffer, 'GL_ARB_program_interface_query');
19594   GL_ARB_robust_buffer_access_behavior := Int_CheckExtension(Buffer, 'GL_ARB_robust_buffer_access_behavior');
19595   GL_ARB_shader_storage_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_shader_storage_buffer_object');
19596   GL_ARB_stencil_texturing := Int_CheckExtension(Buffer, 'GL_ARB_stencil_texturing');
19597   GL_ARB_texture_buffer_range := Int_CheckExtension(Buffer, 'GL_ARB_texture_buffer_range');
19598   GL_ARB_texture_query_levels := Int_CheckExtension(Buffer, 'GL_ARB_texture_query_levels');
19599   GL_ARB_texture_storage_multisample := Int_CheckExtension(Buffer, 'GL_ARB_texture_storage_multisample');
19600   GL_ARB_texture_view := Int_CheckExtension(Buffer, 'GL_ARB_texture_view');
19601   GL_ARB_vertex_attrib_binding := Int_CheckExtension(Buffer, 'GL_ARB_vertex_attrib_binding');
19602   GL_ARB_cl_event := Int_CheckExtension(Buffer, 'GL_ARB_cl_event');
19603   GL_ARB_debug_output := Int_CheckExtension(Buffer, 'GL_ARB_debug_output');
19604   GL_ARB_robustness := Int_CheckExtension(Buffer, 'GL_ARB_robustness');
19605   GL_ARB_shader_stencil_export := Int_CheckExtension(Buffer, 'GL_ARB_shader_stencil_export');
19606
19607   // GL 4.4
19608   GL_ARB_buffer_storage := Int_CheckExtension(Buffer, 'GL_ARB_buffer_storage');
19609   GL_ARB_clear_texture := Int_CheckExtension(Buffer, 'GL_ARB_clear_texture');
19610   GL_ARB_enhanced_layouts := Int_CheckExtension(Buffer, 'GL_ARB_enhanced_layouts');
19611   GL_ARB_multi_bind := Int_CheckExtension(Buffer, 'GL_ARB_multi_bind');
19612   GL_ARB_query_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_query_buffer_object');
19613   GL_ARB_texture_mirror_clamp_to_edge:= Int_CheckExtension(Buffer, 'GL_ARB_texture_mirror_clamp_to_edge');
19614   GL_ARB_texture_stencil8 := Int_CheckExtension(Buffer, 'GL_ARB_texture_stencil8');
19615   GL_ARB_vertex_type_10f_11f_11f_rev := Int_CheckExtension(Buffer, 'GL_ARB_vertex_type_10f_11f_11f_rev');
19616   GL_ARB_bindless_texture := Int_CheckExtension(Buffer, 'GL_ARB_bindless_texture');
19617   GL_ARB_sparse_texture := Int_CheckExtension(Buffer, 'GL_ARB_sparse_texture');
19618
19619   // GL 4.5
19620   GL_ARB_clip_control := Int_CheckExtension(Buffer, 'GL_ARB_clip_control');
19621   GL_ARB_cull_distance := Int_CheckExtension(Buffer, 'GL_ARB_cull_distance');
19622   GL_ARB_ES3_1_compatibility := Int_CheckExtension(Buffer, 'GL_ARB_ES3_1_compatibility');
19623   GL_ARB_conditional_render_inverted := Int_CheckExtension(Buffer, 'GL_ARB_conditional_render_inverted');
19624   GL_KHR_context_flush_control := Int_CheckExtension(Buffer, 'GL_KHR_context_flush_control');
19625   GL_ARB_derivative_control := Int_CheckExtension(Buffer, 'GL_ARB_derivative_control');
19626   GL_ARB_direct_state_access := Int_CheckExtension(Buffer, 'GL_ARB_direct_state_access');
19627   GL_ARB_get_texture_sub_image := Int_CheckExtension(Buffer, 'GL_ARB_get_texture_sub_image');
19628   GL_KHR_robustness := Int_CheckExtension(Buffer, 'GL_KHR_robustness');
19629   GL_ARB_shader_texture_image_samples := Int_CheckExtension(Buffer, 'GL_ARB_shader_texture_image_samples');
19630   GL_ARB_texture_barrier := Int_CheckExtension(Buffer, 'GL_ARB_texture_barrier');
19631
19632   // ATI/AMD
19633   GL_ATI_draw_buffers := Int_CheckExtension(Buffer, 'GL_ATI_draw_buffers');
19634   GL_ATI_element_array := Int_CheckExtension(Buffer, 'GL_ATI_element_array');
19635   GL_ATI_envmap_bumpmap := Int_CheckExtension(Buffer, 'GL_ATI_envmap_bumpmap');
19636   GL_ATI_fragment_shader := Int_CheckExtension(Buffer, 'GL_ATI_fragment_shader');
19637   GL_ATI_map_object_buffer := Int_CheckExtension(Buffer, 'GL_ATI_map_object_buffer');
19638   GL_ATI_pn_triangles := Int_CheckExtension(Buffer, 'GL_ATI_pn_triangles');
19639   GL_ATI_separate_stencil := Int_CheckExtension(Buffer, 'GL_ATI_separate_stencil');
19640   GL_ATI_text_fragment_shader := Int_CheckExtension(Buffer, 'GL_ATI_text_fragment_shader');
19641   GL_ATI_texture_env_combine3 := Int_CheckExtension(Buffer, 'GL_ATI_texture_env_combine3');
19642   GL_ATI_texture_float := Int_CheckExtension(Buffer, 'GL_ATI_texture_float');
19643   GL_ATI_texture_mirror_once := Int_CheckExtension(Buffer, 'GL_ATI_texture_mirror_once');
19644   GL_ATI_vertex_array_object := Int_CheckExtension(Buffer, 'GL_ATI_vertex_array_object');
19645   GL_ATI_vertex_attrib_array_object := Int_CheckExtension(Buffer, 'GL_ATI_vertex_attrib_array_object');
19646   GL_ATI_vertex_streams := Int_CheckExtension(Buffer, 'GL_ATI_vertex_streams');
19647   GL_ATI_meminfo := Int_CheckExtension(Buffer, 'GL_ATI_meminfo');
19648   GL_AMD_performance_monitor := Int_CheckExtension(Buffer, 'GL_AMD_performance_monitor');
19649   GL_AMD_texture_texture4 := Int_CheckExtension(Buffer, 'GL_AMD_texture_texture4');
19650   GL_AMD_vertex_shader_tesselator := Int_CheckExtension(Buffer, 'GL_AMD_vertex_shader_tesselator');
19651   GL_AMD_draw_buffers_blend := Int_CheckExtension(Buffer, 'GL_AMD_draw_buffers_blend');
19652   GL_AMD_shader_stencil_export := Int_CheckExtension(Buffer, 'GL_AMD_shader_stencil_export');
19653   GL_AMD_seamless_cubemap_per_texture := Int_CheckExtension(Buffer, 'GL_AMD_seamless_cubemap_per_texture');
19654   GL_AMD_conservative_depth := Int_CheckExtension(Buffer, 'GL_AMD_conservative_depth');
19655   GL_AMD_name_gen_delete := Int_CheckExtension(Buffer, 'GL_AMD_name_gen_delete');
19656   GL_AMD_debug_output := Int_CheckExtension(Buffer, 'GL_AMD_debug_output');
19657   GL_AMD_transform_feedback3_lines_triangles := Int_CheckExtension(Buffer, 'GL_AMD_transform_feedback3_lines_triangles');
19658   GL_AMD_depth_clamp_separate := Int_CheckExtension(Buffer, 'GL_AMD_depth_clamp_separate');
19659   // 4.3
19660   GL_AMD_pinned_memory := Int_CheckExtension(Buffer, 'GL_AMD_pinned_memory');
19661   GL_AMD_stencil_operation_extended := Int_CheckExtension(Buffer, 'GL_AMD_stencil_operation_extended');
19662   GL_AMD_vertex_shader_viewport_index := Int_CheckExtension(Buffer, 'GL_AMD_vertex_shader_viewport_index');
19663   GL_AMD_vertex_shader_layer := Int_CheckExtension(Buffer, 'GL_AMD_vertex_shader_layer');
19664   GL_AMD_query_buffer_object := Int_CheckExtension(Buffer, 'GL_AMD_query_buffer_object');
19665
19666   // EXT
19667   GL_EXT_422_pixels := Int_CheckExtension(Buffer, 'GL_EXT_422_pixels');
19668   GL_EXT_abgr := Int_CheckExtension(Buffer, 'GL_EXT_abgr');
19669   GL_EXT_bgra := Int_CheckExtension(Buffer, 'GL_EXT_bgra');
19670   GL_EXT_blend_color := Int_CheckExtension(Buffer, 'GL_EXT_blend_color');
19671   GL_EXT_blend_func_separate := Int_CheckExtension(Buffer, 'GL_EXT_blend_func_separate');
19672   GL_EXT_blend_logic_op := Int_CheckExtension(Buffer, 'GL_EXT_blend_logic_op');
19673   GL_EXT_blend_minmax := Int_CheckExtension(Buffer, 'GL_EXT_blend_minmax');
19674   GL_EXT_blend_subtract := Int_CheckExtension(Buffer, 'GL_EXT_blend_subtract');
19675   GL_EXT_clip_volume_hint := Int_CheckExtension(Buffer, 'GL_EXT_clip_volume_hint');
19676   GL_EXT_cmyka := Int_CheckExtension(Buffer, 'GL_EXT_cmyka');
19677   GL_EXT_color_matrix := Int_CheckExtension(Buffer, 'GL_EXT_color_matrix');
19678   GL_EXT_color_subtable := Int_CheckExtension(Buffer, 'GL_EXT_color_subtable');
19679   GL_EXT_compiled_vertex_array := Int_CheckExtension(Buffer, 'GL_EXT_compiled_vertex_array');
19680   GL_EXT_convolution := Int_CheckExtension(Buffer, 'GL_EXT_convolution');
19681   GL_EXT_coordinate_frame := Int_CheckExtension(Buffer, 'GL_EXT_coordinate_frame');
19682   GL_EXT_copy_texture := Int_CheckExtension(Buffer, 'GL_EXT_copy_texture');
19683   GL_EXT_cull_vertex := Int_CheckExtension(Buffer, 'GL_EXT_cull_vertex');
19684   GL_EXT_draw_range_elements := Int_CheckExtension(Buffer, 'GL_EXT_draw_range_elements');
19685   GL_EXT_fog_coord := Int_CheckExtension(Buffer, 'GL_EXT_fog_coord');
19686   GL_EXT_framebuffer_object := Int_CheckExtension(Buffer, 'GL_EXT_framebuffer_object');
19687   GL_EXT_histogram := Int_CheckExtension(Buffer, 'GL_EXT_histogram');
19688   GL_EXT_index_array_formats := Int_CheckExtension(Buffer, 'GL_EXT_index_array_formats');
19689   GL_EXT_index_func := Int_CheckExtension(Buffer, 'GL_EXT_index_func');
19690   GL_EXT_index_material := Int_CheckExtension(Buffer, 'GL_EXT_index_material');
19691   GL_EXT_index_texture := Int_CheckExtension(Buffer, 'GL_EXT_index_texture');
19692   GL_EXT_light_texture := Int_CheckExtension(Buffer, 'GL_EXT_light_texture');
19693   GL_EXT_misc_attribute := Int_CheckExtension(Buffer, 'GL_EXT_misc_attribute');
19694   GL_EXT_multi_draw_arrays := Int_CheckExtension(Buffer, 'GL_EXT_multi_draw_arrays');
19695   GL_EXT_multisample := Int_CheckExtension(Buffer, 'GL_EXT_multisample');
19696   GL_EXT_packed_pixels := Int_CheckExtension(Buffer, 'GL_EXT_packed_pixels');
19697   GL_EXT_paletted_texture := Int_CheckExtension(Buffer, 'GL_EXT_paletted_texture');
19698   GL_EXT_pixel_transform := Int_CheckExtension(Buffer, 'GL_EXT_pixel_transform');
19699   GL_EXT_pixel_transform_color_table := Int_CheckExtension(Buffer, 'GL_EXT_pixel_transform_color_table');
19700   GL_EXT_point_parameters := Int_CheckExtension(Buffer, 'GL_EXT_point_parameters');
19701   GL_EXT_polygon_offset := Int_CheckExtension(Buffer, 'GL_EXT_polygon_offset');
19702   GL_EXT_rescale_normal := Int_CheckExtension(Buffer, 'GL_EXT_rescale_normal');
19703   GL_EXT_secondary_color := Int_CheckExtension(Buffer, 'GL_EXT_secondary_color');
19704   GL_EXT_separate_specular_color := Int_CheckExtension(Buffer, 'GL_EXT_separate_specular_color');
19705   GL_EXT_shadow_funcs := Int_CheckExtension(Buffer, 'GL_EXT_shadow_funcs');
19706   GL_EXT_shared_texture_palette := Int_CheckExtension(Buffer, 'GL_EXT_shared_texture_palette');
19707   GL_EXT_stencil_two_side := Int_CheckExtension(Buffer, 'GL_EXT_stencil_two_side');
19708   GL_EXT_stencil_wrap := Int_CheckExtension(Buffer, 'GL_EXT_stencil_wrap');
19709   GL_EXT_subtexture := Int_CheckExtension(Buffer, 'GL_EXT_subtexture');
19710   GL_EXT_texture := Int_CheckExtension(Buffer, 'GL_EXT_texture');
19711   GL_EXT_texture3D := Int_CheckExtension(Buffer, 'GL_EXT_texture3D');
19712   GL_EXT_texture_compression_s3tc := Int_CheckExtension(Buffer, 'GL_EXT_texture_compression_s3tc');
19713   GL_EXT_texture_cube_map := Int_CheckExtension(Buffer, 'GL_EXT_texture_cube_map');
19714   GL_EXT_texture_edge_clamp := Int_CheckExtension(Buffer, 'GL_EXT_texture_edge_clamp');
19715   GL_EXT_texture_env_add := Int_CheckExtension(Buffer, 'GL_EXT_texture_env_add');
19716   GL_EXT_texture_env_combine := Int_CheckExtension(Buffer, 'GL_EXT_texture_env_combine');
19717   GL_EXT_texture_env_dot3 := Int_CheckExtension(Buffer, 'GL_EXT_texture_env_dot3');
19718   GL_EXT_texture_filter_anisotropic := Int_CheckExtension(Buffer, 'GL_EXT_texture_filter_anisotropic');
19719   GL_EXT_texture_lod_bias := Int_CheckExtension(Buffer, 'GL_EXT_texture_lod_bias');
19720   GL_EXT_texture_object := Int_CheckExtension(Buffer, 'GL_EXT_texture_object');
19721   GL_EXT_texture_perturb_normal := Int_CheckExtension(Buffer, 'GL_EXT_texture_perturb_normal');
19722   GL_EXT_texture_rectangle := Int_CheckExtension(Buffer, 'GL_EXT_texture_rectangle');
19723   GL_EXT_vertex_array := Int_CheckExtension(Buffer, 'GL_EXT_vertex_array');
19724   GL_EXT_vertex_shader := Int_CheckExtension(Buffer, 'GL_EXT_vertex_shader');
19725   GL_EXT_vertex_weighting := Int_CheckExtension(Buffer, 'GL_EXT_vertex_weighting');
19726   GL_EXT_depth_bounds_test := Int_CheckExtension(Buffer, 'GL_EXT_depth_bounds_test');
19727   GL_EXT_texture_mirror_clamp := Int_CheckExtension(Buffer, 'GL_EXT_texture_mirror_clamp');
19728   GL_EXT_blend_equation_separate := Int_CheckExtension(Buffer, 'GL_EXT_blend_equation_separate');
19729   GL_EXT_pixel_buffer_object := Int_CheckExtension(Buffer, 'GL_EXT_pixel_buffer_object');
19730   GL_EXT_texture_compression_dxt1 := Int_CheckExtension(Buffer, 'GL_EXT_texture_compression_dxt1');
19731   GL_EXT_stencil_clear_tag := Int_CheckExtension(Buffer, 'GL_EXT_stencil_clear_tag');
19732   GL_EXT_packed_depth_stencil := Int_CheckExtension(Buffer, 'GL_EXT_packed_depth_stencil');
19733   GL_EXT_texture_sRGB := Int_CheckExtension(Buffer, 'GL_EXT_texture_sRGB');
19734   GL_EXT_framebuffer_blit := Int_CheckExtension(Buffer, 'GL_EXT_framebuffer_blit');
19735   GL_EXT_framebuffer_multisample := Int_CheckExtension(Buffer, 'GL_EXT_framebuffer_multisample');
19736   GL_EXT_timer_query := Int_CheckExtension(Buffer, 'GL_EXT_timer_query');
19737   GL_EXT_gpu_program_parameters := Int_CheckExtension(Buffer, 'GL_EXT_gpu_program_parameters');
19738   GL_EXT_bindable_uniform := Int_CheckExtension(Buffer, 'GL_EXT_bindable_uniform');
19739   GL_EXT_draw_buffers2 := Int_CheckExtension(Buffer, 'GL_EXT_draw_buffers2');
19740   GL_EXT_draw_instanced := Int_CheckExtension(Buffer, 'GL_EXT_draw_instanced');
19741   GL_EXT_framebuffer_sRGB := Int_CheckExtension(Buffer, 'GL_EXT_framebuffer_sRGB');
19742   GL_EXT_geometry_shader4 := Int_CheckExtension(Buffer, 'GL_EXT_geometry_shader4');
19743   GL_EXT_gpu_shader4 := Int_CheckExtension(Buffer, 'GL_EXT_gpu_shader4');
19744   GL_EXT_packed_float := Int_CheckExtension(Buffer, 'GL_EXT_packed_float');
19745   GL_EXT_texture_array := Int_CheckExtension(Buffer, 'GL_EXT_texture_array');
19746   GL_EXT_texture_buffer_object := Int_CheckExtension(Buffer, 'GL_EXT_texture_buffer_object');
19747   GL_EXT_texture_compression_latc := Int_CheckExtension(Buffer, 'GL_EXT_texture_compression_latc');
19748   GL_EXT_texture_compression_rgtc := Int_CheckExtension(Buffer, 'GL_EXT_texture_compression_rgtc');
19749   GL_EXT_texture_integer := Int_CheckExtension(Buffer, 'GL_EXT_texture_integer');
19750   GL_EXT_texture_shared_exponent := Int_CheckExtension(Buffer, 'GL_EXT_texture_shared_exponent');
19751   GL_EXT_transform_feedback := Int_CheckExtension(Buffer, 'GL_EXT_transform_feedback');
19752   GL_EXT_direct_state_access := Int_CheckExtension(Buffer, 'GL_EXT_direct_state_access');
19753   GL_EXT_vertex_array_bgra := Int_CheckExtension(Buffer, 'GL_EXT_vertex_array_bgra');
19754   GL_EXT_texture_swizzle := Int_CheckExtension(Buffer, 'GL_EXT_texture_swizzle');
19755   GL_EXT_provoking_vertex := Int_CheckExtension(Buffer, 'GL_EXT_provoking_vertex');
19756   GL_EXT_texture_snorm := Int_CheckExtension(Buffer, 'GL_EXT_texture_snorm');
19757   GL_EXT_separate_shader_objects := Int_CheckExtension(Buffer, 'GL_EXT_separate_shader_objects');
19758   GL_EXT_shader_image_load_store := Int_CheckExtension(Buffer, 'GL_EXT_shader_image_load_store');
19759   GL_EXT_vertex_attrib_64bit := Int_CheckExtension(Buffer, 'GL_EXT_vertex_attrib_64bit');
19760   GL_EXT_texture_sRGB_decode := Int_CheckExtension(Buffer, 'GL_EXT_texture_sRGB_decode');
19761
19762   // HP
19763   GL_HP_convolution_border_modes := Int_CheckExtension(Buffer, 'GL_HP_convolution_border_modes');
19764   GL_HP_image_transform := Int_CheckExtension(Buffer, 'GL_HP_image_transform');
19765   GL_HP_occlusion_test := Int_CheckExtension(Buffer, 'GL_HP_occlusion_test');
19766   GL_HP_texture_lighting := Int_CheckExtension(Buffer, 'GL_HP_texture_lighting');
19767
19768   // IBM
19769   GL_IBM_cull_vertex := Int_CheckExtension(Buffer, 'GL_IBM_cull_vertex');
19770   GL_IBM_multimode_draw_arrays := Int_CheckExtension(Buffer, 'GL_IBM_multimode_draw_arrays');
19771   GL_IBM_rasterpos_clip := Int_CheckExtension(Buffer, 'GL_IBM_rasterpos_clip');
19772   GL_IBM_texture_mirrored_repeat := Int_CheckExtension(Buffer, 'GL_IBM_texture_mirrored_repeat');
19773   GL_IBM_vertex_array_lists := Int_CheckExtension(Buffer, 'GL_IBM_vertex_array_lists');
19774
19775   // INGR
19776   GL_INGR_blend_func_separate := Int_CheckExtension(Buffer, 'GL_INGR_blend_func_separate');
19777   GL_INGR_color_clamp := Int_CheckExtension(Buffer, 'GL_INGR_color_clamp');
19778   GL_INGR_interlace_read := Int_CheckExtension(Buffer, 'GL_INGR_interlace_read');
19779   GL_INGR_palette_buffer := Int_CheckExtension(Buffer, 'GL_INGR_palette_buffer');
19780
19781   // INTEL
19782   GL_INTEL_parallel_arrays := Int_CheckExtension(Buffer, 'GL_INTEL_parallel_arrays');
19783   GL_INTEL_texture_scissor := Int_CheckExtension(Buffer, 'GL_INTEL_texture_scissor');
19784
19785   // MESA
19786   GL_MESA_resize_buffers := Int_CheckExtension(Buffer, 'GL_MESA_resize_buffers');
19787   GL_MESA_window_pos := Int_CheckExtension(Buffer, 'GL_MESA_window_pos');
19788
19789   // Khronos
19790   // 4.5
19791   GL_KHR_blend_equation_advanced := Int_CheckExtension(Buffer, 'GL_KHR_blend_equation_advanced');
19792   GL_KHR_blend_equation_advanced_coherent := Int_CheckExtension(Buffer, 'GL_KHR_blend_equation_advanced_coherent');
19793   GL_KHR_robustness := Int_CheckExtension(Buffer, 'GL_KHR_robustness');
19794   GL_KHR_robust_buffer_access_behavior := Int_CheckExtension(Buffer, 'GL_KHR_robust_buffer_access_behavior');
19795
19796   // NVIDIA
19797   GL_NV_blend_square := Int_CheckExtension(Buffer, 'GL_NV_blend_square');
19798   GL_NV_copy_depth_to_color := Int_CheckExtension(Buffer, 'GL_NV_copy_depth_to_color');
19799   GL_NV_depth_clamp := Int_CheckExtension(Buffer, 'GL_NV_depth_clamp');
19800   GL_NV_evaluators := Int_CheckExtension(Buffer, 'GL_NV_evaluators');
19801   GL_NV_fence := Int_CheckExtension(Buffer, 'GL_NV_fence');
19802   GL_NV_float_buffer := Int_CheckExtension(Buffer, 'GL_NV_float_buffer');
19803   GL_NV_fog_distance := Int_CheckExtension(Buffer, 'GL_NV_fog_distance');
19804   GL_NV_fragment_program := Int_CheckExtension(Buffer, 'GL_NV_fragment_program');
19805   GL_NV_half_float := Int_CheckExtension(Buffer, 'GL_NV_half_float');
19806   GL_NV_light_max_exponent := Int_CheckExtension(Buffer, 'GL_NV_light_max_exponent');
19807   GL_NV_multisample_filter_hint := Int_CheckExtension(Buffer, 'GL_NV_multisample_filter_hint');
19808   GL_NV_occlusion_query := Int_CheckExtension(Buffer, 'GL_NV_occlusion_query');
19809   GL_NV_packed_depth_stencil := Int_CheckExtension(Buffer, 'GL_NV_packed_depth_stencil');
19810   GL_NV_pixel_data_range := Int_CheckExtension(Buffer, 'GL_NV_pixel_data_range');
19811   GL_NV_point_sprite := Int_CheckExtension(Buffer, 'GL_NV_point_sprite');
19812   GL_NV_primitive_restart := Int_CheckExtension(Buffer, 'GL_NV_primitive_restart');
19813   GL_NV_register_combiners := Int_CheckExtension(Buffer, 'GL_NV_register_combiners');
19814   GL_NV_register_combiners2 := Int_CheckExtension(Buffer, 'GL_NV_register_combiners2');
19815   GL_NV_texgen_emboss := Int_CheckExtension(Buffer, 'GL_NV_texgen_emboss');
19816   GL_NV_texgen_reflection := Int_CheckExtension(Buffer, 'GL_NV_texgen_reflection');
19817   GL_NV_texture_compression_vtc := Int_CheckExtension(Buffer, 'GL_NV_texture_compression_vtc');
19818   GL_NV_texture_env_combine4 := Int_CheckExtension(Buffer, 'GL_NV_texture_env_combine4');
19819   GL_NV_texture_expand_normal := Int_CheckExtension(Buffer, 'GL_NV_texture_expand_normal');
19820   GL_NV_texture_rectangle := Int_CheckExtension(Buffer, 'GL_NV_texture_rectangle');
19821   GL_NV_texture_shader := Int_CheckExtension(Buffer, 'GL_NV_texture_shader');
19822   GL_NV_texture_shader2 := Int_CheckExtension(Buffer, 'GL_NV_texture_shader2');
19823   GL_NV_texture_shader3 := Int_CheckExtension(Buffer, 'GL_NV_texture_shader3');
19824   GL_NV_vertex_array_range := Int_CheckExtension(Buffer, 'GL_NV_vertex_array_range');
19825   GL_NV_vertex_array_range2 := Int_CheckExtension(Buffer, 'GL_NV_vertex_array_range2');
19826   GL_NV_vertex_program := Int_CheckExtension(Buffer, 'GL_NV_vertex_program');
19827   GL_NV_vertex_program1_1 := Int_CheckExtension(Buffer, 'GL_NV_vertex_program1_1');
19828   GL_NV_vertex_program2 := Int_CheckExtension(Buffer, 'GL_NV_vertex_program2');
19829   GL_NV_fragment_program_option := Int_CheckExtension(Buffer, 'GL_NV_fragment_program_option');
19830   GL_NV_fragment_program2 := Int_CheckExtension(Buffer, 'GL_NV_fragment_program2');
19831   GL_NV_vertex_program2_option := Int_CheckExtension(Buffer, 'GL_NV_vertex_program2_option');
19832   GL_NV_vertex_program3 := Int_CheckExtension(Buffer, 'GL_NV_vertex_program3');
19833   GL_NV_depth_buffer_float := Int_CheckExtension(Buffer, 'GL_NV_depth_buffer_float');
19834   GL_NV_fragment_program4 := Int_CheckExtension(Buffer, 'GL_NV_fragment_program4');
19835   GL_NV_framebuffer_multisample_coverage := Int_CheckExtension(Buffer, 'GL_NV_framebuffer_multisample_coverage');
19836   GL_NV_geometry_program4 := Int_CheckExtension(Buffer, 'GL_NV_geometry_program4');
19837   GL_NV_gpu_program4 := Int_CheckExtension(Buffer, 'GL_NV_gpu_program4');
19838   GL_NV_parameter_buffer_object := Int_CheckExtension(Buffer, 'GL_NV_parameter_buffer_object');
19839   GL_NV_transform_feedback := Int_CheckExtension(Buffer, 'GL_NV_transform_feedback');
19840   GL_NV_vertex_program4 := Int_CheckExtension(Buffer, 'GL_NV_vertex_program4');
19841   GL_NV_conditional_render := Int_CheckExtension(Buffer, 'GL_NV_conditional_render');
19842   GL_NV_present_video := Int_CheckExtension(Buffer, 'GL_NV_present_video');
19843   GL_NV_explicit_multisample := Int_CheckExtension(Buffer, 'GL_NV_explicit_multisample');
19844   GL_NV_transform_feedback2 := Int_CheckExtension(Buffer, 'GL_NV_transform_feedback2');
19845   GL_NV_video_capture := Int_CheckExtension(Buffer, 'GL_NV_video_capture');
19846   GL_NV_copy_image := Int_CheckExtension(Buffer, 'GL_NV_copy_image');
19847   GL_NV_parameter_buffer_object2 := Int_CheckExtension(Buffer, 'GL_NV_parameter_buffer_object2');
19848   GL_NV_shader_buffer_load := Int_CheckExtension(Buffer, 'GL_NV_shader_buffer_load');
19849   GL_NV_vertex_buffer_unified_memory := Int_CheckExtension(Buffer, 'GL_NV_vertex_buffer_unified_memory');
19850   GL_NV_gpu_program5 := Int_CheckExtension(Buffer, 'GL_NV_gpu_program5');
19851   GL_NV_gpu_shader5 := Int_CheckExtension(Buffer, 'GL_NV_gpu_shader5');
19852   GL_NV_shader_buffer_store := Int_CheckExtension(Buffer, 'GL_NV_shader_buffer_store');
19853   GL_NV_tessellation_program5 := Int_CheckExtension(Buffer, 'GL_NV_tessellation_program5');
19854   GL_NV_vertex_attrib_integer_64bit := Int_CheckExtension(Buffer, 'GL_NV_vertex_attrib_integer_64bit');
19855   GL_NV_multisample_coverage := Int_CheckExtension(Buffer, 'GL_NV_multisample_coverage');
19856   GL_NV_vdpau_interop := Int_CheckExtension(Buffer, 'GL_NV_vdpau_interop');
19857   GL_NV_texture_barrier := Int_CheckExtension(Buffer, 'GL_NV_texture_barrier');
19858   // 4.3
19859   GL_NV_path_rendering := Int_CheckExtension(Buffer, 'GL_NV_path_rendering');
19860   GL_NV_bindless_texture := Int_CheckExtension(Buffer, 'GL_NV_bindless_texture');
19861   GL_NV_shader_atomic_float := Int_CheckExtension(Buffer, 'GL_NV_shader_atomic_float');
19862
19863   // OML
19864   GL_OML_interlace := Int_CheckExtension(Buffer, 'GL_OML_interlace');
19865   GL_OML_resample := Int_CheckExtension(Buffer, 'GL_OML_resample');
19866   GL_OML_subsample := Int_CheckExtension(Buffer, 'GL_OML_subsample');
19867
19868   // PGI
19869   GL_PGI_misc_hints := Int_CheckExtension(Buffer, 'GL_PGI_misc_hints');
19870   GL_PGI_vertex_hints := Int_CheckExtension(Buffer, 'GL_PGI_vertex_hints');
19871
19872   // REND
19873   GL_REND_screen_coordinates := Int_CheckExtension(Buffer, 'GL_REND_screen_coordinates');
19874
19875   // S3
19876   GL_S3_s3tc := Int_CheckExtension(Buffer, 'GL_S3_s3tc');
19877
19878   // SGIS
19879   GL_SGIS_detail_texture := Int_CheckExtension(Buffer, 'GL_SGIS_detail_texture');
19880   GL_SGIS_fog_function := Int_CheckExtension(Buffer, 'GL_SGIS_fog_function');
19881   GL_SGIS_generate_mipmap := Int_CheckExtension(Buffer, 'GL_SGIS_generate_mipmap');
19882   GL_SGIS_multisample := Int_CheckExtension(Buffer, 'GL_SGIS_multisample');
19883   GL_SGIS_pixel_texture := Int_CheckExtension(Buffer, 'GL_SGIS_pixel_texture');
19884   GL_SGIS_point_line_texgen := Int_CheckExtension(Buffer, 'GL_SGIS_point_line_texgen');
19885   GL_SGIS_point_parameters := Int_CheckExtension(Buffer, 'GL_SGIS_point_parameters');
19886   GL_SGIS_sharpen_texture := Int_CheckExtension(Buffer, 'GL_SGIS_sharpen_texture');
19887   GL_SGIS_texture4D := Int_CheckExtension(Buffer, 'GL_SGIS_texture4D');
19888   GL_SGIS_texture_border_clamp := Int_CheckExtension(Buffer, 'GL_SGIS_texture_border_clamp');
19889   GL_SGIS_texture_color_mask := Int_CheckExtension(Buffer, 'GL_SGIS_texture_color_mask');
19890   GL_SGIS_texture_edge_clamp := Int_CheckExtension(Buffer, 'GL_SGIS_texture_edge_clamp');
19891   GL_SGIS_texture_filter4 := Int_CheckExtension(Buffer, 'GL_SGIS_texture_filter4');
19892   GL_SGIS_texture_lod := Int_CheckExtension(Buffer, 'GL_SGIS_texture_lod');
19893   GL_SGIS_texture_select := Int_CheckExtension(Buffer, 'GL_SGIS_texture_select');
19894
19895   // SGIX
19896   GL_FfdMaskSGIX := Int_CheckExtension(Buffer, 'GL_FfdMaskSGIX');
19897   GL_SGIX_async := Int_CheckExtension(Buffer, 'GL_SGIX_async');
19898   GL_SGIX_async_histogram := Int_CheckExtension(Buffer, 'GL_SGIX_async_histogram');
19899   GL_SGIX_async_pixel := Int_CheckExtension(Buffer, 'GL_SGIX_async_pixel');
19900   GL_SGIX_blend_alpha_minmax := Int_CheckExtension(Buffer, 'GL_SGIX_blend_alpha_minmax');
19901   GL_SGIX_calligraphic_fragment := Int_CheckExtension(Buffer, 'GL_SGIX_calligraphic_fragment');
19902   GL_SGIX_clipmap := Int_CheckExtension(Buffer, 'GL_SGIX_clipmap');
19903   GL_SGIX_convolution_accuracy := Int_CheckExtension(Buffer, 'GL_SGIX_convolution_accuracy');
19904   GL_SGIX_depth_pass_instrument := Int_CheckExtension(Buffer, 'GL_SGIX_depth_pass_instrument');
19905   GL_SGIX_depth_texture := Int_CheckExtension(Buffer, 'GL_SGIX_depth_texture');
19906   GL_SGIX_flush_raster := Int_CheckExtension(Buffer, 'GL_SGIX_flush_raster');
19907   GL_SGIX_fog_offset := Int_CheckExtension(Buffer, 'GL_SGIX_fog_offset');
19908   GL_SGIX_fog_scale := Int_CheckExtension(Buffer, 'GL_SGIX_fog_scale');
19909   GL_SGIX_fragment_lighting := Int_CheckExtension(Buffer, 'GL_SGIX_fragment_lighting');
19910   GL_SGIX_framezoom := Int_CheckExtension(Buffer, 'GL_SGIX_framezoom');
19911   GL_SGIX_igloo_interface := Int_CheckExtension(Buffer, 'GL_SGIX_igloo_interface');
19912   GL_SGIX_impact_pixel_texture := Int_CheckExtension(Buffer, 'GL_SGIX_impact_pixel_texture');
19913   GL_SGIX_instruments := Int_CheckExtension(Buffer, 'GL_SGIX_instruments');
19914   GL_SGIX_interlace := Int_CheckExtension(Buffer, 'GL_SGIX_interlace');
19915   GL_SGIX_ir_instrument1 := Int_CheckExtension(Buffer, 'GL_SGIX_ir_instrument1');
19916   GL_SGIX_list_priority := Int_CheckExtension(Buffer, 'GL_SGIX_list_priority');
19917   GL_SGIX_pixel_texture := Int_CheckExtension(Buffer, 'GL_SGIX_pixel_texture');
19918   GL_SGIX_pixel_tiles := Int_CheckExtension(Buffer, 'GL_SGIX_pixel_tiles');
19919   GL_SGIX_polynomial_ffd := Int_CheckExtension(Buffer, 'GL_SGIX_polynomial_ffd');
19920   GL_SGIX_reference_plane := Int_CheckExtension(Buffer, 'GL_SGIX_reference_plane');
19921   GL_SGIX_resample := Int_CheckExtension(Buffer, 'GL_SGIX_resample');
19922   GL_SGIX_scalebias_hint := Int_CheckExtension(Buffer, 'GL_SGIX_scalebias_hint');
19923   GL_SGIX_shadow := Int_CheckExtension(Buffer, 'GL_SGIX_shadow');
19924   GL_SGIX_shadow_ambient := Int_CheckExtension(Buffer, 'GL_SGIX_shadow_ambient');
19925   GL_SGIX_sprite := Int_CheckExtension(Buffer, 'GL_SGIX_sprite');
19926   GL_SGIX_subsample := Int_CheckExtension(Buffer, 'GL_SGIX_subsample');
19927   GL_SGIX_tag_sample_buffer := Int_CheckExtension(Buffer, 'GL_SGIX_tag_sample_buffer');
19928   GL_SGIX_texture_add_env := Int_CheckExtension(Buffer, 'GL_SGIX_texture_add_env');
19929   GL_SGIX_texture_coordinate_clamp := Int_CheckExtension(Buffer, 'GL_SGIX_texture_coordinate_clamp');
19930   GL_SGIX_texture_lod_bias := Int_CheckExtension(Buffer, 'GL_SGIX_texture_lod_bias');
19931   GL_SGIX_texture_multi_buffer := Int_CheckExtension(Buffer, 'GL_SGIX_texture_multi_buffer');
19932   GL_SGIX_texture_scale_bias := Int_CheckExtension(Buffer, 'GL_SGIX_texture_scale_bias');
19933   GL_SGIX_texture_select := Int_CheckExtension(Buffer, 'GL_SGIX_texture_select');
19934   GL_SGIX_vertex_preclip := Int_CheckExtension(Buffer, 'GL_SGIX_vertex_preclip');
19935   GL_SGIX_ycrcb := Int_CheckExtension(Buffer, 'GL_SGIX_ycrcb');
19936   GL_SGIX_ycrcb_subsample := Int_CheckExtension(Buffer, 'GL_SGIX_ycrcb_subsample');
19937   GL_SGIX_ycrcba := Int_CheckExtension(Buffer, 'GL_SGIX_ycrcba');
19938
19939   // SGI
19940   GL_SGI_color_matrix := Int_CheckExtension(Buffer, 'GL_SGI_color_matrix');
19941   GL_SGI_color_table := Int_CheckExtension(Buffer, 'GL_SGI_color_table');
19942   GL_SGI_depth_pass_instrument := Int_CheckExtension(Buffer, 'GL_SGI_depth_pass_instrument');
19943   GL_SGI_texture_color_table := Int_CheckExtension(Buffer, 'GL_SGI_texture_color_table');
19944
19945   // SUN
19946   GL_SUNX_constant_data := Int_CheckExtension(Buffer, 'GL_SUNX_constant_data');
19947   GL_SUN_convolution_border_modes := Int_CheckExtension(Buffer, 'GL_SUN_convolution_border_modes');
19948   GL_SUN_global_alpha := Int_CheckExtension(Buffer, 'GL_SUN_global_alpha');
19949   GL_SUN_mesh_array := Int_CheckExtension(Buffer, 'GL_SUN_mesh_array');
19950   GL_SUN_slice_accum := Int_CheckExtension(Buffer, 'GL_SUN_slice_accum');
19951   GL_SUN_triangle_list := Int_CheckExtension(Buffer, 'GL_SUN_triangle_list');
19952   GL_SUN_vertex := Int_CheckExtension(Buffer, 'GL_SUN_vertex');
19953
19954   // WIN
19955   GL_WIN_phong_shading := Int_CheckExtension(Buffer, 'GL_WIN_phong_shading');
19956   GL_WIN_specular_fog := Int_CheckExtension(Buffer, 'GL_WIN_specular_fog');
19957
19958   {$IFDEF DGL_WIN}
19959   // WGL
19960   WGL_3DFX_multisample := Int_CheckExtension(Buffer, 'WGL_3DFX_multisample');
19961   WGL_ARB_buffer_region := Int_CheckExtension(Buffer, 'WGL_ARB_buffer_region');
19962   WGL_ARB_extensions_string := Int_CheckExtension(Buffer, 'WGL_ARB_extensions_string');
19963   WGL_ARB_make_current_read := Int_CheckExtension(Buffer, 'WGL_ARB_make_current_read');
19964   WGL_ARB_multisample := Int_CheckExtension(Buffer, 'WGL_ARB_multisample');
19965   WGL_ARB_pbuffer := Int_CheckExtension(Buffer, 'WGL_ARB_pbuffer');
19966   WGL_ARB_pixel_format := Int_CheckExtension(Buffer, 'WGL_ARB_pixel_format');
19967   WGL_ARB_pixel_format_float := Int_CheckExtension(Buffer, 'WGL_ARB_pixel_format_float');
19968   WGL_ARB_render_texture := Int_CheckExtension(Buffer, 'WGL_ARB_render_texture');
19969   WGL_ARB_create_context := Int_CheckExtension(Buffer, 'WGL_ARB_create_context');
19970   WGL_ARB_create_context_profile := Int_CheckExtension(Buffer, 'WGL_ARB_create_context_profile');
19971   WGL_ARB_framebuffer_sRGB := Int_CheckExtension(Buffer, 'WGL_ARB_framebuffer_sRGB');
19972   WGL_ARB_create_context_robustness := Int_CheckExtension(Buffer, 'WGL_ARB_create_context_robustness');
19973   WGL_ATI_pixel_format_float := Int_CheckExtension(Buffer, 'WGL_ATI_pixel_format_float');
19974   WGL_AMD_gpu_association := Int_CheckExtension(Buffer, 'WGL_AMD_gpu_association');
19975   WGL_EXT_depth_float := Int_CheckExtension(Buffer, 'WGL_EXT_depth_float');
19976   WGL_EXT_display_color_table := Int_CheckExtension(Buffer, 'WGL_EXT_display_color_table');
19977   WGL_EXT_extensions_string := Int_CheckExtension(Buffer, 'WGL_EXT_extensions_string');
19978   WGL_EXT_make_current_read := Int_CheckExtension(Buffer, 'WGL_EXT_make_current_read');
19979   WGL_EXT_multisample := Int_CheckExtension(Buffer, 'WGL_EXT_multisample');
19980   WGL_EXT_pbuffer := Int_CheckExtension(Buffer, 'WGL_EXT_pbuffer');
19981   WGL_EXT_pixel_format := Int_CheckExtension(Buffer, 'WGL_EXT_pixel_format');
19982   WGL_EXT_swap_control := Int_CheckExtension(Buffer, 'WGL_EXT_swap_control');
19983   WGL_EXT_create_context_es2_profile := Int_CheckExtension(Buffer, 'WGL_EXT_create_context_es2_profile');
19984   WGL_I3D_digital_video_control := Int_CheckExtension(Buffer, 'WGL_I3D_digital_video_control');
19985   WGL_I3D_gamma := Int_CheckExtension(Buffer, 'WGL_I3D_gamma');
19986   WGL_I3D_genlock := Int_CheckExtension(Buffer, 'WGL_I3D_genlock');
19987   WGL_I3D_image_buffer := Int_CheckExtension(Buffer, 'WGL_I3D_image_buffer');
19988   WGL_I3D_swap_frame_lock := Int_CheckExtension(Buffer, 'WGL_I3D_swap_frame_lock');
19989   WGL_I3D_swap_frame_usage := Int_CheckExtension(Buffer, 'WGL_I3D_swap_frame_usage');
19990   WGL_NV_float_buffer := Int_CheckExtension(Buffer, 'WGL_NV_float_buffer');
19991   WGL_NV_render_depth_texture := Int_CheckExtension(Buffer, 'WGL_NV_render_depth_texture');
19992   WGL_NV_render_texture_rectangle := Int_CheckExtension(Buffer, 'WGL_NV_render_texture_rectangle');
19993   WGL_NV_vertex_array_range := Int_CheckExtension(Buffer, 'WGL_NV_vertex_array_range');
19994   WGL_NV_present_video := Int_CheckExtension(Buffer, 'WGL_NV_present_video');
19995   WGL_NV_video_output := Int_CheckExtension(Buffer, 'WGL_NV_video_output');
19996   WGL_NV_swap_group := Int_CheckExtension(Buffer, 'WGL_NV_swap_group');
19997   WGL_NV_gpu_affinity := Int_CheckExtension(Buffer, 'WGL_NV_gpu_affinity');
19998   WGL_NV_video_capture := Int_CheckExtension(Buffer, 'WGL_NV_video_capture');
19999   WGL_NV_copy_image := Int_CheckExtension(Buffer, 'WGL_NV_copy_image');
20000   WGL_NV_multisample_coverage := Int_CheckExtension(Buffer, 'WGL_NV_multisample_coverage');
20001   WGL_NV_DX_interop := Int_CheckExtension(Buffer, 'WGL_NV_multisample_coverage');
20002   WGL_OML_sync_control := Int_CheckExtension(Buffer, 'WGL_OML_sync_control');
20003   WGL_3DL_stereo_control := Int_CheckExtension(Buffer, 'WGL_3DL_stereo_control');
20004   WGL_ARB_context_flush_control := Int_CheckExtension(Buffer, 'WGL_ARB_context_flush_control');
20005   WIN_draw_range_elements := Int_CheckExtension(Buffer, 'WIN_draw_range_elements');
20006   WIN_swap_hint := Int_CheckExtension(Buffer, 'WIN_swap_hint');
20007   {$ENDIF}
20008
20009   {$IFDEF DGL_LINUX}
20010   // GLX
20011   GLX_ARB_multisample := Int_CheckExtension(Buffer, 'GLX_ARB_multisample');
20012   GLX_ARB_fbconfig_float := Int_CheckExtension(Buffer, 'GLX_ARB_fbconfig_float');
20013   GLX_ARB_get_proc_address := Int_CheckExtension(Buffer, 'GLX_ARB_get_proc_address');
20014   GLX_ARB_create_context := Int_CheckExtension(Buffer, 'GLX_ARB_create_context');
20015   GLX_ARB_create_context_profile := Int_CheckExtension(Buffer, 'GLX_ARB_create_context_profile');
20016   GLX_ARB_vertex_buffer_object := Int_CheckExtension(Buffer, 'GLX_ARB_vertex_buffer_object');
20017   GLX_ARB_framebuffer_sRGB := Int_CheckExtension(Buffer, 'GLX_ARB_framebuffer_sRGB');
20018   GLX_ARB_create_context_robustness := Int_CheckExtension(Buffer, 'GLX_ARB_create_context_robustness');
20019   GLX_EXT_visual_info := Int_CheckExtension(Buffer, 'GLX_EXT_visual_info');
20020   GLX_EXT_visual_rating := Int_CheckExtension(Buffer, 'GLX_EXT_visual_rating');
20021   GLX_EXT_import_context := Int_CheckExtension(Buffer, 'GLX_EXT_import_context');
20022   GLX_EXT_fbconfig_packed_float := Int_CheckExtension(Buffer, 'GLX_EXT_fbconfig_packed_float');
20023   GLX_EXT_framebuffer_sRGB := Int_CheckExtension(Buffer, 'GLX_EXT_framebuffer_sRGB');
20024   GLX_EXT_texture_from_pixmap := Int_CheckExtension(Buffer, 'GLX_EXT_texture_from_pixmap');
20025   GLX_EXT_swap_control := Int_CheckExtension(Buffer, 'GLX_EXT_swap_control');
20026   GLX_EXT_create_context_es2_profile := Int_CheckExtension(Buffer, 'GLX_EXT_create_context_es2_profile');
20027   GLX_ARB_context_flush_control := Int_CheckExtension(Buffer, 'GLX_ARB_context_flush_control');
20028   {$ENDIF}
20029
20030   ImplementationRead := True;
20031 end;
20032
20033 {$IFDEF DGL_WIN}
20034 // =============================================================================
20035 // RaiseLastOSError
20036 // =============================================================================
20037 // Needed for compatibility with older Delphiversions
20038 // =============================================================================
20039
20040 procedure RaiseLastOSError;
20041 begin
20042 {$IFDEF FPC}
20043   raise Exception.Create('RaiseLastOSError!'); // To-Do: find a better solution
20044 {$ELSE}
20045   {$IFDEF DELPHI6_AND_DOWN} // If Delphi 6 or later
20046     SysUtils.RaiseLastWin32Error;
20047   {$ELSE}
20048     SysUtils.RaiseLastOSError;
20049   {$ENDIF}
20050 {$ENDIF}
20051 end;
20052
20053 // =============================================================================
20054 // CreateRenderingContext
20055 // =============================================================================
20056
20057 function CreateRenderingContext(DC: HDC; Options: TRCOptions; ColorBits, ZBits, StencilBits, AccumBits, AuxBuffers: Integer; Layer: Integer): HGLRC;
20058 const
20059   OBJ_MEMDC = 10;
20060   OBJ_ENHMETADC = 12;
20061   OBJ_METADC = 4;
20062   PFD_DOUBLEBUFFER = $00000001;
20063   PFD_STEREO = $00000002;
20064   PFD_DRAW_TO_WINDOW = $00000004;
20065   PFD_DRAW_TO_BITMAP = $00000008;
20066   PFD_SUPPORT_GDI = $00000010;
20067   PFD_SUPPORT_OPENGL = $00000020;
20068   PFD_TYPE_RGBA = 0;
20069   PFD_MAIN_PLANE = 0;
20070   PFD_OVERLAY_PLANE = 1;
20071   PFD_UNDERLAY_PLANE = LongWord(-1);
20072   MemoryDCs = [OBJ_MEMDC, OBJ_METADC, OBJ_ENHMETADC];
20073 var
20074   PFDescriptor: TPixelFormatDescriptor;
20075   PixelFormat: Integer;
20076   AType: DWORD;
20077 begin
20078   if GL_LibHandle = nil then
20079     InitOpenGL;
20080
20081   FillChar(PFDescriptor{%H-}, SizeOf(PFDescriptor), 0);
20082
20083   with PFDescriptor do
20084   begin
20085     nSize := SizeOf(PFDescriptor);
20086     nVersion := 1;
20087     dwFlags := PFD_SUPPORT_OPENGL;
20088
20089     AType := GetObjectType(DC);
20090
20091     if AType = 0 then
20092       RaiseLastOSError;
20093
20094     if AType in MemoryDCs then
20095       dwFlags := dwFlags or PFD_DRAW_TO_BITMAP
20096     else
20097       dwFlags := dwFlags or PFD_DRAW_TO_WINDOW;
20098
20099     if opDoubleBuffered in Options then
20100       dwFlags := dwFlags or PFD_DOUBLEBUFFER;
20101
20102     if opGDI in Options then
20103       dwFlags := dwFlags or PFD_SUPPORT_GDI;
20104
20105     if opStereo in Options then
20106       dwFlags := dwFlags or PFD_STEREO;
20107
20108     iPixelType := PFD_TYPE_RGBA;
20109     cColorBits := ColorBits;
20110     cDepthBits := zBits;
20111     cStencilBits := StencilBits;
20112     cAccumBits := AccumBits;
20113     cAuxBuffers := AuxBuffers;
20114
20115     if Layer = 0 then
20116       iLayerType := PFD_MAIN_PLANE
20117     else
20118     if Layer > 0 then
20119       iLayerType := PFD_OVERLAY_PLANE
20120     else
20121       iLayerType := Byte(PFD_UNDERLAY_PLANE);
20122   end;
20123
20124   PixelFormat := ChoosePixelFormat(DC, @PFDescriptor);
20125
20126   if PixelFormat = 0 then
20127     RaiseLastOSError;
20128
20129   if GetPixelFormat(DC) <> PixelFormat then
20130     if not SetPixelFormat(DC, PixelFormat, @PFDescriptor) then
20131       RaiseLastOSError;
20132
20133   DescribePixelFormat(DC, PixelFormat, SizeOf(PFDescriptor), PFDescriptor);
20134
20135   Result := wglCreateContext(DC);
20136
20137   if Result = 0 then
20138     RaiseLastOSError
20139   else
20140     LastPixelFormat := 0;
20141 end;
20142
20143 // =============================================================================
20144 // CreateRenderingContextVersion
20145 // =============================================================================
20146 //  Creates a context for the more recent OpenGL versions (3.0) and up
20147 //  For that we first need to get a normal GL context for getting the
20148 //  function pointer to wglCreateContextAttribsARB first
20149 // =============================================================================
20150 function CreateRenderingContextVersion(DC: HDC; Options: TRCOptions; MajorVersion, MinorVersion : Integer; ForwardCompatible : Boolean; ColorBits, ZBits, StencilBits, AccumBits, AuxBuffers: Integer; Layer: Integer): HGLRC;
20151 const
20152   OBJ_MEMDC          = 10;
20153   OBJ_ENHMETADC      = 12;
20154   OBJ_METADC         = 4;
20155   PFD_DOUBLEBUFFER   = $00000001;
20156   PFD_STEREO         = $00000002;
20157   PFD_DRAW_TO_WINDOW = $00000004;
20158   PFD_DRAW_TO_BITMAP = $00000008;
20159   PFD_SUPPORT_GDI    = $00000010;
20160   PFD_SUPPORT_OPENGL = $00000020;
20161   PFD_TYPE_RGBA      = 0;
20162   PFD_MAIN_PLANE     = 0;
20163   PFD_OVERLAY_PLANE  = 1;
20164   PFD_UNDERLAY_PLANE = LongWord(-1);
20165   MemoryDCs          = [OBJ_MEMDC, OBJ_METADC, OBJ_ENHMETADC];
20166 var
20167   PFDescriptor : TPixelFormatDescriptor;
20168   PixelFormat  : Integer;
20169   AType        : DWORD;
20170   LegacyRC     : HGLRC;
20171   Attribs      : array of Integer;
20172 begin
20173   if GL_LibHandle = nil then
20174         InitOpenGL;
20175
20176   if not Assigned(GL_LibHandle) then
20177         raise Exception.Create('GL_LibHandle is NIL. Could not load OpenGL library!');
20178
20179   FillChar(PFDescriptor{%H-}, SizeOf(PFDescriptor), 0);
20180
20181   with PFDescriptor do
20182     begin
20183       nSize    := SizeOf(PFDescriptor);
20184       nVersion := 1;
20185       dwFlags  := PFD_SUPPORT_OPENGL;
20186       AType    := GetObjectType(DC);
20187
20188       if AType = 0 then
20189         RaiseLastOSError;
20190
20191       if AType in MemoryDCs then
20192         dwFlags := dwFlags or PFD_DRAW_TO_BITMAP
20193       else
20194         dwFlags := dwFlags or PFD_DRAW_TO_WINDOW;
20195
20196       if opDoubleBuffered in Options then
20197         dwFlags := dwFlags or PFD_DOUBLEBUFFER;
20198
20199       if opGDI in Options then
20200         dwFlags := dwFlags or PFD_SUPPORT_GDI;
20201
20202       if opStereo in Options then
20203         dwFlags := dwFlags or PFD_STEREO;
20204
20205       iPixelType   := PFD_TYPE_RGBA;
20206       cColorBits   := ColorBits;
20207       cDepthBits   := zBits;
20208       cStencilBits := StencilBits;
20209       cAccumBits   := AccumBits;
20210       cAuxBuffers  := AuxBuffers;
20211
20212       if Layer = 0 then
20213         iLayerType := PFD_MAIN_PLANE
20214       else
20215         if Layer > 0 then
20216           iLayerType := PFD_OVERLAY_PLANE
20217         else
20218           iLayerType := Byte(PFD_UNDERLAY_PLANE);
20219     end;
20220
20221   PixelFormat := ChoosePixelFormat(DC, @PFDescriptor);
20222
20223   if PixelFormat = 0 then
20224         RaiseLastOSError;
20225
20226   if GetPixelFormat(DC) <> PixelFormat then
20227         if not SetPixelFormat(DC, PixelFormat, @PFDescriptor) then
20228                 RaiseLastOSError;
20229
20230   DescribePixelFormat(DC, PixelFormat, SizeOf(PFDescriptor), PFDescriptor);
20231
20232   // Create legacy render context first for we need function pointers to
20233   // create new OpenGL render contexts
20234   LegacyRC := wglCreateContext(DC);
20235   wglMakeCurrent(DC, LegacyRC);
20236
20237   // Set attributes to describe our requested context
20238   SetLength(Attribs, 5);
20239   Attribs[0] := WGL_CONTEXT_MAJOR_VERSION_ARB;
20240   Attribs[1] := MajorVersion;
20241   Attribs[2] := WGL_CONTEXT_MINOR_VERSION_ARB;
20242   Attribs[3] := MinorVersion;
20243
20244   // Add context flag for forward compatible context
20245   //  Forward compatible means no more support for legacy functions like
20246   //  immediate mode (glvertex, glrotate, gltranslate, etc.)
20247   if ForwardCompatible then
20248     begin
20249       SetLength(Attribs, Length(Attribs)+2);
20250       Attribs[4] := WGL_CONTEXT_FLAGS_ARB;
20251       Attribs[5] := WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB;
20252     end;
20253
20254   // Attribute flags must be finalized with a zero
20255   Attribs[High(Attribs)] := 0;
20256
20257   // Get function pointer for new context creation function
20258   wglCreateContextAttribsARB := wglGetProcAddress('wglCreateContextAttribsARB');
20259
20260   if not Assigned(wglCreateContextAttribsARB) then
20261     begin
20262       raise Exception.Create('Could not get function pointer adress for wglCreateContextAttribsARB - OpenGL 3.x and above not supported!');
20263       wglDeleteContext(LegacyRC);
20264       exit;
20265     end;
20266
20267   // Create context
20268   Result := wglCreateContextAttribsARB(DC, 0, @Attribs[0]);
20269
20270   if Result = 0 then
20271     begin
20272       raise Exception.Create('Could not create the desired OpenGL rendering context!');
20273       wglDeleteContext(LegacyRC);
20274       exit;
20275     end;
20276
20277   wglDeleteContext(LegacyRC);
20278
20279   if Result = 0 then
20280         RaiseLastOSError
20281   else
20282         LastPixelFormat := 0;
20283 end;
20284
20285 // =============================================================================
20286 // DestroyRenderingContext
20287 // =============================================================================
20288
20289 procedure DestroyRenderingContext(RC: HGLRC);
20290 begin
20291   wglDeleteContext(RC);
20292 end;
20293
20294
20295 // =============================================================================
20296 // ActivateRenderingContext
20297 // =============================================================================
20298
20299 procedure ActivateRenderingContext(DC: HDC; RC: HGLRC; loadext: boolean = true);
20300 begin
20301   Assert((DC <> 0), 'DC must not be 0');
20302   Assert((RC <> 0), 'RC must not be 0');
20303
20304   wglMakeCurrent(DC, RC);
20305
20306   {$ifdef DGL_TINY_HEADER}
20307   ReadCoreVersion;
20308   {$else}
20309   ReadImplementationProperties;
20310
20311   if (loadext) then
20312     ReadExtensions;
20313   {$endif}
20314 end;
20315
20316 // =============================================================================
20317 // DeactivateRenderingContext
20318 // =============================================================================
20319
20320 procedure DeactivateRenderingContext;
20321 begin
20322   wglMakeCurrent(0, 0);
20323 end;
20324 {$ENDIF}
20325
20326
20327 initialization
20328
20329 {$IFDEF CPU386}
20330   Set8087CW($133F);
20331 {$ENDIF}
20332 {$IFDEF DGL_64BIT}
20333   SetExceptionMask([exInvalidOp, exDenormalized, exZeroDivide,exOverflow, exUnderflow, exPrecision]);
20334 {$ENDIF}
20335
20336
20337 finalization
20338
20339 end.
20340